doc/sdccman.lyx: Documented --acall-ajmp and described new features in sdcclib.
[fw/sdcc] / ChangeLog
1 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2
3         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
4           in sdcclib.
5
6 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
7
8         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
9           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
10           with acall/ajmp.
11
12 2007-07-22 Borut Razem <borut.razem AT siol.net>
13
14         * configure.in, configure: re-introduced .version
15         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
16           the version reverted to 2.7.0
17
18 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
19
20         * configure.in,
21         * doc/sdccman.lyx: bumped version to 2.7.3
22         * device/include/mcs51/compiler.h: fixed elif->else
23         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
24         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
25           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
26            enable accuse for bit operands
27         * src/SDCCmain.c (printVersionInfo),
28         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
29           environment descriptor
30         * src/SDCCutil.h: added getBuildEnvironment
31         * src/SDCCglue.c (initialComments): use getBuildEnvironment
32         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
33         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
34         * support/regression/tests/bug1348008.c,
35         * support/regression/tests/bug1496419.c,
36         * support/regression/tests/bug1503067.c,
37         * support/regression/tests/preproc.c: added empty tests
38
39 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
40
41         * support/regression/tests/bug1678803.c: new, added
42
43 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
44
45         * as/link/aslink.h,
46         * as/link/hc08/lkihx.c,
47         * as/link/hc08/lkrloc.c,
48         * as/link/mcs51/lkihx.c,
49         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
50           ihxExtendedLinearAddress
51         * as/link/mcs51/lkrloc.c (relr),
52         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
53           acall/ajmp, see bug 830513
54
55 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
56
57         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
58           (cseBBlock): remember aggr2ptr has been used
59         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
60           (geniCodeAssign): fixed bug 868103
61         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
62           added operandSize prototype
63         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
64           (genDataPointerSet): use max of size of right and result,
65           (gencjne): added parameter useCarry for optimization,
66           (genCmpEq): use carry if appropriate,
67           (genXor): check if operand already in carry
68         * support/regression/tests/bug-868103.c: enabled test
69
70 2007-07-12 Raphael Neider <rneider AT web.de>
71
72         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
73
74 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
75
76         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
77           from Robert Larice, thanks
78         * support/regression/tests/bitopcse.c,
79         * support/regression/tests/bitvars.c,
80         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
81         * support/regression/tests/bug-927659.c: enabled test for z80
82         * support/regression/tests/bug1738367.c: added extra tests by Frieder
83         * support/regression/tests/bug1745717.c: new, added
84         * support/regression/tests/literalop.c,
85         * support/regression/tests/nullstring.c: removed storage definitions that
86           are now in testfwk.h
87
88 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
89
90         * device/include/stdbool.h: do not define __bool_true_false_are_defined
91           and bool for targets that do not fully support it.
92         * support/regression/tests/bug1546986.c,
93         * support/regression/tests/bug1723128.c,
94         * support/regression/tests/bug1734654.c,
95         * support/regression/tests/bug1738367.c,
96         * support/regression/tests/constantRange.c: only use bool if allowed
97
98 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
99
100         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
101           Larice, also handle function pointers
102         * support/regression/tests/bug1749275.c: new, added
103
104 2007-07-03 Borut Razem <borut.razem AT siol.net>
105
106         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
107           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
108           #1746528: SDCC should ignore ':' in inline assembler comments
109         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
110
111 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
112
113         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
114         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
115
116 2007-06-29 Borut Razem <borut.razem AT siol.net>
117
118         * src/SDCCmain.c: fixed bug
119           #1744746: SDCC #4867: broken option --xram-size
120
121 2007-06-28 Borut Razem <borut.razem AT siol.net>
122
123         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
124           find out the endianess of host machine for ucsim
125
126 2007-06-27 Borut Razem <borut.razem AT siol.net>
127
128         * support/regression/generate-cases.py: corrected the file name
129           in warning
130         * configure.in, configure, sdccconf_in.h: find out the endianess of
131           host machine
132         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
133           negative size
134
135 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
136
137         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
138
139 2007-06-26 Borut Razem <borut.razem AT siol.net>
140
141         * support/regression/generate-cases.py: display warning if function
142           list is empty; implemented more flexible rule for detection of
143           testing functions, allowing return type 'void' in the same line as
144           the function name in the function definition
145         * support/regression/tests/bug-1654060.c: corrected test
146         * support/librarian/sdcclib.c: fixed warning:
147           format '%s' expects type 'char *', but argument 2 has type 'int'
148
149 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
150
151         * support/librarian/sdcclib.c: Added feature Requests [1510635]
152           Multiple infiles for sdcclib.
153
154 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
155         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
156           bug 1731741
157
158 2007-06-18 Borut Razem <borut.razem AT siol.net>
159
160         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
161           how to handle comments, so they have to be removed by the
162           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
163         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
164           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
165           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
166           table driven option hadling
167
168 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
169
170         * src/SDCCast.c (decorateType),
171         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
172           iCode to ast level to fix bug 1738367
173         * support/regression/tests/bug1738367.c: new, added
174
175 2007-06-15 Raphael Neider <rneider AT web.de>
176
177         * src/pic16/devices.inc,
178         * device/lib/pic16/pics.all,
179         * device/include/pic16/pic18fregs.h,
180         * device/include/pic16/pic18f[24][45]20.h,
181         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
182           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
183         * device/lib/pic16/Makefile.in: faster cleanup
184
185 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
186
187         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
188
189 2007-06-13 Raphael Neider <rneider AT web.de>
190
191         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
192
193 2007-06-12 Raphael Neider <rneider AT web.de>
194
195         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
196           suppress bit defines if NO_BIT_DEFINES is #define'd
197         * device/include/pic/pic*.h: recreated all headers to include
198           conditional bit defines
199         * device/include/pic/pic16f886.h,
200         * device/include/pic/pic16f887.h: fixed based on newer .inc file
201         * device/include/pic/recreate.sh: script to recreate the complete
202           device library files based on the currently supported devices
203
204 2007-06-12 Borut Razem <borut.razem AT siol.net>
205
206         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
207           support/regression/Makefile.in, support/scripts/build.mak,
208           support/scripts/Makefile.snapshot:
209           use new svn URL scheme
210         * doc/sdccman.lyx: SDCC Wiki moved to
211           http://sdcc.wiki.sourceforge.net/
212
213 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
214
215         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
216         * support/regression/tests/bug1734654.c: added
217
218 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
219
220         * src/SDCCast.c (decorateType): optimized '?' for equal operands
221         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
222           with literal operands
223
224 2007-06-10 Borut Razem <borut.razem AT siol.net>
225
226         * as/link/z80/lklibr.c: fixed mingw build warning
227           lklibr.c:575: warning: implicit declaration of function 'tolower'
228         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
229           src/z80/main.c: move target specific options from src/SDCCmain.c
230           to src/<target>/main.c
231
232 2007-06-09 Borut Razem <borut.razem AT siol.net>
233
234         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
235           removed unused swap_sense; removed outBitCLong, replaced with outBitC
236         * support/regression/tests/bug-1294691.c: added
237
238 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
239
240         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
241           can also be static, fixes bug 1733438
242         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
243           have absolute address too
244           (computeType): added optimization for 'cond ? true : false'
245         * support/regression/tests/absolute.c: added test for static absolute var
246
247 2007-06-08 Raphael Neider <rneider AT web.de>
248
249         * src/regression/Makefile: suppress parallel builds, allow easy
250           switching between pic14/pic16 ports
251         * src/regression/picregs.h: added pic14/16 header file switch
252         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
253           inline.c,nestfor.c,string1.c}: include "picregs.h"
254
255 2007-06-07 Borut Razem <borut.razem AT siol.net>
256
257         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
258           permanent solution to suppress GCC 4.2.0 c++ warning:
259           deprecated conversion from string constant to `char *'
260           use 'const char *' where ever required
261         * support/regression/generate-cases.py: implemented more flexible rule
262           for detection of testing functions, allowing white-spaces surrounding
263           the function name and the 'void' parameter.
264         * support/regression/tests/constantRange.c,
265           support/regression/tests/scott-compare3.c: fixed failing regression
266           tests, uncovered by implementation of more flexible rule for detection
267           of testing functions
268
269 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
270
271         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
272
273 2007-06-04 Borut Razem <borut.razem AT siol.net>
274
275         * configure.in, configure, config_vc.awk: sdcc version number is now
276           stored in configure.in; removed .version
277         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
278           doc/INSTALL.txt: version bumped to 2.7.2
279         * sim/ucsim/configure.in, sim/ucsim/configure:
280           use "read" to read from .version
281
282 2007-06-03 Borut Razem <borut.razem AT siol.net>
283
284         * */Makefile.in: removed annoying warning:
285           Makefile:xx: Makefile.dep: No such file or directory
286
287 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
288
289         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
290           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
291         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
292         * src/SDCCast.c (resultTypePropagate): propagate for '!',
293           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
294           bugfix: only use newBoolLink for bit result type
295         * src/SDCCicode.c (geniCodeLogic): added param tree,
296           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
297           (geniCodeLogicAndOr): use IS_BIT,
298           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
299           (ast2iCode): added tree param to geniCodeLogic for comparisons
300         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
301         * support/regression/tests/bug1723128.c: added test NotZero
302
303 2007-06-01 Borut Razem <borut.razem AT siol.net>
304
305         * SDCPP synchronized with GCC CPP release version 4.2.0,
306           currently the latest release:
307         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
308           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
309           support/cpp2/cppdefault.h, support/cpp2/except.h,
310           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
311           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
312           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
313           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
314           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
315           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
316           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
317           support/cpp2/opts.h, support/cpp2/output.h,
318           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
319           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
320           support/cpp2/system.h, support/cpp2/version.c,
321           support/cpp2/Makefile.in: modified
322         * support/cpp2/opts-common.c: added
323         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
324         * device/lib/pic16/libdev/pic18f[24]5j10.c:
325           search for included source file in local directory
326         * sim/ucsim/configure, sim/ucsim/configure.in:
327           temporary solution to suppress GCC 4.2.0 c++ warning:
328           deprecated conversion from string constant to `char *'
329
330 2007-06-01 Raphael Neider <rneider AT web.de>
331
332         * device/lib/pic/libdev/pic12f683.c,
333         * device/include/pic/pic12f683.h: added GPIO bits
334
335 2007-06-01 Raphael Neider <rneider AT web.de>
336
337         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
338           quotation marks, clarified role of PIC14 vs. PIC16 ports
339         * src/pic16/devices.inc,
340         * device/include/pic16/pic18fregs.h,
341         * device/include/pic16/pic18f[24][45]j10.h,
342         * device/lib/pic16/pics.all,
343         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
344           18f24j10, 18f25j10, 18f44j10, and 18f45j10
345         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
346           for new devices as they are not yet supported by gputils
347
348 2007-05-31 Borut Razem <borut.razem AT siol.net>
349
350         * Small Device C Compiler 2.7.0 released
351         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
352           changed sdcc version to 2.7.1
353         * support/scripts/sdcc.nsi: added How to create WIN32 release
354           setup.exe package
355
356 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
357
358         * doc/sdccman.lyx: documented initialization and allocation of absolute
359           variables, bit parameter passing, the need for function pointers to be
360           reentrant and alpha quality support of inline and retrict
361
362 2007-05-26 Borut Razem <borut.razem AT siol.net>
363
364         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
365           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
366         * docs/knownbugs.html: updated
367
368 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
369
370         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
371           thanks Jan Waclawek
372         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
373           AOP_CRY and ruonly
374           (gencjneshort): optimized when left is AOP_DIR
375         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
376           initializing unions in a struct/array
377         * support/regression/fwk/include/testfwk.h: added defines for data, near
378           and far for host and z80
379         * support/regression/tests/bug1723128.c: new, added
380
381 2007-05-22 Borut Razem <borut.razem AT siol.net>
382
383         * doc/knownbugs.html: updated
384
385 2007-05-21 Raphael Neider <rneider AT web.de>
386
387         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
388           error message instead
389         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
390
391 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
392
393         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
394
395 2007-05-21 Raphael Neider <rneider AT web.de>
396
397         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
398           closes #1722392
399         * src/regression/gpsim_assert.h,
400         * src/regression/Makefile,
401         * src/regression/pcodeopt.c: regression test for the above fix
402
403 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
404
405         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
406           jumps to self, fixed bug 1717281
407
408 2007-05-10 Borut Razem <borut.razem AT siol.net>
409
410         * support/scripts/gen_known_bugs.pl: cosmetic fix
411         * doc/knownbugs.html: generated by gen_known_bugs.pl
412
413 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
414
415         * src/SDCCast.c (createFunction): also generate non-inlined version of
416           function for functions declared as "static inline"
417         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
418           function can be inlined after non-inlined version generated.
419
420 2007-05-10 Borut Razem <borut.razem AT siol.net>
421
422         * support/scripts/gen_known_bugs.pl: added script
423           which generates knownbugs.html
424
425 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
426
427         * doc/knownbugs.html: updated for release 2.7.0
428
429 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
430
431         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
432
433 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
434
435         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
436           (throughout): updated generating comments
437         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
438           (throughout): updated generating comments
439         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
440           rule instead of at the second, or it might skip lines when removing the
441           complete match
442         * support/regression/tests/bug1714204.c: changed test to foo
443
444 2007-05-08 Borut Razem <borut.razem AT siol.net>
445
446         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
447           thanks to SDCC Distributed Compile Farm members,
448           added Z80 and GBZ80 command line options
449         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
450
451 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
452
453         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
454         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
455         * support/regression/tests/longlit.c: modified to be tested at all and
456           to pass the actual test
457
458 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
459
460         * device/include/mcs51/uPSD33xx.h: Added.
461
462 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
463
464         * device/lib/_gptrput.c,
465         * device/lib/_gptrget.c: removed old code,
466          (_gptrgetWord),
467         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
468         * support/regression/tests/bug1714204.c: new, added
469
470 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
471
472         * support/regression/tests/regtrack.c: test was never executed
473           because of the regression test being picky about white spaces.
474         * device/lib/mcs51/crtclear.asm: added comment
475
476 2007-05-06 Raphael Neider <rneider AT web.de>
477
478         * device/lib/pic/Makefile.rules,
479         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
480           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
481
482 2007-05-06 Raphael Neider <rneider AT web.de>
483
484         * src/pic16/device.h,
485         * src/pic16/main.h,
486         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
487           _pic16_setDefaultOptions): removed/reordered command-line args
488         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
489           devices, regrouped command line args, environment variables),
490           clarified sone points, added sections on how to add devices to the
491           PIC14/PIC16 ports
492
493 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
494
495         * src/z80/peeph.def: fixed bug in rule 2
496
497 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
498
499         * src/port.h: added TARGET_MCS51_LIKE
500         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
501           take advantage of it too
502         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
503           (shiftR2Left2Result): Optimized: don't check shifting by 0
504         * src/z80/peeph-z80.def,
505         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
506           modifications, see patch 1700823
507         * src/mcs51/peep.c (): fixed bug 1712928
508         * support/regression/tests/bug1712928.c: new, added
509
510 2007-05-05 Borut Razem <borut.razem AT siol.net>
511
512         * device/lib/pic16/Makefile.common.in,
513           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
514           removed bash dependencies
515
516 2007-05-01 Borut Razem <borut.razem AT siol.net>
517
518         * src/SDCCicode.c:
519           fixed bug #1710507: --i-code-in-asm makes compile fail
520           all iCode comments are now one liners
521         * src/mcs51/gen.c: fixed memory leak
522
523 2007-05-01 Raphael Neider <rneider AT web.de>
524
525         * device/lib/pic/libdev/*.c
526         * device/include/pic/*.h: regenerated all device libs from updated
527           .inc files
528         * support/scripts/inc2h.pl: documented usage, now uses strict to
529           catch more bugs
530
531 2007-04-30 Borut Razem <borut.razem AT siol.net>
532
533         * doc/sdccman.lyx:
534           fixed bug #1669175: Problem with space in output paths
535           documented how to use paths with spaces for Windows users
536
537 2007-04-29 Borut Razem <borut.razem AT siol.net>
538
539         * Fixed svn:eol-style and svn:keywords properties
540         * src/SDCCval.c: fixed bug
541           #1592871: Segfault with "large" const arrays of characters
542           replaced recursion with iteration
543         * Removed svn:executable property from non-executable files
544
545 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
546
547         * src/mcs51/gen.c (genRet): fixed bug 1707003
548
549 2007-04-27 Raphael Neider <rneider AT web.de>
550
551         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
552           createReachingDefinitions,assignValnums,pic16_destructDF,
553           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
554           prevent NULL pointer dereferences
555         * device/lib/pic/libdev/pic16f886.c,
556         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
557           prevent building them, gputils do not really support them yet
558
559 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
560
561         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
562           helps printf_small. 32 bytes more __idata mem.
563
564 2007-04-27 Raphael Neider <rneider AT web.de>
565
566         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
567           return early when pb or pb->pcHead is NULL (patch #1708427)
568         * src/regression/empty.c,
569         * src/regression/Makefile: added test with empty functions
570         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
571
572 2007-04-27 Borut Razem <borut.razem AT siol.net>
573
574         * src/SDCCast.c: fixed feature request
575           #1547512: Redundant strings linked when using sizeof("abc")
576
577 2007-04-23 Borut Razem <borut.razem AT siol.net>
578
579         * doc/sdccman.lyx, src/SDCCmain.c:
580           peep-hole comments are generated only if --fverbose-asm option is
581           specified and --no-peep-comments is not, as proposed by Frieder.
582         * support/regression/Makefile.in: compile regression tests with
583           --fverbose-asm option so one can "grep" whether a new (or an old)
584           peephole is (still) applied; requested by Frieder.
585
586 2007-04-23 Kevin Buettner <kevin AT buettner.to>
587
588         * device/include/pic/pic16f886.h,
589         * device/include/pic/pic16f887.h,
590         * device/lib/pic/libdev/pic16f886.c,
591         * device/lib/pic/libdev/pic16f887.c,
592         * device/include/pic/pic14devices.txt,
593         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
594
595 2007-04-23 Kevin Buettner <kevin AT buettner.to>
596
597         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
598           fixes #1704666
599
600 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
601
602         * device/lib/_memset.c: assembler version for mcs51
603
604 2007-04-22 Borut Razem <borut.razem AT siol.net>
605
606         * support/scripts/listerr.c: program to create the list of errors and
607           warnings list from - added
608         * doc/sdccman.lyx: removed the note
609           "For list of warnings and corresponding codes, see err_warn.txt"
610         * src/SDCCsymt.c: fixed bug #1699804:
611           Bug with some uses of sizeof(static local array) (MCS51)
612         * support/regression/tests/bug-1699804.c: added
613
614 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
615
616         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
617           (main): added option -i,
618           (asmbl, case S_INCL): use search_path_fopen,
619           mostly from patch 1579668 by Peter Miller, thanks
620         * src/z80/main.c: fixed typo --callee-saves-bc
621         * device/include/mcs51/compiler.h: added sfrword for Tasking
622
623 2007-04-20 Borut Razem <borut.razem AT siol.net>
624
625         * src/z80/main.c: replaced reserved keyword asm with asmblr
626
627 2007-04-19 Borut Razem <borut.razem AT siol.net>
628
629         * src/port.h: use const pointers to strings
630         * src/SDCCargs.h: declared getStringArg() and getIntArg()
631         * src/pic16/main.c: include SDCCargs.h
632         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
633           const char, since the strings are dynamically allocated
634         * src/SDCCmain.c: options.code_seg and options.const_seg are
635           dynamically allocated; check port specific command line options
636           before the general ones
637         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
638
639 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
640
641         * device/include/ds400rom.h,
642         * device/lib/ds390/lcd390.c,
643         * device/lib/ds390/memcpyx.c,
644         * device/lib/ds390/rtc390.c,
645         * device/lib/ds400/ds400rom.c,
646         * device/lib/ds400/memcpyx.c,
647         * device/lib/hc08/_ret.c: more replacements of keywords with their
648           double underscore equivalents
649         * device/lib/ds390/Makefile.in,
650         * device/lib/ds400/Makefile.in,
651         * device/lib/gbz80/Makefile.in,
652         * device/lib/hc08/Makefile.in,
653         * device/lib/mcs51/Makefile.in,
654         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
655
656 2007-04-17 Borut Razem <borut.razem AT siol.net>
657
658         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
659           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
660           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
661           to --fverbose-asm, to be gcc'ish
662
663 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
664
665         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
666
667 2007-04-17 Borut Razem <borut.razem AT siol.net>
668
669         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
670         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
671           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
672           with their double underscore equivalent
673
674 2007-04-14 Borut Razem <borut.razem AT siol.net>
675
676         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
677           source"
678
679 2007-04-13 Borut Razem <borut.razem AT siol.net>
680
681         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
682           C99 standard
683         * device/examples/serialcomm/windows/serial.[ch],
684           device/examples/serialcomm/windows/test_serialcomm.cpp:
685           updated by Bela Torok
686         * device/examples/serialcomm/windows/serialcomm.dsw,
687           device/examples/serialcomm/windows/serialcomm.dsp: added
688
689 2007-04-13 Jan Waclawek <wek AT efton.sk>
690
691         * doc/sdccman.lyx: additions and changes at various places
692           (submitted as #1697136).
693           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
694
695 2007-04-10 Borut Razem <borut.razem AT siol.net>
696
697         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
698           LyX file format changed to 245
699         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
700           "FreeWare" replaced with "free open source"
701
702 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
703
704         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
705
706 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
707
708         * device/include/pic16/pic18fregs.h,
709         * device/lib/_bp.c,
710         * device/lib/_decdptr.c,
711         * device/lib/_divsint.c,
712         * device/lib/_divslong.c,
713         * device/lib/_divuint.c,
714         * device/lib/_divulong.c,
715         * device/lib/_fs2schar.c,
716         * device/lib/_fs2sint.c,
717         * device/lib/_fs2slong.c,
718         * device/lib/_fs2uchar.c,
719         * device/lib/_fs2uint.c,
720         * device/lib/_fs2ulong.c,
721         * device/lib/_fsadd.c,
722         * device/lib/_fscmp.c,
723         * device/lib/_fsdiv.c,
724         * device/lib/_fseq.c,
725         * device/lib/_fsget1arg.c,
726         * device/lib/_fsget2args.c,
727         * device/lib/_fsgt.c,
728         * device/lib/_fslt.c,
729         * device/lib/_fsmul.c,
730         * device/lib/_fsneq.c,
731         * device/lib/_fsnormalize.c,
732         * device/lib/_fsreturnval.c,
733         * device/lib/_fsrshift.c,
734         * device/lib/_fssub.c,
735         * device/lib/_fsswapargs.c,
736         * device/lib/_gptrget.c,
737         * device/lib/_gptrgetc.c,
738         * device/lib/_gptrput.c,
739         * device/lib/_logexpf.c,
740         * device/lib/_modsint.c,
741         * device/lib/_modslong.c,
742         * device/lib/_moduint.c,
743         * device/lib/_modulong.c,
744         * device/lib/_mulint.c,
745         * device/lib/_mullong.c,
746         * device/lib/_schar2fs.c,
747         * device/lib/_ser.c,
748         * device/lib/_setjmp.c,
749         * device/lib/_sint2fs.c,
750         * device/lib/_slong2fs.c,
751         * device/lib/_spx.c,
752         * device/lib/_uchar2fs.c,
753         * device/lib/_uint2fs.c,
754         * device/lib/_ulong2fs.c,
755         * device/lib/asincosf.c,
756         * device/lib/atanf.c,
757         * device/lib/calloc.c,
758         * device/lib/ds390/tinibios.c,
759         * device/lib/ds400/tinibios.c,
760         * device/lib/expf.c,
761         * device/lib/free.c,
762         * device/lib/hc08/_mulint.c,
763         * device/lib/logf.c,
764         * device/lib/malloc.c,
765         * device/lib/printf_fast.c,
766         * device/lib/printf_tiny.c,
767         * device/lib/printfl.c,
768         * device/lib/realloc.c,
769         * device/lib/ser_ir.c,
770         * device/lib/serial.c,
771         * support/regression/tests/libmullong.c: replaced all special keywords
772           with their double underscore equivalent
773         * support/regression/ports/mcs51-xstack-auto/spec.mk,
774         * device/lib/Makefile.in: compile libs with --std-c99 instead of
775           --std-sdcc99
776         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
777           (genRet): if the bit-symbol is ruonly it already is in the carry
778         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
779         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
780         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
781           type UCHAR if dest is not bit
782
783 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
784
785         * device/include/math.h,
786         * device/lib/cotf.c,
787         * device/lib/expf.c,
788         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
789
790 2007-04-01 Borut Razem <borut.razem AT siol.net>
791
792         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
793           fixed bug #1692042: input buffer overflow...scanner uses REJECT
794         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
795           gcc_unreachable() called internal_error()...
796
797 2007-03-30 Raphael Neider <rneider AT web.de>
798
799         * src/pic/ralloc.c (isData): suppress garbage debug output
800
801 2007-03-28 Borut Razem <borut.razem AT siol.net>
802
803         * doc/sdccman.lyx:
804           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
805           is developed, built and used worldwide, and the word "night" doesn't
806           make any sense.
807
808 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
809
810         * device/include/mcs51/C8051F360.h: new, added
811         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
812
813 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
814
815         * src/SDCC.y (declaration_specifiers, function_specifier),
816         * support/Util/SDCCerr.c,
817         * support/Util/SDCCerr.h,
818         * src/SDCCsymt.h,
819         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
820           inline keyword
821         * src/SDCCmem.c (deallocParms),
822         * src/SDCCast.c: support for function inlining, not quite complete
823         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
824           'restrict' qualifier
825
826 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
827
828         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
829           (saveRBank, unsaveRBank): don't save bits,
830           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
831         * support/regression/tests/bug1535242.c: new, added
832         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
833           thanks Alexey Shamrin <shamrin AT gmail.com>,
834           made assert.h header ANSI compliant (added a check for NDEBUG macro,
835           removed header guard)
836         * .version,
837         * sdcc.spec: bumped version to 2.6.5
838         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
839
840 2007-03-22 Borut Razem <borut.razem AT siol.net>
841
842         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
843           fixed bug #1653671: sdcdb integration into ddd is broken
844
845 2007-03-22 Raphael Neider <rneider AT web.de>
846
847         * src/pic/gen.c (popGetExternal): augmented to also create references
848           to external variables (not only labels),
849           (genCall): comment on plan to reduce PAGESEL overhead,
850           (genFunction, genEndFunction): also save/restore FSR around interrupt
851           handling code, removed lots of unused code
852           (genDivOneByte): release acquired temp register
853         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
854           of popGetExternal
855         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
856           for registers that need to be saved during interrupts (FSR, STATUS,
857           PCLATH; W needs special handling), currently only FSR is used
858
859 2007-03-22 Raphael Neider <rneider AT web.de>
860
861         * device/include/pic/pic14devices.txt: 16f688 has only one config word
862
863 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
864
865         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
866
867 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
868
869         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
870
871 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
872
873         * as/link/aslink.h: added LKOBJEXT
874         * as/link/hc08/link_hc08.dsp,
875         * as/link/hc08/Makefile.bcc,
876         * as/link/hc08/Makefile.in,
877         * as/link/mcs51/aslink.dsp,
878         * as/link/mcs51/Makefile.bcc,
879         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
880         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
881         * as/link/lkaomf51.c: merged and moved
882         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
883         * as/link/z80/lkdata.c,
884         * as/link/lkdata.c: merged and moved
885         * as/link/hc08/lkmain.c,
886         * as/link/mcs51/lkmain.c: cosmetic changes
887         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
888         * as/link/lklex.c: use LKOBJEXT
889         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
890           ANSI-fied functions, removed bubble-sorts
891         * as/link/z80/lksym.c           as/link/lksym.c: merged,
892           ANSI-fied functions
893         * as/link/z80/linkgbz80.dsp,
894         * as/link/z80/linkz80.dsp,
895         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
896           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
897         * as/link/z80/lkhead.c,
898         * as/link/z80/lklex.c: deleted
899         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
900         * as/link/z80/lkmain.c: added copyfile()
901
902 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
903
904         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
905
906 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
907
908         * device/lib/_strlen.c: assembler version for mcs51
909
910 2007-03-13 Raphael Neider <rneider AT web.de>
911
912         * device/include/pic16/pic18f2221.h,
913         * device/include/pic16/pic18f2321.h,
914         * device/include/pic16/pic18f2331.h,
915         * device/include/pic16/pic18f4221.h,
916         * device/include/pic16/pic18f4321.h,
917         * device/include/pic16/pic18f4331.h: fixed config byte location names
918         * support/scripts/inc2h-pic16.pl: removed debug output, emit
919           consistently named config byte locations
920
921 2007-03-13 Borut Razem <borut.razem AT siol.net>
922
923         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
924           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
925           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
926           as/link/z80/Makefile.in, as/z80/Makefile.in:
927           introduced LDFLAGS
928
929 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
930
931         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
932         * device/lib/printf_large.c: pointer was converted to generic
933         pointer for mcs51 models other than model-small (Maarten noticed)
934
935 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
936
937         * device/include/mcs51/ADuC84x.h: Added.
938
939 2007-03-10 Borut Razem <borut.razem AT siol.net>
940
941         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
942           fixed RFE #1624219: double backslashes in filenames;
943           functions hexEscape(), octalEscape() and copyStr() moved from
944           SDCCval.c to SDCCutil.c and made them glovbally available
945
946 2007-03-09 Borut Razem <borut.razem AT siol.net>
947
948         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
949           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
950           1673361: Missaligned comments in output files
951
952 2007-03-09 Raphael Neider <rneider AT web.de>
953
954         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
955
956 2007-03-09 Raphael Neider <rneider AT web.de>
957
958         * src/pic/gen.c,
959         * src/pic/glue.c,
960         * src/pic/ralloc.c: suppress undesired debug output
961         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
962
963 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
964
965         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
966
967 2007-03-07 Borut Razem <borut.razem AT siol.net>
968
969         * device/lib/pic16/libdev/pic18f[24][34]31.c:
970           search include files in the current directory
971
972 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
973
974         * src/SDCCglue.c (emitMaps, glue),
975         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
976           absolute xdata
977         * support/regression/tests/absolute.c: added xdata test
978
979 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
980
981         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
982           added condition to macro, fixes bug 1666080
983
984 2007-03-02 Raphael Neider <rneider AT web.de>
985
986         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
987
988 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
989
990         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
991         be cleared. Unconditionally set __XPAGE
992         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
993
994 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
995
996         * src/SDCCglobl.h,
997         * src/SDCCmain.c,
998         * src/mcs51/gen.c,
999         * src/mcs51/rtrack.c,
1000         * src/ds390/gen.c,
1001         * doc/sdccman.lyx: added --no-gen-comments
1002         * src/mcs51/peeph.def: added 192.b, disabled 185
1003
1004 2007-02-25 Raphael Neider <rneider AT web.de>
1005
1006         * src/pic16/gen.c (genCast): fixed typo
1007         * device/lib/pic16/Makefile.subdir: only install existing files
1008         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1009
1010 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1011
1012         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1013         * device/lib/mcs51/crtclear.asm,
1014         * device/lib/mcs51/crtxclear.asm: renumbered labels
1015         * device/lib/mcs51/Makefile.in: added crtcall.asm
1016         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1017         * src/mcs51/gen.c (movc): removed,
1018           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1019             acc.x or psw.x),
1020           (toCarry, genSend, genRet): added function toCarry,
1021           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1022           (assignBit, genAssign, genCast): added function assignBit
1023         * src/mcs51/Makefile.bcc: added rtrack.c
1024         * src/mcs51/ralloc.h: made valueKnown a bitfield
1025         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1026           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1027           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1028         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1029         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1030           (_pop): only pop valid pairs, see gencjneshort,
1031           (gencjneshort): return pair that still needs to be popped, restructured,
1032           (gencjne, genCmpEq): call _pop
1033
1034 2007-02-23 Raphael Neider <rneider AT web.de>
1035
1036         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1037
1038 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1039
1040         * device/include/mcs51/P89LPC925.h: Added.
1041
1042 2007-02-18 Raphael Neider <rneider AT web.de>
1043
1044         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1045
1046 2007-02-17 Borut Razem <borut.razem AT siol.net>
1047
1048         * support/cpp2/directives.c, support/cpp2/version.c:
1049           synchronized with GCC CPP 4.1.2
1050
1051 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1052
1053         * src/mcs51/rtrack.h,
1054         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1055           by checking the strings passed by emitcode() to the assembler.
1056           Feel free to change. This in part addresses RFE #482179.
1057           Set environment variable SDCC_RTRACK to enable.
1058         * src/mcs51/gen.c: inserted hooks
1059         * src/mcs51/ralloc.h: added two members to struct regs
1060         * support/regression/tests/regtrack.c: added
1061
1062 2007-02-14 Borut Razem <borut.razem AT siol.net>
1063
1064         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1065         * Makefile.in: applied patch from Makefile related part of
1066           #1469393: Compiler does not initialize static data
1067
1068 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1069
1070         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1071           for better fix of bug 1273984, compiles pic16 rand.c
1072
1073 2007-02-12 Borut Razem <borut.razem AT siol.net>
1074
1075         * src/pic16/main.c: fixed pic16 standard library directory bug
1076
1077 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1078
1079         * src/hc08/gen.c (genSwap): fix swap regression test
1080
1081 2007-02-10 Borut Razem <borut.razem AT siol.net>
1082
1083         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1084           with same scope
1085         * support/regression/tests/bug-1654060.c: added regression test for
1086           #1654060
1087
1088 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1089
1090         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1091         bit moves in return statement
1092
1093 2007-02-09 Borut Razem <borut.razem AT siol.net>
1094
1095         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1096           syntax error
1097
1098 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1099
1100         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1101         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1102
1103 2007-02-07 Raphael Neider <rneider AT web.de>
1104
1105         * src/pic16/devices.inc,
1106         * device/include/pic16/pic18fregs.h,
1107         * device/include/pic16/pic18f[24][34]31.h,
1108         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1109         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1110         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1111
1112 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1113
1114         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1115           can this have lived here for so many years?
1116         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1117           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1118         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1119
1120 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1121
1122         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1123         appended by loop induction must be at the very end of the eBBlock
1124
1125 2007-02-05 Kevin Vigor
1126
1127         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1128
1129 2007-02-05 Borut Razem <borut.razem AT siol.net>
1130
1131         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1132           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1133
1134 2007-02-03 Borut Razem <borut.razem AT siol.net>
1135
1136         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1137           applied patch #1646602 option to set default signedness of char to
1138           unsigned, added -funsigned-char command line option,
1139           thanks to Gunther Jehle
1140         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1141           prompt for file deletion a few hundred times (especially the
1142           subversion files, which have ro permissions so it asks for
1143           confirmation), thanks to Simon McAuliffe;
1144           added {} + option to find in order to remove multiple files from a
1145           single rm commad
1146
1147 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1148
1149         * device/include/mcs51/SST89x5xRDx.h: Added.
1150
1151 2007-02-02 Raphael Neider <rneider AT web.de>
1152
1153         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1154         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1155
1156 2007-02-01 Raphael Neider <rneider AT web.de>
1157
1158         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1159           config words again
1160
1161 2007-01-31 Borut Razem <borut.razem AT siol.net>
1162
1163         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1164           if compiled with GCC. Thanks to Raphael Neider
1165
1166 2007-01-31 Raphael Neider <rneider AT web.de>
1167
1168         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1169             operand names, handles name and (name + n) for all n,
1170           (sameBank): restructured, also check bank allocation policy,
1171         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1172           (pic14_operandsAllocatedInSameBank): check whether to operands
1173             will be allocated into the same bank (i.e., section) to reduce
1174             BANKSEL overhead, queried from pcode.c:sameBank,
1175           (pic14printLocals): reintroduced clustering registers into a single
1176             section: all compiler generated symbols will now reside in one
1177             bank (per file), reducing BANKSEL overhead and code size,
1178           (showAllMemmaps): use local dbuf where possible
1179
1180 2007-01-29 Raphael Neider <rneider AT web.de>
1181
1182         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1183           (call_libraryfunc): retrieve/create symbol and mark as used,
1184           (genFunction): mark defined functions as non-extern and add again
1185            to code memmap for later output
1186         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1187           (pic14printLocals): reworked for new symbol emission,
1188           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1189           showAllMemmaps): reworked symbol output using dbufs, added handling
1190             of string literals (still incomplete),
1191           (picglue): removed symbol emission, moved into showAllMemmaps,
1192           (emitSymbolSet): new workhorse for symbol output,
1193           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1194
1195 2007-01-29 Borut Razem <borut.razem AT siol.net>
1196
1197         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1198           component contains the extension separator.
1199
1200 2007-01-28 Borut Razem <borut.razem AT siol.net>
1201
1202         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1203           on WIN32
1204         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1205           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1206           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1207           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1208           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1209           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1210           src/z80/gen.c, support/Util/MySystem.c:
1211           accept slash and backslash as directory separator on WIN32 and
1212           Cygwin ports
1213
1214 2007-01-28 Raphael Neider <rneider AT web.de>
1215
1216         * src/pic16/devices.inc,
1217         * device/include/pic16/pic18f[24][23]21.h,
1218         * device/include/pic16/pic18fregs.h,
1219         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1220         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1221         * device/lib/pic16/libio/adc.ignore,
1222         * device/lib/pic16/libio/i2c.ignore,
1223         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1224           family, as gputils do not yet support the devices
1225         * device/lib/pic16/Makefile.subdir: ignore errors on install
1226         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1227           headers and libraries from gputils .inc files
1228
1229 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1230
1231         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1232
1233 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1234
1235         * doc/sdccman.lyx: add printf benchmarks
1236
1237 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1238
1239         * device/lib/printf_fast.c: fix %c, char promoted to int
1240         * device/lib/printf_tiny.c: fix %c, char promoted to int
1241
1242 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1243
1244         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1245
1246 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1247
1248         * support/regression/tests/swap.c: 64 bit hosts failed
1249         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1250
1251 2007-01-25 Raphael Neider <rneider AT web.de>
1252
1253         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1254           based on absolute register address, patch by Alex Blond
1255
1256 2007-01-22 Raphael Neider <rneider AT web.de>
1257
1258         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1259           emitted, do not emit them again...
1260
1261 2007-01-22 Raphael Neider <rneider AT web.de>
1262
1263         * src/regression/bank1.c, src/regression/compare6.c,
1264           src/regression/add.c: cosmetic changes
1265         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1266         * src/pic/gen.c: fixed global zero and one,
1267           (aopForSym): removed unued code,
1268           (aopGet): assert aop is defined, check and use `index' of
1269             pCodeImmd operands (fixes #1630908),
1270         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1271           (register_reassign): prevent accidental register unification,
1272           (ReuseReg): cosmetic changes (also above)
1273         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1274           pic14emitStaticSeg): do not emit initialized data,
1275           (printIval*): replaced with working versions,
1276           (pic14createInterruptVect,picglue): use idata for initialized data,
1277             now init data should work in all modules (not only main()),
1278         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1279
1280 2007-01-21 Borut Razem <borut.razem AT siol.net>
1281
1282         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1283           use -fPIC or -fpic if they are supported and not ignored
1284         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1285         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1286
1287 2007-01-20 Borut Razem <borut.razem AT siol.net>
1288
1289         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1290           implemented RFE #1470316: allow "$" in variable names
1291
1292 2007-01-20 Raphael Neider <rneider AT web.de>
1293
1294         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1295
1296 2007-01-20 Raphael Neider <rneider AT web.de>
1297
1298         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1299         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1300         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1301         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1302           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1303         * device/lib/pic/libdev/pic*.c,
1304         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1305         * device/lib/pic/libdev/Makefile.in: show progress
1306
1307 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1308
1309         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1310         * support/scripts/sdcc_cygwin_mingw32,
1311         * support/scripts/sdcc_mingw32,
1312         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1313         conformance with autoconf 2.6
1314
1315 2007-01-19 Raphael Neider <rneider AT web.de>
1316
1317         * src/pic/device.c (register_map): fixed list construction
1318         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1319           (genMod): removed case for genModbits,
1320           (genModbits): removed as now unused/unimplemented
1321         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1322
1323 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1324
1325         * support/regression/tests/swap.c: added in response to #1638622
1326         * doc/sdccman.lyx: synced version, minor changes
1327
1328 2007-01-18 Borut Razem <borut.razem AT siol.net>
1329
1330         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1331           thanks to Gunther Jehle
1332         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1333         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1334           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1335           use filename in lineno instead.
1336         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1337           print the file name in ast_print()
1338
1339 2007-01-18 Borut Razem <borut.razem AT siol.net>
1340
1341         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1342           defined in MSVC
1343         * src/SDCC.lex: stringLiteral() returns const char pointer,
1344           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1345           fixed column counting
1346         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1347           accept const char pointer as parameter
1348         * src/SDCCdwarf2.c: corrected buffer size
1349
1350 2007-01-17 Borut Razem <borut.razem AT siol.net>
1351
1352         * support/Util/dbuf_string.c: fixed for amd64
1353
1354 2007-01-15 Borut Razem <borut.razem AT siol.net>
1355
1356         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1357           removed terminal symbol ELIPSIS, since it was never generated by the
1358           lexer and it was wrongly used in parameter_identifier_list rule
1359
1360 2007-01-15 Raphael Neider <rneider AT web.de>
1361
1362         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1363             code page and data banking description
1364         * src/pic/genarith.c,
1365         * src/pic/gen.h: removed bit arithmetic functions,
1366             updated exit(1) to exit(EXIT_FAILURE)
1367         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1368         * device/include/pic16/pic18f2455.h,
1369         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1370             TRISD and TRISE, fixed/added some bit names
1371         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1372         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1373             updated pic18f2455.{c,h} instead of duplicating them
1374
1375 2007-01-14 Borut Razem <borut.razem AT siol.net>
1376
1377         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1378           Cannot debug files that contain spaces in the path name
1379           by converting spaces in asm file name to underscores
1380
1381 2007-01-13 Borut Razem <borut.razem AT siol.net>
1382
1383         * doc/sdccman.lyx: fixed format errors
1384
1385 2007-01-10 Borut Razem <borut.razem AT siol.net>
1386
1387         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1388           codeseg/constseg #pragma fail
1389         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1390         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1391           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1392           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1393
1394 2007-01-09 Borut Razem <borut.razem AT siol.net>
1395
1396         * get rid of diagnistic.[ch], pretty-print.[ch],
1397           c-pretty-print.[ch], ... used just for error, warning, ...
1398           message formatting
1399         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1400           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1401           suppoprt/cpp2/pretty-print.[ch]:
1402           removed
1403         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1404           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1405           suppoprt/cpp2/sdcpp.dsp:
1406           changed
1407
1408 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1409
1410         * device/lib/printf_large.c (output_float): removed recursion,
1411           use smaller buffer on stack for mcs51,
1412           fixed bug printing 1.96
1413         * support/regression/tests/snprintf.c: added test
1414
1415 2007-01-07 Borut Razem <borut.razem AT siol.net>
1416
1417         * use dynamic memory buffers instead temporary files
1418         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1419           added
1420         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1421           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1422           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1423           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1424           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1425           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1426           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1427           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1428           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1429           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1430           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1431           support/Util/dbuf.c, support/Util/dbuf.h:
1432           modified
1433         * .version, sdcc.spec: bumped version to 2.6.4
1434
1435 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1436
1437         * src/port.h: added TARGET_Z80_LIKE macro
1438         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1439           output PSEG location if --xram-loc or --xstack-loc was used
1440         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1441
1442 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1443
1444         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1445         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1446         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1447         * sdcc.dsw: moved project files into subdir
1448         * as/hc08/as_hc08.dsp,
1449         * as/hc08/Makefile.bcc,
1450         * as/hc08/Makefile.in,
1451         * as/mcs51/Makefile.bcc,
1452         * as/mcs51/Makefile.in,
1453         * as/z80/Makefile.bcc,
1454         * as/z80/Makefile.in,
1455         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1456         * as/hc08/asm.h,
1457         * as/mcs51/asm.h,
1458         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1459         * as/hc08/asmain.c,
1460         * as/hc08/assym.c,
1461         * as/mcs51/asmain.c,
1462         * as/mcs51/assym.c,
1463         * as/z80/assym.c: removed include "strcmpi.h"
1464         * as/hc08/strcmpi.c,
1465         * as/hc08/strcmpi.h,
1466         * as/mcs51/strcmpi.c,
1467         * as/mcs51/strcmpi.h,
1468         * support/Util/strcmpi.c,
1469         * support/Util/strcmpi.h: removed files
1470         * as/strcmpi.c: added as_strncmpi()
1471
1472 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1473
1474         * sdcc.dsw: Added some dependencies on project config.dsp
1475
1476 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1477
1478         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1479           with [di]ram_start to fix a regresion
1480
1481 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1482
1483         * configure.in: added missing mcs51 in status output
1484         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1485         directory
1486         * debugger/mcs51/clean.mk (distclean): remove config.h
1487         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1488         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1489         options.h, s-options-h and options.c
1490         * support/cpp2/clean.mk: unused, removed
1491         * Makefile.common.in,
1492         * main_in.mk,
1493         * as/Makefile.in,
1494         * as/hc08/Makefile.in,
1495         * as/hc08/clean.mk,
1496         * as/mcs51/Makefile.in,
1497         * as/mcs51/clean.mk,
1498         * as/z80/clean.mk,
1499         * as/z80/conf.mk,
1500         * as/z80/Makefile.in,
1501         * as/z80/clean.mk,
1502         * as/link/Makefile.in,
1503         * as/link/hc08/Makefile.in,
1504         * as/link/hc08/clean.mk,
1505         * as/link/mcs51/Makefile.in,
1506         * as/link/mcs51/clean.mk,
1507         * as/link/z80/Makefile.in,
1508         * as/link/z80/clean.mk,
1509         * as/link/z80/conf.mk,
1510         * debugger/mcs51/Makefile.in,
1511         * debugger/mcs51/clean.mk,
1512         * device/include/Makefile.in,
1513         * device/lib/Makefile.in,
1514         * device/lib/mcs51/Makefile.in,
1515         * device/lib/pic/Makefile.in,
1516         * device/lib/pic/Makefile.common.in,
1517         * device/lib/pic/Makefile.subdir,
1518         * device/lib/pic/Makefile.rules,
1519         * device/lib/pic16/libio/Makefile.in,
1520         * device/lib/pic16/Makefile.subdir,
1521         * device/lib/pic16/libdev/Makefile.in,
1522         * device/lib/pic16/Makefile.rules,
1523         * device/lib/pic16/Makefile.common.in,
1524         * sim/ucsim/avr.src/Makefile.in,
1525         * sim/ucsim/main_in.mk,
1526         * sim/ucsim/cmd.src/Makefile.in,
1527         * sim/ucsim/doc/Makefile.in,
1528         * sim/ucsim/gui.src/Makefile.in,
1529         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1530         * sim/ucsim/gui.src/serio.src/Makefile.in,
1531         * sim/ucsim/hc08.src/Makefile.in,
1532         * sim/ucsim/libltdl/Makefile.in,
1533         * sim/ucsim/s51.src/Makefile.in,
1534         * sim/ucsim/sim.src/Makefile.in,
1535         * sim/ucsim/sim.src/conf.mk,
1536         * sim/ucsim/xa.src/Makefile.in,
1537         * sim/ucsim/z80.src/Makefile.in,
1538         * src/Makefile.in,
1539         * src/clean.mk,
1540         * src/port.mk,
1541         * support/cpp2/Makefile.in,
1542         * support/librarian/Makefile.in,
1543         * support/librarian/clean.mk,
1544         * support/makebin/Makefile.in,
1545         * support/makebin/clean.mk,
1546         * support/packihx/Makefile.in,
1547         * support/regression/Makefile.in,
1548         * support/regression/ports/ds390/spec.mk,
1549         * support/regression/ports/gbz80/spec.mk,
1550         * support/regression/ports/hc08/spec.mk,
1551         * support/regression/ports/mcs51/spec.mk,
1552         * support/regression/ports/mcs51-large/spec.mk,
1553         * support/regression/ports/mcs51-medium/spec.mk,
1554         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1555         * support/regression/ports/pic14/spec.mk,
1556         * support/regression/ports/pic16/spec.mk,
1557         * support/regression/ports/mcs51-stack-auto/spec.mk,
1558         * support/regression/ports/ucz80/spec.mk,
1559         * support/regression/ports/xa51/spec.mk,
1560         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1561         adding a slash after $(top_builddir) and/or adding @datarootdir@
1562         * configure.in,
1563         * debugger/mcs51/configure.in,
1564         * device/lib/pic/configure.in,
1565         * device/lib/pic16/configure.in,
1566         * sim/ucsim/configure.in,
1567         * support/cpp2/configure.in,
1568         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1569         * configure,
1570         * debugger/mcs51/configure,
1571         * device/lib/pic/configure,
1572         * device/lib/pic16/configure,
1573         * sim/ucsim/configure,
1574         * support/cpp2/configure,
1575         * support/packihx/configure: generated with autoconf 2.60
1576
1577 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1578
1579         * as/link/hc08/lkihx.c (newArea),
1580         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1581
1582 2007-01-02 Borut Razem <borut.razem AT siol.net>
1583
1584         * doc/sdccman.lyx: documented #pragma sdcc_hash
1585         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1586           initialized to 0
1587         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1588
1589 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1590
1591         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1592         empty 'while'-loop to work correctly, see regression test 'while.c'
1593         * support/regression/tests/while.c: added
1594
1595 2007-01-01 Borut Razem <borut.razem AT siol.net>
1596
1597         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1598           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1599           support/cpp2/libcpp/sdcpp.c:
1600           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1601         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1602         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1603
1604 2006-12-31 Borut Razem <borut.razem AT siol.net>
1605
1606         * SDCPP synchronized with GCC CPP release version 4.1.1,
1607           currently the latest release:
1608         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1609           support/cpp2/libcpp/include/cpp-id-data.h
1610           support/cpp2/libiberty/fopen_unlocked.c
1611           support/cpp2/libiberty/md5.c
1612           support/cpp2/md5.h
1613           support/cpp2/opt-functions.awk
1614           support/cpp2/opt-gather.awk
1615           support/cpp2/optc-gen.awk
1616           support/cpp2/opth-gen.awk:
1617           added
1618         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1619           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1620           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1621           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1622           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1623           support/cpp2/diagnostic.h, support/cpp2/except.h,
1624           support/cpp2/hwint.h, support/cpp2/input.h,
1625           support/cpp2/intl.h, support/cpp2/move-if-change,
1626           support/cpp2/opts.c, support/cpp2/opts.h,
1627           support/cpp2/output.h, support/cpp2/prefix.c,
1628           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1629           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1630           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1631           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1632           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1633           support/cpp2/version.c:
1634           modified
1635         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1636           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1637           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1638           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1639           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1640           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1641           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1642           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1643           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1644           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1645           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1646           moved
1647         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1648           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1649           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1650           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1651           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1652           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1653           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1654           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1655           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1656           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1657           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1658           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1659           support/cpp2/system.h:
1660           deleted / moved
1661
1662 2006-12-31 Borut Razem <borut.razem AT siol.net>
1663
1664         * configure.in, configure: fixed bug #1538756: configure dies if bison
1665           and flex are not installed, 2nd try
1666
1667 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1668
1669         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1670         400.x for better code in RFE 899102
1671
1672 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1673
1674         * src/SDCCpeeph.c (deadMove),
1675         * src/port.h,
1676         * src/mcs51/peep.h: renamed 'op' by 'reg'
1677         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1678         (scan4op): small change for removeDeadMove(), added support for
1679         'callee saves' and/or PACLL function calls,
1680         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1681         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1682         left in new dispatcher mcs51DeadMove()
1683         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1684         removeDeadMove()
1685         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1686
1687 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1688
1689         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1690           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1691
1692 2006-12-30 Borut Razem <borut.razem AT siol.net>
1693
1694         * support/cpp2/spacs.h: deleted from svn
1695         * configure.in, configure: fixed bug #1538756: configure dies if bison
1696           and flex are not installed
1697
1698 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1699
1700         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1701           with this z80 passes printf float test when enabled
1702         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1703
1704 2006-12-28 Borut Razem <borut.razem AT siol.net>
1705
1706         * support/cpp2/config.in, support/cpp2/configure.in,
1707           support/cpp2/configure, support/cpp2/Makefile.in:
1708           fix for the solaris build
1709
1710 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1711
1712         * src/SDCC.y (type_specifier2, pointer),
1713         * src/SDCCsymt.h,
1714         * src/SDCCsymt.c (mergeSpec, checkSClass),
1715         * support/Util/SDCCerr.c,
1716         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1717         * support/valdiag/valdiag.py: Allow test cases to specify
1718           required language standard
1719         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1720         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1721
1722 2006-12-27 Borut Razem <borut.razem AT siol.net>
1723
1724         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1725         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1726           mbchar removed
1727         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1728           fixed for borland C
1729         * support/cpp2/libiberty/Makefile.bcc: updated
1730         * src/pic16/main.c: fixed #pragma udata handling
1731         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1732
1733 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1734
1735         * src/SDCCpeeph.c: made labelHashEntry global,
1736         made pcDistance, FBYNAME static,
1737         (pcDistance): made static, use isComment and isLabel,
1738         (deadMove): added,
1739         (getLabelRef): added, extracted from labelRefCount(),
1740         (labelRefCount): use new getLabelRef(),
1741         (callFuncByName): made static, added deadMove,
1742         use isComment and isLabel,
1743         (newPeepRule): made static, set isLabel,
1744         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1745         labels from peephole rules,
1746         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1747         when isComment or isLabel is set
1748         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1749         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1750         to make them global
1751         * src/mcs51/peep.h: added
1752         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1753         * src/port.h: added peep->deadMove to port structure
1754         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1755         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1756         deadMove, finally removed no. 1 and 2
1757         * src/mcs51/gen.c,
1758         * src/pic/gen.c,
1759         * src/z80/gen.c,
1760         * src/z80/ralloc.c,
1761         * src/pic16/gen.c,
1762         * src/ds390/gen.c,
1763         * src/hc08/gen.c: mark lines with isComment or isLabel
1764         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1765         * .version,
1766         * sdcc.spec: bumped version to 2.6.3
1767
1768 2006-12-26 Borut Razem <borut.razem AT siol.net>
1769
1770         * support/cpp2/Makefile.in: added dependency on options.h
1771         * configure: regenerated
1772         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1773         * support/cpp2/Makefile.in: added vasprintf.c
1774
1775 2006-12-25 Borut Razem <borut.razem AT siol.net>
1776
1777         * SDCPP synchronized with GCC CPP release version 3.4.6,
1778           the latest release before 4.x:
1779         * support/cpp2/Makefile.in, support/cpp2/config.h,
1780           support/cpp2/configure, support/cpp2/configure.in,
1781           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1782           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1783           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1784           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1785           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1786           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1787           support/cpp2/cpptrad.c, support/cpp2/except.h,
1788           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1789           support/cpp2/hwint.h, support/cpp2/intl.h,
1790           support/cpp2/line-map.c, support/cpp2/line-map.h,
1791           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1792           support/cpp2/output.h, support/cpp2/prefix.c,
1793           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1794           support/cpp2/system.h, support/cpp2/version.c:
1795           modified
1796         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1797           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1798           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1799           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1800           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1801           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1802           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1803           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1804           support/cpp2/move-if-change, support/cpp2/opts.c,
1805           support/cpp2/opts.h, support/cpp2/opts.sh,
1806           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1807           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1808           support/cpp2/win32, support/cpp2/win32/dirent.c,
1809           support/cpp2/win32/dirent.h:
1810           added
1811         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1812         * support/cpp2/sdcpp.h: renamed from sdcc.h
1813         * sdcppinit.c: deleted
1814
1815 2006-12-23 Borut Razem <borut.razem AT siol.net>
1816
1817         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1818           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1819           preproc.c: an other try to fix bug #982435: introduced
1820           -pedantic-parse-number command line option and pedantic_parse_number
1821           pragma
1822
1823 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1824
1825         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1826            BSEG handling,
1827           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1828            corrected overlayed areax addresses, warn about memory overlaps
1829         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1830         * src/avr/main.c,
1831         * src/ds390/main.c,
1832         * src/hc08/main.c,
1833         * src/mcs51/main.c,
1834         * src/pic16/main.c,
1835         * src/pic/main.c,
1836         * src/xa51/main.c,
1837         * src/z80/main.c,
1838         * src/port.h: added xabs_name and iabs_name
1839         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1840           (glue, emitMaps): create and emit maps d_abs and i_abs
1841         * src/SDCCglue.h: cosmetic changes
1842         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1843         * src/SDCCmem.h,
1844         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1845           (allocDefault): put absolute, initialized globals in them
1846         * support/regression/tests/absolute.c: added absolute bdata test
1847         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1848
1849 2006-12-20 Borut Razem <borut.razem AT siol.net>
1850
1851         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1852         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1853           added regression test for bug #982435
1854
1855 2006-12-18 Borut Razem <borut.razem AT siol.net>
1856
1857         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1858         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1859           small cosmetic changes
1860         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1861         * support/regression/tests/bug-1351710.c: added regression test
1862
1863 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1864
1865         * doc/sdccman.lyx: added the long missed iCode table
1866           "<where is figure II?>", added links to wiki
1867
1868 2006-12-17 Borut Razem <borut.razem AT siol.net>
1869
1870         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1871           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1872           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1873           unified table driven pragma handling, pragma argument type checking
1874         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1875           current one - version 1.1.3
1876         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1877
1878 2006-12-13 Raphael Neider <rneider AT web.de>
1879
1880         * src/pic/device.h: removed AssignedMemory structure and macros
1881         * src/pic/device.c: removed global finalMapping (linker assigns
1882             memory locations),
1883           (register_map): add SFRs to remembered memRanges
1884           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1885           assignFixedRegisters,assignRelocatableRegisters): removed,
1886           (setMaxRAM,validAddress): adapted accordingly,
1887           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1888             reasonably sized sharebanks,
1889         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1890           (allDefsOutOfRange): removed unused code,
1891         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1892             handling
1893         * src/pic/pcode.c (register_reassign): removed recursion warning,
1894             fired far too often,
1895         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1896             to use existing pic14_stringInSet() to avoid duplicate symbols,
1897             tidied up the code a bit,
1898           (pic14printLocals): added in symmetry to printExterns, replaces
1899             writeUsedRegs more or less,
1900           (picglue): call new pic14_printLocals(),
1901         * device/include/pic/pic*.h: removed #pragma memmap directives,
1902             information gathered from include/pic/pic14devices.txt
1903         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1904
1905 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1906
1907         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1908
1909 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1910
1911         * device/include/mcs51/cc2430.h: fixed missing ';'
1912
1913 2006-12-10 Raphael Neider <rneider AT web.de>
1914
1915         * device/lib/pic16/libc/stdio/vfprintf.c,
1916         * device/lib/pic16/libc/stdio/printf_small.c,
1917         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1918           char arguments, as char varargs are cast to int by the caller,
1919           hopefully fixes #1604915 (other device libraries are still affected)
1920
1921 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1922
1923         * src/mcs51/ralloc.c (packRegsForAssign),
1924         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1925
1926 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1927
1928         * device/include/malloc.h: removed init_dynamic_memory
1929         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1930           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1931         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1932         * device/lib/libsdcc.lib,
1933         * device/lib/Makefile.in,
1934         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1935         * doc/sdccman.lyx: documented use of new _heap.c
1936         * support/regression/tests/malloc.c: removed init_dynamic_memory
1937         * src/cdbFile.c(spacesToUnderscores): new function,
1938           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1939           1068030
1940         * device/include/tinibios.h: removed defines for putchar and getchar
1941         * device/lib/ds390/Makefile.in: added putchar.c
1942         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1943
1944 2006-12-09 Borut Razem <borut.razem AT siol.net>
1945
1946         * support/cpp2/sdcc.h: prevent multiple inclusion
1947         * support/cpp2/options.h: deleted
1948
1949 2006-12-08 Borut Razem <borut.razem AT siol.net>
1950
1951         * support/cpp2/sdcc.h: removed x*alloc() macros
1952         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1953         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1954           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1955         * support/cpp2/system.h: moved #include "sdcc.h"
1956         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1957           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1958           added
1959         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1960           -funsigned-char options
1961         * support/cpp2/sdcppmain.c: fixed bug 1611411
1962
1963 2006-12-07 Borut Razem <borut.razem AT siol.net>
1964
1965         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1966           directive
1967
1968 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1969
1970         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1971         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1972         * doc/sdccman.lyx,
1973         * .version: bumped to 2.6.2 because a) it's been a while
1974           b) the linker sources have moved c) the preprocessor is upgraded
1975
1976 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1977
1978         * support/regression/tests/snprintf.c: some checks
1979         * lib/src/printf_large.c: %bc: read char instead of int from stack
1980
1981 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1982
1983         * device/include/mcs51/cc2430.h: inserted _XPAGE
1984
1985 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1986
1987         * device/include/mcs51/cc2430.h: added
1988
1989 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1990
1991         * device/include/asm/default/features.h,
1992         * device/include/asm/ds390/features.h,
1993         * device/include/mcs51/at89s53.h,
1994         * device/include/ser.h,
1995         * device/include/ser_ir.h,
1996         * device/include/serial.h: changed keywords to double underscore variants,
1997           fixes bug 1590261 some more, thanks Steven Borley
1998
1999 2006-12-01 Raphael Neider <rneider AT web.de>
2000
2001         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2002           but emit warning (recursion is not supported for pic14)
2003
2004 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2005
2006         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2007         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2008
2009 2006-11-30 Raphael Neider <rneider AT web.de>
2010
2011         * src/pic/device.c (dump_sfr): always emit symbols
2012         * src/pic/glue.c (pic14printPublics): fixed typo
2013
2014 2006-11-30 Raphael Neider <rneider AT web.de>
2015
2016         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2017           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2018           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2019            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2020            a sharebank, use a non-shared bank for the stack if none available
2021         * src/pic/device.h (struct memRange): added linked list next field,
2022           added prototypes for above functions
2023         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2024           (typeRegWithIdx): accept fixed and unfixed stack registers
2025         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2026           the stack, handle shared and banked stack (except for WSAVE),
2027           (insertBankSel): removed useless optimization (will never fire),
2028           (FixRegisterBanking): added optimization for devices with only one
2029           possibly aliased bank of memory, like 16f84
2030         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2031           devices have no SHAREBANK in the linker script
2032         * device/include/pic/pic14devices.txt: documented memmap
2033         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2034
2035 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2036
2037         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2038           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2039           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2040           genhc08Code): switched most of the D (debug) macros to DD (detailed
2041           debug) macros to better control clutter in the generated .asm file.
2042         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2043           genRightShift): fixed bug with non-constant bit shift stored to
2044           a volatile result (SF Open Discussion forum thread #1616749).
2045           Single byte case is not yet optimized.
2046
2047 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2048
2049         * device/include/asm/mcs51/features.h,
2050         * device/include/malloc.h,
2051         * device/include/stdio.h: changed keywords to double underscore variants,
2052           fixes bug 1590261
2053
2054 2006-11-27 Borut Razem <borut.razem AT siol.net>
2055
2056         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2057           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2058           support/cpp2/output.h, support/cpp2/cppinit.c,
2059           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2060           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2061           support/cpp2/cppdefault.c, support/cpp2/system.h,
2062           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2063           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2064           support/cpp2/prefix.c, support/cpp2/except.h,
2065           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2066           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2067           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2068           support/cpp2/version.c, support/cpp2/cppmain.c,
2069           support/cpp2/version.h, support/cpp2/hashtable.c,
2070           support/cpp2/cpperror.c:
2071           synchronized with GCC CPP release version 3.3.6,
2072           the latest where cppmain.c still exists.
2073         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2074           support/cpp2/sdcppinit.c: added
2075
2076 2006-11-27 Borut Razem <borut.razem AT siol.net>
2077
2078         * support/cpp2/cpplex.c:
2079           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2080           synchronization
2081         * support/cpp2/cpplib.c: removed definitions of unused variables
2082
2083 2006-11-26 Borut Razem <borut.razem AT siol.net>
2084
2085         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2086           since they are redefined by macros in support/cpp2/sdcc.h
2087         * support/cpp2/sdcc.h: x*alloc macro redefinition
2088
2089 2006-11-25 Borut Razem <borut.razem AT siol.net>
2090
2091         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2092           support/cpp2/configure, support/cpp2/Makefile.in,
2093           support/cpp2/cppfiles.c, support/cpp2/output.h,
2094           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2095           support/cpp2/config.h, support/cpp2/cpplib.h,
2096           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2097           support/cpp2/cppdefault.c, support/cpp2/config.in,
2098           support/cpp2/system.h, support/cpp2/cpplex.c,
2099           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2100           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2101           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2102           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2103           support/cpp2/configure.in, support/cpp2/intl.h,
2104           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2105           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2106           support/cpp2/version.c, support/cpp2/cppmain.c,
2107           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2108           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2109           support/cpp2/cpperror.c,
2110           support/cpp2/libiberty/safe-ctype.c,
2111           support/cpp2/libiberty/safe-ctype.h,
2112           support/cpp2/libiberty/splay-tree.c,
2113           support/cpp2/libiberty/obstack.c,
2114           support/cpp2/libiberty/lbasename.c,
2115           support/cpp2/libiberty/splay-tree.h,
2116           support/cpp2/libiberty/obstack.h:
2117           synchronized with GCC CPP release version 3.2.3,
2118           the latest before integration of cpp into gcc
2119         * support/cpp2/except.h, support/cpp2/line-map.c,
2120           support/cpp2/line-map.h,
2121           support/cpp2/libiberty/hex.c,
2122           support/cpp2/libiberty/concat.c,
2123           support/cpp2/libiberty/filenames.h: added
2124         * support/cpp2/intl.c: deleted
2125
2126 2006-11-24 Borut Razem <borut.razem AT siol.net>
2127
2128         * src/SDCC.y: enabled compilation of empty source file
2129         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2130           "ISO C forbids an empty source file"
2131         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2132           if all the code is ifdefed out.
2133
2134 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2135
2136         * src/hc08/gen.c (genPcall): fix for bug #1601032
2137
2138 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2139
2140         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2141         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2142         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2143         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2144         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2145         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2146         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2147         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2148         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2149         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2150         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2151         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2152         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2153         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2154         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2155           Renamed to all upper case as per the standard set by SiLabs
2156
2157 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2158
2159         * device/include/mcs51/C8051F520.h: new, added
2160         * device/include/mcs51/compiler.h: added link about predefined macros
2161
2162 2006-11-23 Raphael Neider <rneider AT web.de>
2163
2164         * src/regression/Makefile: add -L path to fresh library
2165         * src/regression/simulate: emphasize FAILED output
2166         * src/regression/create_stc: output _failures from gpsim
2167         * src/regression/compare4.c,
2168         * src/regression/rotate6.c: fixed char literals,
2169           all compile, all run =8-D
2170
2171         * src/pic/pcode.h: added isPCASMDIR macro
2172         * src/pic/gen.c (genAnd): fixed bit offset
2173         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2174           packBits): unified register numbering schemes,
2175           (newReg): do not insert stack registers into hash table,
2176           (initStack): unpinned pseudo stack, simplified,
2177           (typeRegWithIdx): fixed retrieval of stack registers,
2178         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2179           (pCodeReplace): removed invalid assertion,
2180           (insertPCodeInstruction): fixed newly added labels,
2181           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2182           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2183           DumpFlow): removed unsed (broken?) code,
2184           (insertBankSel): prevent STATUS from being BANKSELed,
2185           (FixRegisterBanking): rewritten from scratch, implemented generic
2186             optimizations (suppress BANKSELs to same register and to registers
2187             present in all banks),
2188           (AnalyzeBanking): update flow after BANKSELection
2189
2190         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2191             sharebank, let linker place it, mark STKxx symbols as emitted
2192
2193 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2194
2195         * src/regression/arrays.c,
2196         * src/regression/bank1.c,
2197         * src/regression/bool2.c,
2198         * src/regression/compare7.c,
2199         * src/regression/compare8.c,
2200         * src/regression/compare9.c,
2201         * src/regression/compare10.c,
2202         * src/regression/configword.c,
2203         * src/regression/for.c,
2204         * src/regression/mult1.c,
2205         * src/regression/pointer1.c,
2206         * src/regression/rotate6.c,
2207         * src/regression/string1.c,
2208         * src/regression/struct1.c,
2209         * src/regression/Makefile: make PIC14 regression tests run again
2210           (3 fail, 6 won't compile)
2211
2212 2006-11-21 Raphael Neider <rneider AT web.de>
2213
2214         * device/include/pic16/pic18f4550.h,
2215         * device/include/pic16/pic18f4455.h,
2216         * device/lib/pic16/libdev/pic18f4550.c,
2217         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2218         * configure.in: removed superfluous closing bracket
2219
2220 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2221
2222         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2223           always positive.
2224
2225 2006-11-21 Raphael Neider <rneider AT web.de>
2226
2227         * src/pic/device.{c,h}: added pic14_getPIC()
2228         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2229           (genAnd): added PIC code for one case, fixes #1597044
2230         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2231           SFRs that are present in all banks (e.g., STATUS)
2232
2233 2006-11-20 Raphael Neider <rneider AT web.de>
2234
2235         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2236           INCFSZ/INCFSZW and declared them as changing Z bit,
2237           (insertPCodeInstruction): correctly invert the above instructions,
2238           fixes #1599333,
2239           (DoBankSelect): don't panic on po_immediates
2240
2241 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2242
2243         * as/link/aslink.h,
2244         * as/link/mcs51/lkihx.c (newArea),
2245         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2246         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2247
2248 2006-11-11 Raphael Neider <rneider AT web.de>
2249
2250         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2251           bitfield symbols, fixes #1579535 (once more...).
2252
2253 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2254
2255         * support/regression/generate-cases.py,
2256         * support/regression/fwk/include/testfwk.h,
2257         * support/regression/fwk/lib/testfwk.c: used code pointers,
2258           (about 50kByte less code generated for mcs51)
2259
2260 2006-11-06 Borut Razem <borut.razem AT siol.net>
2261
2262         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2263           debugger/mcs51/configure: fixed failed check because the function
2264           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2265           who submitted the patch for gpsim.
2266         * debugger/mcs51/configure.in: removed the result message
2267         * debugger/mcs51/Makefile.in: fixed the config.status warning
2268           "... seems to ignore the --datarootdir setting"
2269
2270 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2271
2272         * device/include/mcs51/c8051f020.h,
2273         * device/include/mcs51/c8051f040.h,
2274         * device/include/mcs51/c8051f060.h,
2275         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2276         * src/z80/gen.c (gencjneshort),
2277         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2278
2279 2006-10-31 Borut Razem <borut.razem AT siol.net>
2280
2281         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2282           debugger/mcs51/configure: get readline version
2283
2284 2006-10-30 Borut Razem <borut.razem AT siol.net>
2285
2286         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2287         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2288           debugger/mcs51/configure: locate readline even when cross compiling
2289         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2290
2291 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2292
2293         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2294           serial port.
2295
2296 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2297
2298         * device/include/malloc.h,
2299         * device/lib/calloc.c,
2300         * device/lib/free.c,
2301         * device/lib/malloc.c,
2302         * device/lib/realloc.c: moved definition of struct into sources
2303         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2304
2305 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2306
2307         * as/asx8051.dsp: corrected output directories
2308         * as/link/hc08: new directory for hc08 linker
2309         * as/hc08/aslink.h,             as/link/aslink.h,
2310         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2311         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2312         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2313         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2314         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2315         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2316         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2317         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2318         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2319         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2320         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2321         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2322         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2323         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2324         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2325         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2326         * as/link/hc08/conf.mk,
2327         * configure,
2328         * configure.in,
2329         * Makefile.in,
2330         * sdcc.dsw: moved hc08 linker to as/link/hc08
2331         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2332         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2333         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2334         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2335         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2336         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2337         * as/link/mcs51/aslink.dsp,
2338         * as/link/mcs51/Makefile.in: factored out the common files
2339         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2340         * as/clean.mk: extra cleaning common files
2341         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2342         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2343         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2344
2345 2006-10-29 Raphael Neider <rneider AT web.de>
2346
2347         * src/pic/ralloc.c (newReg): create aliases for registers with
2348           multiple names to fix #1579535 and #1584001,
2349           (regWithIdx,dirregWithName): resolve aliases on lookup
2350         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2351           bankselect
2352         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2353           to prevent build errors on small devices
2354
2355 2006-10-28 Raphael Neider <rneider AT web.de>
2356
2357         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2358           assumption within interrupt handlers, fixes #1584940
2359         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2360           "emitted" to avoid emitting them again in udata
2361
2362 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2363
2364         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2365         Removed.
2366
2367 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2368
2369         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2370         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2371         on/off CR to CRLF conversion.
2372
2373 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2374
2375         * doc/sdccman.lyx: updated IRQ section
2376
2377 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2378
2379         * device/lib/serial_io.c: removed
2380         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2381         replacements for serial_io.c
2382
2383 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2384
2385         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2386
2387 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2388
2389         * device/lib/serial_io.c: Default putchar() and getchar() for
2390           mcs51 uses serial port.
2391
2392 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2393
2394         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2395
2396 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2397
2398         * support/regression/ports/mcs51/support.c: smaller
2399         _sdcc_external_startup()
2400         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2401
2402 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2403
2404         * device/lib/gbz80/crt0.s,
2405         * device/lib/gbz80/crt0_rle.s,
2406         * device/lib/gbz80/div.s,
2407         * device/lib/gbz80/fstubs.s,
2408         * device/lib/gbz80/heap.s,
2409         * device/lib/gbz80/mul.s,
2410         * device/lib/gbz80/putchar.s,
2411         * device/lib/gbz80/stubs.s,
2412         * device/lib/z80/crt0.s,
2413         * device/lib/z80/crt0_rle.s,
2414         * device/lib/z80/div.s,
2415         * device/lib/z80/fstubs.s,
2416         * device/lib/z80/heap.s,
2417         * device/lib/z80/mul.s,
2418         * device/lib/z80/putchar.s,
2419         * device/lib/z80/stubs.s: reverted, I was mistaken
2420
2421 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2422
2423         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2424         * support/regression/ports/mcs51/support.c: removed race
2425         condition on TI in _putchar allowing to use serial port mode 0
2426
2427 2006-10-20 Borut Razem <borut.razem AT siol.net>
2428
2429         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2430
2431 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2432
2433         * device/lib/gbz80/crt0.s,
2434         * device/lib/gbz80/crt0_rle.s,
2435         * device/lib/gbz80/div.s,
2436         * device/lib/gbz80/fstubs.s,
2437         * device/lib/gbz80/heap.s,
2438         * device/lib/gbz80/mul.s,
2439         * device/lib/gbz80/putchar.s,
2440         * device/lib/gbz80/stubs.s,
2441         * device/lib/z80/crt0.s,
2442         * device/lib/z80/crt0_rle.s,
2443         * device/lib/z80/div.s,
2444         * device/lib/z80/fstubs.s,
2445         * device/lib/z80/heap.s,
2446         * device/lib/z80/mul.s,
2447         * device/lib/z80/putchar.s,
2448         * device/lib/z80/stubs.s: removed all leading underscores from area names
2449
2450 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2451
2452         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2453           regression tests are not waiting in the simulator for simulated
2454           transmission of debug output
2455
2456 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2457
2458         * device/lib/printf_large.c: slightly smaller
2459         * doc/sdccman.lyx: do not use spaces within html links
2460
2461 2006-10-16 Borut Razem <borut.razem AT siol.net>
2462
2463         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2464           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2465           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2466           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2467           debugger/mcs51/configure:
2468           [ 1185668 ] add gnu readline support to sdcdb - enabled
2469
2470 2006-10-16 Raphael Neider <rneider AT web.de>
2471
2472         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2473           fixes #1577882, removes close to all banking optimizations
2474
2475 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2476
2477         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2478           variables in code memory
2479         * support/regression/tests/absolute.c: added test for this
2480
2481 2006-10-15 Raphael Neider <rneider AT web.de>
2482
2483         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2484           devices,
2485           (BankSelect): emit BANKSEL before touching linker-placed regs,
2486           fixes #1570934
2487
2488 2006-10-10 Raphael Neider <rneider AT web.de>
2489
2490         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2491         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2492         * src/pic/main.c (_pic14_parseOptions),
2493         * src/pic/main.h: mostly reverted to previous state, now use results
2494             from SDCCmain.c's argument parsing
2495
2496 2006-10-10 Borut Razem <borut.razem AT siol.net>
2497
2498         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2499           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2500           [ 1185668 ] add gnu readline support to sdcdb -
2501           prepared for READLINE, not enabled yet,
2502           thanks to <tal.bav AT gmail.com>
2503
2504 2006-10-10 Raphael Neider <rneider AT web.de>
2505
2506         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2507         * src/pic16/devices.inc,
2508         * device/include/pic16 (pic18f[24]620.h),
2509         * device/include/pic18fregs.h,
2510         * device/lib/pic16/pics.all,
2511         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2512             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2513             Gary Plumbridge and Anton Strobl
2514
2515 2006-10-10 Raphael Neider <rneider AT web.de>
2516
2517         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2518           --stack-siz=NUM options to configure the argument passing stack
2519         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2520         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2521           (pic14_getSharebankSize): obey --stack-siz=NUM,
2522           (pic14_getSharebankAddress): obey --stack-loc=NUM
2523
2524 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2525
2526         * doc/sdccman.lyx: added to the manual
2527         * doc/figures/ddd_example.png: added (neither pdflatex nor
2528         most browsers seem to like the .eps file)
2529
2530 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2531
2532         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2533         to /tmp and /var/tmp acc. LSB
2534         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2535         RESULT_TYPE_IFX
2536         * support/regression/tests/onebyte.c: added test
2537
2538 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2539
2540         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2541
2542 2006-10-05 Borut Razem <borut.razem AT siol.net>
2543
2544         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2545           thanks to dfulab:
2546           - sdcc.dsw: changed property eol-style to CRLF
2547           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2548
2549 2006-10-04 Raphael Neider <rneider AT web.de>
2550
2551         * device/include/pic/{pic16f84.h,pic16f84a.h},
2552         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2553           from patch #1522504, thanks to Robas Teodor
2554
2555 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2556
2557         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2558           fixes bug 1566015
2559
2560 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2561
2562         * src/pic16/glue.c (pic16emitMaps),
2563         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2564         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2565         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2566         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2567           Philipp Krause
2568         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2569         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2570
2571 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2572
2573         * support/librarian/sdcclib.c: Added option -l.
2574         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2575           usage totals.
2576         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2577           using Windows command prompt.
2578
2579 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2580
2581         * device/lib/libsdcc.lib: added module rand
2582         * src/ds390/ralloc.c (rematStr),
2583         * src/hc08/ralloc.c (rematStr),
2584         * src/mcs51/ralloc.c (rematStr),
2585         * src/z80/ralloc.c (rematStr): made output more consistent
2586         * src/mcs51/gen.c: cosmetic changes
2587
2588 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2589
2590         * src/port.h: added mem.cabs_name to PORT
2591         * src/ds390/main.c,
2592         * src/hc08/main.c,
2593         * src/mcs51/main.c,
2594         * src/pic16/main.c,
2595         * src/pic/main.c,
2596         * src/xa51/main.c,
2597         * src/z80/main.c: added cabs_name initializers
2598         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2599           constants
2600           (emitMaps): emit absolutes in code memory into cabs_name
2601         * src/SDCCmem.c,
2602         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2603         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2604         * support/regression/fwk/include/testfwk.h: added define for at
2605         * support/regression/tests/absolute.c: added, new
2606
2607 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2608
2609         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2610           optimizations, see also patch 887161 by Stas Sergeev
2611         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2612           to be necessary anymore,
2613           (102, 103, 104, 127): renamed all occurances of bp to _bp
2614
2615 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2616
2617         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2618           thanks Weston T. Schmidt for patch 1555221
2619         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2620         * src/SDCCicode.c(geniCodeMultiply): small optimization
2621
2622 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2623
2624         * device/include/stdlib.h: added rand prototypes
2625         * device/lib/rand.c: new, added
2626         * device/lib/Makefile.in: added rand.c
2627         * src/z80/peeph.def,
2628         * src/z80/peeph-gbz80.def,
2629         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2630
2631 2006-09-20 Raphael Neider <rneider AT web.de>
2632
2633         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2634
2635 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2636
2637         * as/link/aslink.h: cosmetic changes
2638         * as/link/mcs51/Makefile.in,
2639         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2640
2641 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2642
2643         * as/link/aslink.h,
2644         * as/link/mcs51/aslink.h,
2645         * as/link/z80/aslink.h: merged and moved to as/link/
2646         * as/link/lkstore.c,
2647         * as/link/mcs51/lkstore.c: moved to as/link/
2648         * as/link/clean.mk: remove *.o
2649         * as/link/mcs51/alloc.h: deleted
2650         * as/link/mcs51/lkarea.c: added lnksect prototype
2651         * as/link/mcs51/lkdata.c,
2652         * as/link/mcs51/lklex.c,
2653         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2654         * as/link/mcs51/lkmem.c,
2655         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2656         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2657         * as/link/mcs51/aslink.dsp,
2658         * as/link/mcs51/Makefile.aslink,
2659         * as/link/mcs51/Makefile.bcc,
2660         * as/link/mcs51/Makefile.in: updated for moved files
2661         * as/link/z80/lkarea.c,
2662         * as/link/z80/lkhead.c,
2663         * as/link/z80/lklex.c,
2664         * as/link/z80/lklibr.c,
2665         * as/link/z80/lklist.c,
2666         * as/link/z80/lkmain.c,
2667         * as/link/z80/lkrloc.c,
2668         * as/link/z80/lksym.c: synced with mcs51
2669         * as/link/z80/lkdata.c,
2670         * as/link/z80/lkeval.c,
2671         * as/link/z80/lkihx.c,
2672         * as/link/z80/lks19.c: cosmetic changes
2673         * as/link/z80/Makefile.in,
2674         * as/link/z80/linkgbz80.dsp,
2675         * as/link/z80/linkz80.dsp: updated for moved files
2676
2677 2006-09-16 Borut Razem <borut.razem AT siol.net>
2678
2679         * debugger/mcs51/sdcdb.c: partially fixed
2680           [ 1203664 ] sdcdb fails to open files w. two "." periods
2681         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2682           debugger/mcs51/symtab.h: fixed indenting
2683         * configure.in, configure: up to date with latest Maarten's changes
2684
2685 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2686
2687         as/link/mcs51
2688         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2689         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2690         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2691         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2692         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2693         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2694         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2695         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2696         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2697         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2698         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2699         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2700         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2701         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2702         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2703         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2704         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2705         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2706         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2707         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2708         as/link/mcs51/alloc.h,
2709         as/link/mcs51/clean.mk,
2710         as/link/mcs51/conf.mk,
2711         as/link/mcs51/Makefile.bcc,
2712         as/link/mcs51/Makefile.in,
2713         as/link/mcs51/readme.390,
2714         as/link/mcs51/strcmpi.c,
2715         as/link/mcs51/strcmpi.h,
2716         as/mcs51/clean.mk,
2717         as/mcs51/Makefile.bcc,
2718         as/mcs51/Makefile.in,
2719         configure,
2720         Makefile.in,
2721         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2722
2723 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2724
2725         * as/link,
2726         * as/link/Makefile.in,
2727         * as/link/z80/linkgbz80.dsp,
2728         * as/link/z80/linkz80.dsp,
2729         * configure,
2730         * link,
2731         * link/clean.mk,
2732         * link/Makefile.in,
2733         * link/README,
2734         * link/z80,
2735         * link/z80/aslink.h,
2736         * link/z80/clean.mk,
2737         * link/z80/conf.mk,
2738         * link/z80/linkgbz80.dsp,
2739         * link/z80/linkz80.dsp,
2740         * link/z80/lkarea.c,
2741         * link/z80/lkdata.c,
2742         * link/z80/lkeval.c,
2743         * link/z80/lkgb.c,
2744         * link/z80/lkgg.c,
2745         * link/z80/lkhead.c,
2746         * link/z80/lkihx.c,
2747         * link/z80/lklex.c,
2748         * link/z80/lklibr.c,
2749         * link/z80/lklist.c,
2750         * link/z80/lkmain.c,
2751         * link/z80/lkrloc.c,
2752         * link/z80/lks19.c,
2753         * link/z80/lksym.c,
2754         * link/z80/Makefile.in,
2755         * Makefile.in,
2756         * sdcc.dsw: moved link/ to as/link/
2757
2758 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2759
2760         * as/mcs51/i51mch.c (machine): fixed warning
2761
2762 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2763
2764         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2765
2766 2006-09-09 Borut Razem <borut.razem AT siol.net>
2767
2768         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2769           sdcdb WIN32 native port
2770         * src/clean.mk: fixed
2771
2772 2006-09-08 Borut Razem <borut.razem AT siol.net>
2773
2774         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2775
2776 2006-09-08 Raphael Neider <rneider AT web.de>
2777
2778         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2779         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2780             to gplink to disable processor mismatch warning and to allow
2781             the use of devices with only aliased (shared) memory banks,
2782           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2783
2784 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2785
2786         * doc/sdccman.lyx: Some re-formating plus example on using
2787           #pragma preproc_asm +/-
2788
2789 2006-09-07 Borut Razem <borut.razem AT siol.net>
2790
2791         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2792           section
2793
2794 2006-09-06 Borut Razem <borut.razem AT siol.net>
2795
2796         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2797           line at sdcc.nsi:153
2798         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2799
2800 2006-09-05 Borut Razem <borut.razem AT siol.net>
2801
2802         * configure.in, configure: support for winsock2
2803         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2804           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2805           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2806           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2807           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2808
2809 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2810
2811         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2812           and OP_DEFS
2813         * support/regression/tests/bug1551947.c: new, added
2814         * src/SDCCsymt.h: strings are char* not byte*
2815
2816 2006-09-05 Raphael Neider <rneider AT web.de>
2817
2818         * device/lib/pic16/libdev/pic18f4550.c,
2819           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2820             declarations/definitions from patch #1520949
2821
2822 2006-09-05 Raphael Neider <rneider AT web.de>
2823
2824         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2825           byte-aligned bitfields, fixes #1539278
2826
2827 2006-09-05 Raphael Neider <rneider AT web.de>
2828
2829         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2830           fixes #1544120
2831
2832 2006-09-04 Borut Razem <borut.razem AT siol.net>
2833
2834         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2835         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2836           -mno-cygwin is a part of the compiler name
2837         * support/scripts/sdcc_mingw32: don't disable ucsim
2838
2839 2006-09-03 Borut Razem <borut.razem AT siol.net>
2840
2841         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2842         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2843
2844 2006-09-03 Raphael Neider <rneider AT web.de>
2845
2846         * src/pic/ralloc.c,
2847         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2848           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2849           fixes #1550049
2850
2851 2006-09-01 Borut Razem <borut.razem AT siol.net>
2852
2853         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2854           to make ppc-osx happy
2855
2856 2006-08-31 Borut Razem <borut.razem AT siol.net>
2857
2858         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2859         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2860         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2861         * support/regression/ports/ds390/spec.mk,
2862           support/regression/ports/mcs51/spec.mk,
2863           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2864           To run regression tests in mingw environment:
2865           make DEV_NULL=NUL CC=gcc
2866
2867 2006-08-30 Borut Razem <borut.razem AT siol.net>
2868
2869         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2870           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2871           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2872           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2873           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2874           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2875           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2876           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2877           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2878           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2879           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2880           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2881           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2882           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2883           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2884           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2885           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2886           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2887           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2888           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2889           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2890           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2891           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2892           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2893           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2894           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2895           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2896           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2897           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2898           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2899           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2900           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2901           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2902           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2903           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2904           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2905           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2906           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2907           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2908           ucsim WIN32 native port
2909
2910 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2911
2912         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2913
2914 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2915
2916         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2917         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2918
2919 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2920
2921         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2922         * support/regression/tests/bug1546986.c: new, added
2923         * as/mcs51/.cvsignore,
2924         * debugger/mcs51/.cvsignore,
2925         * src/.cvsignore: deleted
2926
2927 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2928
2929         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2930           definitions)
2931
2932 2006-08-20 Borut Razem <borut.razem AT siol.net>
2933
2934         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2935           removed cl_listen_console::match(), cl_console::match(),
2936           restructured cl_commander::proc_input()
2937
2938 2006-08-16 Borut Razem <borut.razem AT siol.net>
2939
2940         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2941           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2942           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2943
2944 2006-08-14 Borut Razem <borut.razem AT siol.net>
2945
2946         * support/regression/Makefile.in,
2947           support/regression/ports/pic14/gpsim.cmd,
2948           support/regression/ports/pic14/spec.mk,
2949           support/regression/ports/pic14/support.c:
2950           added pic14 regression test
2951
2952 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2953
2954         * as/doc/asxhtm.html: documented changed ABS behaviour
2955         * as/doc/README: fixed some typos
2956
2957 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2958
2959         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2960           not defined on host
2961
2962 2006-08-12 Borut Razem <borut.razem AT siol.net>
2963
2964         * support/regression/fwk/include/testfwk.h,
2965           support/regression/fwk/lib/testfwk.c,
2966           support/regression/generate-cases.py,
2967           support/regression/Makefile.in:
2968           regression test framework does not depend on function pointers and
2969           variable arguments
2970
2971 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2972
2973         * device/include/stddef.h: c temporary hack to fix bug 1518273
2974
2975 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2976
2977         * device/include/mcs51/cc2510fx.h: added
2978         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2979           to projects.
2980
2981 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2982
2983         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2984         * as/z80/Makefile.in: added strcmpi.c
2985         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2986         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2987
2988 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2989
2990         * device/lib/gbz80/asm_strings.s,
2991         * device/lib/gbz80/crt0_rle.s,
2992         * device/lib/gbz80/div.s,
2993         * device/lib/gbz80/mul.s,
2994         * device/lib/gbz80/shift.s,
2995         * device/lib/z80/asm_strings.s,
2996         * device/lib/z80/crt0_rle.s,
2997         * device/lib/z80/div.s,
2998         * device/lib/z80/mul.s,
2999         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3000           flags which are all upper case
3001
3002 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3003
3004         * as/z80/asm.h: made CASE_SENSITIVE 1
3005         * link/z80/aslink.h: made CASE_SENSITIVE 1
3006         * src/z80/gen.c (throughout): made all conditionals upper case
3007         * support/regression/tests/bug1503067.c: new
3008
3009 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3010
3011         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3012           (shiftIntoPair): added case 2 for PAIR_IY,
3013           (setupToPreserveCarry): replaced parameters with iCode and check if
3014            PAIR_DE is in use to fix bug 1399290,
3015           (genPlus, genMinus): updated call to setupToPreserveCarry
3016         * support/regression/tests/bug1399290.c: new
3017
3018 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3019
3020         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3021         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3022         * src/ds390/gen.c (shiftRLong),
3023         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3024         * src/mcs51/gen.c (sameReg): changed to sameByte,
3025           (xch_a_aopGet): new,
3026           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3027            shiftRLong): fixed bug 1533966
3028         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3029           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3030         * support/regression/Makefile.in: disabled z80, enabled ucz80
3031         * support/regression/tests/float_trans.c: enabled test for z80 and host
3032         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3033
3034 2006-08-01 Borut Razem <borut.razem AT siol.net>
3035
3036         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3037           comparison is always false due to limited range of data type
3038           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3039
3040 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3041
3042         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3043         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3044         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3045         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3046
3047 2006-07-31 Borut Razem <borut.razem AT siol.net>
3048
3049         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3050           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3051           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3052           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3053           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3054           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3055           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3056           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3057           enable ucsim mingw compilation. Serial port is disabled,
3058           since it uses termios.h API, which is not available on native
3059           WIN32
3060
3061 2006-07-31 Borut Razem <borut.razem AT siol.net>
3062
3063         * Small Device C Compiler 2.6.0 released
3064         * support/scripts/sdcc.nsi: added FULL_DOC option
3065         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3066
3067 2006-07-28 Borut Razem <borut.razem AT siol.net>
3068
3069         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3070         * doc/INSTALL.txt: updated
3071
3072 2006-07-27 Borut Razem <borut.razem AT siol.net>
3073
3074         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3075           device/lib/pic/libdev/Makefile.in: fixed bug
3076           [ 1438354 ] pic libsdcc: distclean doesn't work
3077         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3078           device/lib/pic16/libio/Makefile.in: fixed bug
3079           [ 1438344 ] pic16 lib: clean doesn't work properly
3080         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3081
3082 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3083
3084         * device/lib/pic/libsdcc/fsdiv.c,
3085         * device/lib/pic/libsdcc/fsmul.c,
3086         * device/lib/pic16/libsdcc/float/fsdiv.c,
3087         * device/lib/pic16/libsdcc/float/fsmul.c,
3088         * device/lib/_fsdiv.c,
3089         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3090         * support/regression/tests/bug1520966.c: added
3091         * doc/knownbugs.html: removed [ 1520966 ] from the list
3092
3093 2006-07-25 Borut Razem <borut.razem AT siol.net>
3094
3095         * configure.in, configure, sdccconf_in.h: fixed bug
3096           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3097         * doc/knownbugs.html: removed [ 1519095 ] from the list
3098
3099 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3100
3101         * doc/knownbugs.html: added, contains list of known bugs at release
3102         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3103
3104 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3105
3106         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3107           function registers and corrected defaults with additional warning
3108         * device/lib/malloc.c: cosmetic changes
3109         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3110         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3111           (fillGaps): and used it
3112
3113 2006-07-20 Raphael Neider <rneider AT web.de>
3114
3115         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3116           output unless SDCCPICDEBUG is set
3117         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3118           output if SILENT is set
3119
3120 2006-07-11 Borut Razem <borut.razem AT siol.net>
3121
3122         * doc/README.txt: updated
3123
3124 2006-07-10 Borut Razem <borut.razem AT siol.net>
3125
3126         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3127           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3128           in WIN32 installation
3129         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3130           release candidate 1
3131
3132 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3133
3134         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3135         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3136
3137 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3138
3139         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3140
3141 2006-07-06 Borut Razem <borut.razem AT siol.net>
3142
3143         * support/regression/tests/bitfields.c:
3144           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3145         * support/regression/tests/constantRange.c:
3146           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3147
3148 2006-07-04 Borut Razem <borut.razem AT siol.net>
3149
3150         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3151           src/port.mk,
3152           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3153           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3154           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3155           reverted changes from 2006-07-03
3156         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3157         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3158           added CPPFLAGS, used by the host port
3159
3160 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3161
3162         * support/regression/valdiag/tests/switch.c,
3163         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3164         * support/regression/tests/libmullong.c: fixed for host
3165         * support/regression/ports/host/spec.mk: disable all warnings for host,
3166         SDCC runs with --less-pedantic too
3167
3168 2006-07-03 Borut Razem <borut.razem AT siol.net>
3169
3170         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3171           defined CPPFLAGS
3172         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3173         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3174           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3175           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3176           include ../port.mk
3177         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3178           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3179           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3180           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3181
3182 2006-07-02 Raphael Neider <rneider AT web.de>
3183
3184         * src/pic16/devices.inc,
3185         * device/include/pic16/pic18fregs.h,
3186         * device/include/pic16/pic18f4550.h,
3187         * device/lib/pic16/pics.all,
3188         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3189
3190 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3191
3192         * as/hc08/lkaomf51.c (OutputName),
3193         * as/mcs51/lkaomf51.c (OutputName),
3194         * as/z80/asmain.c (asmbl),
3195         * src/ds390/main.c (asmLineNodeFromLineNode),
3196         * src/hc08/ralloc.c (hc08_assignRegisters),
3197         * src/mcs51/main.c (asmLineNodeFromLineNode),
3198         * src/xa51/ralloc.c (checkRegMask),
3199         * src/xa51/gen.c (emitcode),
3200         * src/z80/gen.c (_emit2),
3201         * src/SDCCast.c (searchLitOp),
3202         * src/SDCCglobl.h,
3203         * support/packihx/packihx.c,
3204         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3205         * src/ds390/gen.c (aopPutUsesAcc),
3206         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3207         * support/regression/tests/libmullong.c (mullong_wrapper),
3208         * src/SDCCsymt.c (powof2),
3209         * src/SDCCast.c,
3210         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3211         * src/SDCCsymt.h: added TYPE_TARGET_*
3212         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3213         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3214         SDCCast because 1) header problems 2) this is the right place
3215         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3216         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3217         prototype
3218
3219 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3220
3221         * src/SDCCicode.h: removed buggy semicolon in unused macro
3222         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3223         search for previous definiton of auto symbols too,
3224         (findPrevUse): fixed logic of emitWarnings
3225
3226 2006-06-26 Raphael Neider <rneider AT web.de>
3227
3228         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3229           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3230
3231 2006-06-25 Raphael Neider <rneider AT web.de>
3232
3233         * device/lib/pic/libm: NEW, added math library functions
3234         * device/lib/pic/libsdcc: NEW; added float support functions
3235         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3236         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3237           NEW, added math related headers
3238         * device/include/asm/pic/features.h: NEW
3239         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3240           (popGet): allow larger offsets for AOP_PCODE,
3241           (genDataPointerSet): handle literals explicitly, more debug output,
3242           (genAssign): fixed for float using aopLiteral ;-)
3243         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3244           GOTO initialisation routine
3245         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3246           flag on registers, fixes #1469043 (local variables do not work)
3247         * src/pic/main.c (_pic14_do_link),
3248         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3249           available
3250
3251 2006-06-25 Borut Razem <borut.razem AT siol.net>
3252
3253         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3254           characters printed (not including the trailing '\0' used to end
3255           output to strings). Problem detected in regression test bug-927659.c.
3256           NOTE: printf() family functions should return int instead
3257           unsigned int!
3258         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3259           specifier are printed as themselves
3260         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3261           support flags, width and precision specifiers
3262
3263 2006-06-24 Borut Razem <borut.razem AT siol.net>
3264
3265         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3266           to the list of sdcc tagrets not supporting bit type
3267         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3268           testfor pic16 due to bug:
3269           [ 1511794 ] pic16: regression test bug-895992.c fails
3270
3271 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3272
3273         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3274         * src/SDCCglue.c (initPointer), fixed bug 1496419
3275         * support/regression/tests/bug1496419.c: new, added
3276
3277 2006-06-22 Borut Razem <borut.razem AT siol.net>
3278
3279         * support/regression/ports/pic16/support.c: use gpsim usart module from
3280           libgpsim_modules library
3281
3282 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3283
3284         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3285         IP0H to IPH0.
3286
3287 2006-06-19 Raphael Neider <rneider AT web.de>
3288
3289         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3290         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3291           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3292           (pic14printExterns,pic14printPublics,pic16printPublics,
3293           pic16_printExterns): use new functions to emit symbols
3294           (picglue,pic16glue): emit publics before emitting externs
3295         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3296           locally defined functions to avoid bug #1443651
3297         * support/regression/tests/bug-716242.c: removed pic16 workaround
3298         * support/regression/ports/pic16/spec.mk: ignore errors during build
3299
3300 2006-06-19 Raphael Neider <rneider AT web.de>
3301
3302         * src/pic/glue.h: added pic14aopLiteral prototype
3303         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3304         * src/pic/gen.c: removed stdint.h dependency
3305           (aopGet): use Safe_strdup()
3306           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3307           (genDataPointerSet): use pic14aopLiteral()
3308         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3309           for pic16; thanks to Bernhard and Maarten
3310
3311 2006-06-18 Borut Razem <borut.razem AT siol.net>
3312
3313         * support/regression/tests/structflexarray.c: flexible array members
3314           not supported by gcc < 3
3315         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3316           GUI tool by default
3317         * src/pic/gen.c: don't include [p]strdin.h on solaris
3318         * support/Util/pstdint.h: addad svn attributes
3319         * support/regression/tests/constantRange.c,
3320           support/regression/tests/rotate.c: include inttypes.h instead
3321           stdint.h on solaris, addad svn attributes
3322
3323 2006-06-18 Raphael Neider <rneider AT web.de>
3324
3325         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3326           int for PIC16
3327         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3328           (pic16_genMinusBits): simplified sign-extension
3329           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3330             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3331             adjusted to correctly handle mixed-signed operands, disabled
3332             now unused multiplciation routines
3333         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3334           (assignResultValue): added argument denoting the size of the result
3335             as returned by the function (fixes upcasts in assigning from
3336             function calls: char foo(); int i = foo();)
3337           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3338             function result to assignResultValue
3339           (genMult): disabled inlined multiplication code
3340           (genDiv): augmented to also handle the modulus operator, fixed to
3341             handle mixed-signed operands correctly
3342           (genMod): simply call genDiv, disabled unused code
3343           (genAssign): fixed missing (sign-)extension on result
3344         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3345             valid char operands, allow signed operands for native code, added
3346             division and modulo operator handling
3347         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3348
3349         As a consequence, onebyte.c (if split into two files) and muldiv.c
3350         pass regression tests.
3351
3352 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3353
3354         * doc/Makefile.in: two runs of makeindex seem needed to get
3355         correct page references in the index of sdccman.pdf
3356         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3357
3358 2006-06-17 Borut Razem <borut.razem AT siol.net>
3359
3360         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3361
3362 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3363
3364         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3365         mentioned ec2drv and paulmon
3366
3367 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3368
3369         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3370           consecutive abs areas
3371           (find_empty_space, allocate_space): added map to handle codemap or
3372            xdatamap,
3373           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3374            absolute idata and xdata
3375         * as/mcs51/lkmem.c (summary2): updated legend
3376
3377 2006-06-16 Raphael Neider <rneider AT web.de>
3378
3379         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3380
3381 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3382
3383         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3384           1208515
3385         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3386
3387 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3388
3389         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3390         value of generic pointers,
3391         * src/avr/main.c,
3392           src/ds390/main.c,
3393           src/hc08/main.c,
3394           src/izt/i186.c,
3395           src/izt/tlcs900h.c,
3396           src/mcs51/main.c,
3397           src/pic/main.c,
3398           src/pic16/main.c,
3399           src/xa51/main.c,
3400           src/z80/main.c: PORT structure, added elements for gp_tags field,
3401         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3402         fields in the PORT structure of each port,
3403         * src/SDCCast.c (decorateType): allow processing of generic pointers
3404         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3405         S_FIXED symbols
3406
3407 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3408
3409         * link/z80/lkgb.c,
3410         * link/z80/lkgg.c,
3411         * src/pic16/gen.c,
3412         * src/pic16/main.c,
3413         * src/pic16/pcode.c,
3414         * src/pic/main.c,
3415         * src/pic/pcoderegs.c,
3416         * src/SDCCicode.c,
3417         * src/SDCCmain.c,
3418         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3419           bug 1504689 on minGW
3420
3421 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3422
3423         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3424
3425 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3426
3427         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3428
3429 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3430
3431         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3432           for optimization
3433
3434 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3435
3436         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3437         to a char variable. Fixed bug #1504211
3438         * device/include/pic16/adc.h,
3439         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3440         and fixed bug #1364390
3441
3442 2006-06-10 Borut Razem <borut.razem AT siol.net>
3443
3444         * CVSROOT: removed the CVS left-over
3445
3446 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3447
3448         * as/hc08/asmain.c (asexit),
3449         * as/hc08/lkmain.c (lkexit),
3450         * as/mcs51/asmain.c (asexit),
3451         * as/mcs51/lkmain.c (lkexit),
3452         * src/SDCCglue.c (DEFSETFUNC),
3453         * src/SDCCmain.c (linkEdit, assemble),
3454         * support/librarian/sdcclib.c (AddRel),
3455           replaced unlink() by standard C remove()
3456         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3457         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3458           gatherImplicitVariables): new, added to fix bug 608752,
3459           (createFunction): added gatherImplicitVariables()
3460         * src/SDCCast.h: added createRMW prototype
3461         * src/SDCCsymt.h (struct symbol): added infertype
3462         * support/regression/tests/bug608752.c: new, added
3463
3464 2006-06-10 Raphael Neider <rneider AT web.de>
3465
3466         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3467           multibyte dummy reads (fixes #1503234)
3468
3469 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3470
3471         * device/include/mcs51/compiler.h: new, added header file to enable
3472           creating common sfr definition header files for different compilers
3473
3474 2006-06-05 Raphael Neider <rneider AT web.de>
3475
3476         * src/pic16/{pcode.h,genarith.c}:
3477           introduced pCodeOp combining any two pCodeOps (previously only
3478           two register operands could be combined), removed pcop2 from
3479           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3480         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3481         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3482           rewritten to use new PO_TWO_OPS
3483         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3484         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3485           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3486           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3487           (pic16_get_op): embraced return arg to allow #define return(x),
3488             added new case for combined opcodes
3489           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3490           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3491            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3492
3493 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3494
3495         * src/SDCCval.c (checkConstantRange): added
3496         * src/SDCCval.h: added checkConstantRange
3497         * support/Util/SDCCerr.c,
3498         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3499         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3500         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3501         * src/SDCCast.c (decorateType): added checkConstantRange,
3502         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3503         can be emitted with the correct always true/false warning,
3504         added optimization for double '!';
3505         result of decorateType() must be assigned back to the tree, because
3506         decorateType() can change the tree
3507         * src/SDCCicode.c (geniCodeLogic),
3508         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3509         (checkConstantRange): removed, it was only a fragment which never
3510         emitted a warning
3511         * src/SDCCsymt.c (computeType): fixed promotion for
3512         "-1 < (unsigned bit) b"
3513         * src/pic/ralloc.c (packRegsForAssign),
3514         * src/pic16/ralloc.c (packRegsForAssign),
3515         * src/hc08/ralloc.c (packRegsForAssign),
3516         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3517         from mcs51
3518         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3519         * support/regression/tests/constantRange.c: added
3520         * support/valdiag/tests/constantRange.c: added
3521         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3522
3523 2006-06-02 Borut Razem <borut.razem AT siol.net>
3524
3525         * support/regression/ports/pic16/support.c: increase stack size
3526           to 255 bytes
3527         * support/regression/Makefile.in: sort tests by name so that the
3528           resutlts can be compared on different machines / platforms
3529
3530 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3531
3532         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3533         * src/ds390/gen.c (emitLabel): new, added,
3534           (genDjnz): fixed stack overflow bug,
3535           (throughout): cosmetic changes to sync with mcs51/gen.c,
3536           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3537         * src/mcs51/gen.c (genEndFunction): small optimization,
3538           (throughout): cosmetic changes to sync with ds390/gen.c
3539
3540 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3541
3542         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3543           (_print_format): fixed printing pointers
3544         * src/mcs51/gen.c (emitLabel, movb): new, added,
3545           (genAssign): small optimization,
3546           (genDjnz): fixed stack overflow bug,
3547           (throughout): replaced sprintf with SNPRINTF,
3548           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3549           replaced emitcode("mov", "b,...") with MOVB(...),
3550           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3551           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3552         * src/mcs51/peeph.def: added rules 140 and 264
3553         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3554           so they may get optimized into registers
3555
3556 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3557
3558         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3559           immediately when encountered,
3560           (printUsage): always use stderr even on windows
3561
3562 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3563
3564         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3565         (processParms): fixed bug #1247551
3566         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3567         parseCmdLine, main): print '--version' to stdout,
3568         print 'help' to stdout if --help is given,
3569         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3570         arguments are given; fixed --help
3571
3572 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3573
3574         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3575         * support/regression/tests/bug-1493710.c: added
3576
3577 2006-05-27 Borut Razem <borut.razem AT siol.net>
3578
3579         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3580           static instead auto
3581         * support/regression/ports/pic16/support.c: increase stack size
3582           from default 64 bytes to 128 bytes
3583         * support/regression/tests/staticinit.c,
3584           support/regression/tests/float.c: regression tests fully enabled
3585           for pic16 port by putting the initialized data arrays into the code
3586           section
3587         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3588           This was changed by mistake in the previous version.
3589
3590 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3591
3592         * src/pic16/gen.c (genFunction, genEndFunction): some
3593         beautifications, fixed bug with falsely restoring FSR2 in large
3594         stack model, thanks to Beau E. Cox for reporting the bug
3595
3596 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3597
3598         * debugger/mcs51/break.c,
3599         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3600           use %p to print pointers, made address variables unsigned
3601         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3602         * debugger/mcs51/symtab.c (parseSymbol): must return something
3603         * src/mcs51/gen.c (aopForSym): small optimization,
3604            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3605           (freeAsmop): added missing break,
3606           (aopPut): removed parameter bvolatile, determine it inside the function,
3607           (saveRegisters, unsaveRegisters): small optimization,
3608           (genIpush): removed pointless check,
3609           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3610           replaced sprintf with SNPRINTF,
3611           replaced strcpy with strncpyz,
3612           updated aopPut calls,
3613           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3614         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3615
3616 2006-05-24 Borut Razem <borut.razem AT siol.net>
3617
3618         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3619           modification of test for the pic16 port, put the array to the code
3620           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3621
3622 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3623
3624         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3625         * support/Util/pstdint.h: added
3626
3627 2006-05-22 Borut Razem <borut.razem AT siol.net>
3628
3629         * src/regression/Makefile: removed bool2.c test, added -q linker option
3630         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3631           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3632           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3633           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3634           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3635           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3636           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3637           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3638           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3639
3640 2006-05-22 Raphael Neider <rneider AT web.de>
3641
3642         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3643           bug #1492360 (problematic due to generic pointers, see code)
3644
3645 2006-05-22 Borut Razem <borut.razem AT siol.net>
3646
3647         * support/regression/ports/pic16/specs.mk: removed stack size linker
3648           directive
3649         * support/regression/tests/array.c,
3650           support/regression/tests/bitopcse.c,
3651           support/regression/tests/bug-908454.c,
3652           support/regression/tests/malloc.c: modified for pic16 regression test
3653         * support/regression/tests/bitfields.c:
3654           pic16 - excluded bitfileds of size > 8
3655         * support/regression/tests/bp.c: pic16 - reduced data size
3656         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3657         * support/regression/tests/bug-460010.c:
3658           pic16 - used the absolute address the fits in memory
3659         * support/regression/tests/bug-716242.c:
3660           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3661         * support/regression/tests/float.c:
3662           pic16 - excluded - data size too big
3663         * support/regression/tests/onebyte.c:
3664           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3665         * support/regression/tests/shifts.c:
3666           pic16 - function names probably have to differ in first X characters
3667           (gpasm limitation?)
3668         * support/regression/tests/staticinit.c:
3669           pic16 - excluded some tests due error: no target memory available for
3670           section ".idata"
3671
3672 2006-05-22 Borut Razem <borut.razem AT siol.net>
3673
3674         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3675           second try. Thanks Stas Sergeev once more.
3676
3677 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3678
3679         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3680           (genLeftShift, genRightShift): fixed bug 1491627
3681         * src/hc08/peeph.def (rules 7, 8.x): added
3682         * support/regression/tests/shifts.c (ShiftLeftByParam,
3683           ShiftRightByParam, testShiftByParam): added to test variable shifting
3684
3685 2006-05-20 Raphael Neider <rneider AT web.de>
3686
3687         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3688         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3689           (allocReg): add only new registers to dynAllocRegs,
3690           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3691             #1489055, #1445850, and probably #1483693
3692
3693 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3694
3695         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3696         bug in for-loop that didn't emit the last of CONFIG and ID registers
3697
3698 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3699
3700         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3701           with offset
3702         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3703           1489016, 1434401 and 1490124
3704         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3705           1489016, 1434401 and 1490124
3706
3707 2006-05-17 Borut Razem <borut.razem AT siol.net>
3708
3709         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3710           thanks Stas Sergeev
3711
3712 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3713
3714         * device/include/mcs51/P89c51RD2.h,
3715         * device/include/mcs51/P89LPC901.h,
3716         * device/include/mcs51/P89LPC922.h,
3717         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3718
3719 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3720
3721         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3722         to fix missing stack pragma in compiled binary object file,
3723
3724 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3725
3726         * support/packihx/configure.in,
3727         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3728         determine sizeof basic types even while cross compiling
3729
3730 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3731
3732         * src/avr/gen.c (aopop),
3733         * src/ds390/gen.c (aopOp),
3734         * src/hc08/gen.c (aopOp),
3735         * src/mcs51/gen.c (aopop),
3736         * src/pic16/gen.c (pic16_aopOp),
3737         * src/pic/gen.c (aopOp),
3738         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3739         if size of operand is smaller than spill location
3740
3741 2006-05-12 Borut Razem <borut.razem AT siol.net>
3742
3743         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3744           have to have CR/LF line endings even if they are checked out on *nix
3745           or on WIN32 in cygwin binmode
3746
3747 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3748
3749         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3750         * device/include/ds80c390.h: added sfr16 definitions
3751         * src/ds390/gen.c,
3752         * src/ds390/gen.h,
3753         * src/ds390/main.c,
3754         * src/ds390/ralloc.c,
3755         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3756           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3757           bit returning functions
3758         * support/regression/tests/sfr16.c: enabled test on ds390
3759
3760 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3761
3762         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3763         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3764
3765 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3766
3767         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3768         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3769           (cl_address_space constructor): removed expensive initialization,
3770           (cl_address_space::get_cell): extended for late initialization,
3771           (cl_address_space::*): use late initialization,
3772           (cl_address_decoder::activate): removed expensive initialization,
3773           This reduced regression test running time by 25%
3774
3775 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3776
3777         * packihx/,
3778         * configure.in,
3779         * configure,
3780         * sdcc.dsw,
3781         * Makefile.bcc,
3782         * Makefile.in,
3783         * support/packihx/Makefile.in,
3784         * support/packihx/clean.mk,
3785         * support/packihx/Makefile.bcc,
3786         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3787
3788 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3789
3790         * src/SDCCval.c (valNot): fix for regression test failure
3791           of not.c on big endian hosts
3792
3793 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3794
3795         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3796
3797 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3798
3799         * device/lib/mcs51/Makefile.in: changed string comparison operator
3800           to = for POSIX compliance; == is bash extension
3801
3802 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3803
3804         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3805           kosmonaut_pirx
3806
3807 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3808
3809         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3810         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3811         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3812         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3813         bug report #1478657,
3814
3815 2006-05-05 Borut Razem <borut.razem AT siol.net>
3816
3817         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3818           making the html
3819
3820 2006-05-02 Borut Razem <borut.razem AT siol.net>
3821
3822         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3823           create *.ind, which made make to fail if invoked with -j 2
3824
3825 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3826
3827         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3828           Hubert Sack for patch 1479782
3829
3830 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3831
3832         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3833
3834 2006-05-01 Raphael Neider <rneider AT web.de>
3835
3836         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3837           (create_pic): store only prefix-free device name,
3838           (init_pic): check for device names with "16" prefix,
3839           (list_valid_pics),
3840         * src/pic/device.h (struct PIC_device),
3841         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3842             stored device name,
3843         * device/include/pic/pic12f{635,675,629,683}.h,
3844         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3845         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3846         * device/include/pic/pic16f505.h,
3847         * device/lib/pic/libdev/pic16f505.c: removed
3848         * device/include/pic/pic14devices.txt: added support for pic12f
3849             devices, removed unsupported non 16-bit devices
3850             [above changes provided by patch from Zik Saleeba]
3851         * src/pic/*, src/pic16/*, device/include/pic16/*,
3852           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3853
3854 2006-05-01 Borut Razem <borut.razem AT siol.net>
3855
3856         * configure.in, configure, doc/Makefile.in:
3857           sync with nightly build makefile - latex, dvipdf and dvips
3858           not needed any more
3859
3860 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3861
3862         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3863         in the library source
3864
3865 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3866
3867         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3868
3869 2006-04-28 Raphael Neider <rneider AT web.de>
3870
3871         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3872         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3873           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3874         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3875
3876 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3877
3878         * device/lib/pic/libdev/Makefile.in,
3879         * device/lib/hc08/Makefile.in,
3880         * device/lib/gbz80/Makefile.in,
3881         * device/lib/z80/Makefile.in,
3882         * device/lib/ds390/Makefile.in,
3883         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3884         thanks to Borut for the bug report
3885         * configure.in,
3886         * configure: always create doc/Makefile independent from --enable-doc
3887         * Makefile.in: always install from directory doc independent from
3888         --enable-doc
3889         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3890         removed
3891         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3892         * doc/Makefile.in: install *.txt if present
3893         * device/include/Makefile.in (install): added installation of pic/*.inc
3894         and pic/*.txt files again, they were erroneously removed
3895
3896 2006-04-28 Raphael Neider <rneider AT web.de>
3897
3898         * src/pic/{gen.c,main.h,pcode.c},
3899         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3900             concerning signedness with casts
3901
3902 2006-04-28 Raphael Neider <rneider AT web.de>
3903
3904         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3905             definition of an interrupt handler,
3906         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3907             interrupt handler stuff from picglue() to separate routine,
3908           (picglue): enabled definition of intr handlers in files w/o main()
3909
3910 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3911
3912         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3913           compilation with MSVC 2005 Express Edition (VC8)
3914
3915 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3916
3917         * device/lib/Makefile: fixed build of gbz80 lib
3918
3919 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3920
3921         * support/regression/tests/bug-460010.c,
3922         * support/regression/tests/bug-524691.c,
3923         * support/regression/tests/bug-716242.c: removed conditional defines
3924           that are already in testfwk.h
3925
3926 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3927
3928         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3929           (AccAXRsh1): added, shift right by 1,
3930           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3931            AccAXLrl1
3932         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3933
3934 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3935
3936         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3937         remove cast to same type
3938         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3939         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3940         * as/z80/Makefile,
3941         * link/z80/Makefile: removed, they have moved to
3942         Makefile.in files
3943         * configure,
3944         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3945         * install-sh: fix bug #1204398 by setting umask 0022
3946         * device/lib/Makefile: separate build of z80 and gbz80 lib
3947
3948 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3949
3950         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3951         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3952
3953         One basic decision: e.g. src/clean.mk includes further files. In order
3954         to make this work there are two solutions:
3955         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3956           run configure on them. This way they can use
3957           'include $(srcdir)/port-clean.mk'
3958         - always include clean.mk by the Makefile at the same level. To avoid
3959           that `make clean` tries to include and build Makefile.dep the
3960           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3961           implemented, because now even `make uninstall` doesn't create
3962           Makefile.in. clean.mk could be eliminated by pasting it in
3963           Makefile.in.
3964
3965         * debugger/mcs51/Makefile.in: build own objects from library sources
3966         (SLIB, SDCC) in current directory
3967
3968         * configure, configure.in: renamed --disable-device-lib-build in
3969         --disable-device-lib; added --enable-doc, the required tools are
3970         searched by configure; added result message; the toolchain for the
3971         belonging ports are now only built, if the port is enabled.
3972
3973         * support/regression/*: all output is written in directory gen, because
3974         the fwk and ports directories don't livet in the build tree using vpath
3975
3976         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3977         --disable-device-lib, added --enable-doc, added section VPATH
3978
3979         * sim/ucsim/configure.in,
3980         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3981         z80 are enabled by default
3982
3983 2006-04-24 Raphael Neider <rneider AT web.de>
3984
3985         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3986             to config word, "pic14_"-prefixed some extern functions
3987           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3988             config word has been found
3989         * src/pic/device.h: added prototypes
3990         * src/pic/pcode.c: added "pic14_"-prefix where needed
3991         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3992             fixup
3993         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3994             words,
3995           (pic14emitRegularMap): ignore config words,
3996           (pic14createInterruptVect): moved generating __config directives away
3997           (picglue): have __config directives emitted
3998
3999 2006-04-24 Borut Razem <borut.razem AT siol.net>
4000
4001         * doc/Makefile: sync with nightly build makefile
4002
4003 2006-04-24 Raphael Neider <rneider AT web.de>
4004
4005         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4006             registers that have not been assigned proper liveranges,
4007             fixes #1469504 and #1474602,
4008           (pCodeRegOptimizeRegUsage): fixed typo in comment
4009
4010 2006-04-24 Borut Razem <borut.razem AT siol.net>
4011
4012         * device/examples/main8051.c: deleted - it was removed from CVS
4013           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4014           after the transition to Subversion
4015         * src/SDCCalloc.h: deleted - it was removed  from CVS
4016           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4017           after the transition to Subversion
4018         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4019           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4020           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4021           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4022
4023 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4024
4025         * as/asx8051.dsp: added mcs51/strcmpi.h
4026         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4027         * as/hc08/aslink.h: updated lnksect prototype
4028         * as/hc08/asm.h,
4029         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4030         * as/hc08/asmain.c,
4031         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4032           (newdot): handle A_ABS
4033         * as/hc08/asout.c,
4034         * as/mcs51/asout.c (outarea): output address
4035         * as/hc08/lkaomf51.c,
4036         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4037         * as/hc08/m08pst.c,
4038         * as/mcs51/i51pst.c,
4039         * as/z80/z80pst.c: "ABS" is not A_OVR
4040         * as/hc08/lkarea.c (newarea): read a_addr,
4041           (lnkarea): added codemap array, sort absolute areas to the front,
4042            combine all GSINITx/GSFINAL,
4043           (find_empty_space, allocate_space): new functions,
4044           (lnksect): return next address, handle absolute sections
4045         * as/mcs51/lkarea.c (newarea): read a_addr,
4046           lnksect2 prototype changed,
4047           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4048           (find_empty_space, allocate_space): new, factored out of lnksect2,
4049           (lnksect2): return next address, handle absolute sections
4050         * as/hc08/lkhead.c,
4051         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4052         * as/hc08/lklibr.c (addfile, fndsym),
4053         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4054           index out of range and detect both '\' and '/'
4055         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4056         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4057           regression tests (ds390 cannot return bool yet)
4058         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4059           document critical interrupts on z80, document changed SDCC define
4060         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4061           (_a390_mapping): added .org directive
4062         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4063           (genMultOneByte): fixed warnings
4064         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4065           ones
4066         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4067         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4068           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4069         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4070         * src/pic16/main.c: removed newReg prototype
4071         * src/pic16/pcode.c,
4072         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4073           warnings
4074         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4075           ones
4076         * src/pic16/ralloc.c
4077         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4078           to fix warnings
4079         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4080           from short to PIC_OPTYPE
4081         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4082         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4083           optype from short to PIC_OPTYPE
4084         * src/port.h: made int_size unsigned to fix warnings
4085         * src/SDCC.y: fixed warning on MSVC
4086         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4087         * src/SDCCopt.c (convertToFcall): fixed warnings
4088         * src/SDCCsymt.h: removed double prototype for genSymName
4089         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4090           offset int to fix warnings
4091
4092 2006-04-22 Borut Razem <borut.razem AT siol.net>
4093
4094         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4095           references to CVS replaced with Subversion
4096
4097 2006-04-21 Borut Razem <borut.razem AT siol.net>
4098
4099         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4100           references to CVS replaced with Subversion
4101
4102 2006-04-19 Borut Razem <borut.razem AT siol.net>
4103
4104         * src/version.awk: adapted for svn
4105         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4106           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4107           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4108           /binutils-avr/etc/*.vi, *.jin: removed all properties
4109           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4110
4111 2006-04-19 Borut Razem <borut.razem AT siol.net>
4112
4113         * CVS to Subversion migration completed
4114
4115 2006-04-18 Borut Razem <borut.razem AT siol.net>
4116
4117         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4118           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4119
4120 2006-04-17 Borut Razem <borut.razem AT siol.net>
4121
4122         * device/include/Makefile.in: added pic/*.inc to the installation
4123
4124 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4125
4126         * support/regression/collate-results.py: fixed output in case of
4127         a valdiag error
4128         * support/regression/generate-cases.py: fixed splitting of pathnames
4129         with dots
4130         * as/hc08/lklibr.c (addfile),
4131         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4132
4133 2006-04-11 Raphael Neider <rneider AT web.de>
4134
4135         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4136         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4137         * src/pic16/pcode.c (assignValnums): fixed #1460578
4138
4139 2006-04-11 Raphael Neider <rneider AT web.de>
4140
4141         * device/lib/pic/libdev/*.c,
4142         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4143           fixes #1468739, enables compilation in --std-c99 mode
4144         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4145
4146 2006-04-11 Raphael Neider <rneider AT web.de>
4147
4148         * src/pic/device.c (find_device): removed debug output
4149           (list_valid_pics): enabled verbose listing of supported devices
4150         * device/include/stdbool.h: define bool as char for pic14/16 as well
4151
4152 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4153
4154         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4155
4156 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4157
4158         * .version: bumped version to 2.5.6
4159         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4160
4161 2006-04-06 Raphael Neider <rneider AT web.de>
4162
4163         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4164         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4165         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4166           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4167             pic14_constructAbsMap
4168           (pic14printPublics): declare absolute global symbols as global
4169           (pic14createInterruptVect),
4170         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4171           (newReg): assume new registers unused, use correct name in
4172             hashtable (reg->name instead of name), more debugLog output
4173         * src/pic/device.h (PIC_device): added fields for verbose output
4174         * src/pic/device.c: moved device definition to pic14devices.txt,
4175             added routines for runtime parsing of pic14devices.txt,
4176             added support for second config word
4177         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4178           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4179           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4180           (_pic14_parseOptions): moved pCodeInitRegisters here
4181           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4182         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4183           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4184             handling the pseudo stack
4185         * device/lib/Makefile.in: ignore failures in objects-pic16,
4186         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4187         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4188         * device/lib/pic/Makefile.subdir,
4189         * device/lib/pic16/Makefile.subdir: improved clean rules
4190         * device/lib/pic/libdev/: NEW, pic14 device libraries
4191         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4192         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4193         * device/include/Makefile.in: create subdir and install pic14 headers
4194         * device/include/pic/p16f_common.inc: removed unused declarations
4195         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4196             PICs from inc2h.pl v1.6,
4197             replaced BIT_AT macros with struct declarations
4198         * device/include/pic/pic14devices.txt: definition of supported devices,
4199             all above improvements contributed by Zik Saleeba, thanks
4200         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4201         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4202             headers
4203
4204 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4205
4206         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4207         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4208           thanks to Charles Olds
4209
4210 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4211
4212         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4213
4214 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4215
4216         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4217         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4218         * support/regression/bug1464657.c: added, new test
4219
4220 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4221
4222         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4223           version number
4224
4225 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4226
4227         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4228           --no-peep and --peep-file <file> are used don't use default rules but
4229           do use the <file>
4230
4231 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * src/mcs51/gen.c (genCall): fixed bug 1457608
4234
4235 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4236
4237         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4238         changes seem to cause (trigger?) problems with the build system.
4239
4240 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4241
4242         * src/SDCCpeeph.c (operandsLiteral): new, added,
4243           (callFuncByName): inserted operandsLiteral
4244         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4245
4246 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4247
4248         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4249         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4250
4251 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4252
4253         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4254           implemented patch 1120823 Thanks to Willy De la Court (normal
4255           interrupts need an interrupt number now if they are made critical),
4256           and enabled nesting of critical functions though not for gbz80
4257           (genCritical, genEndCritical): added functions
4258           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4259         * src/z80/mappings.i: added "ei" to all mappings
4260
4261 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4262
4263         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4264         submitted by the Debian SDCC maintainer Aurelien Jarno:
4265         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4266         archive with gcc 4.1 on mips and wrote the patch"
4267
4268 2006-03-16 Raphael Neider <rneider AT web.de>
4269
4270         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4271           the left operand is shorter than the result (c* = lit-c* + int),
4272           fixes bug #1450796
4273         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4274           OP_SYMBOL
4275
4276 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4277
4278         * src/.version: increased version number to 2.5.5
4279         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4280         linking is done manually in pic16 port's _linkEdit,
4281         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4282         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4283         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4284         allocate asmop as AOP_ACC,
4285         (aopForRemat): added parameter 'bool result' in function declaration,
4286         (pic16_aopGet): return AOP_ACC when accessing WREG,
4287         (pic16_popGetTempReg): minor modification,
4288         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4289         'pic16_allocWithIdx',
4290         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4291         calling function in absolute addresses,
4292         (genAssign): take into account AOP_ACC asmop,
4293         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4294         * src/pic16/pcoderegs.c: some debug functions and lines added,
4295         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4296         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4297         register too,
4298         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4299         call to allocReg, not by manually allocating a new one,
4300         (pic16_assignRegisters): now before going through the register
4301         allocating functions mark all registers as free. This eliminates some
4302         side effects resulting from peephole parser done earlier in the backbone
4303
4304 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4305
4306         * src/SDCCicode.c (geniCodeLogic),
4307         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4308
4309 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4310
4311         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4312           (genSend): bugfix, do not allocate and free twice,
4313           (shiftRLong): handle partially overlapping aops
4314         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4315
4316 2006-03-08 Borut Razem <borut.razem AT siol.net>
4317
4318         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4319           for pic16
4320
4321 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4322
4323         * support/regression/tests/bug1409955.c: new, added
4324         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4325         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4326           (aopForSym, aopOp): increment asmop.allocated if reused,
4327           (freeAsmop): decrement asmop.allocated and check for zero instead of
4328           using asmop.freed,
4329           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4330           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4331            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4332            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4333            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4334            genSignedRightShift, genRightShift, genDataPointerGet,
4335            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4336            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4337             in reverse order from allocation,
4338           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4339             added swappedLR to keep track
4340         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4341           pdata & code for GCC, z80, gbz80 & hc08
4342         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4343
4344 2006-03-08 Raphael Neider <rneider AT web.de>
4345
4346         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4347
4348 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4349
4350         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4351         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4352         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4353
4354 2006-03-06 Borut Razem <borut.razem AT siol.net>
4355
4356         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4357           made the linker quiet
4358
4359 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4360
4361         * src/pic16/gen.c (genPcall): fixed bug #1443644
4362         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4363         which dumps before the function entry point a data byte which represents
4364         the number of the local variables used by the specified function, added
4365         'xinst' for initial support for Extended Instruction Support,
4366         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4367         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4368         port->fun_prefix anymore (may change later),
4369         (genFunction, genEndFunction): do not store/restore local registers for
4370         _main (this should take care the --main-return command line option in
4371         the future),
4372         (genOr): removed some legacy pic-port instructions,
4373         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4374         performing operations with SFR's causes data to be written more than
4375         once to each SFR. Perhaps SFRs should be handled in special cases...
4376         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4377         pcode.h
4378         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4379         into account for stack starting position,
4380         (struct OPTIONS pic16_optionsTable): added command line argument
4381         --extended or -y for Extended Instruction Support,
4382         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4383         (deassignLRs): *** perhaps the most important change, old 'for' code
4384         (commented out for reference), didn't account for some registers which
4385         were left marked 'not free' after a pointer operation. The change
4386         reduces register usage a lot in some cases
4387
4388 2006-03-04 Borut Razem <borut.razem AT siol.net>
4389
4390         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4391           _clean
4392         * support/regression/tests/bug-524697.c: decreased array size for
4393           mcs51 to fit into the internal RAM
4394         * support/regression/Makefile.in: a little bit more verbose
4395
4396 2006-03-03 Borut Razem <borut.razem AT siol.net>
4397
4398         * support/regression/fwk/lib/testfwk.c,
4399           support/regression/fwk/include/testfwk.h: introduced function
4400           _prints(), nonrecursive _printn(), call _initEmu() from main()
4401         * support/regression/ports/gbz80/support.asm,
4402           support/regression/ports/ucz80/support.asm,
4403           support/regression/ports/z80/support.asm,
4404           support/regression/ports/ds390/support.c,
4405           support/regression/ports/hc08/support.c,
4406           support/regression/ports/host/support.c,
4407           support/regression/ports/mcs51/support.c,
4408           support/regression/ports/xa51/support.c: added empty _initEmu()
4409           function
4410         * support/regression/ports/pic16/gpsim.cmd,
4411           support/regression/ports/pic16/spec.mk,
4412           support/regression/ports/pic16/support.c,
4413           support/regression/Makefile.in: added pic16 regression test
4414
4415 2006-03-01 Raphael Neider <rneider AT web.de>
4416
4417         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4418           genConstPointerGet): use safe way of generating MOVFF to cover
4419             literals as well as registers, fixes bug #1440527
4420         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4421             dereference
4422           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4423             more correctly, fixes bug #1232186
4424           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4425         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4426             gplink guess the correct processor in more cases, applied patch
4427             from Till Riedel attached to and fixing bug #1436552
4428
4429 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4430
4431         * support/regression/tests/array.c: added, contains check for #1434401
4432         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4433
4434 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4435
4436         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4437         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4438         * device/include/mcs51/c8051f326.h,
4439         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4440         * device/include/mcs51/c8051f000.h,
4441         * device/include/mcs51/c8051f018.h,
4442         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4443           PCON_IDLE,PCON_STOP and added sfr16 definitions
4444
4445 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4446
4447         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4448           genGetWord): fixed bug 1409955
4449
4450 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4451
4452         * device/include/hc08/mc68hc908gp32.h,
4453         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4454
4455 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4456
4457         * src/SDCCast.c (constExprValue): return NULL if not a value
4458         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4459         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4460         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4461
4462 2006-02-13 Borut Razem <borut.razem AT siol.net>
4463
4464         * src/regression/ptrarg.c: added, fails due to bug #1430967
4465         * src/regression/Makefile: ptrarg.c added, ...
4466
4467 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4468
4469         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4470         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4471
4472 2006-02-11 Borut Razem <borut.razem AT siol.net>
4473
4474         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4475           print "Processor: xxx" message to stdout only if --verbose
4476
4477 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4478
4479         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4480         * support/regression/tests/bug1426356.c: added
4481         * support/regression/tests/bitfields.c: removed 2 tests
4482
4483 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4484
4485         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4486         * device/include/mcs51/c8051f330.h,
4487         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4488           PCON_IDLE,PCON_STOP and added sfr16 definitions
4489         * device/lib/_divsint.c,
4490         * device/lib/_divuint.c,
4491         * device/lib/_divulong.c,
4492         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4493           register bank bug for small stackauto
4494
4495 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4496
4497         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4498
4499 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4500
4501         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4502         * all.dsp: corrected several bin paths
4503         * device/include/mcs51/c8051f120.h,
4504         * device/include/mcs51/c8051f300.h,
4505         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4506           to PCON_IDLE,PCON_STOP
4507         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4508         * device/lib/printf_large.c (output_float): fixed bug 1388703
4509         * support/regression/tests/bug1057979.c: added test for bug 1388703
4510
4511 2006-02-08 Raphael Neider <rneider AT web.de>
4512
4513         * src/pic/pcode.c (pciTRIS): fixed typo,
4514           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4515           (LinkFlow): fixed handling of flows that end in a call,
4516           (ReuseReg): perform safety check earlier
4517         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4518             to work with flows at the beginning of a pBlock,
4519             fixes #1426557 (Symbol not previously defined),
4520           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4521             usage information
4522           (RemoveUnusedRegisters): update register usage info
4523         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4524             created, reuse existing ones instead
4525         * src/pic/gen.c (genPcall): fixed #1424719
4526
4527 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4528
4529         * link/z80/lkmain.c,
4530         * link/z80/lklex.c,
4531         * link/z80/lkdata.c,
4532         * link/z80/aslink.h: fixed build on current cygwin:
4533         replaced getline() by lk_getline()
4534
4535 2006-02-01 Borut Razem <borut.razem AT siol.net>
4536
4537         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4538           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4539           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4540           src/regression/bool1.c, src/regression/bool2.c,
4541           src/regression/bool3.c, src/regression/call1.c,
4542           src/regression/compare.c, src/regression/compare10.c,
4543           src/regression/compare2.c, src/regression/compare3.c,
4544           src/regression/compare4.c, src/regression/compare5.c,
4545           src/regression/compare6.c, src/regression/compare7.c,
4546           src/regression/compare8.c, src/regression/compare9.c,
4547           src/regression/configword.c, src/regression/for.c,
4548           src/regression/inline.c, src/regression/mult1.c,
4549           src/regression/nestfor.c, src/regression/or1.c,
4550           src/regression/pointer1.c, src/regression/ptrfunc.c,
4551           src/regression/rotate1.c, src/regression/rotate2.c,
4552           src/regression/rotate3.c, src/regression/rotate4.c,
4553           src/regression/rotate5.c, src/regression/rotate6.c,
4554           src/regression/rotate7.c, src/regression/string1.c,
4555           src/regression/struct1.c, src/regression/sub.c,
4556           src/regression/sub2.c, src/regression/switch1.c,
4557           src/regression/while.c, src/regression/xor.c,
4558           src/regression/create_stc, src/regression/simulate,
4559           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4560           regression tests
4561         * src/regression/gpsim_assert.h: added
4562
4563 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4564
4565         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4566         ((void (code *) (void)) 0) ();
4567         * as/hc08/aslex.c,
4568         * as/hc08/aslink.h,
4569         * as/hc08/asm.h,
4570         * as/hc08/asmain.c,
4571         * as/hc08/lkdata.c,
4572         * as/hc08/lklex.c,
4573         * as/hc08/lkmain.c,
4574         * as/mcs51/aslex.c,
4575         * as/mcs51/aslink.h,
4576         * as/mcs51/asm.h,
4577         * as/mcs51/asmain.c,
4578         * as/mcs51/lkdata.c,
4579         * as/mcs51/lklex.c,
4580         * as/mcs51/lkmain.c,
4581         * as/z80/aslex.c,
4582         * as/z80/asm.h,
4583         * as/z80/asmain.c: fixed build on current cygwin:
4584         replaced getline() by as_getline()
4585
4586 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4587
4588         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4589         declarator in the symbol chain
4590         * src/SDCCsymt.h,
4591         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4592         parameter list for function pointers
4593         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4594         * support/regression/tests/bug-716242.c: added
4595
4596 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4597
4598         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4599         offset if possible
4600         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4601
4602 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4603
4604         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4605         inifinitely recurseable, added static
4606         * support/regression/tests/bug-1408066.c: added
4607
4608 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4609
4610         * src/SDCCicode.h,
4611         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4612         renamed, added possibility to create "postLoopLbl"-labels
4613         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4614         newiTempLoopHeaderLabel
4615         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4616         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4617         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4618         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4619         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4620         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4621         (basicInduction): fixed bug #136564, made static,
4622         (loopInduction): changed parameter of basicInduction, made static,
4623         (addPostLoopBlock): added
4624         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4625         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4626         findLoopEndSeq
4627         * support/regression/tests/bug-136564.c: added
4628         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4629         --std-sdcc99 to LIBSDCCFLAGS
4630
4631 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4632
4633         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4634         while loop
4635         * support/regression/tests/bug-1406131.c: added
4636
4637 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4638
4639         * src/SDCCast.c (decorateType): fix promotion of unary minus
4640         * src/SDCCsymt.c (computeType): beautified
4641         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4642         (valUnaryPM, valComplement): fix sign and promotion,
4643         (valNot): ANSI: result type is int (SDCC: unsigned char)
4644         * support/regression/tests/uminus.c: speedup by removing superflous
4645         test case 'int'
4646         * support/regression/tests/onebyte.c: added promotion and signedness
4647         tests for unary minus
4648         * support/regressions/tests/bug-477927.c: disable warning about
4649         uninitialized variables
4650         * support/regression/tests/not.c: added
4651
4652 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4653
4654         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4655         * src/mcs51/gen.c (gen51Code): show final register usage after
4656         fillGaps in asm with --i-code-in-asm
4657         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4658         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4659         incUsed, rliveClear, adjustIChain): made static,
4660         (setFromRange): excluded because it's unused,
4661         (findPrevUseSym, markWholeLoop): added,
4662         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4663         through all branches of predecessors enables sdcc to emit the warning
4664         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4665         (rlivePoint): made static, added parameter emitWarnings which is only
4666         true during the first run out of two,
4667         (findRecursiveSucc, findRecursivePred): removed,
4668         (computeLiveRanges): made static, added parameter emitWarnings,
4669         (dumpIcRlive): added for debugging only
4670         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4671         removed prototype of setFromRange()
4672         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4673         in call of computeLiveRanges()
4674         * support/regression/tests/bug-895992.c: added
4675         * support/regression/tests/bug-971834.c: added
4676         * support/valdiag/tests/bug-895992.c: added
4677         * support/valdiag/tests/bug-971834.c: added
4678
4679 2005-12-18 Raphael Neider <rneider AT web.de>
4680
4681         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4682           (genUnpackBits): improved code for direct operands,
4683           (genPackBits): improved code for literal assignment to bitfields
4684             and for direct destination operands (no FSR indirection),
4685             prevented redundant AND, fixes #1362800,
4686           (AccLsh): added parameter to disable masking of the result
4687         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4688           skip instructions with side-effects (like incfsz),
4689           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4690         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4691         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4692           fixes #1375263
4693
4694 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4695
4696         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4697         volatile variables as spill location
4698
4699 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4700
4701         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4702         replacing literals
4703         * support/regression/tests/bug-1376320.c: added
4704
4705 2005-12-08 Raphael Neider <rneider AT web.de>
4706
4707         * src/pic/device.c: renamed is_shared to pic14_is_shared
4708         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4709         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4710           (is_valid_identifier): added for above workaround
4711
4712 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4713
4714         * device/lib/Makefile.in: fixed to enable port-specific-objects
4715         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4716           char, thanks Hubert Sack
4717         * doc/sdccman.lyx: documented --xstack-loc,
4718           elaborated a bit more on interrupts and pitfalls,
4719           removed "setjmp/longjmp unsupported",
4720           documented some unsupported C99 features
4721         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4722         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4723           if, thanks Hubert Sack
4724         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4725         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4726           make make_library
4727         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4728           regression tests can report resource usage (rfe 700441)
4729         * support/regression/collate-results.py: report resource usage
4730         * support/regression/ports/ds390/spec.mk,
4731         * support/regression/ports/hc08/spec.mk,
4732         * support/regression/ports/mcs51/spec.mk,
4733         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4734         * support/regression/ports/ds390/uCsim.cmd,
4735         * support/regression/ports/hc08/uCsim.cmd,
4736         * support/regression/ports/mcs51/uCsim.cmd,
4737         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4738         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4739           library, use the default one
4740         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4741           building the library
4742
4743 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4744
4745         * config.dsp: added dependency on .version and configure_vc.awk
4746         * device/include/setjmp.h: updated for --stack-auto and --xstack
4747         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4748         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4749         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4750         * device/lib/libsdcc.lib: added _setjmp
4751         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4752           (decorateType): fixed bug 1372851,
4753           (optimizeGetHbit): fixed warning
4754         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4755           array initialisation
4756         * support/regression/tests/bug1057979.c: added test for bug 1358192
4757         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4758
4759 2005-12-03 Borut Razem <borut.razem AT siol.net>
4760
4761         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4762           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4763
4764 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4765
4766         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4767         createIval): implement symbol independant "flexible array member",
4768         (createIvalCharPtr): implemented flexible array initialisation with a
4769         string
4770         * src/SDCCsymt.c (copyStruct): removed,
4771         (getSize): fixed misleading comment,
4772         (getAllocSize): removed, the additional allocation size is now in
4773         sym->flexArrayLength,
4774         (checkStructFlexArray): new, syntax checks for flexible array members,
4775         (compStructSize): added syntax checks for "flexible array members"
4776         (copyStruct): removed,
4777         (copyLinkChain): removed inefficient fix for bug 770487
4778         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4779         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4780         symbol->flexArrayLength
4781         * src/SDCCerr.c,
4782         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4783         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4784         * support/regression/tests/structflexarray.c: added
4785         * support/valdiag/tests/structflexiblearray.c: added
4786
4787 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4788
4789         * src/SDCCast.c (decorateType): fixed bug 1368489
4790         * support/Util/SDCCerr.c,
4791         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4792
4793 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4794
4795         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4796           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4797
4798 2005-11-27 Borut Razem <borut.razem AT siol.net>
4799
4800         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4801           support/cpp2/mkdeps.h: added command line option
4802           -obj-ext=<extension> to SDCPP to define object file externion, used
4803           for generation of make dependencies (-M)
4804         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4805
4806 2005-11-26 Borut Razem <borut.razem AT siol.net>
4807
4808         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4809           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4810           added pic and pic16 libraries
4811
4812 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4813
4814         * device/include/float.h: Corrected typo in prototype of __fsgt
4815
4816 2005-11-25 Borut Razem <borut.razem AT siol.net>
4817
4818         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4819           added creation of model-mcs51-stack-auto libraries
4820
4821 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4822
4823         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4824         and fields-list too
4825         * src/SDCCast.c (createIvalArray): removed obsolete comment
4826
4827 2005-11-24 Borut Razem <borut.razem AT siol.net>
4828
4829         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4830           added missing device/lib/mcs51/crt*.asm sources
4831
4832 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4833
4834         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4835
4836 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4837
4838         * device/lib/_fs2schar.c,
4839         * device/lib/_fs2sint.c,
4840         * device/lib/_fs2slong.c: optimized inline asm
4841
4842 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4843
4844         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4845           Better handling of floats between -1.0 and 0.0.
4846
4847 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4848
4849         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4850           (the missing "if"s prohibited removal of redundant labels)
4851
4852 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4853
4854         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4855           Properly convert floats between -1.0 and 0.0 to long, int, and char
4856           types (max integer value of negative floats tends to zero).
4857         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4858           Removed changes made so to work properly with floats between
4859           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4860           and _fs2char.c
4861
4862 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4863
4864         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4865         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4866         (genCast) cosmetic change
4867         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4868         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4869         from mcs51
4870         * support/regression/tests/bitfields (testSignedBitfields): added
4871
4872 2005-11-18 Borut Razem <borut.razem AT siol.net>
4873
4874         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4875         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4876           introduced SILENT option to make building of pic16 libraries less
4877
4878 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4879
4880         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4881           Now they work properly with floats between -1.0 and 0.0
4882         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4883
4884 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4885
4886         * src/SDCCicode.c (printOperand): added missing else
4887
4888 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4889
4890         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4891         reformatted for better readability
4892         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4893         signed bitfields
4894
4895 2005-11-17 Borut Razem <borut.razem AT siol.net>
4896
4897         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4898           introduced SILENT option to make building of pic16 libraries less
4899           verbose - used for nightly snapshot build
4900         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4901           available on Win32 platforms.
4902         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4903           medium, large, pic and pic16
4904
4905 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4906
4907         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4908           printf("%f"...) sets fraction to zero.
4909
4910 2005-11-16 Raphael Neider <rneider AT web.de>
4911
4912         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4913           fixes #1357221
4914         * src/pic/gen.c (genIfx): implemented for CARRY bit
4915         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4916           to generic pointers, fixes #1357332,
4917           (pic16_movLit2f): NEW,
4918           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4919
4920 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4921
4922         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4923
4924 2005-11-11 Raphael Neider <rneider AT web.de>
4925
4926         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4927         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4928           compute pointer's type from operand,
4929           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4930           improved single bit reads, fixes bug #1353379
4931
4932 2005-11-09 Borut Razem <borut.razem AT siol.net>
4933
4934         * support/scripts/sdcc.nsi: added lib/pic to the package
4935
4936 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4937
4938         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4939
4940 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4941
4942         * support/regression/tests/bug1348008.c: added
4943         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4944         * support/regression/tests/bug1337835.c: updated comment
4945
4946 2005-11-06 Borut Razem <borut.razem AT siol.net>
4947
4948         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4949           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4950           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4951           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4952           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4953           dynamic construction of cl_error_class and derivates - 2.nd try
4954
4955 2005-11-05 Borut Razem <borut.razem AT siol.net>
4956
4957         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4958           bug, which caused Bus Errors on sparc solaris
4959
4960 2005-11-04 Borut Razem <borut.razem AT siol.net>
4961
4962         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4963           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4964           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4965           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4966           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4967           and derivates to resolve the initialization problem on OSX
4968
4969 2005-11-02 Borut Razem <borut.razem AT siol.net>
4970
4971         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4972           corrected typo - #include <winsock2.h>
4973
4974 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4975
4976         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4977           (_asxxxx_mapping): added org directive for future enhancements
4978
4979 2005-11-01 Borut Razem <borut.razem AT siol.net>
4980
4981         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4982           enabled sockets on WIN32
4983         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4984
4985 2005-10-31 Borut Razem <borut.razem AT siol.net>
4986
4987         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4988           WIN32 backslash path delimiters should be escaped when used in C strings
4989         * support/regression/tests/bitfields.c: exclude failing assertions for
4990           __CYGWIN32__ and __MINGW32__ hosts
4991
4992 2005-10-30 Borut Razem <borut.razem AT siol.net>
4993
4994         * src/SDCCutil.c: corrected double comparison typo
4995
4996 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4997
4998         * device/lib/medium/Makefile: added for new memory model medium
4999         * device/include/asm/mcs51/features.h: updated for medium/pdata
5000         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5001           added Multiply & Accumulate sbit's and MAC0_PAGE define
5002         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5003         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5004         * device/lib/_mullong.c: update for medium model
5005         * device/lib/incl.mk: added medium model
5006         * doc/sdccman.lyx: documented medium model
5007         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5008         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5009         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5010         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5011           (allocParms): set SCLS and OCLS to pdata for medium model
5012         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5013           for pdata,
5014           (powof2): return <0 if not power of 2
5015         * src/avr/gen.c (genBitWise): use updated powof2
5016         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5017           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5018           (shiftLLeftOrResult): use B if necessary
5019         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5020         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5021         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5022         * support/regression/Makefile.in: added test-mcs51-medium
5023         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5024
5025 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5026
5027         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5028         specifier unsigned
5029         * device/lib/time.c (mktime): fixed bug 1334315
5030
5031 2005-10-28 Raphael Neider <rneider AT web.de>
5032
5033         * device/include/pic/p16f_common.inc: added common declarations
5034         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5035
5036 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5037
5038         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5039           (aopPutUsesAcc): added to predict accumulator use,
5040           (assignResultValue): save acc if necessary,
5041           (genMinusDec): store result if indirectly addressed,
5042           (genDivOneByte):  save acc if necessary,
5043           (movLeft2Result): bugfix if left already in acc,
5044           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5045             attention to accumulator use (esp. pdata),
5046           (genReceive): receive pdata correctly
5047         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5048         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5049
5050 2005-10-27 Raphael Neider <rneider AT web.de>
5051
5052         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5053
5054 2005-10-27 Raphael Neider <rneider AT web.de>
5055
5056         * .version: changed version to 2.5.4
5057         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5058         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5059           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5060             arithmetics support routines
5061         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5062         * device/lib/Makefile.in: also create installdir for pic
5063
5064         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5065           pic14 port as well
5066         * src/pic/device.c (dump_sfr): rewritten to delegate register
5067           placement to the linker (use `extern sym' rather than sym EQU addr),
5068           (validAddress): fixed to check last specified address
5069         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5070           (popGetLit): truncate literal value to 8 bit,
5071           (popGet): moved assert to more appropriate place
5072           (popGetExternal): create pCode operand from and mark the according
5073             symbol as being `extern'
5074           (popGetAddr): added sanity check on immediate's offset, provide
5075             GPOINTER tag on demand
5076           (aopPut): fixed for immediates,
5077           (mov2w_op): move operand's address or contents to WREG (depending on
5078             operand type), safer variant of mov2w,
5079           (movwf,call_libraryfunc): NEW, handy abbreviations,
5080           (get_argument_pcop,get_return_val_pcop,pass_argument,
5081           get_returnvalue): interface for accessing function parameters and
5082             return values,
5083           (assignResultValuei,genRet): use new parameter/return value interface
5084           (pic14_getDataSize): back to old version handling generic pointers,
5085           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5086             provided implementation and/or fixed old one,
5087           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5088             calls, removed legacy 8051 reference code
5089           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5090           (loadSignToC): NEW, move the operands sign bit to CARRY,
5091           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5092             genRightShiftSigned, accepts negative shift counts,
5093           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5094           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5095             generic pointers, __data pointers and __code pointers,
5096           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5097             and signed bitfields, limit bitfields to 8 bit,
5098           (genDataPointerGet): fixed number of bytes read,
5099           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5100           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5101             pointers to constant data are no longer assumed to point to __code
5102             space, removed invalid pointer types,
5103           (bitpatternFromVal): retrieve the PICs representation of an integer
5104             or float literal,
5105           (genDataPointerSet): fixed assigning to po_immediate operands,
5106           (genGenPointerSet): implemented as library call,
5107           (genIfx): fixed incorrect condition,
5108           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5109             provide GPOINTER tag according to destination's storage class,
5110           (genCast): added code to handle casting to generic pointers, added
5111             sign-/zero extension of the result
5112           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5113         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5114         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5115           extend the result
5116         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5117           address/register resides in the shared banks
5118           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5119             put all variables into separate sections (have the linker arrange
5120             them)
5121           (picglue): put init code and interrupt handlers in separate sections
5122         * src/pic/main.c: added port specific options table, modified to PORT
5123           structure to make GPOINTERs 3 byte, added pic14_options
5124           (_pic14_do_link): private linking routine (update paths to libraries,
5125             add libsdcc.lib by default)
5126         * src/pic/main.h: declare pic14_options
5127         * src/pic/pcode.c: fixed instructions i/o relations,
5128           (RegCond): reverted to correct version,
5129           (newpCodeOpLit): truncate literals to 8 bit,
5130           (genericPrint): added debug output,
5131           (getRegFromInstruction): fixed for various operand types, simplified
5132           (BuildFlow): fixed broken handling of isntructions with labels
5133           (LinkFlow): start at last instruction in flow (skip trailing comments),
5134             pass the flow on to the next instruction after CALL
5135           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5136           (insertPCodeInstruction): fixed inserting after a skip instruction,
5137           (DoBankSelect): fixed for labeled instructions
5138           (OptimizepBlock): honor --nopeep switch
5139           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5140         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5141         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5142           (pCodeOptime2pCodes): allow disabling this optimization via
5143             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5144             but is still buggy), started implementation of a dataflow based
5145             pCode optimization (CSE + dead code elimination)
5146           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5147         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5148           names are independant of the stack location and therefore portable across
5149           devices
5150
5151 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5152
5153         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5154           (selectSpil): fixed bug 1337835 by not spilling bit variables
5155         * support/regression/tests/bug1337835.c: added test for this bug
5156         * src/mcs51/peeph.def: restart after rule 3.c,
5157           addded rules 263.x to optimize loading constants
5158
5159 2005-10-26 Raphael Neider <rneider AT web.de>
5160
5161         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5162         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5163           (genAssign): emit warning when casting literals to generic pointer
5164             type, also applies when taking the address of a fixed variable,
5165           (genCast): improved casting to generic pointers
5166         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5167           extern variables, added verbose error message
5168         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5169
5170 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5171
5172         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5173         carry must be complemented too
5174         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5175         could be emitted by genMinus
5176         * src/SDCCval.c (constVal): fixed bug 1305065
5177
5178 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5179
5180         * src/SDCCast.c (addCast): added promotion for bit variables
5181         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5182         promotion casts + optimisation
5183         (optimizeGetWord): fix warning 'i' might be used uninitialized
5184         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5185         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5186
5187 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5188
5189         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5190         all chars are promoted to int; promotion should be handled in SDCCast.c
5191
5192 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5193
5194         * device/lib/_strcmp.c: Fixed bug 1326457
5195
5196 2005-10-11 Raphael Neider <rneider AT web.de>
5197
5198         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5199         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5200
5201 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5202
5203         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5204         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5205
5206 2005-10-04 Raphael Neider <rneider AT web.de>
5207
5208         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5209           device/lib/pic16/pics.all: added pic18f1320
5210         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5211
5212 2005-09-30 Raphael Neider <rneider AT web.de>
5213
5214         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5215         * src/pic16/devices.inc: NEW, provides device descriptions
5216         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5217
5218 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5219
5220         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5221           GETHBIT
5222
5223 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5224
5225         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5226           documented Any Order Bit, Higher Order Byte and Higher Order Word
5227         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5228         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5229           (optimizeGetAbit): new, to get any bit, not only the high bit,
5230           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5231           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5232           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5233           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5234             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5235             GETABIT, GETBYTE, GETWORD: decorate them,
5236           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5237           (ast_print): added GETABIT, GETBYTE, GETWORD
5238         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5239         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5240           (geniCodeBinary): new generic binary icode,
5241           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5242         * src/port.h: updated comment for PORT.hasExtBitOp
5243         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5244           (genGetByte): new, to get a single byte,
5245           (genGetWord): new, to get a word from a long,
5246           (gen51Code): added GETABIT, GETBYTE, GETWORD
5247         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5248
5249 2005-09-23 Raphael Neider <rneider AT web.de>
5250
5251         * configure.in, configure: have device/lib/pic configured
5252         * device/lib/Makefile.in: added model-pic14
5253         * device/lib/clean.mk: added pic/ to clean rule
5254         * device/lib/pic: added rudimentary pic14 library providing support
5255           functions for multiplication/division/generic pointer access
5256         * src/SDCCopt.c (convilong): mark support functions as extern
5257           for pic14 port as well
5258         * src/pic/gen.c (genMult): added assertions,
5259           (genpic14Code): emit warning on unhandled iCodes
5260         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5261         * src/pic/pcode.c (pCodeOpCopy),
5262         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5263           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5264           SFR_REGISTER}), made safe for future extensions
5265         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5266           instructions even if preceeded by SKIP instructions (also remove
5267           them); removed unused code
5268         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5269           prevents leaving parts of the structure uninitialized after copying
5270
5271 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5272
5273         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5274           ago by me
5275         * support/regression/tests/addsub.c: added test for the bug
5276
5277 2005-09-21 Raphael Neider <rneider AT web.de>
5278
5279         * device/include/pic16/pic18f1220.h,
5280           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5281         * device/lib/pic16/Makefile.rules: added missing opening paren
5282         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5283           are provided in genutils.c,
5284           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5285           operand/result sizes,
5286           (genCmp): assert on NULL pointers first, then check deref'ed values
5287         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5288           result size
5289
5290 2005-09-18 Raphael Neider <rneider AT web.de>
5291
5292         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5293           as these are now unused,
5294           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5295         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5296           local, avoids uninitialized pointer dereference on r->name
5297         * src/pic16/ralloc.c (newReg): fixed indentation
5298
5299 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5300
5301         * src/SDCCval.c (constVal): fixed bug 730366
5302         * support/Util/SDCCerr.c,
5303         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5304
5305 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5306
5307         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5308
5309 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5310
5311         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5312
5313 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5314
5315         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5316           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5317         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5318           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5319         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5320         * packihx/packihx.c (hexDigit): made c unsigned char
5321         * as/mcs51/lklibr.c (fndsym),
5322         * link/z80/lkgb.c (gb),
5323         * link/z80/lklibr.c (fndsym),
5324         * link/z80/lkrloc.c (relr),
5325         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5326         * src/SDCC.lex (checkCurrFile, process_pragma),
5327         * src/SDCCglue.c (spacesToUnderscores),
5328         * src/SDCCmain.c (setParseWithComma, processFile),
5329         * src/asm.c (tvsprintf, printCLine),
5330         * src/avr/gen.c (emitcode, aopPut),
5331         * src/ds390/gen.c (emitcode),
5332         * src/hc08/gen.c (emitcode, emitinline),
5333         * src/mcs51/gen.c (emitcode, genInline),
5334         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5335           tokenizeLineNode),
5336         * src/pic/ralloc.c (debugLog),
5337         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5338           tokenizeLineNode),
5339         * src/pic16/ralloc.c (debugLog),
5340         * src/z80/main.c (_process_pragma):
5341            made all ctype.h function calls safe
5342         * src/SDCCopt.c: include math.h for fabs
5343         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5344           and used them throughout the code to make ctype.h function calls safe
5345         * src/ds390/main.c (asmLineNodeFromLineNode),
5346         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5347         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5348            unsigned char*
5349         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5350           (newpCodeAsmDir): made ctype.h function calls safe
5351         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5352           pic16_emitcode):  made lbp unsigned char*
5353         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5354           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5355         * src/xa51/gen.c (emitcode),
5356         * src/z80/gen.c (_emit2): made lbp unsigned char*
5357         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5358            char*
5359
5360 2005-09-05 Raphael Neider <rneider AT web.de>
5361
5362         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5363           access bank splitpoint
5364
5365 2005-09-05 Raphael Neider <rneider AT web.de>
5366
5367         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5368
5369 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5370
5371         * .version: changed to version 2.5.3
5372         * doc/sdccman.lyx: changed version to 2.5.3,
5373           documented --codeseg and --constseg and pragma codeseg and constseg,
5374           documented bit parameters (reentrant) and bit returning
5375         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5376            currFunc->recvSize, but is this ok for all ports?
5377           (ast2iCode): result of ~ on unsigned char must be cast to int for
5378            bool to work
5379         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5380           function pointers in bit space
5381         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5382           (processFuncArgs): call port.reg_parm() with reentrancy info
5383         * src/port.h,
5384         * src/avr/main.c,
5385         * src/ds390/main.c,
5386         * src/hc08/main.c,
5387         * src/pic/main.c,
5388         * src/pic16/main.c,
5389         * src/xa51/main.c,
5390         * src/z80/main.c: port.reg_parm prototype extended with
5391           "bool reentrant" parameter
5392         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5393           options.stackAuto for allocating bit register parameters
5394         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5395           (genSend): set BitBankUsed if it is,
5396           (selectRegBank): factored out of genCall for use in genPcall,
5397           (genCall): removed redundant dtype assignmen, use selectRegBank,
5398           (genPcall): handle returning in Carry properly, save in F0 if needed,
5399           (genReceive): handle bit register parameters
5400         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5401           (mcs51_assignRegisters): enable bit registers for all reentrant
5402            functions and don't set BitBankUsed unconditionally
5403         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5404         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5405         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5406
5407 2005-08-27 Borut Razem <borut.razem AT siol.net>
5408
5409         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5410         ppc-osx (Darwin) does not support -u option. It seems that it is
5411         supported only on Linux - GNU cp
5412
5413 2005-08-25 Borut Razem <borut.razem AT siol.net>
5414
5415         * sim/ucsim/gui.src/serio.src/Makefile.in,
5416           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5417           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5418           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5419           install and strip, since the strip at /usr/ccs/bin should be used
5420           on solaris
5421
5422 2005-08-24 Borut Razem <borut.razem AT siol.net>
5423
5424         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5425
5426 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5427
5428         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5429         ffffffffu
5430
5431 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5432
5433         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5434         * as/mcs51/lkmain.c (link_main): fixed warning
5435         * device/include/stdbool.h: ds390 has no advanced bit support yet
5436         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5437         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5438         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5439           and updated their macros
5440         * src/SDCCval.c (constVal): updated comment for renamed b_long
5441
5442 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5443
5444         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5445         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5446           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5447           (oprio): set priority for '['
5448         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5449            and adb_24_bit
5450         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5451         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5452         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5453         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5454           added overlayable BIT_BANK area
5455         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5456           (summary2): explain 'T' in legenda
5457         * as/mcs51/lkrloc.c: replaced old K&R style,
5458           (relr): added R_BIT processing,
5459           (errmsg): added "Bit-addressable relocation error",
5460           (adb_bit): added for converting from byte- to bit-addressable space,
5461           (adb_24_bit): added for converting from byte- to bit-addressable space
5462         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5463            used in reentrant functions now even as return value
5464         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5465         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5466           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5467         * src/SDCCglobl.h: added indicator BitBankUsed
5468         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5469            the bit registers b0-b7
5470         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5471           (geniCodeCast): fixed bug 1263853,
5472           (geniCodeLogicAndOr): put result in bool or char,
5473           (geniCodeReceive): added parameter func for accessing the return type,
5474           (geniCodeFunctionBody): pass func to geniCodeReceive
5475         * src/SDCCmain.c: added indicator BitBankUsed
5476         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5477         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5478           (checkSClass): don't put automatic bool/bit on stack,
5479           (checkFunction): removed check on function cannot return bit
5480         * src/SDCCsymt.h: added newBoolLink prototype
5481         * src/mcs51/gen.c (rb1regs): added bit registers,
5482           (movc): created for assigning to carry,
5483           (pushReg, popReg): created for pushing registers,
5484           (sameRegs): check both AOP_REG and AOP_CRY types,
5485           (aopOp): handle bit registers,
5486           (aopPut): optimization no self-assign,
5487           (saveRegisters): push reg->base (bits) only once for bit registers,
5488            and use pushReg,
5489           (unsaveRegisters): pop reg->base only once and use popReg,
5490           (assignResultValue): added parameter func and return in carry for bits,
5491           (genIpush): optimization no reload in A if not changed,
5492           (genSend): bit parameters in reentrant functions are passed in bit
5493            registers by first assigning to bits in B, then save registers and
5494            copy B to bits,
5495           (genCall): handle returning in Carry properly, save it in F0 if needed,
5496           (genPcall): updated assignResultValue call, this is not safe yet for bit
5497            returning function !!!
5498           (genFunction): don't generate equ's for bit registers and use pushReg,
5499           (genEndFunction): take care of bit returning functions and use popReg,
5500           (genRet): return bit in Carry,
5501           (genIfx): optimize bit registers and other directly addressable bits,
5502           (genReceive): updated assignResultValue call
5503         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5504           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5505            registers when using stack-auto
5506         * src/mcs51/ralloc.c (_G): added allBitregs,
5507           (regs8051): added the bit registers,
5508           (createStackSpil): use macro IS_BIT,
5509           (getRegBit): added to allocate a bit register, else spill,
5510           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5511           (updateRegUsage): factored out to ease stepping while debugging,
5512           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5513            also allocate bit registers,
5514           (fillGaps): handle bit registers,
5515           (findAllBitregs): added to create bit vector with all bit registers,
5516           (mcs51_allBitregs): returns this bit vector,
5517           (mcs51_assignRegisters): when using stack-auto use bit registers for
5518            passing parameters and creating local variables
5519         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5520
5521 2005-08-22 Borut Razem <borut.razem AT siol.net>
5522
5523         * device/lib/Makefile.in: replaced find option -or with -o
5524           to make it run on solaris
5525
5526 2005-08-22 Raphael Neider <rneider AT web.de>
5527
5528         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5529           fixes #1265442 (crash on Solaris)
5530
5531 2005-08-20 Borut Razem <borut.razem AT siol.net>
5532
5533         * configure, configure.in: added tests for libsocket and libnsl libraries,
5534           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5535           from support/regression/Makefile.in
5536         * support/regression/Makefile.in: added
5537         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5538         * sim/ucsim/libtool: regenerated on sparc-solaris
5539         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5540           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5541           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5542           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5543           sparc-solaris, which doesn't use GNU ld linker
5544         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5545         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5546
5547 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5548
5549         * src/mcs51/peeph.def: updated comments
5550
5551 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5552
5553         * device/lib/_gptrget.c,
5554         * device/lib/_gptrput.c: slightly shorter
5555         * doc/sdccman.lyx: incremented version
5556         * src/mcs51/peeph.def: moved peephole comments to the line of first
5557           change to better keep line correlation, reanimated 186.e
5558         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5559
5560 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5561
5562         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5563           David Saxton with quotes around file name.
5564
5565 2005-08-15 Borut Razem <borut.razem AT siol.net>
5566
5567         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5568           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5569           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5570           make tests run on x86_64 platform
5571
5572 2005-08-13 Raphael Neider <rneider AT web.de>
5573
5574         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5575           as it might be executed DURING a build (parallel make is wonderful)
5576
5577 2005-08-13 Raphael Neider <rneider AT web.de>
5578
5579         * device/lib/Makefile.in (port-specific-objects-pic16):
5580           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5581         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5582           dependency
5583         * device/lib/pic16/Makefile.rules: build subdirs before creating
5584           the library, removed builddir rule, create $(builddir) early in
5585           recurse rule, use empty recurse rule for leaf directories
5586         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5587           mkdir errors (race condition), removed duplicate suffix "hex"
5588           from clean rules
5589         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5590         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5591           prevents mkdir -p from aborting on Alpha
5592
5593 2005-08-12 Raphael Neider <rneider AT web.de>
5594
5595         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5596           db-statements in order to allow for arrays of pointers in code
5597           sections to be placed without interspersed 0-padding, fixes
5598           bug #1256215
5599         * (emitStatistics): fixed division by zero for pic18f1220
5600         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5601           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5602         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5603         * (pic16_pCodeConstString): keep track of already emitted string
5604           literals to prevent "duplicate definitions of symbol _str_NR"
5605         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5606           debug message
5607         * device/lib/Makefile.in: ignore failing PIC16 library builds
5608         * device/lib/pic16/Makefile: do not build if gputils are missing
5609         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5610
5611 2005-08-10 Raphael Neider <rneider AT web.de>
5612
5613         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5614           my last commit)
5615
5616 2005-08-10 Raphael Neider <rneider AT web.de>
5617
5618         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5619           Rokas' patch to add the new fixed point type "__fixed16x16"
5620         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5621           functions for __fixed16x16 arithmetics
5622         * device/lib/pic16: reimplemented the build system to support
5623           a separate build directory, better handling of libio (create
5624           the library in a separate subdir for each architecture) and
5625           easier configuration (centralized in Makefile.common)
5626
5627 2005-08-07 Raphael Neider <rneider AT web.de>
5628
5629         * src/pic16/gen.c (genrshTwo): fixed sign extension
5630         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5631         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5632           added T0CONbits
5633         * device/include/pic16/pic18f4220.h: NEW, header for
5634           pic18f4220 and pic18f4320
5635         * device/include/pic16/pic18fregs.h: added new devices,
5636           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5637         * device/include/pic16/signal.h: resolved name clashes
5638           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5639           to also allow testing for interrupt enable bits, added
5640           comments on how to use the macros
5641         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5642         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5643           register definitions for the devices
5644         * device/lib/pic16/pics.all: added new devices
5645         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5646           allocated memory
5647         * device/lib/pic16/libc/stdlib/memfree: do not count
5648           the block header as free memory
5649         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5650           simplified and added missing end-of-blocklist-marker
5651           (reported by Peter Onion, fixes #1252814)
5652         * (_mergeHeapBlock): fixed loop condition
5653         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5654           len==0, restructured code
5655         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5656           up a bit, reduced bitfield accesses, prevent endless loops
5657           in case of heap corruption
5658         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5659           "unreferenced arguments/must return a value" warnings
5660         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5661           replaced BAUDREG with SPBRG
5662         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5663           device/lib/pic16/debug/gstack/gstack.c: replaced
5664           _naked, _asm, _endasm with __naked, __asm, __endasm
5665
5666 2005-08-05 Raphael Neider <rneider AT web.de>
5667
5668         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5669           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5670
5671 2005-08-05 Borut Razem <borut.razem AT siol.net>
5672
5673         * device/lib/Makefile.in: added missing ';'
5674         * configure: removed ^M characters
5675
5676 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5677
5678         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5679           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5680           License
5681
5682 2005-08-04 Borut Razem <borut.razem AT siol.net>
5683
5684         * configure.in: pic16 libraries build 2nd try - enable running
5685           configure in device/lib/pic16
5686         * configure: regenerated from configure.in
5687         * device/lib/Makefile.in: create $(PORT)/bin directory
5688
5689 2005-08-03 Raphael Neider <rneider AT web.de>
5690
5691         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5692           to get/set values via pointers
5693         * (genUnpackBits,genPackBits): changed detection of
5694           ptr->bitfield vs. sym.bitfield, fixed access via generic
5695           pointers, removed dead (wrong) code for multibyte bitfields
5696         * (genNearPointerGet, genGenPointerGet): removed useless code,
5697           fixed bitfield detection, fixes #1250594
5698         * (genNearPointerSet): removed useless code
5699         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5700           and introduced macro pic16_emitpcode that conditionally emits
5701           the origin of the following pCode (useful for debugging SDCC)
5702         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5703         * (createDefmap): fixed handling of LFSR for --optimize-df
5704
5705 2005-08-02 Borut Razem <borut.razem AT siol.net>
5706
5707         * device/lib/Makefile.in: pic16 libraries build enabled since
5708           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5709
5710 2005-08-02 Raphael Neider <rneider AT web.de>
5711
5712         * src/pic16/gen.c (genPackBits): removed deprecated warning
5713         * (genGenPointerSet): fixed bitfield detection
5714
5715 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5716
5717         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5718
5719 2005-07-31 Raphael Neider <rneider AT web.de>
5720
5721         * device/lib/pic16/libdev/pic18f458.c,
5722           device/include/pic16/pic18f458.h: added missing T0CONbits
5723
5724 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5725
5726         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5727
5728 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5729
5730         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5731
5732 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5733
5734         * device/include/mcs51/at89c51ed2.h: added.
5735
5736 2005-07-23 Raphael Neider <rneider AT web.de>
5737
5738         * src/pic/gen.h: added emitpcode macro for debugging
5739         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5740           and replace by macro adding debug information on demand
5741         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5742         * (gencjne): tried to fix; replaced with correct (slower) code
5743         * (gen{Unp,P}ackBits): fixed single bit access
5744         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5745         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5746           previous instruction
5747         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5748           register has to be handled with care (forbidding movement
5749           of assignments/uses, removing assignments completely, ...)
5750         * (pCodeOptime2pCodes): make use of regIsSpecial
5751         * added lots of debugging output (commented out)
5752         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5753           from being reused as result UNLESS it is known to work
5754
5755 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5756
5757         * support/Util/dbuf.h: include <stddef.h> for size_t
5758         * .version: changed to version 2.5.2
5759
5760 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5761
5762         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5763
5764 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5765
5766         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5767           (genModOneByte): removed needless psha/pula
5768
5769 2005-07-22 Raphael Neider <rneider AT web.de>
5770
5771         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5772           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5773         * src/pic/gen.c (resolveIfx): do not "invent" labels
5774         * (genSkipc): changed to positive logic
5775         * (genSkipCond): removed as no longer needed
5776         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5777           backport from PIC16
5778         * (genLeftShift): check operands are in different registers
5779         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5780           INCF does not update CARRY...
5781         * src/pic/main.c: fixed _linkCmd
5782         * src/pic/pcode.c (unlinkpCode): added inactive code
5783         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5784           alive (do not assign result and operand overlapping registers)
5785
5786 2005-07-22 Raphael Neider <rneider AT web.de>
5787
5788         * src/pic/device.c (dump_sfr): replaced register declaration with
5789           call to emitSymbolToFile() to avoid duplicate symbols
5790         * (assignRelocatableRegisters): do not declare external symbols
5791         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5792           right (take size of type, not etype)
5793         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5794         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5795         * (packRegsForAccUse): disabled assignment of WREG as
5796           the result reg to prevent occurence of just fixed #1235003,
5797           fixes #1242954
5798         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5799           symbols (avoids duplicate symbols in .asm file)
5800         * (pic14emitRegularMap): use emitSymbolToFile()
5801         * src/pic/gen.c (aopOp): fixed spillLocation handling
5802         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5803         * (genDataPointerSet): removed unneccessary variables/output
5804
5805 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5806
5807         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5808         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5809
5810 2005-07-21 Raphael Neider <rneider AT web.de>
5811
5812         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5813           architecture cannot handle them efficiently, fixes bug #1235003
5814         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5815           check for empty sets before using them (fixes bug #1232190)
5816
5817 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5818
5819         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5820           (lnksect2): generate warnings for memory overlap
5821         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5822           constseg to set the name of these segments so you can instruct the linker
5823           to place them in banks
5824         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5825         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5826           added code_seg and const_seg to options
5827         * src/SDCCglue.c (emitMaps): use options.const_seg,
5828           (createInterruptVect): put interrupt vectors in segment HOME,
5829           (glue): put HOME before static segment and put the main glue in HOME,
5830           (glue): use options.code_seg
5831         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5832         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5833           these segments so you can instruct the linker to place them in banks
5834           (linkEdit): use code_loc for HOME segment which should be the first
5835           segment in code memory now
5836         * src/SDCCmem.c: fixed more stuff like bug 1238386
5837         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5838           (changePointer): don't change function pointers to code pointers for
5839           banked functions,
5840           (compareType): added exceptional check for banked function pointers
5841         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5842         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5843           after static in code memory
5844         * src/mcs51/gen.c: added aopLiteralLong prototype,
5845           (aopForSym): use getSize for functions,
5846           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5847           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5848           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5849           the segment,
5850           (genPcall): use call for literal function pointers and generate banked
5851           calls over the one trampoline so there's only one place for the user to
5852           modify according to his/hers hardware,
5853           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5854           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5855         * src/mcs51/main.c: added keyword banked,
5856           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5857         * support/Util/SDCCerr.c,
5858         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5859           needed for passing the bank and address to the trampoline
5860         * device/lib/mcs51/crtbank.asm: added for bankswitching
5861         * device/lib/mcs51/Makefile: added crtbank
5862
5863 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5864
5865         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5866           for fields at offset 0 of a struct or union as reported
5867           on 2005-07-07 in the developer mailing list.
5868
5869 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5870
5871         * src/SDCCmem.c: fixed bug 1238386
5872
5873 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5874
5875         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5876           (patch #1144962), added peephole 300, enabled 259.x
5877         * doc/sdccman.lyx: removed screenshot and provided link instead
5878
5879 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5880
5881         * doc/sdccman.lyx: added section about debugging with ddd
5882         * doc/figures/ddd_example.eps: screenshot of debugging session
5883
5884 2005-07-04 Raphael Neider <rneider AT web.de>
5885
5886         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5887           like CODE pointers, fixes #1115683
5888         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5889           call, fixes bugs #1232211, #1228110,
5890           fixed wrong casts to pCodeFlow from pCodeInstructions
5891
5892 2005-07-04 Raphael Neider <rneider AT web.de>
5893
5894         * src/pic/gen.c (popGet): changed assert to allow for
5895           bit operands
5896         * (popGetAddr): changed signature to provide
5897           an additional index, patched all call sites
5898         * (genCmpEq): handle literal-like operands correctly
5899         * (genAddrOf): added sanity checks on __code/__data pointers
5900         * (genAssign): added handling of symbols from __code section
5901         * (gencjne): do not generate code for comparisons whose result
5902           is neither stored nor used, fixes bug #1171114
5903         * (AccLsh, AccRsh): operate on operand instead of WREG
5904         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5905           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5906           by known count
5907         * rewrote complete shift-by-literal logic, commented unused
5908           functions out
5909         * (genConstPointerGet): get multiple bytes (if result size > 1),
5910           fixed handling of non-immediate addresses
5911         * (genPointerGet): handle CODE pointers like CONST pointers
5912         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5913         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5914           operand is to be treated as a literal or not
5915         * (mov2w,genPcall,genCmpEq),
5916           src/pic/genarith.c: use aop_isLitLike() to decide between
5917           literal/register contents
5918         * (addSign): added missing offset
5919         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5920           only emit comment in debug-mode,
5921           use {aop,op}_isLitLike throughout the file
5922         * src/pic/glue.c: fix initializers for pointers (work in progress)
5923         * src/pic/pcode.c (get_op): honor index on _const symbols
5924         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5925         * (dumppBlock): added pCode size estimation
5926         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5927           check for IS_SYMOP before OP_SYMBOL'ing
5928         * fixed indentation, compacted switch-statements
5929         * (allocReg): find free register and allocate it instead of
5930           allocating new registers all the time
5931         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5932           registers as its operands (necessary only for multibyte GETs)
5933
5934 2005-07-01 Raphael Neider <rneider AT web.de>
5935
5936         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5937           debugging .asm-output macros FENTRY + FEXIT
5938         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5939           way... I wonder...
5940         * (emitpComment): NEW, printf to pCode
5941         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5942           offset handling
5943         * (popGetAddr): NEW, variant of popGet to access an immediates
5944           high(er) bytes instead of the n'th byte of memory they reference,
5945           replaced popGet with popGetAddr where neccessary
5946         * (genDataPointerGet): reactivated and fixed implementation
5947         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5948           accesses
5949         * (genDataPointerSet): fixed multibyte assignments
5950         * (genpic14Code): fixed --i-code-in-asm handling
5951         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5952         * (genPlus): fixed index-out-of-bounds error
5953         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5954         * src/pic/ralloc.c: added debugging output macro FENTRY2
5955         * (spillThis): fixed indentation, enbraced for-body for clarity
5956         * (rematStr): commented out as now unused
5957         * (regTypeNum): commented out special spill case (overwrites
5958           arbitrary values)
5959         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5960
5961 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5962
5963         * doc/sdccman.lyx: documented sfr16/sfr32,
5964           added example for using storage class with function pointers
5965         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5966
5967 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5968
5969         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5970         * device/lib/_itoa.c,
5971         * device/lib/_ltoa.c: optimized codesize
5972         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5973           but don't know how to suppress the double warning.
5974         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5975         * support/Util/SDCCerr.c,
5976         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5977
5978 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5979
5980         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5981           fixed old K&R prototypes
5982         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5983         * device/lib/_gptrget.c,
5984         * device/lib/_gptrgetc.c,
5985         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5986           also new versions for small generic pointers and banked generic pointers
5987         * src/port.h: added const_name
5988         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5989         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5990         * src/SDCCcse.c (findPrevIc): check all associative operators
5991         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5992         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5993         * src/SDCCmem.c: updated comments,
5994           set far-space to 0 for pdata, results in optimized code
5995         * src/SDCCmem.h: added macro CONST_NAME
5996         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5997           moving the info into the highest bits, see also gptrget/gptrput
5998         * src/src.dsp: added sdcc.ico to project files
5999         * src/avr/gen.c (genCast): fixed bug 0x%d
6000         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6001         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6002           relation between ptr_type and DCL_TYPE,
6003           (genCast): fixed bug 0x%d
6004         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6005           (CODE)" for const_name
6006         * src/hc08/gen.c (genCast): fixed bug 0x%d
6007         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6008           (hc08_port): added "CONST (CODE)" for const_name
6009         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6010           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6011           between ptr_type and DCL_TYPE,
6012           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6013           operand* and took AOP() inside function so sfr-ness can be checked,
6014           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6015           new prototype,
6016           (genFunction, genEndFunction): optimized stack setup,
6017           (genMinus): optimized for literals with ending zeroes (in bytes),
6018           (genCast): fixed bug 0x%d
6019         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6020           (mcs51_port): added "CONST (CODE)" for const_name
6021         * src/mcs51/peeph.def: made rule 226 more generic
6022         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6023         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6024         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6025         * src/z80/main.c (z80_port): added NULL for const_name,
6026           (gbz80_port): added NULL for const_name
6027         * support/regression/tests/bug663539.c,
6028         * support/regression/tests/sfr16.c: new tests
6029
6030 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6031
6032         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6033
6034 2005-06-24 Raphael Neider <rneider AT web.de>
6035
6036         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6037           corrected typos...
6038         * device/include/pic16/signal.h: added USBIF
6039           and SIG_USB
6040
6041 2005-06-24 Raphael Neider <rneider AT web.de>
6042
6043         * device/lib/pic16/libdev/pic18f2455.c,
6044           device/include/pic16/pic18f2455.h: NEW
6045         * device/include/pic16/pic18fregs.h,
6046           device/lib/pic16/pics.all,
6047           src/pic16/device.c: added 18f2455
6048         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6049           device/include/pic16/{pic18f[68][567].h,usart.h}:
6050           replaced MULTIPLE_USARTS define with more relaible
6051           compatibility sfrs (for USART access)
6052
6053 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6054
6055         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6056           and the output asm file line is printed on two lines.
6057
6058 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6059
6060         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6061           BGT, BLE, BHI, and BLS instructions
6062         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6063           genCmpEq): removed
6064         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6065           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6066           fixes bug #1216342
6067         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6068
6069 2005-06-15 Raphael Neider <rneider AT web.de>
6070
6071         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6072         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6073         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6074           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6075           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6076
6077 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6078
6079         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6080           Marcel Telka in bug #1215704
6081
6082 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6083
6084         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6085           located in shared memory bank.
6086
6087 2005-05-31 Raphael Neider <rneider AT web.de>
6088
6089         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6090           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6091           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6092
6093 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6094
6095         * device/lib/_strncpy.c: fixed the fix
6096
6097 2005-05-26 Raphael Neider <rneider AT web.de>
6098
6099         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6100           initializers with \0, bug #1208187
6101         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6102           intializers with \0, bug #1208187
6103
6104 2005-05-26 Raphael Neider <rneider AT web.de>
6105
6106         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6107           initializers with \0, bug #1208187
6108         * src/pic16/main.c (_process_pragma): added sanity checks
6109           for stack position and size, emit warnings when appropriate
6110
6111 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6112
6113         * device/lib/_strncpy.c: fixed not filling with \0
6114
6115 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6116
6117         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6118           createFunction),
6119         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6120           compound_statement),
6121         * src/SDCCsymt.h,
6122         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6123
6124 2005-05-24 Raphael Neider <rneider AT web.de>
6125
6126         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6127
6128 2005-05-24 Raphael Neider <rneider AT web.de>
6129
6130         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6131           TRISE definitions, closes bug #1162453
6132
6133 2005-05-22 Raphael Neider <rneider AT web.de>
6134
6135         * src/pic16/main.c (_process_pragma): check for missing
6136           arguments to pragmas code and udata
6137         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6138           consistency fixes to match other headers (thanks to Jim Paris)
6139         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6140
6141 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6142
6143         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6144
6145 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6146
6147         * support/regression/tests/bug1198642.c: new test
6148         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6149         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6150         * support/scripts/resource.h,
6151         * support/scripts/resource.rc,
6152         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6153         * support/scripts/sdcc.ico: added 32x32 icon
6154
6155 2005-05-18 Raphael Neider <rneider AT web.de>
6156
6157         * device/lib/pic16/libdev/pic18f*.c,
6158         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6159           keywords to "__sfr" and "__at (X)"
6160         * device/include/pic16/pic18fregs.h: added pic18f4520
6161         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6162           #1203088 (MPLAB compatibility)
6163
6164 2005-05-17 Raphael Neider <rneider AT web.de>
6165
6166         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6167         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6168         * device/lib/pic16/pics.all: added new devices
6169         * src/pic16/device.c: added support for pic18f4520
6170
6171 2005-05-16 Raphael Neider <rneider AT web.de>
6172         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6173         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6174         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6175           convenience function for bit access
6176
6177 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6178
6179         * device/lib/printf_large.c: fixed bug 1193299
6180         * support/regression/tests/bug1057979.c: added test %3.3s
6181
6182 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6183
6184         * device/include/mcs51/8051.h,
6185         * device/include/mcs51/8052.h: made parseable with lint
6186         * device/include/mcs51/lint.h: added include file for (sp)lint
6187         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6188         * doc/cdbfileformat.lyx,
6189         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6190
6191 2005-05-14 Raphael Neider <rneider AT web.de>
6192
6193         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6194         * device/lib/pic16/libc/stdlib/itoa.c (new)
6195         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6196         * device/lib/pic16/libio/Makefile: exclude subdir according to
6197           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6198         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6199         * src/pic16/gen.c (genFunction): prevent annoying warning
6200         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6201           nameclashes on BeOS
6202         * support/cpp2/cppmain.c (cpp_output_string): new
6203         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6204           fixes bug 1116802
6205
6206 2005-05-13 Borut Razem <borut.razem AT siol.net>
6207
6208         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6209
6210 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6211
6212         * .version: changed to version 2.5.1; back to bleeding edge development
6213
6214 2005-05-11 Borut Razem <borut.razem AT siol.net>
6215
6216         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6217           generate PDF version 1.3 documents
6218
6219 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6220
6221         * .version: changed to version 2.5.0
6222
6223 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6224
6225         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6226
6227 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6228
6229         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6230         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6231         well as many smaller updates.
6232         * .version: changed to version 2.5.0-pre1
6233
6234 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6235
6236         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6237
6238 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6239
6240         * support/regression/tests/bug1185672.c: added
6241         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6242           bug 1185672
6243         * src/mcs51/gen.c (genCall): added comments, made it look safer
6244         * src/mcs51/gen.c (genEndFunction): simplified
6245
6246 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6247
6248         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6249
6250 2005-04-14 Borut Razem <borut.razem AT siol.net>
6251
6252         * fixed bug 1045046 - SIGSEGV with really simple code?:
6253           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6254           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6255
6256 2005-04-14 Borut Razem <borut.razem AT siol.net>
6257
6258         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6259           src/pic16/device.h: temporarily disabled experimental #inline pragma
6260           for 2.5.0 release
6261
6262 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6263
6264         * device/include/z80/stdio.h,
6265         * device/include/z80/string.h: removed these highly incomplete files so
6266           SDCC can use the default ones in device/include/
6267
6268 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6269
6270         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6271         gcc warning.
6272         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6273         fix sdcpp warnings.
6274
6275 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6276
6277         * device/include/malloc.h: removed redundant __reentrant prototypes
6278         * device/lib/_mullong.c: added working xstack variant in asm (C version
6279           doesn't pass regression tests)
6280         * device/lib/bpx.c: used __data and made bpx char for mcs51
6281         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6282           (createFunction): fixed bug with xstackPtr
6283         * src/SDCCcse.c: corrected comments
6284         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6285           (killDeadCode, eBBlockFromiCode): removed unused code
6286         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6287           corrected comments
6288         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6289           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6290           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6291           (genModOneByte): fixed warning in MSVC
6292         * src/mcs51/main.c (): added comments
6293         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6294
6295 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6296
6297         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6298
6299 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6300
6301         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6302
6303 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6304
6305         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6306         characters arrays of larger size than the declared one.
6307
6308 2005-04-10 Borut Razem <borut.razem AT siol.net>
6309
6310         * src/pic/gen.c (genInline),
6311           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6312           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6313           (findNextInstruction), (findPrevInstruction),
6314           (findInstructionUsingLabel),
6315           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6316         * src/pic/pcode.c (findLabel): added missing '\n'
6317         * src/src.dsp: added SDCCdwarf2.c to the project
6318
6319 2005-04-09 Borut Razem <borut.razem AT siol.net>
6320
6321         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6322
6323 2005-04-08 Raphael Neider <rneider AT web.de>
6324
6325         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6326           into the chain after a given one) and mergeDefmapSymbols (combine
6327           defmap entries for each symbol per pcode)
6328         * (createDefmap): have defmap entries merged in the end
6329         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6330           a symbol before replacing one access type's symbol, merge symbols in
6331           the end (replacement symbol might already have an entry)
6332         * (assignValnums): keep reference to written WREG intact
6333
6334 2005-04-08 Raphael Neider <rneider AT web.de>
6335
6336         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6337           Alpha)
6338
6339 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6340
6341         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6342         bytes
6343
6344 2005-04-07 Raphael Neider <rneider AT web.de>
6345
6346         * device/include/pic16/usart.h: added compatibility defines for
6347           devices with more than one USART
6348         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6349
6350 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6351
6352         * device/lib/Makefile.in: updated for port specific include
6353
6354 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6355
6356         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6357
6358 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6359
6360         * device/include/8051.h,
6361         * device/include/8052.h,
6362         * device/include/at89S8252.h,
6363         * device/include/at89c55.h,
6364         * device/include/at89x051.h,
6365         * device/include/at89x51.h,
6366         * device/include/at89x52.h,
6367         * device/include/mcs51reg.h,
6368         * device/include/reg51.h,
6369         * device/include/reg764.h,
6370         * device/include/regc515c.h,
6371         * device/include/sab80515.h: (re)moved these 12 files
6372         * device/include/mcs51/8051.h,
6373         * device/include/mcs51/8052.h,
6374         * device/include/mcs51/at89S8252.h,
6375         * device/include/mcs51/at89c55.h,
6376         * device/include/mcs51/at89x051.h,
6377         * device/include/mcs51/at89x51.h,
6378         * device/include/mcs51/at89x52.h,
6379         * device/include/mcs51/mcs51reg.h,
6380         * device/include/mcs51/reg51.h,
6381         * device/include/mcs51/reg764.h,
6382         * device/include/mcs51/regc515c.h,
6383         * device/include/mcs51/sab80515.h: and added them here
6384
6385 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6386
6387         * device/include/stdarg.h: changed SDCC specific keywords to double
6388           underlined form.
6389         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6390           mcs51 and ds390.
6391         * device/include/hc08/mc68hc908gp32.h,
6392         * device/include/hc08/mc68hc908jb8.h,
6393         * device/include/hc08/mc68hc908jkjl.h,
6394         * device/include/hc08/mc68hc908qy.h: fixed comments
6395         * device/include/mcs51/README: updated
6396         * device/include/mcs51/c8051f120.h: added PINRSF
6397         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6398         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6399           amidst code. Also inline is not supported.
6400
6401 2005-04-06 Raphael Neider <rneider AT web.de>
6402
6403         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6404         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6405           callers stack/frame pointers
6406
6407 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6408
6409         * device/include/pic16/usart.h: added, missing in previous commit,
6410         * device/include/pic16/adc.h: fixed typo,
6411         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6412         commit,
6413         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6414         <p18fxxx.inc>
6415         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6416         uninitialized because a bug appears with gplink
6417         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6418         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6419         complains for unrecognised option
6420
6421 2005-04-05 Raphael Neider <rneider AT web.de>
6422
6423         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6424           structs as well (using memcpy)
6425         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6426           on ISRs (GOTO has no label)
6427         * src/pic16/device.h: added OF_OPTIMIZE_DF
6428         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6429           new data flow analysis/optimization
6430         * src/pic16/pcode.c: added (prototypes for and implementation of)
6431           dataflow analysis functions, fixed pCodeInstructions' inCond and
6432           outCond values, made RCALL a branch instruction
6433         * (pic16_unlinkpCode): keep C line if possible
6434         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6435           C line moved if possible
6436         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6437         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6438           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6439         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6440           new flow)
6441         * (pic16_getJumptabpCode): NEW, needed in...
6442         * (LinkFlow): fixed handling of jumptables, calls and conditional
6443           branches
6444         * (pic16_InsertCommentAfter): NEW
6445         * (pic16_pCodeReplace): made verbose and flow preserving
6446         * (AnalyzeFlow): added call to data flow analysis
6447         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6448         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6449         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6450
6451 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6452
6453         * src/SDCCast.c (decorateType): fixed bug #1105626
6454
6455 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6456
6457         * device/include/asm/pic16/features.h,
6458         * pic18f*.h headers,
6459         * device/include/pic16/adc.h,
6460         * device/include/pic16/delay.h,
6461         * device/include/pic16/i2c.h,
6462         * device/include/pic16/malloc.h,
6463         * device/include/pic16/stdio.h,
6464         * device/include/pic16/stdlib.h,
6465         * device/include/pic16/string.h,
6466         * device/lib/pic16/libc/stdio/printf_tiny.c,
6467         * device/lib/pic16/libc/stdio/printf_small.c,
6468         * device/lib/pic16/libc/stdio/strmgpsim.c,
6469         * device/lib/pic16/libc/stdio/strmmssp.c,
6470         * device/lib/pic16/libc/stdio/strmusart.c,
6471         * device/lib/pic16/libc/stdio/vfprintf.c,
6472         * device/lib/pic16/libc/stdlib/ltoa.c,
6473         * device/lib/pic16/libc/stdlib/putchar.c,
6474         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6475         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6476         * device/lib/pic16/libc/stdlib/memchrram.c,
6477         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6478         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6479         * device/lib/pic16/libio/adc/adcbusy.c,
6480         * device/lib/pic16/libio/adc/adcread.c,
6481         * device/lib/pic16/libio/adc/adcsetch.c,
6482         * device/lib/pic16/libio/usart/ubaud.c,
6483         * device/lib/pic16/libio/usart/ubusy.c,
6484         * device/lib/pic16/libio/usart/udrdy.c,
6485         * device/lib/pic16/libio/usart/uopen.c,
6486         * device/lib/pic16/libio/usart/uputc.c,
6487         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6488         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6489         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6490         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6491         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6492         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6493         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6494         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6495         specific keywords to double underlined form,
6496         * device/lib/pic16/libc/Makefile.rules,
6497         * device/lib/pic16/libsdcc/Makefile.rules,
6498         * device/lib/pic16/libm/Makefile,
6499         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6500         to compile with C standard set in Makefile.common
6501         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6502         rand.c and crc.c in compilation process,
6503         * device/lib/pic16/libsdcc/int/divuint.c,
6504         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6505         `c' from signed to unsigned,
6506         * device/lib/pic16/startup/crt0.c,
6507         * device/lib/pic16/startup/crt0i.c,
6508         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6509         keywords to double underlined form, bug fixes in _do_cinit function
6510         which prevented the correct initialization of the .idata segment,
6511         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6512         core to enter a infinite loop
6513         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6514
6515 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6516
6517         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6518
6519 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6520
6521         * device/include/Makefile.in: add support for hc08 subdirectory
6522         * device/include/hc08/: new subdirectory
6523         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6524         Lucas Loizaga, thanks!
6525         * device/include/hc08/mc68hc908qy.h,
6526         * device/include/hc08/mc68hc908gp32.h,
6527         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6528         their own directory. Changed internal macro names to use the compiler
6529         reserved namespace. Changed SDCC specific keywords to double
6530         underlined form.
6531         * device/include/math.h,
6532         * device/include/malloc.h,
6533         * device/include/stdarg.h,
6534         * device/include/stdbool.h
6535         * device/include/string.h,
6536         * device/include/tinibios.h,
6537         * device/include/ds400rom.h,
6538         * device/include/8051.h,
6539         * device/include/8052.h,
6540         * device/include/80c51xa.h,
6541         * device/include/at89c55.h,
6542         * device/include/at89S8252.h,
6543         * device/include/at89x51.h,
6544         * device/include/at89x52.h,
6545         * device/include/ds80c390.h,
6546         * device/include/reg764.h,
6547         * device/include/regc515c.h,
6548         * device/include/sab80515.h,
6549         * device/include/mcs51/c8051f000.h,
6550         * device/include/mcs51/c8051f018.h,
6551         * device/include/mcs51/c8051f020.h,
6552         * device/include/mcs51/c8051f040.h,
6553         * device/include/mcs51/c8051f060.h,
6554         * device/include/mcs51/c8051f120.h,
6555         * device/include/mcs51/c8051f300.h,
6556         * device/include/mcs51/c8051f310.h,
6557         * device/include/mcs51/c8051f320.h,
6558         * device/include/mcs51/c8051f330.h,
6559         * device/include/mcs51/c8051f350.h,
6560         * device/include/z180.h: Changed SDCC specific keywords to double
6561         underlined form.
6562
6563 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6564
6565         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6566         18F4455,
6567         * (pic16_assignConfigWordValue): disable testing of configuration
6568         register value with config mask,
6569         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6570         function with port->fun_prefix,
6571         * (genFunction): when generating a naked interrupt function never
6572         create an absolute segment placed in interrupt vector address, place
6573         the actual interrupt function at IVA instead, when an interrupt
6574         function is generated with unspecified interrupt then do not create
6575         the absolute section,
6576         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6577         code for generating a call to generic pointer get/put function with
6578         a call to function pic16_callGenericPointer(),
6579         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6580         the call to the generic pointer get/put functions with prefixing the
6581         function name with port->fun_prefix,
6582         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6583         * src/pic16/main.c (_process_pragma): prefix function with
6584         port->fun_prefix,
6585         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6586         calling assembler, old 18Fxxxx macro is deprecated,
6587         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6588         PC_ASMDIR in while condition,
6589         * (findInstruction): add PC_ASMDIR in while condition,
6590         * (buildCallTree): prefix main with port->fun_prefix,
6591         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6592         identifier for variable with banked access in instructions BTFSS,
6593         BTFSC, BCF, BSF, BTG
6594         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6595         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6596         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6597         perform optimization when enviroment variable NO_REG_OPT is set,
6598         * (insideLRBlock): NEW, return 1 if register is inside an
6599         INF_LOCALREGS block,
6600         * (RemoveRegFromLRBlock): remove a register that is completely
6601         eliminated by register optimization, but it is still left in local
6602         register store/restore in/from stack block,
6603         * (Remove2pcodes): after removing register, check to see if it
6604         should be removed from local register store/restore in/from stack
6605         block,
6606         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6607         DUMMY_READ_VOLATILE,
6608
6609         * device/include/pic16/adc.h: minor prototype modifications and
6610         update,
6611         * device/include/pic16/malloc.h: added GPL notice various
6612         modifications,
6613         * device/include/pic16/stdint.h: NEW, standard header for ints
6614         * device/include/pic16/delay.h: NEW, header for delay functions,
6615         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6616         delay1mtcy,
6617         * device/include/pic16/signal.h: NEW, header providing helper macros
6618         for implementing signal handlers,
6619         * device/include/pic16/stdio.h: added prototypes for functions,
6620         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6621         prototypes for stdin and stdout, added macro PUTCHAR to
6622         automatically implement putchar function prototype,
6623         * device/include/pic16/usart.h: modified and updated USART library,
6624         * device/lib/pic16/libio/adc/,
6625         * device/lib/pic16/libio/i2c: some modifications to improve library
6626         performance,
6627         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6628         family of functions,
6629         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6630         family of functions and other sources,
6631         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6632         of the PIC18Fxx[28] devices,
6633         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6634         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6635         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6636         _do_cinit function, because the previous failed when local variables
6637         where not placed in the same memory bank,
6638         * device/lib/pic16/libsdcc/char/: various modifications to improve
6639         library performance,
6640         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6641         information on the new functions of the c library and more...
6642
6643 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6644
6645         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6646
6647 2005-03-26 Raphael Neider <rneider AT web.de>
6648
6649         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6650           if condition == CARRY)
6651         * (genCmp): adapted to new genSkipc semantics
6652         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6653           on rIfx (genCmp was broken)
6654
6655 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6656
6657         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6658         * src/z80/main.c (_keywords[]),
6659         * src/SDCCglobal.h (struct options),
6660         * src/SDCC.y,
6661         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6662         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6663         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6664         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6665         always available in leading double underscore form. The C99 support is
6666         mostly missing, but it's a start.
6667         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6668         reserved identifier "__data".
6669
6670 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6671
6672         * src/mcs51/peeph.def: fixed bug 1170013
6673
6674 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6675
6676         * device/include/mcs51reg.h: fixed bug 842007
6677
6678 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6679
6680         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6681         last time.
6682
6683 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6684
6685         * src/port.h (struct PORT),
6686         * src/avr/ralloc.c (avr_assignRegisters),
6687         * src/avr/main.c,
6688         * src/ds390/ralloc.c (ds390_assignRegisters),
6689         * src/ds390/main.c,
6690         * src/hc08/ralloc.c (hc08_assignRegisters),
6691         * src/hc08/main.c,
6692         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6693         * src/mcs51/main.c,
6694         * src/pic/ralloc.c (pic14_assignRegisters),
6695         * src/pic/main.c,
6696         * src/pic16/ralloc.c (pic16_assignRegisters),
6697         * src/pic16/main.c,
6698         * src/xa51/ralloc.c (xa51_assignRegisters),
6699         * src/xa51/main.c,
6700         * src/z80/ralloc.c (z80_assignRegisters),
6701         * src/z80/ralloc.h,
6702         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6703         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6704         * src/SDCCcse.h,
6705         * src/SDCCdflow.c (computeDataFlow),
6706         * src/SDCCdflow.h,
6707         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6708         * src/SDCCloop.h,
6709         * src/SDCCcflow.c (*),
6710         * src/SDCCcflow.h,
6711         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6712         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6713         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6714         immedDom() returning wrong block; probably fixes bug #1160833)
6715
6716 2005-03-20 Borut Razem <borut.razem AT siol.net>
6717
6718         * support/scripts/inc2h.pl: WIN32 port
6719
6720 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6721
6722         * device/lib/makefile.in: added abs.c and labs.c
6723
6724 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6725
6726         * device/include/stdint.h: added
6727         * device/lib/abs.c: added
6728         * device/lib/labs.c: added
6729         * device/include/stdlib.h: added abs() and labs() prototypes
6730         * device/lib/libsdcc.lib: added abs and labs
6731         * device/include/float.h,
6732         * device/lib/_fsmul.c,
6733         * device/lib/printf_fast.c,
6734         * device/lib/printf_tiny.c: updated comments
6735
6736 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6737
6738         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6739         bug #1164313
6740
6741 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6742
6743         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6744         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6745
6746 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6747
6748         * device/lib/printf_large.c: removed inline assembly for portability and
6749           readability. Use printf_fast if speed or size are more important.
6750         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6751         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6752
6753 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6754
6755         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6756         prevent compiler warning
6757
6758 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6759
6760         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6761         moved to level 0 and declared as static. Also they are explicit
6762         placed in access bank. This was necessery because some times they
6763         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6764         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6765         optimizations. Currently only compare to unsigned char is implemented,
6766         * src/pic16/gen.c: added fReturnIdx array,
6767         * (struct resolvedIfx) is moved to gen.h and made public,
6768         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6769         * (aopForSym): added an optimization to directly store in stack of
6770         the operand of a SEND iCode,
6771         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6772         but as registers instead (AOP_REG) using the fReturnIdx array,
6773         * (pic16_freeAsmop): remove the freed register from the
6774         _G.sregsAlloc field,
6775         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6776         a compare of 'WREG',
6777         * (pic16_popGetTempRegCond): changed function prototype, now
6778         function takes also a bitVector argument v which holds the current
6779         set of registers that are allocated for stack access by aopForSym,
6780         registers allocated in aopForSym for accessing stack symbols are not
6781         any more part of the functions usedRegs field,
6782         * (genCall): some times aopOp is called for a stack variable to be
6783         send, aopForSym might perform the push, if this is true make sure
6784         that genCall doesn't push the variable twice by testing _G.resDirect,
6785         * (genFunction): changed testing for unspecified interrupt number
6786         from 256 to INTNO_UNSPEC,
6787         * modified selection scheme of frame pointer generation. Previously
6788         if function did use local registers a frame pointer was generated,
6789         now a frame pointer is generated only if function has arguments
6790         (that need PLUSW2 register access), or has stack arguments, or the
6791         compiler is not instructed to omit the frame pointer,
6792         * (genEndFunction): before restoring local registers that were saved
6793         in the function preamble, also restore the registers that *might*
6794         have been allocated for stack access,
6795         * (genRet): removed some old comments,
6796         * (genCmp, the active (RN's) version): added a call to the
6797         pic16_genCmp_special function to perform the compare with a more
6798         robust and optimized way,
6799         * (genInline): a feature has been added in inline code generation,
6800         which allows a wildcard variable substitution when writing inline
6801         assembly. Code is incomplete and experimental therefore undocumented,
6802         * (genCast): changed order of aopOp for result and right to allow
6803         aopForSym to directly load the result if possible,
6804         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6805         perform an optimized compare on some selected special occasions,
6806         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6807         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6808         generate an IVT any more,
6809         * src/pic16/main.c (pic16_optionsTable): added command line option
6810         --optimize-cmp,
6811         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6812         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6813         macros,
6814         * src/pic16/NOTES: Raphael Neider added in list of active developers
6815         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6816         jumptable_end to prevent bug #,
6817         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6818         inCond and outCond fields,
6819         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6820         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6821         turn off register spilling,
6822         * (packRegsForOneUse): synced with other ports' versions although it
6823         is not used currently,
6824         * (pic16_packRegisters): added an optimization while reading
6825         structure bitfields, some registers may be saved (malloc code is
6826         decreased by 80 bytes)
6827
6828 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6829
6830         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6831         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6832         this can be optimized more?
6833
6834 2005-03-10 Raphael Neider <rneider AT web.de>
6835
6836         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6837           genNearPointerGet): (hopefully) fixed access to bitfields via
6838           pointers (p->bitN = x; and x = p->bitN; failed)
6839
6840 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6841
6842         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6843
6844 2005-03-09 Raphael Neider <rneider AT web.de>
6845
6846         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6847
6848 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6849
6850         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6851         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6852           (regTypeNum): set REG_BIT type if necessary
6853         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6854         * support/regression/tests/critical.c: check bug 1144613
6855
6856 2005-03-02 Raphael Neider <rneider AT web.de>
6857
6858         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6859
6860 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6861
6862         * src/avr/ralloc.c (serialRegAssign),
6863         * src/ds390/ralloc.c (serialRegAssign),
6864         * src/hc08/ralloc.c (serialRegAssign),
6865         * src/mcs51/ralloc.c (serialRegAssign),
6866         * src/pic/ralloc.c (serialRegAssign),
6867         * src/pic16/ralloc.c (serialRegAssign),
6868         * src/xa51/ralloc.c (serialRegAssign),
6869         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6870
6871 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6872
6873         * src/SDCCast.c (decorateType): fixed bug 1124787
6874
6875 2005-02-20 Hubert Sack <sack AT digiplan.de>
6876         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6877
6878         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6879         patch #1121755
6880
6881 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6882
6883         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6884         to keep the correct label reference count when adding/removing references
6885         to labels. A peephole file using this is appended to patch #1144962.
6886
6887 2005-02-14 Raphael Neider <rneider AT web.de>
6888
6889         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6890         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6891         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6892           retrievals of result operand's value on assignment
6893
6894 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6895
6896         * device/include/pic16/string.h: modified prototype for memccpy()
6897         to memccpy(void *, void *, char, size_t)
6898         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6899         check whether to omit frame pointer or not,
6900         * (genInline): convert all occurences of "\n" to LF in inline
6901         assembler blocks, this helps formatting the inline text,
6902         * (pic16_loadFSR0): modified prototype,
6903         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6904         removed some 8051 legacy code,
6905         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6906         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6907         before allocating temporary registers in functions,
6908
6909 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6910
6911         * support/regression/tests/bitvars.c: corrected the "fix"
6912
6913 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6914
6915         * support/regression/tests/bitvars.c,
6916         * support/regression/tests/bitwise.c,
6917         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6918
6919 2005-02-10 Raphael Neider <rneider AT web.de>
6920
6921         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6922           different size for Alpha
6923         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6924
6925 2005-02-09 Raphael Neider <rneider AT web.de>
6926
6927         * src/SDCC.lex(doPragma) : save and restore warning options as well
6928           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6929         * have #pragma less_pedantic set the errorlevel to WARNING
6930           (fixes #1117001)
6931         * (cloneOptimize) : fixed wrong malloc's size
6932         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6933           facilitate correct handling of #pragma (save|restore)
6934
6935 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6936
6937         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6938
6939 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6940
6941         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6942
6943 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6944
6945         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6946
6947 2005-02-02 Raphael Neider <rneider AT web.de>
6948
6949         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6950         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6951         * (pic16_storeForReturn): fixed to allow returning function pointers
6952         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6953         * device/include/pic16/{stddef.h,stdbool.h}: added
6954
6955 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6956
6957         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6958
6959 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6960
6961         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6962         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6963          appeared to be required
6964
6965 2005-01-31 Borut Razem <borut.razem AT siol.net>
6966
6967         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6968           include/mcs51 and include/z80 directories to the package
6969
6970 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/hc08/gen.c (genFunction): fixed bug #1112752
6973
6974 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6975
6976         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6977
6978 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6979
6980         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6981
6982 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6983
6984         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6985
6986 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6987
6988         * device/include/c8051fxxx.h: removed these 6 files
6989         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6990
6991 2005-01-26 Raphael Neider <rneider AT web.de>
6992
6993         * src/pic16/gen.c (genAssign): fixed assignment from longs
6994           in codespace (were cut to three bytes)
6995         * (genDummyRead): implemented (except for CODESPACE...),
6996           fixed bug #1108575
6997         * src/pic16/glue.c (emitStatistics): beautified
6998         * device/lib/pic16/libm/Makefile: added include path
6999
7000 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7001
7002         * src/z80/gen.c (aopPut): fixed bug #1103902
7003
7004 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7005
7006         * device/lib/expf.c: fixed bug #1095792
7007
7008 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7009
7010         * device/lib/pic16/libm: added Math library sources
7011
7012 2005-01-24 Raphael Neider <rneider AT web.de>
7013
7014         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7015           to enable upcast to pCodeOpReg2 (there is no type tag to
7016           differenciate the two and pic16_popGet2p cast into PCOR2)
7017         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7018           (sizeof(sectNames) changed to sizeof(sectName))
7019           Both patches fix segfaults under MinGW.
7020
7021 2005-01-23 Raphael Neider <rneider AT web.de>
7022
7023         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7024           Safe_[mc]?alloc()'ed variables
7025         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7026           of (byte sized) temporaries (assign them to WREG for now)
7027         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7028           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7029           this might fix SIGSEGVs on MinGW...
7030         * src/SDCCopt.c (killDeadCode): restored original behaviour
7031           (volatile operands might get thrown away though)
7032
7033 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7034
7035         * src/pic16/gen.c: fixed bug #1106975,
7036         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7037         pointer update, INTCON is saved, global interrupts are disabled and
7038         restored after updateing TOS.
7039         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7040         * added function attribute 'shadowregs' to take advantage of shadow
7041         registers,
7042         * added function attribute 'wparam' as an alternative to the wparam
7043         pragma,
7044         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7045         user declares a non-ISR function as 'shadowregs',
7046         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7047
7048 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7049
7050         * .version: bumped version number to 2.4.8
7051         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7052         pic16 port,
7053         * device/lib/pic16/libio/i2c/: I2C module support library,
7054         * device/include/pic16/i2c.h: I2C support library header,
7055         * device/lib/pic16/libc/stdio/: standard IO support sources,
7056         * (printf_small.c): printf_small() source, supports float print,
7057         * (printf_tiny.c): printf_tiny() source, does not support floats,
7058         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7059         enable global optimizations for entire library source, other
7060         Makefiles in the source tree are also modified to reflect this,
7061         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7062         function,
7063         * doc/sdccman.lyx: updated to reflect new changes,
7064         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7065         sym->onStack if-case,
7066         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7067         sbit, idata, _idata, xdata, _xdata,
7068         * added pragma library, to link an external library, (see doc),
7069         * removed command line options, --pomit-config-words, --pomit-ivt,
7070         --pleave-reset-vector,
7071         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7072         when calling assembler to reflect memory model used, also define
7073         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7074         reflect stack model used,
7075         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7076         on stack return NULL,
7077
7078 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7079
7080         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7081           of the operands is volatile. Fixes #1020220
7082
7083 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7084
7085         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7086         * (OptimizeRegUsage): make sure that there is really no other flow where
7087           the first pCode is used
7088
7089 2005-01-22 Raphael Neider <rneider AT web.de>
7090
7091         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7092           to fix #1106967 (pCode->seq are not set up correctly)
7093
7094 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7095
7096         * src/SDCCglue.c (glue): make sure code area is declared before the
7097         static initialization area.
7098
7099 2005-01-21 Raphael Neider <rneider AT web.de>
7100
7101         * device/lib/Makefile.in: fixed test for pic16 install dir
7102         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7103           optimizations
7104         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7105           added --optimize-goto compiler switch and pragma wparam documentation
7106         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7107         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7108           and PRODH closing bug #1071770 (peephole optimizer)
7109
7110 2005-01-19 Raphael Neider <rneider AT web.de>
7111
7112         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7113           cmdLine buffers (used when calling sdcpp...) are large enough
7114           (MAX_PATH=256 truncates arguments leading to system halts when
7115           used in MinGW...)
7116         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7117         * (genUminus): rewritten to for efficiency
7118         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7119           used uninitialized in some cases)
7120         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7121           copy the third byte from the int -- now assumes 0x80 (data memory)
7122         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7123           operands (genAddLit expects the iCode's operands to swapped as
7124           well), fixed leftover bytes (crashed for short left operands)
7125         * (pic16_genMinusDec): performance improvements, removed false
7126           PIC14 emitSKPNCs
7127         * (pic16_genMinus): fixed to cope with differently sized operands
7128         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7129           for --obanksel > 1
7130         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7131         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7132           new banksel optimization
7133         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7134           analysis for temporary registers (segfaults...)
7135         * src/pic16/peeph.def: added rule
7136
7137 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7138
7139         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7140         which converts a float number to its ASCII representation
7141         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7142         functions to convert the fractional and integer part of a float to ASCII,
7143         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7144         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7145         ram
7146         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7147         _STATMEM macros,
7148         * device/include/pic16/adc.h: added GPL info,
7149         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7150         a pCodeOp as tested operand,
7151         * (genNearPointerGet): optimized bit testing, does not use
7152         intermediate register for bit value, test directly instead with
7153         BTFSS, BTFSC, works only for single bits,
7154         * (genpic16Code): dump the name of the iCode in the asm,
7155         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7156         renamed to pic16_decodeOp,
7157         * (serialRegAssign): do not allocate a temporary register for iCode
7158         sequences that test a single bit for 1/0
7159
7160 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7161
7162         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7163         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7164         access stack and frame pointers. They are initially assigned to
7165         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7166         accessing SFRs. Updated all occurences of modification of stack or
7167         frame pointer in gen.c and pcode.c,
7168         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7169         assigning of a literal value to pointers,
7170         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7171         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7172         selected
7173
7174 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7175
7176         * doc/sdccman.lyx: update documentation about stack pragma, added
7177         some info for stack memory models
7178
7179 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7180
7181         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7182
7183 2005-01-08 Raphael Neider <rneider AT web.de>
7184
7185         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7186           udata sections to fix bug #1097823
7187
7188 2005-01-05 Raphael Neider <rneider AT web.de>
7189
7190         * src/pic16/gen.c (genGenericShift): added handling of differently
7191           sized left operand and result
7192
7193 2005-01-04 Raphael Neider <rneider AT web.de>
7194
7195         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7196         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7197           to hold the condition bit)
7198         * added new version of genCmp (old code available via #define)
7199         * added new version of genShiftLeft/genShiftRight in a generic
7200           way, now supports shifting by negative values
7201         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7202           shiftCount (expected by genGenericShift)
7203         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7204         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7205           dump
7206         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7207           is an invalid literal too...)
7208
7209 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7210
7211         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7212         from Raphael Neider,
7213         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7214         for 8-bit literals. This fixes some literal operands which are sign
7215         extended to 16-bits ints when instruction needs only 8-bits.
7216
7217 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7218
7219         * device/lib/logf.c: added mcs51 assembly version
7220         * device/lib/expf.c: added mcs51 assembly version
7221         * device/lib/_logexpf.c: new shared asm code for expf and logf
7222         * device/include/math.h: add defines for assembly math library
7223         * device/lib/Makefile.in: build new _logexpf.c
7224         * device/lib/libfloat.lib: use new _logexpf.c
7225
7226 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7227
7228         * src/pic/device.c
7229         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7230           device types which have less than 0x7f registers.
7231
7232 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7233
7234         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7235
7236 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7237
7238         * device/lib/printf_fast.c: only build on supported arch.
7239         * device/lib/printf_tiny.c: only build on supported arch.
7240         * device/lib/printf_fast_f.c: only build if asm float lib
7241         * device/lib/_fsget1arg.c: only build if asm float lib
7242         * device/lib/_fsget2args.c: only build if asm float lib
7243         * device/lib/_fsnormalize.c: only build if asm float lib
7244         * device/lib/_fsreturnval.c: only build if asm float lib
7245         * device/lib/_fsrshift.c: only build if asm float lib
7246         * device/lib/_fsswapargs.c: only build if asm float lib
7247         * device/include/stdio.h: don't provide print_fast,
7248           print_fast_f, print_tiny prototypes if --xstack used
7249
7250 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7251
7252         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7253         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7254           to the SOURCES
7255
7256 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7257
7258         * device/lib/printf_fast_f.c: same as printf_fast, but
7259           with floating point enabled
7260         * device/lib/printf_fast.c: minor tweaks
7261         * device/include/stdio.h: add printf_fast_f
7262
7263 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7264
7265         * src/SDCCmain.c: make --float-reent default for mcs51
7266         * device/lib/_fsadd.c: added mcs51 assembly version
7267         * device/lib/_fssub.c: added mcs51 assembly version
7268         * device/lib/_fsmul.c: added mcs51 assembly version
7269         * device/lib/_fsdiv.c: added mcs51 assembly version
7270         * device/lib/_fseq.c: added mcs51 assembly version
7271         * device/lib/_fsneq.c: added mcs51 assembly version
7272         * device/lib/_fsgt.c: added mcs51 assembly version
7273         * device/lib/_fslt.c: added mcs51 assembly version
7274         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7275         * device/lib/Makefile.in: add _fscmp to build
7276         * device/lib/libfloat.lib: add _fscmp to build
7277
7278 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7279
7280         * device/lib/_fs2slong.c: added mcs51 assembly version
7281         * device/lib/_fs2sint.c: added mcs51 assembly version
7282         * device/lib/_fs2schar.c: added mcs51 assembly version
7283         * device/lib/_fs2ulong.c: added mcs51 assembly version
7284         * device/lib/_fs2uint.c: added mcs51 assembly version
7285         * device/lib/_fs2uchar.c: added mcs51 assembly version
7286         * device/lib/_slong2fs.c: added mcs51 assembly version
7287         * device/lib/_sint2fs.c: added mcs51 assembly version
7288         * device/lib/_schar2fs.c: added mcs51 assembly version
7289         * device/lib/_ulong2fs.c: added mcs51 assembly version
7290         * device/lib/_uint2fs.c: added mcs51 assembly version
7291         * device/lib/_uchar2fs.c: added mcs51 assembly version
7292         * device/include/float.h: added #define to select asm vs c
7293
7294 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7295
7296         * device/lib/printf_fast.c: improvements to float output
7297         * device/include/float.h: add defines for assembly float library
7298         * device/lib/_fsget1arg.c: receive 1 float arg
7299         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7300         * device/lib/_fsnormalize.c: normalize a float
7301         * device/lib/_fsreturnval.c: return float, various helper routines
7302         * device/lib/_fsrshift.c: right shift a float's mantissa
7303         * device/lib/_fsswapargs.c: swap 2 floats
7304         * device/lib/Makefile.in: build these 6 new files for mcs51
7305         * device/lib/libfloat.lib: add these 6 files to the library
7306
7307 2004-12-26 Borut Razem <borut.razem AT siol.net>
7308
7309         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7310           built by gcc 3.4.2
7311
7312 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7313
7314         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7315           and fully reentrant and register bank neutral.
7316         * device/lib/printf_fast.c: added float (not enabled by default),
7317           added compact/slower integer (also not enabled by default),
7318           improved size/speed of fast integer code, other minor changes
7319         * device/include/stdio.h, device/lib/Makefile.in,
7320           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7321
7322 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7323
7324         * src/pic16/pcode.c: declaring variables other than at the start of a
7325           block is not supported in C by VC6.
7326
7327 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7328
7329         * applied a previous patch from Raphael Neider that wasn't included
7330         in the previous commits, which fixes infinite loops within jumptable
7331         improvements,
7332         * made some fixes that previous patches introduced
7333
7334 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7335
7336         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7337         that fixes an issue with AOP_PCODE asmop's offset,
7338         * (pic16_popCopyReg): update instance field too,
7339         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7340         function of pic port,
7341         * (genCmp, genAnd, genAssign),
7342         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7343
7344 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7345
7346         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7347         variables initial values to idata section,
7348         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7349         variables in some functions. This utilizes parmBytes field of iCode
7350         structure to hold the offset of the variable in stack. (might be
7351         able to use the stack field too?)
7352         * applied patch from Raphael Neider # ### , # ###
7353         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7354         variable initial values in idata section,
7355         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7356         for static variables with initial value
7357         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7358         applied fix in while loop from Raphael Neider.
7359
7360 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7361
7362         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7363         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7364         * src/ds390/ralloc.c (serialRegAssign): spill bits
7365         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7366         * support/Util/SDCCerr.c,
7367         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7368         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7369         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7370
7371 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7372
7373         * device/include/sdcc-lib.h: inserted LGPL, added includes
7374           asm/ds390/features.h and asm/mcs51/features.h
7375         * device/include/asm/default/features.h,
7376         * device/include/asm/gbz80/features.h,
7377         * device/include/asm/z80/features.h: added empty _AUTOMEM
7378           and _STATMEM
7379         * device/include/asm/ds390/features.h,
7380         * device/include/asm/mcs51/features.h: added files with defines for
7381           _AUTOMEM and _STATMEM indicating automatic and static storage class
7382         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7383         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7384         * src/SDCCicode.c (geniCodeCast),
7385         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7386         * src/SDCCloop.c (loopInduction): removed unused variable lr
7387         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7388           to convertToFcall to include char modulo (RFE 1065037), added check
7389           if left operand is unsigned and use abs of literal value
7390         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7391           as it doesn't work after conversion from peephole.def to peephole.rul
7392         * src/mcs51/gen.c (toBoolean): added check for size,
7393           (genModOneByte): optimized code for signed char modulo a literal
7394           power of 2 (thanks to Hubert Sack),
7395           (genRRC): removed unnecessary "clr c",
7396           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7397         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7398           jump optimization,
7399           swapped rules 256.c and 256.d,
7400           extended 256.d by using new multiple checks (thanks Erik),
7401           added rules 256.e and 256.f,
7402           updated rule 261.a and 261.b to new generated code
7403         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7404
7405 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7406
7407         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7408           induction related bugs, including first part of bug #1074377
7409
7410 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7411
7412         * applied patch from bug-report #1076292,
7413         * applied patches for genAnd and Goto-optimizations for Raphael
7414         Neider,
7415         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7416         dump a less iCode information,
7417         * src/pic16/device.h (pic16_options_t): added field debgen,
7418         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7419         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7420         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7421         puclic,
7422         * (various functions): added macros FENTRY and FENTRY2 to functions,
7423         to emit function prologue,
7424         * (various functions): fixed indentation,
7425         * (genNearPointerGet): fixed loading of FSR0,
7426         * (genPackBits): applied patch from Raphael Neider to fix updating
7427         of FSR0 and touching only the modified bits,
7428         * src/pic16/genarith.c (various functions): added macros FENTRY to
7429         emit function prologue in comments,
7430         * src/pic16/pcode.h: added functions debugf2, debugf3,
7431         * src/pic16/ralloc.c: partial fix for packForPush caused
7432         segmentation fault,
7433
7434 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7435
7436         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7437           <stsp AT users.sourceforge.net> with reversed byte order
7438         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7439
7440 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7441
7442         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7443           bug #1074377
7444         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7445         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7446
7447 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7448
7449         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7450
7451 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7452
7453         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7454           conditions,
7455           (setFromConditionArgs): friendly operand parser for peephole rules,
7456           (operandBaseName, operandsNotRelated): new peephole condition
7457           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7458           architecture specific register naming into account, handles n-way
7459           comparisons, and supports quoted literals
7460         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7461
7462 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7463
7464         * src/mcs51/peeph.def: fixed bug #1076940
7465
7466 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7467
7468         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7469
7470 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7471
7472         Adding support for replacing ljmps with sjmps in jumptables
7473         generated for switch statements. For now you need to set the
7474         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7475         Now 4 algorithms for mcs51 jumptable generation are used:
7476         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7477         addresses loaded pc-relative for up to 112 cases and stack-pushing
7478         target addresses loaded with offset from dptr for up to 256 cases.
7479
7480         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7481         * src/mcs51/main.c: adapted constants for switch table generation
7482         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7483
7484 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7485
7486         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7487         * support/regression/tests/bug1057979.c: added test for bug 1073386
7488
7489 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7490
7491         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7492         compilers
7493
7494 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7495
7496         * src/pic16/device.h,
7497         * src/pic16/genarith.c,
7498         * src/pic16/glue.c,
7499         * src/pic16/main.c,
7500         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7501
7502 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7503
7504         Large cummulative patch for pic16 port.
7505         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7506         to call when a stack overflow occurs,
7507         * (malloc.h): added CVS Id tag,
7508         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7509         variable,
7510         * added libc directory. The current version of LibC contains string
7511         functions, ctype functions and macros and some functions of the
7512         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7513         be extensively tested in the future. Standard disclaimer here.
7514         Library is not automatically build yet. But one can build it by
7515         invoking 'make' inside the libc directory.
7516         * added ADC library under libio. Preliminary version yet.
7517
7518         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7519         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7520         aopForRemat() now and not by pic16_aopOp(),
7521         * (pic16_popGetTempReg): removed warning messgae when allocating
7522         temporary registers, its a buggy feature and will be removed,
7523         * (pic16_popGet): set register instance field in AOP_CRY,
7524         * (pic16_outBitC): fixed for results in size greater than 1,
7525         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7526         * (pic16_storeForReturn): optimized return of 0,
7527         * (genCmp): experimental code for new genCmp which uses PIC18's
7528         special compare&skip instructions. Initial tests fail some times
7529         with variables grater than 1 byte in size, so new code is disabled,
7530         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7531         a single bit,
7532         * (genCast): began a fix to optimize the casting of a bit to another
7533         bit, now assigning a bitfield to another bitfield will fail, sorry,
7534         * src/pic16/main.c: disabled the use of lr-support feature,
7535         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7536         * added some function prototypes, added function _debugf prototype,
7537         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7538         bits with offset (case PO_GPR_BIT),
7539         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7540         command line,
7541         * (isBankInstruction): modified to return 0 for no banking instruction,
7542         and 1 for banking instruction,
7543         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7544         caused stop processing pCodes after a inline assembly block,
7545         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7546         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7547         registers when it shouldn't,
7548         * src/pic16/ralloc.c (allocReg): add preliminary support for
7549         supporting a limited set of temporary registers,
7550
7551 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7552
7553         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7554           genDataPointerSet): ensure assignments always copy in MSB to LSB
7555           order,
7556           (loadRegFromAop): recognize CLRH optimization,
7557           (genFunction): optimize RECEIVE iCodes in reentrant functions
7558
7559 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7560
7561         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7562           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7563           selected.
7564         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7565         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7566           contiguous with data
7567
7568 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7569
7570         * device/lib/_gptrget.c (_gptrget),
7571         * device/lib/_gptrgetc.c (_gptrgetc),
7572         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7573           instead of sjmp to ret
7574         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7575           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7576
7577 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7578
7579         * .version: bumped version to 2.4.7
7580         * device/lib/_gptrget.c (_gptrget): is now _naked
7581         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7582         * device/lib/_gptrput.c (_gptrput): is now _naked
7583         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7584           (createFunction): fixed xstack
7585         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7586         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7587           or bit either,
7588           (geniCodeCritical): store original interrupt state in an iTemp bit
7589           var unless stack-auto
7590         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7591         * src/SDCCmain.c (setIncludePath): added include/target to search path
7592         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7593         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7594           prototype,
7595           (processFuncArgs): put bit vars in bit area
7596         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7597           unsaveRBank): fixed xstack,
7598           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7599           (genFunction, genEndFunction): fixed xstack,
7600           (genAssign): optimization don't walk backwards through mem
7601         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7602         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7603         * support/regression/Makefile: also make library (for stack-auto) when
7604           making "all" and added "test-mcs51-xstack-auto"
7605         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7606         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7607         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7608         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7609         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7610           make-library by MAKE_LIBRARY
7611         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7612           regression tests for xstack
7613         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7614         * support/regression/tests/critical.c: test for critical on mcs51
7615
7616 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7617
7618         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7619           built version of sdcc instead of installed version
7620
7621 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7622
7623         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7624         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7625           vprintf.c now
7626         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7627         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7628           WARNING: remove device/lib/build/z80/printf.o by hand when
7629           updating from previous build!
7630         * device/lib/z80/printf.c: updated comment
7631         * support/regression/tests/bug1057979.c: test all ports now
7632         * support/regression/tests/bug1065458.c: file added
7633
7634 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7635
7636         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7637           *_start and *_end symbols for static functions
7638
7639 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7640
7641         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7642           and search crt0.o in all library paths,
7643           (setIncludePath): proper handling of --nostdinc,
7644           (setLibPath): proper handling of --nostdlib
7645         * support/regression/Makefile,
7646         * support/regression/ports/ds390/spec.mk,
7647         * support/regression/ports/gbz80/spec.mk,
7648         * support/regression/ports/hc08/spec.mk,
7649         * support/regression/ports/mcs51/spec.mk,
7650         * support/regression/ports/mcs51-large/spec.mk,
7651         * support/regression/ports/mcs51-stack-auto/spec.mk,
7652         * support/regression/ports/z80/spec.mk: use include and lib files from
7653           built version of sdcc instead of installed version
7654         * doc/sdccman.lyx: fixed typo in --nostdinc
7655
7656 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7657
7658         * src/pic/pcode.c,
7659         * src/pic/device.c,
7660         * src/pic/ralloc.c,
7661         * src/pic/gen.c : added support to generate code for struct bit fields.
7662
7663 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7664
7665         * as/xa51/xa_version.h,
7666         * device/include/errno.h,
7667         * device/include/regc515c.h,
7668         * device/lib/_itoa.c,
7669         * device/lib/_ltoa.c,
7670         * device/lib/ser_ir_cts_rts.c,
7671         * sim/ucsim/xa.src/glob.cc,
7672         * sim/ucsim/xa.src/inst_gen.cc,
7673         * sim/ucsim/xa.src/xa_bit.cc,
7674         * sim/ucsim/xa.src/xa_sfr.cc,
7675         * sim/ucsim/z80.src/inst_dd.cc,
7676         * sim/ucsim/z80.src/inst_fdcb.cc,
7677         * support/scripts/keil2sdcc.pl,
7678         * src/pic16/pic16.dsp,
7679         * src/pic16/pic16a.dsp: corrected cvs line endings
7680         * device/lib/printf_large.c: fixed bug 1057979
7681         * src/pic16/gen.c: fixed non-C standard code
7682         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7683         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7684         * support/regression/ports/mcs51/support.c: reload T1 asap
7685         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7686           pdata use and clear idata startup behaviour
7687         * support/regression/tests/bug1057979.c: added
7688
7689 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7690
7691         * device/examples/ds390/ow390/ad26.h,
7692         * device/examples/ds390/ow390/cnt1d.h,
7693         * device/examples/ds390/ow390/crcutil.c,
7694         * device/examples/ds390/ow390/ownet.h,
7695         * device/examples/ds390/ow390/owsesu.c,
7696         * device/examples/ds390/ow390/swt12.h,
7697         * device/examples/ds390/ow390/swtoper.c,
7698         * device/examples/ds390/ow390/temp10.h,
7699         * device/examples/ds390/ow390/thermodl.c,
7700         * device/examples/ds390/tinitalk/tinitalk.dsp,
7701         * device/examples/ds390/tinitalk/tinitalk.dsw,
7702         * device/examples/mcs51/clock/hw.h,
7703         * device/examples/mcs51/simple2/go.bat,
7704         * device/examples/serialcomm/windows/serial.h,
7705         * device/examples/xa51/dummy.c,
7706         * device/examples/xa51/hello.c,
7707         * device/include/80c51xa.h,
7708         * device/include/at89x051.h: corrected cvs line endings
7709
7710 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7711
7712         * src/pic16/main.c (options): added command line --gstack, to trace
7713         stack over/under flows,
7714         * added pragma 'wparam' to allow passing first byte of function
7715         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7716         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7717         call to __gstack_test function and sets up the symbol as extern,
7718         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7719         * popaop): added call to pic16_testStackOverflow,
7720         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7721         wparamList list,
7722         * (genCall, genPcall): now all parameters are passed via stack
7723         except in functions that are pass to wparam pragma in which WREG is
7724         used too,
7725         * (genPcall): REENTRANT flag is checked to see if variable prototype
7726         contains reentrant keyword, don't call a non-reentrant function, via
7727         a reentrant function pointer or vice versa, functions are never
7728         passed via WREG,
7729         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7730         D.Winkler,
7731         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7732         SIGSEGV when accessing a NULL register stucture,
7733         * (pic16_printGPointerType): modified to handle UPPER modifier for
7734         function initializers, changed prototype of function to simpler one,
7735         * (pic16_printIvalFuncPtr): check to see if function is already
7736         added in externs list,
7737         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7738         optimized a move from W to SFR with a move to the same register
7739         later after a CALL,
7740         * device/lib/pic16/debug: NEW directory, contains debug features
7741         which are enabled when linking with libdebug.lib, currently command
7742         line option --gstack enables stack pointer tracing for over/under
7743         flow, corresponding sources are in debug/gstack
7744
7745 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7746
7747         * doc/sdccman.lyx: updated SDCC version,
7748         * (PIC16 port): update list of command line options,
7749         * src/pic16/device.h (structure pic16_options_t): added field gstack
7750         to enable stack overflow tracing on push/pops,
7751         * src/pic16/device.c (statistics structure): added statistics
7752         structure,
7753         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7754         pic16_dump_int_registers): increase statistics counters for each
7755         * variable which is encountered
7756         * (pic16_dump_usection): emit each .udata variable to its own udata
7757         section,
7758         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7759         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7760         parameters via stack, otherwise use old scheme,
7761         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7762         assembler output file,
7763         * src/pic16/main.c: added command line options --gstack to enable
7764         push/pop tracing for stack overflow,
7765         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7766         instructions): added size of each instruction,
7767         * (pic16_countInstruction): estimate size of instructions in
7768         the_pFile list, inline assembly blocks are not counted,
7769         * (pic16_FixRegisterBanking): trace previous register usage, when
7770         banksel optimizations is greater than 0, don't emit a redudant
7771         banksel directive,
7772
7773 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7774
7775         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7776         * src/pic16/ralloc.c : applied same fix for pic16.
7777         * src/pic/gen.c : tidied it up a little.
7778
7779 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7780
7781         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7782         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7783
7784 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7785
7786         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7787
7788 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7789
7790         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7791         non-reentrant function __modsint in the interrupt function (thus
7792         corrupting math operations during serial I/O)
7793         * device/lib/ser_ir.c: as above, changed buffersize
7794         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7795         256.c,d for zeroing
7796         * doc/Makefile: added option -t for rsync
7797
7798 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7799
7800         * src/SDCCast.h (struct ast),
7801         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7802
7803 2004-10-20 Borut Razem <borut.razem AT siol.net>
7804
7805         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7806         package
7807
7808 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7809
7810         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7811         makefile targets,
7812         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7813         support functions to replace long sequences of MOVFF's from access
7814         bank registers to stack and vice versa,
7815         * src/pic16/device.h: added new field opt_flags, where optimization
7816         flags can be set to enable certain features,
7817         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7818         * pBlock, (genFunction, genEndFunction): surroung loop for
7819         saving/loading used registers in stack with PC_INFO pCodes,
7820         INF_LREGS. Code in between can then be optimized by pCode optimizer
7821         to support function calls,
7822         * (genDataPointerSet): fixed bug which loaded float fields in
7823         structures with corrupt data,
7824         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7825         in a standard way debug info on stderr. Feature used for developing
7826         and debugging only,
7827         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7828         obsolete chunks of code,
7829         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7830         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7831         * pic16/src/pcode.c (pic16_newpCodeInfo,
7832         * (pic16_newpCodeOpLocalRegs),
7833         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7834         feature,
7835         * (pic16_pCodeConstString): printing of the initial value of a
7836         symbol as a comment is inhibited since parsing was already done by
7837         copyStr and output is corrupt,
7838         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7839
7840 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7841
7842         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7843
7844 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7845
7846         * as/mcs51/lkarea.c: removed old K&R style,
7847           (lnksect): changed check on boundary error,
7848           (lnksect2): changed check on boundary error,
7849           (lnksect2): extend XSTK to end of page if size = 1
7850         * as/mcs51/lkmain.c: removed old K&R style,
7851           (Areas51): create l_IRAM symbol
7852         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7853         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7854           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7855         * device/lib/_mullong.c: added version to be compiled with xstack
7856         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7857         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7858         * device/lib/mcs51/crtxstack.asm: fixed comment
7859         * src/SDCCglue.c: maxInterrupts defaults to 0,
7860           (emitMaps): added pdata,
7861           (createInterruptVect): (re)moved default,
7862           (glue): added pdata,
7863           (glue): moved __start__xstack to XSTK with default size 1
7864         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7865           and options.float_rent when options.stackAuto is set,
7866           (linkEdit): only write XDATA_NAME if provided on command line
7867         * src/SDCCmem.h,
7868         * src/SDCCmem.c: added pdata
7869         * src/port.h: added pdata_name to PORT
7870         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7871           (saveRegisters, unsaveRegisters): removed usage of B,
7872           (genMinus): fixed accumulator clash,
7873           (genJumpTab): added comment, this needs another look
7874         * src/mcs51/gen.c: added check for "B in use" paranoia,
7875           added pushB() and popB()
7876         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7877           chance
7878         * src/avr/main.c,
7879         * src/ds390/main.c,
7880         * src/hc08/main.c,
7881         * src/mcs51/main.c,
7882         * src/pic/main.c,
7883         * src/pic16/main.c,
7884         * src/xa51/main.c,
7885         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7886           added PSEG (PAG,XDATA) or NULL to port specifier
7887         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7888         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7889           (_mcs51_genInitStartup): removed __start__xstack equ,
7890           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7891         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7892         * src/z80/gen.c (_rleAppend): fixed warnings
7893         * support/regression/tests/zeropad.c: added pdata test
7894         * .version: bumped to 2.4.6
7895
7896 2004-10-17 Borut Razem <borut.razem AT siol.net>
7897
7898         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7899         as a part of nightly build
7900
7901 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7902
7903         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7904         WREG holds the first byte function parameters,
7905         * (aopForSym): take special case for symbols which are in FARSPACE
7906         but in CODESPACE too,
7907         * (assignResultValue): modified to take into account _G.useWreg,
7908         * (genCall): don't use wreg for parameter passing when function is
7909         declared as reentrant, too, added optimization INCF to stack
7910         pointer when stack parameter count is 1,
7911         * (genFunction, genEndFunction): refurnished and fixed to not using
7912         wreg for passing parameters when function has varargs or is
7913         reentrant, fixed bug with symbol name compare for generating
7914         functions in absolute address,
7915         * (pic16_storeForReturn): refurnished,
7916         * (genCmp): began writing a new version of the function, not ready
7917         yet, therefore it is disabled,
7918         * (genAssign): do not read code memory when assigning a function to
7919         a pointer function,
7920         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7921         array of characters, not pointer,
7922         * (pic16initialComments): in debug mode emit an .ident directive for
7923         the assembler,
7924         * (_process_pragma): emit a new warning type (internal to pic16)
7925         when setting stack to default length, emit a similar warning when
7926         placing a function at absolute address and address is not word aligned
7927         * (_pic16_parseOptions): added 'return TRUE' statement,
7928         * (_pic16_linkEdit): if compiling a source, then add the source's
7929         file object, first in the list of objects to link,
7930
7931 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7932
7933         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7934         * src/pic/main.c : removed VC warning.
7935         * src/pic/gen.c : changed comment.
7936
7937 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7938
7939         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7940         reference to a deprecated symbol _GPTRREG was causing failure to
7941         link. Thanks G. M. Gallant for the info.
7942
7943 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7944
7945         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7946         comments for Bugs item #954788.
7947
7948 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7949
7950         * src/pic16/device.c (pic16_dump_gsection,
7951         * pic16_groupRegistersInSection): handle symbols declared to be in
7952         access bank differently,
7953         * src/pic16/gen.c (struct _G): added field resDirect,
7954         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7955         send values read from stack directly to result and don't allocate
7956         temporary values,
7957         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7958         same registers,
7959         * (pic16_sameRegsOfs): NEW,
7960         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7961         free because they were not allocated from temporary pool,
7962         * pic16_popRegFromString): workaround to fix a problem with
7963         allocating variables twice or never,
7964         * (genGenPointerGet): using PRODL instead of FSR0H,
7965         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7966         instead of FSR0H,
7967         * (genAssign): take advantage of the _G.resDirect flag,
7968         * (genCast): around line 11844, use mov2f instead of directly
7969         MOVFF'ing between operands to account for literal values,
7970         * src/pic16/genutils.c: some new debug functions for gpsim have been
7971         added,
7972         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7973         float with integer part only,
7974         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7975         place variables in access bank
7976         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7977         updated sources to reflect recent changes in gen.c
7978
7979 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7980
7981         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7982         sources that searched for headers in installation path, now the
7983         device/include/pic16 is used,
7984         * src/pic16/glue.c (pic16glue),
7985         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7986         .line directives if not in debug mode, this suppresses assembler's
7987         warnings for ignored directives
7988
7989 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7990
7991         * src/port.h: made reset_regparms prototype void parameter explicit.
7992         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7993         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7994         * doc/sdccman.lyx: documented warning disabling and how to use
7995           printf_large to make it print floats.
7996         * device/include/stdbool.h: NEW
7997         * device/lib/_atof.c,
7998         * device/lib/_divuint.c,
7999         * device/lib/_divulong.c,
8000         * device/lib/expf.c,
8001         * device/lib/printf_large.c,
8002         * device/lib/sincosf.c,
8003         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8004         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8005           a completely reentrant lib.
8006
8007 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8008
8009         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8010         * device/include/pic16/stdio.h: fixed bug with colon
8011
8012 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8013
8014         * device/include/pic16/stdio.h,
8015         * device/include/pic16/stdlib.h,
8016         * device/include/pic16/math.h: NEW
8017         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8018         declared as _naked to reduce overhead
8019         * device/lib/Makefile.in (target port-specific-objects-pic16):
8020         changed * to *.* so to ignore the CVS directory,
8021         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8022         stacked variables back in stack,
8023         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8024         corruption
8025
8026 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8027
8028         * .version: bumped version number to 2.4.5
8029         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8030         * support/Util/SDCCerr.c (messages structure): added entry for
8031         W_POSSBUG2
8032
8033         Large cumulative patch for pic16 port and libraries.
8034         * device/include/pic16/sdcc-lib.h,
8035         * device/include/pic16/stdarg.h,
8036         * device/include/asm/pic16/features.h,
8037         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8038         * device/include/pic16/float.h: changes reentrant keyword with
8039         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8040         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8041         updated target build-libraries to include objects from gptr,
8042         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8043         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8044         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8045         all function headings,
8046         * src/SDCCmain.c: added global parameter userIncDirsSet,
8047         * (parseCmdLine): when option -I is encountered add directory to
8048         userIncDirsSet too,
8049         * src/version.awk: added space between control and long,
8050         * src/pic16/NOTES: added some notes for the port,
8051         * src/pic16/gen.c: added prototype for mov2fp function,
8052         * (fReturnpic16[]): properly named return value registers,
8053         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8054         * (aopForSym): added code to handle symbols with onStack flag set,
8055         symbols onStack are allocated PTRSIZE bytes,
8056         * (aopFreeAsmop): handles special case where asmops are stack objects,
8057         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8058         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8059         added argument lock to trace flaws in allocating temporary registers
8060         when developing port,
8061         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8062         * (pic16_popRegFromString): reenabled allocating a direct register
8063         from string,
8064         * (assignResultValue): various beautifications,
8065         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8066         referenced function argument,
8067         * (genIpush): reenabled to allow stacked arguments, handles only
8068         ic->parmPush iCodes,
8069         * (genCall, genPcall): major changes to allow for variable argument
8070         functions, fixed a bug with falsely restoring stack pointer after
8071         returning from call,
8072         * (genFunction): pending code for critical function,
8073         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8074         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8075         * (genNearPointerGet): fixed bug with indirect reading, was always
8076         reading from INDF0
8077         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8078         pointers,
8079         * (genAddrOf): rewrote code to take address of a stacked function parameter
8080         * (genCast): fixed casting to generic pointer type,
8081         * src/pic16/gen.h: added AOP_STA,
8082         * (struct asmop): added field stk,
8083         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8084         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8085         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8086         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8087         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8088         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8089         generic pointers,
8090         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8091         and library paths,
8092         * (pic16_port structure): generic pointer size is set to 3,
8093         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8094         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8095         compiler warning,
8096         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8097         operand is an iTemp,
8098
8099 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8100
8101         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8102         * debugger/mcs51/simi.c: addapt new syntax of s51
8103
8104 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8105
8106         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8107         * src/pic16/pcode.c: commented out some calls to free() in order to
8108         fix bug #989576,
8109
8110 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8111
8112         * src/SDCCicode.h,
8113         * src/SDCCicode.c (isiCodeInFunctionCall),
8114         * src/avr/ralloc.c (selectSpil),
8115         * src/pic/ralloc.c (selectSpil),
8116         * src/pic16/ralloc.c (selectSpil),
8117         * src/ds390/ralloc.c (selectSpil),
8118         * src/hc08/ralloc.c (selectSpil),
8119         * src/xa51/ralloc.c (selectSpil),
8120         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8121         stack in the middle of a function call sequence (fixes bug #1020268)
8122         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8123         costs associated with the minimum switch case.
8124
8125 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8126
8127         * src/SDCC.lex: fixed bug #1030549
8128
8129 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8130
8131         * src/SDCCcse.h (struct cseDef),
8132         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8133         over a function call if the CSE is derived from a symbol whose
8134         address has been taken (fixes bug #1029883)
8135         * support/regression/tests/bug-1029883: a new regression test for
8136         this bug
8137
8138 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8139
8140         * src/hc08/gen.c (emitinline): fixed bug #1029778
8141         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8142         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8143         and starts toward RFE #905167)
8144
8145 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8146
8147         * src/pic16/gen.c (mov2f): New function to move an operand to
8148         another without considering if it is a literal or a register,
8149         * (pic16_sameRegs): don't check if they are both AOP_REG,
8150         * (AccRsh): removed andmask=0 lines,
8151         * (genLeftShift): duplicated to be improved in future versions,
8152         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8153         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8154         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8155         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8156         * (insertBankSwitch): fixed inserting banksel directives algorithm
8157         for instructions that follow a skip instruction, this fixes a report
8158         for broken subtraction code generation,
8159         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8160         iCode is a left op, just in case result and right share the same
8161         registers
8162
8163 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8164
8165         * src/hc08/main.c,
8166         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8167         preservation of HX
8168         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8169         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8170         on 2004-09-12; it was buggy
8171
8172 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8173
8174         * src/SDCCsymt.h: removed RESULT_CHECK
8175         * src/SDCCast.c,
8176         * src/SDCCglue.c,
8177         * src/SDCCval.c,
8178         * src/pic/glue.c,
8179         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8180
8181 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8182
8183         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8184         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8185         configuration values no more rejected by compiler, they are assigned
8186         to configuration registers with a warning message instead,
8187         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8188         the for-loop so last conf register is emitted too,
8189         * (_pic16_initPaths): link library libsdcc.lib by default,
8190         * (_hasNativeMulFor): modified test for multiplication according to
8191         Raphael Neider's remarks. Integer multiplication is also done with
8192         support functions,
8193         * device/include/pic16/pic18fregs.h: corrected type error in while
8194         testing and including 18f6720 header file
8195
8196 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8197
8198         * src/pic16/device.h (pic16_options): removed field use_crt,
8199         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8200         until an optimization to handle single bits is added,
8201         * (pic16_loadFSR0): moved before genUnpackBits,
8202         * (genAnd): some white lines removed,
8203         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8204         leave_reset flags in pic16_options when using crt modules,
8205
8206 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8207
8208         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8209           for bugs 898889 & 979599. Also used some safer print instructions.
8210
8211 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8212
8213         * src/pic16/device.h (pic16_options_t): added field use_crt,
8214         crt_name, no_crt,
8215         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8216         catch a probable future bug,
8217         * src/pic16/gen.c: aopIdx function commented out,
8218         * (genAssign): commented out old code which used aopIdx,
8219         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8220         code, added if conditionals to take into account the --use-crt
8221         command line options,
8222         * src/pic16/main.c (pic16_optionsTable): added new command line
8223         options, --use-crt= and --no-crt,
8224         * (_pic16_linkEdit): now the proper crt object is added in the
8225         linker command line except than when --no-crt is specified,
8226         * src/pic16/pcode.c,
8227         * src/pic16/pcode.h: added some structures and functions for a new
8228         optimization scheme to compansate for instruction overhead between
8229         same iCodes, this scheme is currently under development and is not
8230         working in any way,
8231         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8232         to && operator,
8233         * device/lib/pic16/startup/crt0i.c,
8234         * device/lib/pic16/startup/crt0iz.c: added global char variable
8235         __uflags to force the generation of an idata section
8236
8237 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8238
8239         * doc/Makefile,
8240         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8241         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8242
8243 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8244
8245         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8246         Frieder) and clarified the default code optimization mode
8247
8248 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8249
8250         * src/SDCC.lex (doPragma, process_pragma),
8251         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8252         "opt_code_size", and "opt_code_balanced"
8253         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8254         regrouped options by category, added support for category headers
8255         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8256         and "--opt-code-size"
8257         * doc/sdccman.lyx: documented these new options and pragmas
8258         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8259         preference into account
8260
8261 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8262
8263         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8264           geniCodePreDec): Fixed bug 904237 by generating a warning
8265         * src/SDCCerr.h,
8266         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8267
8268 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8269
8270         * src/pic/device.c : When no max ram set validate full memory range.
8271         * src/pic/pcode.c,
8272         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8273
8274 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8275
8276         * device/lib/_gptrget.c,
8277         * device/lib/_gptrput.c: updated comment
8278         * device/lib/calloc.c,
8279         * device/lib/free.c,
8280         * device/lib/malloc.c,
8281         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8282         * src/SDCCcse.c (cseBBlock),
8283         * src/SDCCicode.c (printOperand, geniCodeArray),
8284         * src/SDCCicode.h (struct operand): fixed bug 868103
8285         * support/regression/tests/bug-868103.c: added
8286         * src/SDCCast.c (searchLitOp),
8287         * src/SDCCcse.h (struct cseDef),
8288         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8289         * src/SDCCicode.h (struct operand),
8290         * src/SDCCsymt.h (struct sym_link),
8291         * src/avr/gen.c (hasInc),
8292         * src/ds390/gen.c (hasInc),
8293         * src/hc08/gen.c (genPlusIncr, hasInc),
8294         * src/mcs51/gen.c (hasInc),
8295         * src/pic16/glue.c (pic16_printIvalChar),
8296         * src/pic16/ralloc.c (regWithIdx),
8297         * src/xa51/gen.c (hasInc) : removed warnings
8298         * src/SDCCast.c (createBlock): added comment ???
8299         * src/hc08/ralloc.c: updated comments
8300
8301 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8302
8303         * doc/sdccman.lyx: updated section on switch statements, added
8304         section about semaphore locking
8305         * doc/Makefile: added option -info for latex2html
8306         * device/lib/_gptrget.c,
8307         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8308
8309 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8310
8311         * src/pic/device.h,
8312         * src/pic/device.c,
8313         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8314          maxram is less than 0x100.
8315
8316 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8317
8318         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8319
8320 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8321
8322         * src/port.h,
8323         * src/mcs51/main.c,
8324         * src/ds390/main.c,
8325         * src/z80/main.c,
8326         * src/hc08/main.c,
8327         * src/pic/main.c,
8328         * src/pic16/main.c,
8329         * src/avr/main.c,
8330         * src/xa51/main.c
8331         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8332         a jump table is the best form for a switch statement, including
8333         automatic insertion of missing cases to make the case range
8334         continuous. Developed in collaboration with Frieder Ferlemann.
8335
8336 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8337
8338         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8339         accumulator result if it needs sign extension
8340
8341 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8342
8343         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8344
8345 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8346
8347         * device/lib/gbz80/printf.c,
8348         * device/lib/z80/printf.c: removed define for NULL
8349
8350 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8351
8352         * as/xa51/xa_link.c,
8353         * device/examples/ds390/ow390/ad26.c,
8354         * device/examples/ds390/ow390/cnt1d.c,
8355         * device/examples/ds390/ow390/counter.c,
8356         * device/examples/ds390/ow390/ds2480.h,
8357         * device/examples/ds390/ow390/ds2480ut.c,
8358         * device/examples/ds390/ow390/findtype.c,
8359         * device/examples/ds390/ow390/gethumd.c,
8360         * device/examples/ds390/ow390/owllu.c,
8361         * device/examples/ds390/ow390/ownetu.c,
8362         * device/examples/ds390/ow390/swt12.c,
8363         * device/examples/ds390/ow390/swtloop.c,
8364         * device/examples/ds390/ow390/temp.c,
8365         * device/examples/ds390/ow390/temp10.c,
8366         * device/examples/ds390/ow390/thermo21.c,
8367         * device/examples/ds390/ow390/tinilnk.c,
8368         * device/examples/ds390/ow390/tstfind.c,
8369         * device/examples/serialcomm/windows/serial.cpp,
8370         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8371         * device/include/reg51.h: fixed line endings for cvs
8372
8373 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8374
8375         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8376         packRegsForAccUse, packRegisters): new accumulator register
8377         packing algorithm
8378         * support/regression/ports/hc08/support.c (_putchar): suppress
8379         warning of unused variable
8380         * src/SDCCicode.c: added SWAP entry to codeTable
8381
8382 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8383
8384         * device/lib/sprintf.c: forgot to add this file before previous commit
8385
8386 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8387
8388         * src/pic16/gen.c (genPackBits): added operand right in function
8389         parameters, load result directly if p_type is POINTER (that is
8390         called by genNearPointerSet)
8391         * (genUnPackBits): added operand left in function parameters,
8392         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8393         FSR0 if accessing bitfields,
8394
8395 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8396
8397         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8398           _print_format; updated printf, sprintf, vsprintf
8399         * device/include/asm/default/features.h: corrected comment/define
8400         * device/lib/Makefile.in: added sprintf.c
8401         * device/lib/libsdcc.lib: added sprintf module
8402         * device/lib/printf_large.c,
8403         * device/lib/vprintf.c,
8404         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8405           into these 3 files
8406         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8407         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8408         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8409           hc08 test
8410         * support/regression/tests/zeropad.c: define idata as data for hc08
8411
8412 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8413
8414         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8415         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8416         labels are referenced at least once (even if a reference is not found)
8417         * src/hc08/gen.c (emitcode): set isComment flag for comments
8418         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8419         loads), rules 6a..6b (optimize jumps to return)
8420
8421 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8422
8423         * device/lib/acosf.c (acosf),
8424         * device/lib/asinf.c (asinf),
8425         * device/lib/atanf.c (atanf),
8426         * device/lib/ceilf.c (ceilf),
8427         * device/lib/cosf.c (cosf),
8428         * device/lib/coshf.c (coshf),
8429         * device/lib/cotf.c (cotf),
8430         * device/lib/fabsf.c (fabsf),
8431         * device/lib/floorf.c (floorf),
8432         * device/lib/log10f.c (log10f),
8433         * device/lib/logf.c (logf),
8434         * device/lib/sinf.c (sinf),
8435         * device/lib/sinhf.c (sinhf),
8436         * device/lib/sqrtf.c (sqrtf),
8437         * device/lib/tanf.c (tanf),
8438         * device/lib/tanhf.c (tanhf),
8439         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8440         replaced all instances of "reentrant" in the library functions
8441         defined in math.h with this macro.
8442         * support/regression/tests/float_trans.c: reenabled test for hc08
8443
8444 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8445
8446         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8447         erroneously deleted
8448
8449 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8450
8451         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8452         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8453         multi-byte volatile operands are used
8454         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8455         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8456         initialization to area GSINIT0 so that it would always precede
8457         any static initializers in GSINIT
8458         * support/regression/tests/zeropad.c: fixed idata define for hc08
8459         * support/regression/tests/bug-927659.c,
8460         * support/regression/tests/float_trans.c: disabled tests for hc08
8461         pending missing library routines
8462         * .version: increased version number to 2.4.4 - hc08 port now passes
8463         regression tests
8464
8465
8466 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8467
8468         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8469         * Makefile.common.in,
8470         * as/Makefile,
8471         * as/hc08/Makefile.in,
8472         * as/mcs51/Makefile.in,
8473         * as/z80/Makefile.in,
8474         * debugger/mcs51/Makefile.in,
8475         * device/include/Makefile.in,
8476         * device/lib/Makefile.in,
8477         * doc/Makefile,
8478         * link/Makefile,
8479         * link/z80/Makefile.in,
8480         * packihx/Makefile.in,
8481         * sim/ucsim/main_in.mk,
8482         * sim/ucsim/avr.src/Makefile.in,
8483         * sim/ucsim/doc/Makefile.in,
8484         * sim/ucsim/gui.src/serio.src/Makefile.in,
8485         * sim/ucsim/hc08.src/Makefile.in,
8486         * sim/ucsim/s51.src/Makefile.in,
8487         * sim/ucsim/xa.src/Makefile.in,
8488         * sim/ucsim/z80.src/Makefile.in,
8489         * src/Makefile.in,
8490         * support/cpp2/Makefile.in,
8491         * support/librarian/Makefile,
8492         * support/makebin/Makefile: added DESTDIR to the install path proposed
8493         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8494         * doc/sdccman.lyx: added DESTDIR documentation
8495
8496 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8497
8498         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8499         instruction for interrupt handlers, use fast returns when returning
8500         from high priority interrupts
8501
8502 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8503
8504         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8505         code generation
8506         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8507         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8508         bugs, ported much of Bernhard's code from mcs51
8509         * src/mcs51/gen.c (genSend),
8510         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8511         than one when calling a reentrant function
8512         * device/lib/_mullong.c: defined an alternate struct layout for big
8513         endian ports (hc08)
8514
8515 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8516
8517         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8518         test
8519
8520 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8521
8522         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8523         are sane and complete before asking the port its prefered parameter
8524         passing method (fixes bug #1017633)
8525         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8526         and _ret3
8527
8528 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8529
8530         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8531         problem in bitfields >= 8 bits.
8532
8533 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8534
8535         * src/SDCCsymt.c: undid changes that were not meant to be committed
8536
8537 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8538
8539         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8540
8541 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8542
8543         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8544           copied and wrong bit got inverted
8545
8546 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8547
8548         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8549         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8550         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8551         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8552         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8553         assignments to bitfields at known addresses
8554         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8555         reads from bitfields at known addresses
8556         * src/hc08/ralloc.c (packRegisters),
8557         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8558         genhc08Code): optimize pointer get values used as conditionals
8559         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8560         and branch
8561
8562 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8563
8564         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8565         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8566         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8567         as conditionals
8568
8569 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8570
8571         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8572
8573 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8574
8575         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8576         related problems
8577
8578 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8579
8580         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8581
8582 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8583
8584         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8585         mcs51 port
8586
8587 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8588
8589         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8590
8591 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8592
8593         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8594         cases use more compact code.
8595
8596 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8597
8598         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8599
8600 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8601
8602         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8603
8604 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8605
8606         * src/SDCCsymt.h,
8607         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8608         parameter of changePointer() from symbol* to sym_link*
8609         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8610         * src/SDCCsymt.c (compareType): void* type is castable to other
8611         pointers, but not necesarily an exact match.
8612         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8613         is no longer blindly treated as an exact match.
8614         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8615
8616 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8617
8618         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8619
8620 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8621
8622         * src/pic/gen.c,
8623         * src/pic/pcode.c,
8624         * src/pic/ralloc.h,
8625         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8626
8627 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8628
8629         * src/pic/device.c,
8630         * src/pic/device.h,
8631         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8632
8633 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8634
8635         * src/mcs51/gen.c (emitcode): fixed bug #992819
8636
8637 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8638
8639         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8640           there's no need to make it worse
8641
8642 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8643
8644         * src/mcs51/ralloc.c (deassignLR),
8645         * src/ds390/ralloc.c (deassignLR),
8646         * src/hc08/ralloc.c (deassignLR),
8647         * src/z80/ralloc.c (deassignLR),
8648         * src/pic/ralloc.c (deassignLR),
8649         * src/pic16/ralloc.c (deassignLR),
8650         * src/avr/ralloc.c (deassignLR),
8651         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8652         rlivePoint): fixed another part of bug #971834
8653
8654 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8655
8656         * src/z80/main.c: enabled "critical" keyword
8657         * src/z80/mappings.i,
8658         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8659         functions (fixes bug #979646)
8660         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8661
8662 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8663
8664         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8665           such as c:\mydir.
8666
8667 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8668
8669         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8670           doesn't disable too much optimizations
8671
8672 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8673
8674         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8675
8676 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8677
8678         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8679
8680 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8681
8682         * src/pic/gen.c tidied up tabs
8683         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8684         * src/pic/main.c tidied up tabs
8685         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8686         * src/pic/pcoderegs.c tidied up tabs
8687         * src/pic/ralloc.c tidied up tabs
8688
8689 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8690
8691         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8692         to S_FIXED for pic16 port and when symbol is not in level 0,
8693         allocate for S_REGISTER storage class and pic16 port, too,
8694         * src/pic16/device.h: prototype for checkSym,
8695         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8696         * (pic16_assignConfigWordValue): test the value and the mask to
8697         validate that the value is suitable for the configuration word,
8698         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8699         collect extern declared symbols, don't emit symbol twice, check
8700         first if symbol is in publics set first,
8701         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8702         * added command line '--fstack' which enables an experimental
8703         feature for stack access, too buggy to be used yet...
8704         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8705         * (pic16_allocDirReg): when register has storage class S_REGISTER
8706         allocate in pic16_dynAccessRegs,
8707         * device/include/pic16/pic18f????.h: modified configuration word
8708         naming convention, words started as CONFIG0H but should be CONFIG1H
8709
8710 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8711
8712         * device/include/mcs51reg.h: fixed bug 970993
8713
8714 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8715
8716         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8717         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8718         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8719         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8720         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8721         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8722           error/warning numbers,
8723           added function setWarningDisabled()
8724         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8725         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8726           _memcmp.c _memmove.c calloc.c realloc.c free.c
8727         * support/regression/tests/malloc.c: added tests for new functionality
8728         * support/regression/tests/zeropad.c: added tests for truncated initializers
8729           and initialized char arrays starting with '\x0'
8730         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8731
8732 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8733
8734         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8735
8736 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8737
8738         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8739         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8740         peephole 177.e. Thanks to anonymous
8741
8742 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8743
8744         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8745         function isn't used in the source but referenced as a
8746         variable initializer then declare it as extern in .asm file
8747
8748 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8749
8750         * .version: increased version number to 2.4.3
8751
8752         Adding version extension according to ChangeLog CVS revision
8753         * src/Makefile.in (target all): added dependency 'version.h'
8754         * (rule version.h): added rule to create version.h from ChangeLog,
8755         * (rule dep): added dependency version.h,
8756         * src/version.awk: AWK script to create version.h
8757         * src/SDCCdwarf2.c (dwWriteModule),
8758         * src/SDCCglue.c (initialComments),
8759         * src/SDCCmain.c (printVersionInfo): modified to write after
8760         version string the version extension number,
8761         * src/SDCCutil.c: included "version.h"
8762         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8763         number,
8764         * src/SDCCutil.h: added prototype for getBuildNumber
8765
8766         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8767         includeDirsSet, too,
8768         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8769         const char [] is found in function prototype...
8770
8771         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8772         moving to WREG with source is already in WREG,
8773         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8774         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8775         * (aopForSym): stack'ed symbols are partially supported, added
8776         if-clause to support symbols in FARSPACE,
8777         * (sameRegs): added test for AOP_ACC to see if registers are same,
8778         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8779         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8780         * (pic16_popRegFromString): will not allocate a new register if it
8781         doesn't find one by name, bug may have introduced...
8782         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8783         * (genIpush): revived to use pic16 port's stack,
8784         * (genAddrOf): added incomplete case for stack'ed operand,
8785         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8786         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8787         can handle multibyte operands,
8788         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8789         * (pic16initialComments): added message for MPLAB compatibility
8790         mode enabled,
8791         * src/pic16/main.h: prototype for pic16_mplab_comp,
8792         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8793         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8794         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8795         because of increased complexity of procedure,
8796         * (_process_pragma): stack pragma changed to format 'stack pos len',
8797         emit symbol '_stack_end' to conform with gplink,
8798         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8799         to search for register,
8800         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8801         PO_GPR_REGISTER,
8802         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8803         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8804         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8805         case for PO_GPR_REGISTER,
8806         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8807         dies, the new era is ahead !...
8808         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8809         pic16_dynInternalRegs,
8810         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8811         * (pic16_allocDirReg): minor optimizations and bug fixes,
8812         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8813
8814         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8815         load stack and frame pointer with address of 'stack_end' symbol
8816
8817 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8818
8819         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8820         without source code but only variable initializers
8821
8822 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8823
8824         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8825         external are not declared as extern to reduce overhead while linking
8826
8827 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8828
8829         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8830
8831 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8832
8833         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8834           Yee Keat for the patch
8835         * src/SDCCast.c (decorateType): fixed bug #979599
8836         * src/ds390/gen.h: removed local fReturnSizeDS390
8837         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8838         * src/ds390/gen.c (genAnd, genOr, genXor),
8839         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8840
8841 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8842
8843         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8844         add relFilesSet to $3, manipulate $2 to handle linking of object
8845         files without source files in command line,
8846         * device/include/pic16 (all headers): added ID location macros,
8847         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8848         entries for ID location bytes,
8849         * (pic16_assignIdByteValue): NEW,
8850         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8851         added field dumpcalltree to pic16_options_t,
8852         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8853         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8854         emitting rFalseIfx label after check_carry label,
8855         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8856         pic16_emitDIRegs), NEW
8857         * (pic16glue): dump .calltree file when option --calltree found,
8858         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8859         * (_pic16_genAssemblerPreamble): emit ID locations after
8860         configuration registers,
8861         * (pic16_linkCmd): modifications of the link command,
8862         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8863         * (pic16_pCodeInitRegisters): don't init stack registers,
8864         * (pic16_findPrevInstruction): fixed bug,
8865         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8866         bug with immediate registers,
8867         * (buildCallTree): traces stack push and pop,
8868         * (pct2): dump also stack usage for each function,
8869         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8870         * (pic16_allocDirReg): various modifications,
8871         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8872         fixed to 1,
8873
8874 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8875
8876         * src/pic16/pcode.c: removed buggy double colon
8877
8878 2004-07-01 Borut Razem <borut.razem AT siol.net>
8879
8880         * support/scripts/sdcc.nsi: added include/pic16 to setup
8881
8882 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8883
8884         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8885         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8886         target 'clean',
8887         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8888         specific command line arguments. Also added sample lkr script
8889         for placing a variable at a specific memory bank.
8890         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8891         at a specific memory bank,
8892         * (pic16_dump_isection): fixed bug which caused string literals to
8893         be omitted when dumping idata section,
8894         * (pic16_groupRegistersInSection): added code to handle registers
8895         in specific memory banks,
8896         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8897         public, all references are renamed too,
8898         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8899         AOP_DPTR2,
8900         * (pic16_storeForReturn): added case to handle when dest is WREG,
8901         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8902         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8903         pic16_rel_udata, check to see if that register is marked as being
8904         a member of a specific memory bank,
8905         * (pic16_printIvalCharPtr): added code to add string literals either
8906         to code or the idata sections,
8907         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8908         also accept the 'udata' pragma,
8909         * src/pic16/main.h: new structure types sectName and sectSym
8910         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8911         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8912         * (pic16_findPrevInstruction): fixed, it returned nothing,
8913         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8914         instruction combinations,
8915         * (pic16_FixRegisterBanking): heavily reorganised,
8916         * (pic16_AnalyzeBanking): if generating banksel directives is
8917         disabled, then don't call FixRegisterBanking at all,
8918         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8919         completely removed,
8920         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8921
8922 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8923
8924         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8925         Phuah Yee Keat <yk.phuah AT nestac.com>
8926
8927 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8928
8929         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8930         correctly the IVT even if it is relocated to some other location
8931
8932 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8933
8934         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8935         * device/include/pic16/pic18f2220.h: NEW,
8936         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8937         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8938         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8939         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8940         nodefaultlibs, ivt_loc is the location of the interrupt vector
8941         table, and nodefaultlibs signs that default libraries should not be
8942         linked in link stage,
8943         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8944         according to --ivt-loc argument,
8945         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8946         when pragma stack is found,
8947
8948 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8949
8950         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8951         256 (range check), 257 (do while), 258.a-f (bit banging
8952         f.e. on 3-wire SPI bus)
8953
8954 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8955
8956         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8957         variables used exclusively within a loop
8958
8959 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8960
8961         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8962
8963 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8964
8965         * src/SDCClrange.c (computeClash): fixed bug #971834
8966
8967 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8968
8969         * src/mcs51/gen.c (genCmp): fixed bug #975903
8970         * src/hc08/gen.c (operandsEqu),
8971         * src/ds390/gen.c (operandsEqu),
8972         * src/z80/gen.c (operandsEqu),
8973         * src/pic/gen.c (operandsEqu),
8974         * src/pic16/gen.c (operandsEqu),
8975         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8976         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8977
8978 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8979
8980         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8981
8982 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8983
8984         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8985         default case in switch statement,
8986         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8987         to eliminate problem with initialisation of pointers, but problem
8988         still exists,
8989         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8990         * (emitStaticSegment): removed various lines emitting debug info,
8991         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8992         added processor registers for utilizing EEPROM,
8993         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8994         configurable and set 8
8995
8996 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8997
8998         * .version: increased version number to 2.4.2,
8999
9000         Cumulative patch for pic16 port
9001         * src/pic16/device.c: changed scheme to dump initial values for
9002         variables in idata segment, all print_idata* functions were removed,
9003         now the pic16_printIval* will be called,
9004         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9005         * _pic16_printPointerType, pic16_printPointerType,
9006         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9007         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9008         NEW, similar to the respective functions in SDCCglue.c,
9009         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9010         way, emitting hex bytes,
9011         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9012
9013 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9014
9015         * src/avr/ralloc.c (serialRegAssign),
9016         * src/xa51/ralloc.c (serialRegAssign),
9017         * src/pic/ralloc.c (serialRegAssign),
9018         * src/pic16/ralloc.c (serialRegAssign),
9019         * src/hc08/ralloc.c (serialRegAssign),
9020         * src/z80/ralloc.c (serialRegAssign),
9021         * src/ds390/ralloc.c (serialRegAssign),
9022         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9023
9024 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9025
9026         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9027         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9028
9029 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9030
9031         Cumulative patch for pic16 port:
9032         * src/pic16/device.h (typedef PIC16_device) modified fields for
9033         defining microcontrollers,
9034         * src/pic16/device.c: added new info for all devices in Pics16 array,
9035         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9036         to be optimised out by the pCode optimiser,
9037         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9038         specially, bug reported by G.M. Gallant,
9039         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9040         as force'd so that cannot be optimised out by pCode optimiser,
9041         * src/pic16/pcode.c,
9042         * src/pic16/pcodepeeph.c,
9043         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9044         they are disabled by default, but can be enabled explicit with
9045         command argument --denable-peeps, for testing,
9046         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9047         --pomit-ivt in COMPILE_FLAGS
9048
9049 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9050
9051         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9052           compilation on MSVC
9053
9054 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9055
9056         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9057
9058 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9059
9060         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9061         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9062
9063 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9064
9065         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9066         would only assign 0x300001 register.
9067
9068 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9069
9070         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9071         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9072
9073 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9074
9075         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9076         for ds80c400
9077         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9078         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9079         added peephole 254 (left shift), 255 (jump table)
9080
9081 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9082
9083         * device/lib/Makefile.in: removed comment line with model-pic16,
9084         * (target port-specific-objects-pic16): the libraries and objects
9085         are copied to the build directory form the device/lib/pic16/bin
9086         directory
9087
9088         Cumulative patch concerning pic16 port:
9089         * library directory has been re-organized,
9090         * added support for PIC18F1220,
9091         * added headers and library sources for chips 18f1220,18f6520,
9092         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9093
9094         * configuration registers setting has changed, now each supported
9095         device has a complete description of the registers it uses,
9096         * all initialisations are moved to idata sections, these section
9097         can be absolute or relocatable,
9098         * fixed initialisation of codespace variables,
9099         * fixed warning about PCLATU and gpsim,
9100         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9101         * (genAssign): use table reads when assigning from variables in codespace,
9102         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9103         char/int variables placed in codespace,
9104         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9105         registers set in .asm file, no need for --pomit-config-words anymore,
9106         * (pic16glue): some 8051 legacy segments are commented out
9107         (to be removed completely),
9108         * added support for alternative assembler and linker with --asm=
9109         and --link= command line arguments,
9110         * peepholes are disabled automatically in the port, no need to
9111         specify on command line,
9112         * port supports natively char/int/long multiplication, but converts
9113         all divisions to support functions,
9114         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9115         to the file set in variable $2,
9116         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9117         strings in ASCII format and not in hex,
9118         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9119         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9120         allocate proper register if iCodes aren't temporary,
9121
9122 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9123
9124         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9125
9126 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9127
9128         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9129         is commented out
9130
9131 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9132
9133         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9134         computed address is reused
9135         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9136         multi-byte bitfields
9137
9138 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9139
9140         * src/z80/gen.c: (genArrayInit): must check for pointers too
9141
9142 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9143
9144         * support/regression/tests/zeropad.c: never meant to commit the
9145           nestedstruct test: removed, added check for GCC version
9146
9147 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9148
9149         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9150         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9151         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9152           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9153           bugs 928906 and 954082 half-empty initializers
9154         * src/SDCCsymt.h,
9155         * src/SDCCsymt.c (getAllocSize): added for above fix
9156         * src/z80/gen.c (genArrayInit): fixed bug 741044
9157         * support/regression/tests/zeropad.c: added tests
9158
9159 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9160
9161         * src/pic16/device.c (pic16_dump_section): corrected bug which
9162         caused some symbols of the libraries to be misplaced
9163
9164 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9165
9166         * src/pic16/glue.c,
9167         * src/pic16/ralloc.h,
9168         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9169         to fix conflict with pic port
9170
9171 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9172
9173         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9174         externs configuration variables,
9175         * src/pic16/ralloc.h,
9176         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9177         prototype in header, commented out some debug messages
9178
9179 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9180
9181         * src/pic16/glue.c,
9182         * src/pic16/main.c,
9183         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9184         for gpasm COFF object generation. Thanks to D. Hawkins for
9185         his patch info
9186
9187 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9188
9189         * src/ds390/main.c,
9190         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9191         Brock for spotting this)
9192         * src/ds390/gen.c (genEndFunction),
9193         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9194         interrupt handler and critical. Disable push/pop optimizations when
9195         peephole optimizations disabled.
9196
9197 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9198
9199         Updated pic16 library sources and headers.
9200         * device/lib/pic16/pic18f*/ ,
9201         * device/include/pic16/*.h: modified to handle structured SFR
9202         definitions
9203
9204 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9205
9206         * src/port.h (PORT structure): added hook initPaths, now each
9207         port can declare its own default search paths,
9208         which can been seen with the --print-search-dirs option,
9209         see pic16 port for example,
9210         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9211         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9212         * (doPrintSearchDirs): NEW, replaces in a central manner the
9213         printing of search dirs which was split in set*Paths functions,
9214         * (main): added call to port->initPaths and doPrintSearchDirs,
9215         * src/avr/main.c,
9216         * src/ds390/main.c,
9217         * src/hc08/main.c,
9218         * src/izt/i186.c,
9219         * src/izt/tlcs900h.c,
9220         * src/mcs51/main.c,
9221         * src/pic/main.c,
9222         * src/pic16/main.c: modified port structures to reflect addition of
9223         initPaths hook,
9224
9225         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9226         * (pic16_dump_section): for registers in same address reserve memory once,
9227         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9228         to no_banksel,
9229         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9230         result is greater in size than right or left,
9231         * (pic16_genUMult8X8_8): there are some cases where the result can
9232         be 16 bits size, so handle these,
9233         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9234         * (pic16_outBitC): modified to emit pcodes,
9235         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9236         or not,
9237         * (genDivOneByte): implemented algorithm to divide 8-bits,
9238         * (genCmp): uncommented goto, but issues still exist,
9239         * (genAnd): fixed a bug with variables >8bits,
9240         * (genPackBits): optimization added that uses BCF/BSF to change a
9241         single bit,
9242         * (genAssign): fixed bug when assigning floating point literals,
9243         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9244         __sdcc_gsinit_startup label,
9245         * src/pic16/main.c (_pic16_init): removed search directory
9246         initialisations,
9247         * (_pic16_initPaths): NEW, used to initialise search directories,
9248         * (_hasNativeMulFor): support functions for all except char/int
9249         multiplication, and char division,
9250         * (PIC16_port struct): modified entry for native mul support,
9251         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9252         no_banksel option,
9253         * (buildCallTree): call to register_usage is ifdef'ed out,
9254
9255 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9256
9257         * device/include/string.h: applied Stas Sergeev's patch to make this
9258         header file compatible with the preprocessor -Wundef option
9259         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9260         failure (fixes bug #941458)
9261
9262 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9263
9264         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9265         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9266         that the variable, not the function, should be static
9267         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9268         to be consistent with non-literal case
9269
9270 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9271
9272         * src/SDCCast.c (isConformingBody): fixed bug #949967
9273         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9274         convilong): fixed bug #952086
9275
9276 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9277
9278         * src/SDCCmem.c (allocVariables): fixed bug #955321
9279
9280 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9281
9282         * src/hc08/main.c (_hc08_genAssemblerEnd),
9283         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9284         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9285         completely eliminated the use of a temporary file
9286         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9287         when more than one file linked
9288         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9289
9290 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9291
9292         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9293         which fixes bug #543481
9294         * support/regression/tests/bug-751703.c: fixed comments left from a
9295         cut and paste error
9296         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9297         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9298         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9299         scopes
9300         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9301         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9302         are now changed to underscores in moduleName
9303
9304 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9305
9306         * as/mcs51/lkmem.c: better fix for bug #954173
9307
9308 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9309         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9310
9311         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9312         * device/include/c8051f000.h,
9313         * device/include/c8051f120.h,
9314         * device/include/c8051f300.h,
9315         * device/include/c8051f310.h,
9316         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9317         PWM16) and detab'ed
9318
9319 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9320
9321         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9322         and mailing lists, doc'ed --no-peep-comments, removed reference
9323         to knoppix (newest version has no LyX/LaTeX), other minor changes
9324         * src/SDCCglue.c (glue): save 2 bytes stack space with
9325         option --main-return. The ljmp could probably be avoided too
9326
9327 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9328
9329         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9330
9331 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9332
9333         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9334         * src/SDCCopt.c (isLocalWithoutDef),
9335         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9336         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9337         (credit to Maarten Brock for patch #949363, on which this is based)
9338         * support/regression/tests/bug-751703.c: some test cases of extern used
9339         within inner scopes.
9340
9341 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9342
9343         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9344         SPEC_STRUCT
9345         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9346         struct definitions
9347         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9348         dwWriteLabel): fix to create valid debugger symbols even when
9349         the module name has non-alphanumeric symbols in it
9350         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9351         when a variable's allocation has been optimized away
9352
9353
9354 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9355
9356         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9357         * src/hc08/main.c,
9358         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9359         * src/mcs51/main.c,
9360         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9361         * src/ds390/main.c,
9362         * src/z80/gen.c (z80_emitDebuggerSymbol),
9363         * src/z80/main.c,
9364         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9365         * src/pic/main.c,
9366         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9367         * src/pic16/main.c,
9368         * src/avr/gen.c (avr_emitDebuggerSymbol),
9369         * src/avr/main.c,
9370         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9371         * src/xa51/main.c,
9372         * src/SDCCdebug.c (emitDebuggerSymbol),
9373         * src/SDCCdebug.h,
9374         * src/port.h: added a debugger struct to the port struct. Added a
9375         callback for defining debugger symbols
9376
9377         * src/SDCCast.c (createLabel),
9378         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9379         with isitmp = 1
9380         * src/SDCCicode.h,
9381         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9382         iCode back to the ast for the function
9383
9384         * src/hc08/ralloc.c (hc08_assignRegisters),
9385         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9386         unneeded fields from the regs struct.
9387         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9388         pushReg() & pullReg() functions instead of emitcode()
9389
9390         * src/hc08/gen.c (genLabel, genhc08Code),
9391         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9392
9393         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9394         debugger hooks
9395
9396         * src/hc08/gen.c (genEndFunction, genhc08Code),
9397         * src/hc08/gen.h,
9398         * src/mcs51/gen.c (genEndFunction, gen51Code),
9399         * src/mcs51/gen.h,
9400         * src/ds390/gen.c (genEndFunction, gen390Code),
9401         * src/ds390/gen.h,
9402         * src/z80/gen.c (genEndFunction, genZ80Code),
9403         * src/z80/gen.h,
9404         * src/z80/z80.h,
9405         * src/pic/gen.c (genEndFunction, genpic14Code),
9406         * src/pic/gen.h,
9407         * src/pic16/gen.c (genEndFunction, genpic16Code),
9408         * src/pic16/gen.h,
9409         * src/avr/gen.c (genEndFunction, genAVRCode),
9410         * src/avr/gen.h,
9411         * src/xa51/gen.c (genEndFunction, genXA51Code),
9412         * src/xa51/gen.h,
9413         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9414         specific code to cdbFile.c and out of the backend code generators
9415
9416         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9417         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9418         starting address is now 0
9419
9420         * as/hc08/asm.h,
9421         * as/hc08/m08pst.c,
9422         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9423         assembler directive for DWARF support
9424         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9425
9426         * src/src.dsp,
9427         * src/Makefile.in,
9428         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9429
9430 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9431
9432         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9433         and inappropriate peephole optimization in jump tables
9434
9435 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9436
9437         * as/hc08/m08pst.c,
9438         * src/SDCCglue.c: sdccopt works for the hc08 port now
9439
9440 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9441
9442         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9443
9444 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9445
9446         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9447
9448 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9449
9450         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9451         rules
9452         * src/SDCCmain.c,
9453         * src/SDCCglobl.h,
9454         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9455         comments from the peephole optimizer replacement rules
9456         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9457         symbols
9458         * src/SDCCcse.c (updateSpillLocation),
9459         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9460         equivalents
9461         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9462         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9463         objects far pointers
9464
9465 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9466
9467         * src/SDCCsymt.h: a missing part of my last change
9468         * src/pic/ralloc.c (regTypeNum),
9469         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9470
9471 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9472
9473         * src/SDCCicode.h,
9474         * src/SDCCicode.c (aggrToPtrDclType),
9475         * src/SDCCptropt.h,
9476         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9477         ptrPseudoSymConvert),
9478         * src/pic/ralloc.c (regTypeNum),
9479         * src/pic16/ralloc.c (regTypeNum),
9480         * src/hc08/ralloc.c (regTypeNum),
9481         * src/ds390/ralloc.c (regTypeNum),
9482         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9483         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9484
9485 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9486
9487         * link/z80/lkmain.c (afile),
9488         * as/hc08/lkmain.c (afile),
9489         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9490         prevent a pointer problem when a filename has no directory and
9491         no extension specified.
9492
9493 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9494
9495         * link/z80/lkmain.c (afile): allow periods in directory names
9496         * link/z80/lkmain.c (afile),
9497         * as/mcs51/lkmain.c (afile),
9498         * as/hc08/lkmain.c (afile): allow linker script file to have an
9499         extension other than ".lnk"
9500         * link/z80/lklex.c (getfid),
9501         * link/z80/lkmain.c (parse),
9502         * as/mcs51/lklex.c (getfid),
9503         * as/mcs51/lkmain.c (parse),
9504         * as/hc08/lklex.c (getfid),
9505         * as/hc08/lkmain.c (parse): Support comments in the linker script
9506         file on lines by themselves and after filenames
9507
9508 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9509
9510         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9511
9512 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9513
9514         * src/z80/peeph-z80.def: removed some peephole rules that don't
9515         work with multibyte arithmetic (fixed bug #937126)
9516         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9517         to registers and not global variables
9518         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9519         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9520         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9521         checking for assignments not internally generated (fixed bug #931895)
9522         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9523         structure member (fixed bug #930072)
9524
9525 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9526
9527         * src/SDCCmain.c (linkEdit),
9528         * src/hc08/main.c (_hc08_parseOptions),
9529         * as/hc08/Makefile.in,
9530         * as/hc08/aslink.h,
9531         * as/hc08/asm.h,
9532         * as/hc08/m08pst.c,
9533         * as/hc08/lkrloc.c (relr, rele),
9534         * as/hc08/lkarea.c (lnkarea)
9535         * as/hc08/lkmain.c (afile, parse),
9536         * as/hc08/lkelf.c: support for ELF output
9537         * as/hc08/lks19.c (s19),
9538         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9539
9540 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9541
9542         * as/mcs51/lkihx.c: Fixed bug #899105.
9543
9544 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9545
9546         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9547         .dsp files from Unix to DOS.
9548
9549 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9550
9551         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9552         function pointers; we have been compliant for several months now.
9553         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9554         change that was accidently commented out
9555         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9556         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9557         bug #922319
9558
9559 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9560
9561         * src/hc08/gen.c: output of all of the internal debugging information
9562         is now controlled by the D() macro; it is disabled by default
9563
9564 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9565
9566         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9567         harder to keep the same registers during a CAST iCode
9568         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9569         long via int can be done in a single cast, if the signedness is
9570         correct.
9571         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9572         putchar() in tinibios.c in ds390's library
9573
9574 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9575
9576         * src/SDCCast.c (decorateType): fixed bug #898889,
9577         cast result of a literal complement too
9578         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9579         fixed check for bitfields
9580
9581 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9582
9583         * src/SDCCicode.c (geniCodeLogic): made it static,
9584         (geniCodeLogicAndOr): added in order to fix bug #905492,
9585         (ast2iCode): fixed bug #905492
9586         * support/regression/tests/bug-905492.c: added
9587         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9588         (processParms): fixed bug #927659: don't copy parms, this will clear
9589         decorated flag
9590         * support/regression/tests/bug-927659.c: added
9591
9592 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9593
9594         * src/SDCCast.c (addCast): don't cast float to char
9595         * device/lib/libsdcc.lib: added _memmove
9596
9597 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9598
9599         * device/lib/large/Makefile: fixed parallel execution by
9600         replacing `make` by `$(MAKE)`
9601
9602 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9603
9604         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9605         offsets (fixes bug #923936)
9606
9607 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9608
9609         * device/lib/small/Makefile: fixed parallel execution by
9610         replacing `make` by `$(MAKE)`
9611
9612 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9613
9614         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9615
9616 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9617
9618         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9619         * src/regression/Makefile: Regression test was not running.
9620
9621 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9622
9623         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9624         complement if possible
9625         * src/SDCCval.c (valComplement),
9626         * src/SDCCicode.c (operandOperation): fixed complement of literal
9627         * support/regression/tests/onebyte.c (testComplement): added
9628
9629 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9630
9631         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9632         return an optimized tree; actually replace actParm with the new tree
9633         * src/SDCCast.h: added some parantheses to remove side effects
9634         * support/regression/tests/bug-920866.c
9635
9636 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9637         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9638         Bit operands were not being handled properly in the pic14 port.
9639         (now src/regression/add.c passes again).
9640
9641 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9642
9643         * src/SDCC.y (labeled_statement): case and default no longer require
9644         a following statement (RFE #893037)
9645
9646 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9647
9648         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9649         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9650         disabled (fixes bug #916294)
9651         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9652         "mov a,acc"; patch provided by Lenny Story
9653         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9654
9655 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9656
9657         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9658         functions
9659         * src/ds390/gen.c (genFunction, genEndFunction),
9660         * src/ds390/ralloc.c (ds390_assignRegisters),
9661         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9662         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9663         pushed if there are parameters passed on the stack. Also, a cleaner
9664         way to decide if r0/r1 should be pushed/popped. (Together they fix
9665         bug #918693)
9666
9667 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9668
9669         * doc/sdccman.lyx,
9670         * device/lib/mcs51/crtpagesfr.asm,
9671         * device/lib/mcs51/crtxinit.asm,
9672         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9673         to avoid confusion with Si Lab's SFRPAGE register.
9674
9675 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9676
9677         * src/SDCCglue.c (emitMaps): allow public sfr variables
9678         * src/SDCCglue.c (initialComments): include compiler build date
9679         with compiler version and put the timestamp of the generated
9680         assembly file on a serperate line to be less confusing.
9681         * src/port.h: added genInitStartup hook
9682         * src/avr/main.c,
9683         * src/ds390/main.c,
9684         * src/hc08/main.c,
9685         * src/pic/main.c,
9686         * src/pic16/main.c,
9687         * src/xa51/main.c,
9688         * src/z80/main.c: genInitStartup initialize as NULL (default to
9689         historical behaviour)
9690         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9691         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9692         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9693         library instead of hard coding it into the compiler.
9694         * support/regression/ports/mcs51-stack-auto/spec.mk,
9695         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9696         * device/lib/mcs51/Makefile,
9697         * device/lib/small/Makefile,
9698         * device/lib/large/Makefile,
9699         * device/lib/mcs51/crtpagesfr.asm,
9700         * device/lib/mcs51/crtstart.asm,
9701         * device/lib/mcs51/crtxclear.asm,
9702         * device/lib/mcs51/crtxinit.asm,
9703         * device/lib/mcs51/crtclear.asm,
9704         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9705         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9706         and into user configurable files.
9707         * device/lib/clean.mk: clean mcs51 directory too
9708         * support/regression/tests/longlit.c: added static to T1 declaration
9709         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9710         accesses in the initialization code
9711
9712 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9713
9714         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9715         OSCTRIMVAL as noted in bug #916008
9716
9717 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9718
9719         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9720         in loops with multiple exits (reported as incorrect registers
9721         used by Martin Helmling in Sdcc-user list)
9722
9723 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9724
9725         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9726         made ds390 register extensions look less like error messages
9727
9728 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9729
9730         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9731         reported by Adam Wozniak in Sdcc-user list
9732
9733 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9734
9735         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9736         arithmetic optimizations, added debug output
9737
9738 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9739
9740         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9741         * sdcc.spec: updated and split sdcc into 3 rpms
9742         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9743         needed for literals of LEFT_OP and '+'
9744         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9745         introduced RESULT_TYPE_NOPROM
9746         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9747         left shift
9748         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9749         limited promotion to int only for '*'
9750         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9751
9752 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9753
9754         * src/pic16/gen.c (genSkip),
9755         (genc16bit2lit), (gencjneshort): commented out
9756         (is_LitOp): new helper function, checks operand type
9757         (genCmpEq): rewritten
9758
9759 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9760
9761         * support/regression/tests/bug-908454.c: added
9762
9763 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9764
9765         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9766         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9767         (geniCodeCast): cosmetic, don't preserve bit storage class
9768         (geniCodeLeftShift): added promotion
9769         (geniCodeLogic): fixed regression
9770         * src/SDCCsymt.c (computeTypeOr): accept bits too
9771         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9772
9773 2004-03-07  Borut Razem <borut.razem AT siol.net>
9774
9775         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9776
9777 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9778
9779         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9780         version of pic16_genPackRegisters which does not check if ic is a
9781         CAST operator,
9782         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9783         function cause string1.c regression test fails
9784
9785 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9786
9787         * sim/ucsim/configure.in,
9788         * sim/ucsim/configure,
9789         * sim/ucsim/doc/Makefile.in: use docdir
9790         * src/SDCC.y: fixed sbit atrributes
9791         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9792         * src/SDCCast.c (decorateType): |^& need special promotion handling
9793         * src/SDCCast.h,
9794         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9795         * src/SDCCsymt.h (computeType),
9796         * src/SDCCicode.c: computeType() needs op
9797         * src/SDCCsymt.c (checkTypeSanity),
9798         * doc/sddman.lyx: "plain" bitfields are unsigned
9799         * src/SDCCsymt.c (computeTypeOr): added
9800         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9801         |^& ops
9802         * src/SDCCval.c (val*): computeType() needs op
9803         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9804         * support/regression/tests/onebyte.c: added tests for |^&
9805
9806 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9807
9808         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9809         for writing icode into asm output.
9810
9811 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9812
9813         * src/pic16/device.c: added some debug lines enabled
9814         with macro DEBUG_CHECK,
9815         * src/pic16/genarith.c: more debug in genPlus,
9816         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9817         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9818         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9819         * (aopForSym): onStack symbols are re-placed in data memspace,
9820         and onStack flag is cleared,
9821         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9822         copy temporary pcodeop,
9823         * (genPcall): added warning for not updating PCLATU,
9824         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9825         always true for pic16 port,
9826         * (genMultOneWord): NEW, supports integer multiplication,
9827         * (genMult): modified to call genMultOneWord,
9828         * (ifxForOp): added warning when return NULL,
9829         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9830         flag is set before call to operandFromSymbol for implicit
9831         added structures,
9832         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9833         options.intlong_rent are set by default,
9834         * (_hasNativeMulFor): modified to allow port generation of integer
9835         multiplication,
9836         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9837         set regtype to REG_SFR for all registers, restricting seting the
9838         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9839
9840 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9841
9842         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9843         more than 500 times in the regression tests
9844
9845 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9846
9847         * support/Util/SDCCerr.h,
9848         * support/Util/SDCCerr.c,
9849         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9850         enumerator_list),
9851         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9852         for symbol conflicts.
9853         * support/valdiags/tests/enum.c,
9854         * support/valdiags/tests/tentdecl.c,
9855         * support/valdiags/tests/struct.c: expect possible error messages
9856         referring to original symbol definitions.
9857         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9858         * src/SDCCsymt.h,
9859         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9860
9861 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9862
9863         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9864
9865 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9866
9867         * src/pic16/ralloc.c (newReg): fixed bug #908929
9868
9869 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9870
9871         * src/ds390/gen.c: added missing #include "main.h"
9872
9873 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9874
9875         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9876         checking if symbol is already in set,
9877         * src/pic16/device.h: prototype for checkAddSym,
9878         * src/pic16/gen.c: (_G): added entry interruptvector,
9879         * (assignResultValue): removed some commented out lines,
9880         * (genFunction): check for ISR via sym->type, absolute section for
9881         interrupt code is created via a new pBlock, the goto instruction is
9882         placed now correctly at the interrupt vector position, changed all
9883         references from ivec to _G.interruptvector,
9884         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9885         is the interrupt is a high priority one, same for return from ISR,
9886         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9887         externs to calls of checkAddSym,
9888         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9889         pic16_pcode_verbose flag is set,
9890         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9891         * src/pic16/pcoderegs.c: message about how many registers are saved
9892         will only be emitted if pic16_pcode_verbose flag is set,
9893
9894 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9895
9896         * src/ds390/ralloc.h,
9897         * src/ds390/ralloc.c (ds390_regWithIdx),
9898         * src/ds390/gen.c (emitcode),
9899         * src/ds390/main.h,
9900         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9901         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9902         ds390operandCompare, getRegsRead, getRegsWritten,
9903         initializeAsmLineNode): customized instruction size calculation for
9904         ds390, started basis for some register optimizations
9905         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9906         corresponding assembly output
9907         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9908         missing push/pop of r0/r1. Optimized push/pops
9909
9910 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9911
9912         * src/mcs51/main.c (instructionSize): fixed ACALL size
9913         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9914
9915 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9916
9917         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9918         the sorting of rlist with NULL elements
9919         * (print_idataType, print_idata): NEW to create idata sections
9920         * src/pic16/device.h: idataSymSet new variable
9921         * src/pic16/gen.c (genFunction): fixed some bugs in string
9922         comparing, improved the absolute section creation for ISRs,
9923         added FSR0L/FSR0H in registers that are saved in an ISR,
9924         * (genInline): fixed the processing of inline snippets,
9925         now they undergo no process by the peephole optimizer
9926         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9927         are placed in idataSymSet,
9928         * (pic16emitStaticSeg): extern symbols are added in externs,
9929         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9930         switching when aboslute variables are placed in access bank memory
9931         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9932         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9933         commented out with #if,
9934         * (pic16_packRegisters): reintroduce the check for CAST because some
9935         symbols are not correctly handled,
9936         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9937         pCodeInstruction instead of pCode,
9938         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9939         pCodeAsmDir definition,
9940         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9941         directive, then the argument directive is emitted without the leading
9942         tab, hack for inline labels which must be in the first column,
9943         * (compareLabel,pic16_findNextInstruction),
9944         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9945         * (insertBankSwitch): modified for the new pCodeAsmDir,
9946
9947 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9948         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9949
9950         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9951         instance,
9952         * (pushSide): commented out with #if,
9953         * (assignResultValue): fixed some typos in saving
9954         registers,
9955         * (genPcall): FIXED and sync'ed with genCall,
9956         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9957         * (genNearPointerGet): fixed to handle some more cases,
9958         implementation scheme via table reads,
9959         * (genConstPointerGet): modified to access code memory correct,
9960         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9961         and improved to handle some cases
9962         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9963         instead of "RETLW" for init data
9964         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9965         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9966         variables are placed in access bank memory (<0x80 and >=0xf80),
9967         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9968         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9969         TBLWT_POSTDEC,TBLWT_PREINC
9970         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9971         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9972         directives
9973         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9974         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9975         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9976         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9977
9978 2004-02-29  Borut Razem <borut.razem AT siol.net>
9979
9980         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9981         support/Util/findme.h, support/Util/system.h: enhance binary relative
9982         search for lib and include by using findProgramPath()
9983
9984 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9985
9986         * src/SDCCpeeph.h,
9987         * src/SDCCpeeph.c (pcDistance),
9988         * src/port.h,
9989         * src/mcs51/ralloc.h,
9990         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9991         * src/mcs51/main.h,
9992         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9993         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9994         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9995         size calculation port specific, started basis for some register
9996         optimizations
9997         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9998         missing push/pop of r0/r1. Optimized push/pops
9999         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10000         * device/lib/_modsint.c (_modsint),
10001         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10002         and stack version so regression tests pass
10003
10004 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10005
10006         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10007         * src/SDCCast.c (decorateType): catch another small optimization
10008         with '?' operator
10009         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10010         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10011         modified to finally use computeType() all over SDCC,
10012         see Feature Request #877103
10013         * src/SDCCval.h: cosmetic
10014         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10015         valCompare(); regression tested in muldiv.c
10016         * support/regression/tests/muldiv.c (testMod): mod sign follows
10017         dividend only
10018
10019 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10020
10021         * src/SDCCast.c (decorateType): fixed bug #902362
10022         * doc/INSTALL.txt: fixed install instructions for win32
10023
10024 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10025
10026         * device/include/Makefile.in (install): fixed by replacing spaces
10027         by tabs
10028         * doc/README.txt,
10029         * doc/INSTALL.txt: updated for release
10030         * doc/sdccman.lyx: added warning for --xstack being buggy
10031
10032 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10033
10034         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10035         to eliminate build warnings.
10036         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10037
10038 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10039            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10040
10041         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10042         removed -penable-stack, added comment for stack pragma, added
10043         warning for not initializing the stack/frame registers, removed
10044         comment at interrupts section
10045
10046         Stack is made permanent, there is no ability to disable stack usage.
10047         * src/pic16/device.h,
10048         * src/pic16/device.c: removed all references to USE_STACK macro,
10049         * src/pic16/device.c (pic16_dump_section): when no elements in
10050         rlist, free rlist before return,
10051         * (pic16_dump_int_registers): NEW, internal registers are a new set
10052         of general purpose registers reused by each function,
10053         * (checkAddReg): returns 1 if registers is added to set,
10054         * (pic16_groupRegistersInSection): when a registers is of type
10055         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10056         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10057         SRCASECMP macro is moved here from device.c
10058         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10059         PO_PCLATU, PO_PRODL, PO_PRODH,
10060         * (pic16_pCodeOpType, genMinus,
10061         changed compares to "a" register, with AOP_ACC,
10062         * (pic16_genPlus): fixed some bugs and indented properly,
10063         * (pic16_addSign): changed size to size+offset in the MOVWF
10064         instruction,
10065         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10066         multiply 8-bit operand by literal, result is 8-bit,
10067         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10068         multiply 2 8-bit operand, result is 8-bit,
10069         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10070         genUMult8X*_16,
10071         * src/pic16/gen.c: changed accUse to contain WREG only,
10072         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10073         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10074         true, do not use immediate addressing any more unless sym is a
10075         pointer in codespace,
10076         * (aopForRemat): do not use immediate addressing when symbol not in
10077         codespace and when symbol's address is requested,
10078         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10079         accUse size (= 1),
10080         * (aopGet): added case for AOP_ACC and don't return "accumulator
10081         bug" but WREG instead,
10082         * (popGetTempReg): pushes contents of temporary register in stack,
10083         * (popReleaseTempReg): pops contents of temporary register from
10084         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10085         * (pic16_popGet): separated case AOP_ACC to return register WREG
10086         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10087         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10088         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10089         the use of immediate pointers to certain cases only.
10090
10091         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10092         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10093         * (assignResultValue, genCall, genRet): modified to use the new
10094         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10095         genPcall is still broken,
10096         * (genFunction): added code to create 'A' type pBlocks when
10097         interrupt functions are generated, code not extensively tested yet,
10098         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10099         * (genEndFunction): modified so ISRs pop stored registers from stack,
10100         * (genMultOneByte): cleanup,
10101         * (AccRsh): added flag andmask, to and result with appropriate mask,
10102         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10103         * (genDataPointerGet): fixed and reenabled its use,
10104         * (genNearDataPointerGet): bugs fixed,
10105         * (genDataPointerSet): bugs fixed,
10106         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10107         pic16_DumpSymbol, pic16_DumpOp,
10108         * src/pic16/genutils.h: function prototypes for the above functions,
10109         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10110         pointers,
10111         * (pic16emitRegularMap): many many many improvements, but needs a
10112         major cleanup,
10113         * src/pic16/main.c: enable_stack in pic16_options is removed,
10114         * (_pic16_parseOptions): removed command line options -penable-stack,
10115         * (_process_pragma): emit stack symbol only when stack pragma is
10116         processed,
10117         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10118         redirected to FSR0L/FSR0H pair,
10119         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10120         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10121         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10122         for immediates,
10123         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10124         * (dumpPicOptype): NEW,
10125         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10126         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10127         with movff instruction,
10128         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10129         added pic16_int_regs, some packRegsFor* functions are commented out,
10130         because produce errors,
10131         * src/pic16/NOTES: minor modifications
10132
10133 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10134
10135         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10136         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10137         --pack-iram.
10138         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10139         * as/mcs51/lkaomf51.c: fixed bug #895763
10140
10141 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10142
10143         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10144
10145 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10146
10147         * doc/sdccman.lyx: added details about the HC08 storage classes and
10148         interrupts, fixed the register usage info for z80 & gbz80
10149
10150 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10151
10152         * doc/sdccman.lyx: added more pic16 port documentation
10153         * device/include/pic16/: added header pic18fregs.h
10154
10155 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10156
10157         * doc/sdccman.lyx: added Vangelis' contribution
10158
10159 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10160
10161         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10162         extend to the next CALL or PCALL, not just to the next CALL.
10163
10164 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10165
10166         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10167
10168 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10169
10170         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10171         bug #895752 and a better fix for bug #716790
10172
10173 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10174
10175         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10176
10177 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10178
10179         * doc/sdccman.lyx: minor changes, minor changed
10180
10181 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10182
10183         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10184         which can't handle SDCC_NEWONEBYTEOPS,
10185         (geniCodeMultiply): removed conversion from mult to shift for pic14
10186         and pic16
10187
10188 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10189
10190         * src/hc08/gen.h,
10191         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10192         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10193         thus fixing bug #895406
10194
10195 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10196
10197         * device/lib/_modsint.c,
10198         * device/lib/_modslong.c: sign follows divisor only
10199         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10200         signs or signedness can be ignored
10201         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10202         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10203         added optimization for IFX,
10204         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10205         arguments;
10206         reenabled optimization for IFX, which was removed on 2004-01-11
10207         * src/SDCCast.h: added return type IFX
10208         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10209         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10210         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10211         SDCC_OLDONEBYTEOPS selects the old behaviour
10212         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10213         changed again and commented promotion rule
10214         * src/SDCCval.c (valDiv): promotion no longer necessary
10215         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10216         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10217         rewritten
10218         * support/regression/tests/onebyte.c: added
10219
10220 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10221
10222         * gen.c (genInline): reverted to old code for assemnling inline
10223         code because of bug reported James Chadd
10224
10225 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10226
10227         * ralloc.h: missing declarations from previous patch,
10228         seems that patch for ralloc.h was never applied, fixed
10229
10230 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10231            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10232
10233         * pcode.c,
10234         * pcode.h,
10235         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10236         indirect addressing. Marked FSR0 as deprecated
10237         * gen.c (pointerCode): commented out, not needed now
10238         (pic16_popGet2p): new MOVFF helper function
10239         (genGenPointerGet),
10240         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10241         (shiftRLong): removed duplicate debugging info
10242
10243 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10244
10245         * src/ds390/gen.c (genNearPointerGet),
10246         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10247         optimization with bits, but not bitfields.
10248         * src/ds390/ralloc.c (packRegisters),
10249         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10250
10251 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10252
10253         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10254
10255 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10256
10257         * src/SDCCsymt.h,
10258         * src/SDCCicode.c (operandFromSymbol),
10259         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10260         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10261         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10262         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10263         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10264         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10265         bug #892038
10266         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10267         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10268         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10269         * src/SDCCsymt.c (newSymbol),
10270         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10271         enumerator_list),
10272         * src/SDCCval.h,
10273         * src/SDCCval.c (newiList): fixed bug #885705
10274
10275 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10276
10277         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10278         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10279
10280 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10281
10282         * device/include/c8051f120.h,
10283         * device/include/c8051f300.h,
10284         * device/include/c8051f310.h: added/updated header files for Silicon
10285         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10286         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10287         in new section Submitting patches
10288
10289 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10290
10291         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10292         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10293         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10294         genGenPointerSet),
10295         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10296         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10297         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10298         genGenPointerSet),
10299         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10300         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10301         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10302         genGenPointerSet),
10303         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10304         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10305         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10306         genGenPointerSet): fixed bug #892400
10307         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10308         to eliminate build warnings.
10309         * src/SDCCast.c (processParms),
10310         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10311         fixed bug 751859
10312         * support/valdiag/valdiag.py: added GCC to the list of defines active
10313         when compiling with gcc
10314
10315 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10316
10317         * support/Util/SDCCerr.h,
10318         * support/Util/SDCCerr.c,
10319         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10320         with an incomplete type (fixed bug #883734)
10321         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10322
10323 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10324
10325         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10326
10327 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10328
10329         * src/SDCCast.c (decorateType),
10330         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10331         function pointer implementation
10332         * support/regression/tests/funptrs.c: added tests to verify both forms
10333         of function pointers work correctly. Added tests to verify parameters
10334         are passed in the correct order.
10335
10336 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10337
10338         * device.c (regCompare): registers are sorted by ascending
10339         address and increasing size,
10340         * main.c (_pic16_finaliseOptions): removed the declaration
10341         of compiler macro MCU. Now a macro of the format pic18fxxxx
10342         will be defined from the command line
10343
10344 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10345             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10346
10347         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10348         PCOP_RLCF was overwritten!
10349         * gen.c (genSkip): commented out calls to pic16_emitcode,
10350         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10351         * (genlshTwo),
10352         * (genRRC): added debugging info,
10353         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10354         overwritten while shifting,
10355         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10356         overwritten while shifting,
10357         * (AccLsh),
10358         * (AccRsh),
10359         * (shiftLLeftOrResult),
10360         * (shiftRLeftOrResult),
10361         * (shiftRLong),
10362         * (shiftLLong): Implemented with pic16_emitpcode
10363         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10364         * (genLeftShift): Fixed bug, operand for shift by variable always
10365         was "and"ed with 0x0f,
10366         * (genLeftShiftLiteral),
10367         * (genrshTwo),
10368         * (genRightShiftLiteral): added debugging info,
10369         * (genrshFour): added comment,
10370         * (genRightShift): determined signedness from operand "left"
10371         instead of "result"
10372
10373 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10374
10375         * src/SDCCicode.c (geniCodeParms),
10376         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10377         function pointers, fixed function pointer bugs #861242 and #861896
10378
10379 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10380
10381         * device/include/c8051f000.h,
10382         * device/include/c8051f120.h,
10383         * device/include/c8051f300.h: added header files for Silicon
10384         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10385
10386 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10387
10388         * src/SDCCast.c (processParams): added new type flow and restructured
10389         (gatherAutoInit): added new type flow
10390         (addCast): cosmetic changes
10391         (getLeftResultType): added new type flow for array indices, patch
10392         provided by Stas, see FR #877103
10393         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10394         array index patch by Stas
10395         * src/SDCCast.h: added prototype getResultTypeFromType()
10396         * src/SDCCval.h,
10397         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10398         * src/pic/glue.c (pic14emitStaticSeg),
10399         * src/pic16/glue.c (pic16emitStaticSeg),
10400         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10401         for initialization of symbols
10402         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10403         * support/Util/SDCCerr.h:
10404         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10405         * .version: bumped version number to 2.3.8
10406         * device/include/Makefile.in (install),
10407         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10408         avoid warnings
10409
10410 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10411
10412         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10413         Slade Rich fixed an optimization bug
10414         * src/pic/pcodepeep.c,
10415         * src/pic/pcoderegs.c
10416         * doc/Makefile (install): added test for directory
10417
10418 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10419
10420         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10421         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10422         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10423         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10424         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10425         * as/mcs51/asexpr.c (term),
10426         * as/hc08/asexpr.c (term): fixed bug #887146
10427
10428 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10429
10430         * src/z80/gen.c (genMult): handle single byte result product
10431         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10432         DUMMY_READ_VOLATILE (fixed bug #886367)
10433
10434 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10435
10436         * support/regression/tests/libmullong.c: fixed logic, on little endian
10437         hosts we ended without a mullong_wrapper()
10438
10439 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10440
10441         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10442         virus/worm forged address usage.
10443
10444 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10445
10446         Fixed promotion, it should be done on AST level:
10447         * src/SDCCast.c (addCast): added promotion to int
10448         (decorateType): updated call to upCast()
10449         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10450         usualUnaryConversions()
10451
10452 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10453
10454         * support/regression/tests/literalop.c (mulWrapper): Added a
10455         wrapper to remove integer overflow warnings.
10456
10457         * support/regression/tests/float_trans.c: Made work on host.
10458
10459         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10460         location of sz80.
10461
10462         * support/regression/generate-cases.py (main): Changed from inline
10463         to a main method.
10464
10465         * doc/Makefile (install): Changed to depth first to get rid of
10466         missing directory install warning.
10467
10468         * as/Makefile (install-doc): Made work on Mac.
10469
10470 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10471
10472         * src/SDCCast.c: added an additional type flow in decorateType() of
10473         opposite direction, see feature request #860006; it's enabled at runtime
10474         by setting the environment variable SDCC_NEWTYPEFLOW
10475         * src/SDCCast.h: changed prototype of decorateType()
10476         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10477         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10478         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10479         see feature request #877103
10480         * src/SDCCval.c: updated call of decorateType()
10481         (valBitwise): fixed bug #882876
10482         (valMinus): added promotion
10483         (valLogicAndOr): result is unsigned
10484         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10485         * src/SDCCsymt.c (computeType),
10486         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10487         must not cause an unsigned operation
10488         * src/pic/glue (pic14emitRegularMap),
10489         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10490
10491 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * src/pic/pcode.c (PCodeID): commented out left over debug code
10494
10495 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10496
10497         * support/valdiag/tests/overflow.c: added shift tests
10498         * src/pic/device.c,
10499         * src/pic/gen.c,
10500         * src/pic/gen.h,
10501         * src/pic/glue.c,
10502         * src/pic/main.c,
10503         * src/pic/pcode.c,
10504         * src/pic/pcode.h,
10505         * src/pic/pcodepeep.c,
10506         * src/pic/pcoderegs.c,
10507         * src/pic/ralloc.c,
10508         * src/pic/ralloc.h: applied patch from Slade Rich;
10509         added support for multiple code pages and multiple RAM banks on the
10510         PIC 14 port. The ASM files now no longer simply assume all the
10511         code / RAM are in the same page / bank. This means the linker can
10512         safely allocate code/RAM of separate ASM files to different pages/banks.
10513         * doc/sdccman.lyx: added Slade's tips
10514         * src/mcs51/peeph.def: fixed bug #880768
10515
10516 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10517
10518         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10519         * src/SDCCast.c (decorateType): fixed bug #880197
10520
10521 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10522
10523         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10524         getopt.h.
10525
10526         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10527         strtof is not part of C89 and isn't included with Mac OS X.
10528
10529 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10530
10531         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10532         shiftL2Left2Result): fixed bug #879326
10533         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10534         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10535         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10536         address fetch for clr instruction
10537         * device/lib/hc08/_mulint.c: created optimized assembly version
10538         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10539
10540 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10541
10542         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10543         proposed in FR #877103
10544
10545 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10546
10547         * src/SDCCval.c (cheapestVal): added missing checks
10548         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10549         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10550
10551 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10552
10553         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10554         equal operands
10555
10556 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10557
10558         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10559         loaded with the linker search paths (-L arguments) and the libraries
10560         to be linked with the current source (-l arguments). Changes
10561         currently will affect only the pic16 port.
10562         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10563         include path the port specific paths and port specific libraries,
10564         * gplink command now contains the $3 argument,
10565         * src/pic16/device.h,
10566         * src/pic16/device.c,: structure PIC_device is made public and
10567         renamed to PIC16_device, the same for variable Pics which is renamed
10568         to Pics16. Updated all references to them.
10569         * src/pic16/glue.c (pic16glue): corrected bug with code
10570         initialization which bypassed the variable initializations block.
10571
10572         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10573         COMPILE_FLAGS and added the --nostdinc option
10574
10575 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10576
10577         * device/include/mc68hc908jb8.h: Register defs for another member
10578         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10579
10580 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10581
10582         Documenting changes from previous commits.
10583         * configure.in (version 1.56),
10584         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10585         when generating output files to configure the pic16 library,
10586         but now I've commented it out, since gputils aren't installed in the
10587         SF compile farm, so library won't compile
10588
10589         * device/lib/Makefile.in (version 1.56): initially I've added in
10590         target 'all' the prerequestive 'model-pic16' so it compiled the
10591         pic16 library, but now I've commented it out for the same reasons
10592         above,
10593         * added targets 'model-pic16' and 'objects-pic16' to compile the
10594         library
10595         * added target 'port-specific-objects-pic16' to handle the
10596         generated libraries and copy them into the build/ directory
10597         * added target 'clean-intermediate-pic16' to clean intermediate
10598         files into pic16 directory
10599         * in target 'installdirs' added line to create directory pic16 in
10600         the installation path
10601
10602         * device/include/Makefile.in (version 1.11): in target 'install'
10603         added lines to copy all header files to installation path,
10604         * in target 'installdirs' added line create directory for pic16
10605         headers in the installation path
10606
10607 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10608
10609         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10610          a function call
10611
10612 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10613
10614         * configure,
10615         * device/lib/configure.in,
10616         * device/lib/configure: fixed for autoconf 2.57
10617
10618 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10619
10620         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10621         option so that it actually works. Made it specific to the z80, since
10622         the gbz80 doesn't have these kinds of I/O ports.
10623
10624 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10625
10626         * device/include/z180.h,
10627         * device/lib/_memcpy.c,
10628         * device/lib/_memmove.c,
10629         * device/lib/_mulint.c,
10630         * device/lib/ser_ir.c,
10631         * device/lib/ser_ir_cts_rts.c,
10632         * device/lib/_strcmp.c,
10633         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10634         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10635         portmode; added deprecation warning for bank= and protmode= forms.
10636         Also, guard against buffer overflow.
10637         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10638
10639 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10642         changed interrupt vector table generation to only emit declared vectors.
10643         * device/include/Makefile.in: added missing backslash
10644         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10645
10646 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10647
10648         Mainly changes to support compilation of the device libraries
10649         * src/pic16/device.c: stack is allocated via symbol and not
10650         via literal number. The symbol is placed in the corresponding
10651         position of the data ram
10652         * (pic16_dump_section): relocatable and absolute uninitialized
10653         data are now emitted in sorted order to reduce section naming,
10654         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10655         weren't marked as being in the access bank,
10656
10657 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10658
10659         Added portion of GNU PIC Library under the directory
10660         device/include/pic16 and device/lib/pic16. These files
10661         contain the declarations of SFRs for the PIC18Fxx2 devices.
10662         The directory is initialized via configure from toplevel.
10663
10664 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10665
10666         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10667         the spilllocations to be compared correctly
10668
10669 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10670
10671         * src/SDCCast.c (decorateType): fixed bug introduced today
10672
10673 2004-01-12  Borut Razem <borut.razem AT siol.net>
10674
10675         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10676         doc/sdccman.lyx: upper case pragmas are deprecated
10677
10678 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10679
10680         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10681         in simpler and even better code
10682
10683 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10684
10685         * src/SDCCicode.c (operandOperation): fixed bug #874819
10686         * src/SDCCast.c (decorateType): fixed
10687         char foo (unsigned long ul) { return ul > 0; }
10688
10689 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10690
10691         * doc/sdccman.lyx: Moved and added some sections, small changes
10692         all over. Telling LaTeX to be less strict with word spacing
10693         to better keep the right margin. Changed some notes about
10694         maintainance of the ports in section 3.2.1 - is it OK like this?
10695
10696 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10697
10698         SDCC source changes:
10699         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10700         convilong): modified to inform the pic16 port that builtin functions
10701         are external
10702
10703         PIC16 PORT specific changes:
10704         * src/pic16/device.c pic16_dump_equates() added,
10705         processor registers declared internally by the port are emitted in
10706         the translation as equates,
10707         * src/pic16/gen.c: inline code is passed unprocessed to the
10708         translation,
10709         * (pic16_popGetLit2): fnuction modified to take second operand as
10710         pCodeOp pointer and not as literal,
10711         * (popRegFromIdx): prefixed with pic16_,
10712         * (pic16_popCombine2): modified to receive already allocated pCode
10713         operands,
10714         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10715         * (genFunction): initializes local stack frame and pushes on stack
10716         all the registers used by this function,
10717         * (genEndFunction): restores all registers from stack and restores
10718         stack frame,
10719         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10720         improvements,
10721         * (pic16glue): changed the program startup sequence,
10722         * added new dbName code 'A' for functions placed in absolute section
10723         * src/pic16/main.c: added function attribute _naked,
10724         * added pragma 'code' to place a fnuction at an absolute address,
10725         * added command line arguments --debug-ralloc and --pcode-verbose,
10726         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10727         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10728         * (pic16_newpCodeOpLit2): modified to take the second operand as
10729         pCodeOp pointer,
10730         * (pic16_printpBlock): modified to emit each function in a separate
10731         section,
10732         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10733         UPPER for immediate operands,
10734         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10735         instruction,
10736         * src/pic16/peeph.def: all peepholes with movff are commented out,
10737         because there is a problem in the pcode peep optimizer,
10738         * src/pic16/ralloc.c: the register allocator can now reuse local
10739         function symbols for another function. This saves register usage.
10740         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10741
10742         Added file src/pic16/NOTES with information about program writing on
10743         the current port version.
10744
10745 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10746
10747         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10748         and peephole 252 (array access)
10749
10750 2004-01-09  Borut Razem <borut.razem AT siol.net>
10751
10752         * src/SDCCmain.c : fixed #872250: -l command line defined library
10753           files are scanned before standard library files
10754
10755 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10756
10757         * src/SDCCast.c (decorateType): fixed bug #874046
10758
10759 2004-01-09  Borut Razem <borut.razem AT siol.net>
10760
10761         * support/scripts/sdcc.nsi: remove previous installation
10762
10763 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10764
10765         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10766         bytes for last interrupt vector (mcs51)
10767         * sdcc.spec: fixed typo
10768
10769 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10770
10771         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10772         gen51Code): more efficient parameter receive for --model-large
10773         ("bug" #845294)
10774
10775 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10776
10777         * src/ds390/main.c,
10778         * src/z80/main.c: added missed needLinkerScript flags (more than
10779         one port structure defined in these file)
10780         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10781         bug #795325
10782
10783 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10784
10785         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10786         * src/port.h: added flag needLinkerScript in port->linker
10787         structure to inform whether to create a .lnk file or not,
10788         * src/avr/main.c,
10789         * src/ds390/main.c,
10790         * src/hc08/main.c,
10791         * src/mcs51/main.c,
10792         * src/pic/main.c,
10793         * src/pic16/main.c,
10794         * src/xa51/main.c,
10795         * src/z80/main.c: changed appropriately to configure
10796         needLinkerScript flag
10797         * src/pic/gen.c,
10798         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10799         * src/pic/glue.c: added variable udata_section_name to
10800         override default uninitialized data segment definition for
10801         devices only with SHAREBANK memory (reported from Erik Epetrich)
10802         * (pic14emitOverlay): modified to emit a commented overlay segment
10803         directive when no overlay data exist
10804         * (picglue): modified to emit uninitialized data segment
10805         according to udata_section_name
10806         * src/pic/main.c (_pic14_parseOptions): added command line
10807         options --udata-section-name=[name] to override default
10808         udata definition name
10809         * modified _linkCmd and _asmCmd to include compiler passed
10810         arguments via -W option
10811         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10812         object file from '.rel' to '.o' in port->linker structure,
10813         changed size of fptr from 2 to 3 in port structure
10814
10815 2004-01-07  Borut Razem <borut.razem AT siol.net>
10816
10817         * support/scripts/sdcc.nsi: update PATH
10818         * support/scripts/sdcc.ico: craeted
10819
10820 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10821
10822         * device/include/Makefile.in: fix install
10823         * doc/Makefile: fix install
10824
10825 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10826
10827         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10828         in bug #860505
10829         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10830         how the function variable allocation summary is displayed; also
10831         include information about variables allocated to the overlay
10832         segment
10833
10834 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10835
10836         * as/mcs51/lkmain.c: Help about -Y option
10837         * as/mcs51/lkarea.c: Fixed gcc warnings
10838
10839 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10840
10841         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10842         fixed warning
10843         * support/valdiag/tests/overflow.c: added
10844         * src/SDCCast.c (decorateType),
10845         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10846         LEFT_OP (left shift)
10847
10848 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10849
10850         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10851         (default behaviour).
10852
10853 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10854
10855         A python script to validate compiler diagnostic messages. It can be
10856         used to verify that sdcc complains about bad c source code and
10857         gives a good location of the error.
10858         * support/valdiag/Makefile,
10859         * support/valdiag/valdiag.py,
10860         * support/valdiag/tests/*
10861
10862 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10863
10864         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10865         * src/SDCCsymt.c (newEnumType),
10866         * src/SDCCsymt.h
10867         * support/Util/SDCCerr.c,
10868         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10869         enum related bugs.
10870         * support/regression/tests/enum.c: added test for enum values that
10871         require at least 2 bytes of storage.
10872
10873 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10874
10875         * src/common.h: added ifndef/define/endif macros
10876         around the header file.
10877         Bug reported from Jesus Calvino-Fraga
10878
10879 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10880
10881         * sdcc.spec: updated
10882         * device/include/Makefile.in: don't install CVS directories
10883         * device/lib/Makefile.in: added removal of CVS directories after install
10884         * doc/Makefile: fixed install, added local_icons
10885         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10886         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10887         * src/ds390/gen.c (genRightShift): fixed bug #870788
10888         * src/SDCCast.c (decorateType): fixed bug #870781
10889
10890 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10891
10892         PIC16 port related changes:
10893         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10894         added variable stackPos,
10895
10896         * gen.c: genCall, assignResultValue: added support for
10897         pushing/retrieving function parameters to/from stack,
10898         genFunction,genEndFunction: setup stack frame for the
10899         generated function,
10900         genAddrOf: will be changed according to bug 863624
10901
10902         * added files genutils.c and genutils.h which contain gen*
10903         debugged and optimised functions extracted from gen.c
10904
10905         * glue.c: added variable 'externs' which holds extern symbols,
10906         pic16emitRegularMap: is modified to properly handle relocatable
10907          symbols under the new scheme,
10908         pic16createInterruptVect: is modified
10909         pic16printPublics: is modified to emit 'global' assembler directives,
10910         added pic16_printExterns to print extern symbols,
10911         pic16glue: initializes stack/frame pointer in the beginning of
10912         the assembly output. Temporary hack, will be corrected later,
10913         because gplink yet does not support stack and SDCC does not
10914         yet support a type of crt0.o object to create the final binary.
10915
10916         * Removed many lines that contain 8051 legacy code.
10917         * The code is finally placed under a 'code' directive.
10918         * Added port specific options.
10919
10920         * _process_pragma: simplified since now we do not need *special*
10921         include file to define SFR registers. But a separate header
10922         will be needed. This will be developed later.
10923         * _pic16_parseOptions: added, parses port specific options:
10924         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10925         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10926         --preplace-udata-with=
10927
10928         * _pic16_setDefaultOptions: modified to initialize section names,
10929         but hack is temporarly out of order since it needs improvement.
10930         * _pic16_genAssemblerPreamble: configuration words are emitted by
10931         their address instead of their name. This part is incomplete and
10932         supports only the 18Fxx2 devices. Other devices will emit an error
10933         during assembly since they do not contain the same set of config
10934         registers
10935         * _pic16_genIVT: is modified,
10936
10937         * pcode.c: added definitions for some hardware registers that are needed
10938         for stack support
10939         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10940         All PCI entries are updated. Now LFSR is supported.
10941         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10942         * added pic16_newpCodeOpLit2 to support instructions with
10943         two literal arguments
10944         * pic16_pCode2str: corrected code that emits assembler instructions
10945         with two literal operands and those that have an access bit modifier
10946         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10947         this fixes a bug which caused some labels to be lost, when an
10948         assembler directive was added, i.e. banksel,
10949         * pic16_FixRegisterBanking: improved logic that causes the insertion
10950         of bank switching,
10951         * InlineFunction: functions that are called once, are not any more
10952         inlined. This can be a port option in the future,
10953
10954         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10955
10956         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10957         hold the corresponding uninitialized symbols,
10958         * pic16_allocProcessorRegister: registers have explicit marked the
10959         accessBank field,
10960         * pic16_allocInternalRegister: registers are explicit marked as
10961         not used,
10962         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10963         processing list, so bit registers were lost,
10964         *
10965
10966         * ralloc.h: added field 'accessBank' and original symbol operand
10967         in register definition,
10968         * removed the field isMapped from register definition,
10969
10970         ** Several functions have been removed from various sources:
10971         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10972         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10973         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10974         pic16_assignRelocatableRegisters
10975
10976         ** others have been introduced:
10977         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10978         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10979
10980 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10981
10982         * support/scripts/inc2h.pl: changed definition of BIT_AT
10983         to emit 'sbit at' instead of 'bit at'. This was a request.
10984
10985         PIC16 port related preliminary changes:
10986         * gen.c: prefixed function popRegFromString with
10987         pic16_ and all references to it corrected
10988         * pcode.c: all pic16_pc_* hardware registers prefixed
10989         with underscore (_),
10990         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10991         * ralloc.c: newReg(): when register is REG_SFR then
10992         set address to rIdx,
10993         pic16_allocProcessorRegister(): marks register wasUsed=0
10994         pic16_writeUsedRegs(): added a call to assign processor
10995         registers via pic16_assignFixedRegisters
10996
10997 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10998
10999         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11000         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11001         variables in unused register banks.  Also the SSEG is placed
11002         wherever there is enough space for it, and IDATA can be anywhere
11003         in internal RAM.  For now compile using -Wl-Y[stack_size].
11004         The mem file is different for this option as well, since it
11005         makes no sense of talking about DSEG lenght.
11006
11007 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11008
11009         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11010         in certain cases, e.g. when ROM assignment, patch provided
11011         from Albert den Haan.
11012
11013 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11014
11015         Many signedness and type propagation fixes:
11016         * src/SDCCicode.c: made geniCodeCast() static
11017         replaced SPEC_ by IS_ (cosmetic)
11018         (operandOperation): fixed div and mod operation
11019         (usualBinaryConversions): added support for promotion of char
11020         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11021         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11022         (geniCodeAdd): an array index will stay unsigned, even if promoted
11023         from char to int
11024         (geniCodeArray): ditto
11025         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11026         * src/SDCCsymt.c (computeType): added more support for char;
11027         promotion of char is selectable by promoteCharToInt, fixed signedness
11028         for all cases
11029         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11030         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11031         * src/SDCCval (val*): replaced signedness calculation by
11032         computeType()
11033         rearranged if-branches (cosmetic)
11034         (valShift): added warning W_SHIFT_CHANGED
11035         (valCompare): fixed problem with different types
11036         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11037         * support/regression/tests/literalop.c: added many cases
11038         * support/regression/tests/ast_constant_folding.c: changed finally to
11039         'unsigned int'
11040         * .version: new year, new version: 2.3.7
11041         * src/SDCCmain.c (main): applied patch #866468
11042         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11043         provided by Scott Bronson
11044         * doc/sdccman.lyx: updated documentation for sdcdb
11045         updated and added chapter tips
11046
11047 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11048
11049         * src/SDCCsymt.h: missing from yesterday's commits
11050
11051 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11052
11053         * src/SDCC.y (struct_or_union_specifier),
11054         * support/Util/SDCCerr.c,
11055         * support/Util/SDCCerr.h: verify that struct & union tags are used
11056         as declared.
11057
11058 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11059
11060         * src/SDCCglobl.h: missing from yesterday's commits
11061
11062 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11063
11064         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11065         sft_attributes, struct_declaration, parameter_declaration,
11066         type_name, start_block, declaration_list),
11067         * src/SDCC.lex (check_type): support redefinition of typedef names
11068
11069 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11070
11071         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11072         aligned xdata arrays. Erik helped me with the if clause.
11073
11074 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11075
11076         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11077         warning
11078
11079 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11080
11081         * src/SDCCast.h,
11082         * src/SDCCast.c (newAst_),
11083         * src/SDCCicode.h,
11084         * src/SDCCicode.c (ast2iCode, newiCode),
11085         * src/SDCCglobl.h,
11086         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11087         expr, statement, expression_statement, selection_statement,
11088         iteration_statement, expr_opt, jump_statement): foundation for tracking
11089         sequence points
11090         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11091         point code too)
11092
11093 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11094
11095         * support/Util/SDCCerr.c,
11096         * src/SDCCast.h,
11097         * src/SDCCast.c (createCase, createDefault, decorateType),
11098         * src/SDCClabel.c (labelUnreach),
11099         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11100         to error messages.
11101         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11102         (with thanks to Stas Sergeev)
11103         * device/include/time.h,
11104         * device/lib/time.c (CheckTime): suppress unreachable code warning
11105
11106 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11107
11108         * src/SDCCast.c (createIvalCharPtr),
11109         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11110         bug #753752)
11111         * support/regression/tests/nullstring.c: tests for these two bugs
11112
11113 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11114
11115         * support/Util/SDCCerr.h,
11116         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11117         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11118         about storage class and 'at' used inside struct or union
11119         * src/SDCCBBlock.c (iCodeFromeBBlock),
11120         * src/SDCCcse.c (ifxOptimize),
11121         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11122         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11123         printIval, emitStaticSeg, emitOverlay),
11124         * src/SDCClabel.c (deleteIfx),
11125         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11126         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11127         gatherAutoInit, processParms),
11128         * support/Util/SDCCerr.h,
11129         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11130         reporting for post-parse errors.
11131
11132 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11133
11134         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11135         implicit casts via union; they don't work on big endian systems
11136         (possible fix for bug #861138)
11137
11138 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11139
11140         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11141         * src/mcs51/main.c: fixed the fix for bug #737001
11142
11143 2003-12-15  Borut Razem <borut.razem AT siol.net>
11144
11145         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11146
11147 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11148
11149         * support/makebin/makebin.c: put output in binary mode
11150
11151 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11152
11153         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11154         xdata and data memory on startup. Set the environment variable
11155         SDCC_NOGENRAMCLEAR to disable this.
11156         * src/mcs51/peephole.def,
11157         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11158         (allows non-interrupt and interrupt code to safely compete for a resource
11159         without the non-interrupt code having to disable interrupts)
11160
11161 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11162
11163         * src/SDCCicode.c (geniCodeAdd),
11164         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11165         with valFromType if type might be a pointer and host is big endian).
11166         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11167         types, not just integer types.
11168         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11169         multiply defined with mismatching "at" address.
11170
11171 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11172
11173         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11174         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11175         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11176         with embedded nulls (fixed bug #753752)
11177
11178 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11179
11180         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11181         Apparently this did not see much testing (endless loop)
11182
11183 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11184
11185         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11186
11187 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11188
11189         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11190         gracefully handle NULL memmap pointers
11191
11192 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11193
11194         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11195         instead of deleting the iCode when an operand is volatile
11196         * src/z80/gen.c (genDummyRead),
11197         * src/mcs51/gen.c (genDummyRead),
11198         * src/ds390/gen.c (genDummyRead),
11199         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11200         not just IC_RIGHT
11201         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11202         * src/SDCC.y: fixed bug #850420
11203
11204 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11205
11206         Applied z80 i/o port patch from Peter Townson and fixed some operators
11207         to better handle operands in A register.
11208         * device/include/z180.h
11209         * src/SDCC.y
11210         * src/SDCCglue.c
11211         * src/z80/gen.c
11212         * src/z80/gen.h
11213         * src/z80/main.c
11214         * src/z80/peeph-z80.def
11215         * src/z80/peeph.def
11216         * src/z80/z80.h
11217
11218 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11219
11220         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11221
11222 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11223
11224         * device/lib/hc08/_mullong.c: Removed extra #endif
11225
11226 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11227
11228         * sim/ucsim/hc08.src/inst.cc,
11229         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11230         carries from x to h
11231         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11232         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11233         * device/include/stdarg.h: fixed varargs for hc08
11234         * device/lib/Makefile.in,
11235         * device/lib/hc08/Makefile,
11236         * device/lib/hc08/_mulint.c,
11237         * device/lib/hc08/_mullong.c: fixed some endian problems
11238
11239 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11240
11241         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11242         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11243         * device/lib/_gptrget.c,
11244         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11245
11246 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11247
11248         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11249         * src/SDCCast.c (astErrors): fixed bug #846007
11250         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11251
11252 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11253
11254         * src/SDCCast.c (decorateType): disabled a transformation I added in
11255         revision 1.188 (access to fields of a structure at an absolute address);
11256         it breaks with bitfields, extern declarations, and gcse analysis.
11257         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11258         could be assigned through a pointer, so don't complain.
11259         * src/SDCCast.c (astErrors),
11260         * src/SDCCast.h,
11261         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11262
11263 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11264
11265         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11266         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11267         output of __config directives, since gpasm now supports them
11268         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11269         pre-processor macro, i.e. -DMCU=p18f452
11270         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11271         and modified to handle 'cast' icode similarly to '=' icode
11272         * src/pic16/device.h (typedef struct PIC_device): added field
11273         'extMIface' to indicate that chip has external memory interface
11274         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11275         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11276         18F8720
11277
11278 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11279
11280         * src/SDCC.y (pointer): fixed bug #846006
11281         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11282         * src/SDCCast.c (decorateType): fixed bug #846009
11283         * src/ds390/peeph.def,
11284         * src/ds390/gen.c (genAnd, genOr),
11285         * src/mcs51/peeph.def,
11286         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11287
11288 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11289
11290         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11291         * src/SDCCdflow.c
11292         * src/SDCCcse.c
11293         * src/SDCCcse.h
11294         * src/SDCCBBlock.h
11295         * src/SDCCBBlock.c
11296
11297 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11298
11299         fixed bug #845089
11300         * src/SDCCbitv.h,
11301         * src/SDCCbitv.c: added function to free a bitvector
11302         * src/SDCClrange.h,
11303         * src/SDCClrange.c: added function to recompute the liveranges
11304         * src/avr/ralloc.c,
11305         * src/ds390/ralloc.c,
11306         * src/hc08/ralloc.c,
11307         * src/mcs51/ralloc.c,
11308         * src/pic/ralloc.c,
11309         * src/pic16/ralloc.c,
11310         * src/xa51/ralloc.c,
11311         * src/z80/ralloc.c: recompute the liveranges after register packing
11312
11313 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11314
11315         * src/SDCCloop.c (newInduction): fixed bug #845630
11316
11317 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11318
11319         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11320         inadvertantly left behind from my 2003-11-12 change
11321
11322 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11323
11324         Updated headers I neglected to commit yesterday.
11325         * src/SDCClrange.h,
11326         * src/SDCCicode.h
11327
11328 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11329
11330         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11331         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11332         * src/SDCCopt.c (eBBlockFromiCode),
11333         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11334         the creation of the key hash table from the sequencing so it can be used
11335         earlier (for some GCSE bug fixes still pending)
11336
11337 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11338
11339         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11340         * support/regression/tests/addsub.c: testing genPlus shortcut
11341
11342 2003-11-15  Borut Razem <borut.razem AT siol.net>
11343
11344         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11345
11346 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11347
11348         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11349         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11350         ordering is immaterial.
11351         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11352
11353 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11354
11355         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11356         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11357         (SIGSEV) of bug #840381
11358         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11359         unlink new file before rename if new and old filenames are the same)
11360
11361 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11362
11363         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11364         uninitialized variables) for the mcs51. Set environment variable
11365         SDCC_GENRAMCLEAR to test.
11366         xdata initialization slightly shorter
11367
11368 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11369
11370         * src/SDCCsymt.h,
11371         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11372         #838241 & 780691 (basicly the same bug)
11373         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11374         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11375
11376 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11377
11378         * src/SDCCmain.c (linkEdit): "fix" #834252
11379
11380 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11381
11382         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11383         * src/SDCCast.h,
11384         * src/SDCC.y: fixed bug #819403
11385
11386 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11387
11388         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11389         the reentrant attribute.
11390         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11391         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11392         simulation
11393         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11394         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11395         erroneously reduced to a literal.
11396         * src/hc08/ralloc.c (packRegisters, rematStr),
11397         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11398         some cases
11399
11400 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11401
11402         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11403         * doc/sdccman.lyx: changed from 'article' to 'book'
11404         * doc/Makefile: readded test_suite_spec and cdbfileformat
11405
11406 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11407
11408         * device/include/stdlib.h: include malloc.h to comply with ANSI
11409         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11410
11411 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11412
11413         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11414         * doc/clean.mk: also remove *.out files
11415         * doc/sdccman.lyx: some additions, larger top/bottom margins
11416
11417 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11418
11419         * src/SDCC.y: fixed bug #837365
11420         * support/regression/tests/bitopcse.c
11421         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11422         a symbol (might be valop instead)
11423         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11424         * device/lib/clean.mk: added hc08 to the cleaning list
11425
11426 2003-11-04  Borut Razem <borut.razem AT siol.net>
11427
11428         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11429           made 2003-11-04
11430         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11431           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11432           malloc is declared in standard stdlib.h
11433
11434 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11435
11436         * device/lib/hc08/Makefile: need to clean .rel not .o files
11437         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11438
11439 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11440
11441         * src/port.h,
11442         * src/hc08/main.c,
11443         * src/mcs51/main.c,
11444         * src/ds390/main.c,
11445         * src/z80/main.c,
11446         * src/avr/main.c,
11447         * src/pic/main.c,
11448         * src/pic16/main.c,
11449         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11450         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11451         tests (which uses the port's oclsExpense function)
11452         * src/SDCC.y,
11453         * src/SDCCast.c,
11454         * src/SDCCicode.c,
11455         * src/hc08/gen.c,
11456         * src/ds390/gen.c,
11457         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11458
11459 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11460
11461         * src/SDCCcse.c (ifxOptimize),
11462         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11463         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11464         deleting the IFX iCode.
11465         * src/hc08/ralloc.c: reduced unneeded slocs
11466         * src/hc08/gen.c: fixed bug in asmopToBoolean
11467
11468 2003-11-04  Borut Razem <borut.razem AT siol.net>
11469
11470         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11471           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11472           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11473           transferred to configure
11474
11475 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11476
11477         Use headers defined in the C[++] standards:
11478         * sim/ucsim/gui.src/serio.src/fileio.cc
11479         * sim/ucsim/gui.src/serio.src/frontend.cc
11480         * sim/ucsim/gui.src/serio.src/main.cc
11481         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11482         * support/Util/NewAlloc.c
11483         * as/hc08/lklibr.c
11484         * as/mcs51/lklibr.c
11485         * as/z80/aslist.c
11486         * as/z80/assym.c
11487
11488 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11489
11490         * Added MSVC projects for hc08 assembler and linker:
11491         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11492         /as/hc08/link_hc08.dsp
11493
11494 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11495
11496         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11497
11498 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11499
11500         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11501
11502 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11503
11504         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11505
11506 2003-10-31  Borut Razem <borut.razem AT siol.net>
11507
11508         * support/cpp2/cpplib.h,
11509           support/cpp2/cpplib.c,
11510           support/cpp2/cpplex.c,
11511           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11512           to switch _asm block preprocessing on / off. Default is
11513           #pragma preproc_asm +
11514
11515 2003-10-31  Borut Razem <borut.razem AT siol.net>
11516
11517         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11518           when outputting comment blocks (when executed with -C option) and
11519           _asm (SDCPP specific) blocks
11520
11521 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11522
11523         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11524
11525 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11526
11527         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11528
11529 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11530
11531         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11532         * src/SDCCast.c (decorateType): fixed bug #832664
11533
11534 2003-10-31  Borut Razem <borut.razem AT siol.net>
11535
11536         * support/cpp2/cpplex.c: fixed for SDCPP:
11537           comments(when executed with -C option) and _asm blocks
11538           were included even if they where in skipped #if block.
11539           Applied solution from GCC cpp 3.3.2
11540
11541 2003-10-31  Borut Razem <borut.razem AT siol.net>
11542
11543         * src/SDCC.lex: sdcc now understands both formats:
11544           '# <line_number> <file_name>' and
11545           '#line <line_number> <file_name>'
11546         * support/cpp2/cppmain.c: sdcpp now generates the standard
11547           '# <line_number> <file_name>' instead of former
11548           '#line <line_number> <file_name>'
11549
11550 2003-10-30  Borut Razem <borut.razem AT siol.net>
11551
11552         * support/cpp2/cpphash.h,
11553         * support/cpp2/cpplib.h
11554         * support/cpp2/cpplex.c,
11555         * support/cpp2/cppmain.c,
11556         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11557
11558 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11559
11560         Fixed a number of problems revealed by bug #827883.
11561         * src/SDCCloop.c (loopInvariants): Spill location of the
11562         result operand should be recomputed if extracted from
11563         a loop. Also, don't extract assignments of an iTemp
11564         from a literal.
11565         * src/SDCCast.c (isConformingBody): loop reversal should
11566         not occur if the control variable is involved with a
11567         relational operator.
11568
11569 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11570
11571         * .version: bumped to 2.3.6 to reflect the big improvements
11572         made by Erik and Klaus. Thanks!
11573
11574 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11575
11576         Replaced the livrange code.
11577         * src/SDCClrange.c: added new LR code
11578         * src/SDCCloop.c,
11579         * src/SDCCBBlock.h: removed remainig parts from old LR code
11580         * src/ds390/ralloc.c,
11581         * src/ds390/gen.c: minor fixes to make it work with new code
11582
11583 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11584
11585         * as/hc08/asm.h,
11586         * as/hc08/lkrloc.c,
11587         * src/hc08/gen.c,
11588         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11589         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11590         (tweaked fix for bug #818696)
11591
11592 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11593
11594         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11595
11596 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11597
11598         * src/SDCCmain.c,
11599         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11600         * src/mcs51/gen.c (gencjneshort),
11601         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11602         more efficient (per Scott Bronson's suggestion)
11603
11604 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11605
11606         Extended the semantics of the critical keyword to include
11607         individual statements. See RFE #827755 and #799831
11608         * src/SDCC.y
11609         * src/SDCCicode.c
11610         * src/SDCCopt.c
11611         * src/SDCCast.c
11612         * support/Util/SDCCerr.c
11613         * support/Util/SDCCerr.h
11614         * src/mcs51/gen.c
11615         * src/ds390/gen.c
11616         * src/hc08/gen.c
11617
11618 2003-10-19  Borut Razem <borut.razem AT siol.net>
11619
11620         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11621
11622 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11623
11624         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11625         Fixed bug #818696
11626         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11627         and predecrement operand is displayed
11628
11629 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11630
11631         * src/SDCCval.c (valMinus): fixed bug #826041
11632
11633 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11634
11635         Some hc08 related updates that I missed earlier
11636         * sim/ucsim/stypes.h
11637         * support/regression/ports/hc08/spec.mk
11638
11639 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11640
11641         New target "hc08" for the Motorola 68hc08 family of micros
11642
11643         * configure
11644         * configure.in
11645         * Makefile
11646         * src/hc08/*
11647         * src/SDCCmain.c
11648         * src/port.h
11649         * sim/ucsim/hc08.src/*
11650         * sim/ucsim/configure.in
11651         * src/ucsim/configure
11652         * sim/ucsim/packages_in.mk
11653         * as/hc08/*
11654         * as/Makefile
11655         * device/include/mc68hc908qy.h
11656         * device/lib/hc08/*
11657         * device/lib/Makefile.in
11658         * support/regression/ports/hc08/*
11659         * support/regression/Makefile
11660
11661 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11662
11663         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11664         regression test
11665         * src/ds390/gen.c (genCast): fixed bug #821957
11666
11667 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11668
11669         * device/lib/logf.c: "fixed" overlay bug
11670         * support/regression/ports/host/spec.mk: added m library
11671         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11672         * support/regression/tests/float_trans: added (for Eric)
11673
11674 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11675
11676         * src/mcs51/gen.c (genCpl): fixed bug
11677         http://sf.net/mailarchive/message.php?msg_id=6263915
11678
11679 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11680
11681         * src/SDCCast.c (decorateType): added extended constant folding
11682         * src/SDCCsymt.c (computeType): cleanup
11683         * src/SDCCval.c (valShift): minor optimization
11684         * support/regression/tests/ast_constant_folding.c: added
11685
11686 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11687
11688         * src/SDCCmain.c: removed some unintended changes
11689
11690 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11691
11692         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11693         * src/z80/gen.c: fixed part of bug #817589
11694         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11695
11696 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11697
11698         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11699         * src/SDCCcflow.c
11700         * src/SDCCcse.c
11701         * src/SDCCdflow.c
11702         * src/SDCClabel.c
11703         * src/SDCClrange.c
11704         * src/SDCCmem.c
11705         * src/SDCCopt.c
11706         * src/SDCCpeeph.c
11707         * src/SDCCset.c
11708         * src/avr/ralloc.c
11709         * src/ds390/ralloc.c
11710         * src/izt/ralloc.c
11711         * src/mcs51/ralloc.c
11712         * src/pic/ralloc.c
11713         * src/pic16/ralloc.c
11714         * src/xa51/ralloc.c
11715         * src/z80/ralloc.c
11716         * src/z80/gen.c: removed unused label "release:"
11717
11718 2003-10-06  Borut Razem <borut.razem AT siol.net>
11719
11720         * src/SDCC.lex: removed definition of unused variables
11721           save_optimize and save_options
11722
11723 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11724
11725         * clean.mk: removed '=' in "-maxdepth=1"
11726         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11727         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11728
11729 2003-10-06  Borut Razem <borut.razem AT siol.net>
11730
11731         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11732           my_unput() replaced by unput()
11733
11734 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11735
11736         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11737         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11738         type-punned pointer will break strict-aliasing rules"
11739         Old LR behaviour is again default; Klaus' LR can be choosen by
11740         defining the environment variable LRKLAUS
11741         * src/SDCCBBlock.h
11742         * src/SDCCloop.c
11743         * src/SDCClrange.c
11744         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11745         * clean.mk: fixed removal of files in bin/CVS/
11746         * device/lib/clean.mk: fixed removal of directories small and large
11747         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11748         * src/SDCCicode.c,
11749         * src/SDCCval.c: removed superflous test for pedantic
11750
11751 2003-10-05  Borut Razem <borut.razem AT siol.net>
11752
11753         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11754           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11755           message "unmatched #pragma SAVE and #pragma RESTORE"
11756
11757 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11758
11759         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11760           assembly, critical functions, atomic, nojtbound)
11761
11762 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11763
11764         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11765         * src/SDCCBBlock.h
11766         * src/SDCCloop.c
11767         * src/SDCCloop.h
11768         * src/SDCClrange.c
11769
11770 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11771
11772         * src/z80/gen.h,
11773         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11774         * src/mcs51/gen.h
11775         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11776         * src/ds390/gen.h
11777         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11778         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11779         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11780
11781 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11782
11783         * src/z80/gen.c (genRet): fixed bug #524753
11784         * src/z80/gen.c (genCast): fixed internal error on cast from
11785         pointer to long
11786         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11787         fix for bug #477835 to the z80
11788         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11789         for tracking iCodes in the peephole optimizer for z80
11790
11791 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11792
11793         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11794         the other part of bug #814548
11795         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11796
11797 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11798
11799         * src/SDCCcse.c: fixed part of bug #814548
11800
11801 2003-09-28  Borut Razem <borut.razem AT siol.net>
11802
11803         * src/asm.c: rewrite of printILine() to use temporary file instead
11804           a pipe
11805         * src/xa51/main.c: commented out declaration of int rewinds
11806
11807 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11808
11809         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11810
11811 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11812
11813         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11814         * src/asm.c (printILine): Fixed bug #811015
11815
11816 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11817
11818         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11819         freeing.
11820
11821 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11822
11823         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11824         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11825         to correctly handle general case of AOP_PAIRPTR
11826         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11827
11828 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11829
11830         * src/mcs51/ralloc.c (fillGaps),
11831         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11832         register positioning bug)
11833
11834 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11835
11836         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11837
11838 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11839
11840         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11841         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11842         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11843         (ralloc doesn't intentionally do this now, but perhaps later)
11844         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11845         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11846         register positioning bugs (Fixed bug #762602 and #795325)
11847         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11848         (Fixed bug #808779)
11849         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11850         lines that --i-code-in-asm generates
11851
11852 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11853
11854         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11855         trying to fclose a FILE* that was already closed.
11856
11857 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11858
11859         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11860         of const struct should be treated as if const themselves)
11861
11862 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11863
11864         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11865
11866 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11867
11868         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11869         Unix (/n) and DOS (/r/n) line terminations.
11870
11871 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11872
11873         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11874         bug #613775
11875
11876 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11877
11878         * src/mcs51/gen.c (genFunction, genEndFunction),
11879         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11880         and restore of EA so that stack offsets to parameters are
11881         correct when using both critical and reentrant/stack-auto.
11882         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11883         size (can be triggered in error if sloc is shared between
11884         different sized objects)
11885         * device/include/float.h: fixed macros to explicitly use
11886         unsigned long where needed
11887
11888 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11889
11890         Feature req. 799831: added code to allow nesting of critical functions
11891         * src/mcs51/gen.c (genFunction, genEndFunction)
11892         * src/ds390/gen.c (genFunction, genEndFunction)
11893
11894 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11895
11896         * src/SDCCsymt.c (sclsFromPtr),
11897         * src/SDCCsymt.h,
11898         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11899         support for standard C idiom of memory mapped variables; for
11900         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11901         to xdata int at 0x1234 tempvar = 1.
11902         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11903         provided by Akiya ISHIDA
11904
11905 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11906
11907         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11908         * src/SDCCval.c (constVal): added reduction from int to char
11909         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11910         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11911         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11912         to ignore the sign
11913         * support/regression/tests/shifts.c: fixed
11914
11915 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11916
11917         * src/z80/gen.c (genXor): Fixed bug #805445
11918
11919 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11920
11921         Fixed bug #621531 (const & volatile confusion in the type chain).
11922         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11923         refer to the const or volatile state of the pointer itself.
11924
11925         * src/SDCCast.c
11926         * src/SDCCglue.c
11927         * src/SDCCicode.c
11928         * src/SDCCsymt.c
11929         * src/SDCCval.c
11930         * src/SDCC.y
11931         * src/SDCCsymt.h
11932         * src/pic/gen.c
11933         * src/pic/ralloc.c
11934         * src/pic16/gen.c
11935         * src/pic16/ralloc.c
11936         * support/regression/tests/const.c
11937
11938 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11939
11940         When checking for duplicated modules, use absolute paths
11941         instead of relative paths.  Files changed:
11942
11943         * as/mcs51/lklib.c
11944         * link/z80/lklib.c
11945
11946 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11947
11948         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11949
11950 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11951
11952         * device/include/string.h: added size_t typedef, changed
11953         prototypes to use size_t, eliminated separate reentrant and
11954         non-reentrant declarations, added _memmove declaration
11955         * device/lib/_memcpy.c: changed to use size_t instead of int,
11956         changed /4 to >>2 to avoid division library call
11957         * device/lib/_memcmp.c,
11958         * device/lib/_memset.c,
11959         * device/lib/_strncat.c,
11960         * device/lib/_strncpy.c,
11961         * device/lib/_strncmp.c: changed to use size_t instead of int
11962         * device/lib/_memmove.c: new file (fixed bug #772294)
11963         * device/lib/Makefile.in: added _memmove.c
11964         * device/lib/z80/asm_strings.s: fixed bug #772290
11965         * support/regression/tests/bitfields.c: attempt to fix host assertion
11966         failure on amd64-unknown-linux2.2
11967
11968 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11969
11970         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11971         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11972         * as/z80/asmain.c (main): fixed bug #801766
11973
11974 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11975
11976         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11977         compilers
11978
11979 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11980
11981         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11982         reported in bug #800609
11983
11984 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11985
11986         * Top header beautifications in src/pic16 directory:
11987           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11988           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11989           pcoderegs.h, ralloc.c, ralloc.h
11990         * main.c: added top header and GPL license notice
11991         * pcode.c: fixed the if-conditional warning
11992
11993 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11994
11995         * device/lib/_mullong.c: replaced int by short for gcc
11996
11997 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11998
11999         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12000         and JUMPTABLE iCodes properly now (worked by accident before)
12001         * src/mcs51/gen.c (leftRightUseAcc),
12002         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12003         iCode properly now. Use getSize instead of nRegs since a & b
12004         aren't part of the nRegs tally.
12005
12006 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12007
12008         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12009         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12010           before instructions that use the _STATUS register
12011
12012 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12013
12014         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12015         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12016         fetching of the pointer
12017         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12018         copied from genNearPointerSet()
12019         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12020         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12021         If they pop r0/r1 they must be called in the opposite order than aopOp().
12022         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12023         (resp. --stack-auto), prepared for --xstack
12024
12025 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12026
12027         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12028
12029 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12030
12031         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12032         these ports have their own __sdcc_external_start()
12033
12034 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12035
12036         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12037         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12038         type for bits was changed. It resulted in bit variables becoming
12039         global, which is not permitted in PIC 14 assembly output.
12040
12041 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12042
12043         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12044
12045 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12046
12047         Z80 and MCS51 linkers complaint if a public symbol is defined
12048         in more than one library module:
12049
12050         * as/mcs51/lklib.c
12051         * link/z80/lklib.c
12052         * as/mcs51/Makefile.in
12053
12054 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12055
12056         A few small changes that speed up the peephole optimizer.
12057
12058         * src/SDCCpeeph.c
12059
12060 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12061
12062         Try to make the peephole optimizer smarter by maintaining
12063         an association between the assembly source code and the
12064         iCodes that originated them. Put this information to use
12065         with a new peephole rule condition "notVolatile" so that
12066         the rules can be aggressive yet still safe.
12067
12068         * src/SDCCpeeph.c
12069         * src/SDCCpeeph.h
12070         * src/mcs51/gen.c
12071         * src/mcs51/peeph.def
12072
12073 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12074
12075         Fixed bug #741761
12076
12077         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12078         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12079         if the left or right operand symbols have the accuse flag set.
12080
12081 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12082
12083         Changed the type of the result of the ! (NOT) operator to char;
12084         previously it returned the same type as the source. This allows
12085         us to eliminate all the genFloatNot functions (all of its target
12086         implementations were very buggy) since !float can use the same
12087         code as !long now.
12088
12089         * src/SDCCicode.c (ast2iCode): ! returns char
12090         * src/mcs51/gen.c (genNot, genNotFloat),
12091         * src/ds390/gen.c (genNot, genNotFloat),
12092         * src/z80/gen.c (genNot, genNotFloat),
12093         * src/pic/gen.c (genNot, genNotFloat),
12094         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12095
12096 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12097
12098         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12099         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12100            during interrupts. Ensure WSAVE is located at a shared bank address.
12101         2. Fixed page selection in some places
12102         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12103            the registers name strings.
12104         4. Fixed "signed / unsigned compare" compiler warnings.
12105         5. The PIC port manages its own allocation of the general purpose
12106            registers, but makes no attempt to reuse them. As a result when
12107            compiling it soon runs out of general purpose registers. Some
12108            additional code was added to the files pcode.c and device.c to walk
12109            through the function call tree and rename the registers so that they
12110            get reused.
12111
12112         * src/pic/device.c
12113         * src/pic/gen.c
12114         * src/pic/glue.c
12115         * src/pic/pcode.c
12116         * src/pic/pcode.h
12117         * src/pic/ralloc.c
12118         * src/pic/ralloc.h
12119         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12120         genPlus() & genMinus() when the result is the same as left or right
12121
12122 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12123
12124         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12125
12126 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12127
12128         Made bitfield a distinct type from bit so that bitfields
12129         convert as per ANSI C and bits retain their traditional
12130         boolean style behaviour. Implemented bitfield support in
12131         the z80 port.
12132
12133         * src/SDCCsymt.h,
12134         * src/SDCCsymt.c,
12135         * src/SDCCast.c,
12136         * src/cdbFile.c,
12137         * src/mcs51/gen.c,
12138         * src/ds390/gen.c: bit v bitfield split
12139         * src/z80/gen.c: New support for bitfields
12140         * support/regression/tests/bitfields.c: reenabled z80,
12141         added more tests
12142
12143 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12144
12145         Rules 246.x, 247.x relate to bitfields, the others speed up
12146         access to xdata mapped I/O devices.
12147
12148         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12149
12150 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12151
12152         Cleaned up genPackBits and genUnpackBits and added two helper
12153         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12154         for literal assignments in genPackBits (thanks to Frieder for
12155         reminding me).
12156
12157         * src/mcs51/gen.c
12158         * src/ds390/gen.c
12159
12160 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12161
12162         Fixed bug #748310 (pointer to function type mishandled when the
12163         function name is omitted). Also fixed a SIGSEGV when a function
12164         attribute (reentrant, etc) is used on a non-function or on a
12165         function but misplaced before the parameter list.
12166
12167         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12168         bug #748310
12169         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12170         * support/Util/SDCCerr.h,
12171         * support/Util/SDCCerr.c: Added func attr misuse error msg
12172
12173 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12174
12175         Fixed bug #787649 by anonymous
12176         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12177         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12178
12179 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12180
12181         Fixed numerous bitfield problems.
12182
12183         * src/SDCC.y: More bitfield related error checking
12184         * src/SDCCsymt.h,
12185         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12186         * support/Util/SDCCerr.h,
12187         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12188         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12189         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12190         * support/regression/tests/bitfields.c: tests added
12191
12192 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12193
12194         Made the constant following the "interrupt" keyword optional. If
12195         omitted, the function will not automatically be given an entry
12196         in the interrupt vector table (similar to #pragma NOIV, but
12197         less syntacticly kludgy). The interrupt number is also now
12198         range checked. Also fixed a bug in the high order bit example
12199         in the manual.
12200
12201         * src/SDCC.y
12202         * src/SDCCmem.c
12203         * src/SDCCglue.c
12204         * src/SDCCsymt.h
12205         * support/Util/SDCCerr.c
12206         * support/Util/SDCCerr.h
12207         * doc/sdccman.lyx
12208
12209 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12210
12211         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12212         * src/SDCCicode.c (operandOperation): rewritten some ops
12213         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12214         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12215         other type
12216         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12217         be re-activated by defining REDUCE_LITERALS)
12218         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12219         unsigned, but are signed by default
12220         * src/SDCCval.c (constVal): rearranged
12221         * src/SDCCval.c (valMod): preliminary fix
12222         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12223         * support/regression/literalop.c: added, work in progress
12224
12225 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12226
12227         Generate warnings for useless declarations like "char data;"
12228         that don't do what new users expect.
12229
12230         * src/SDCC.y
12231         * support/Util/SDCCerr.h
12232         * support/Util/SDCCerr.c
12233
12234 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12235
12236         * src/SDCCval.c (valMult): fix overflow detection of negative int
12237
12238 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12239
12240         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12241
12242         Changes to support big endian targets:
12243
12244         * src/ports.h
12245         * src/SDCCglue.c
12246         * src/avr/main.c
12247         * src/ds390/main.c
12248         * src/izt/i186.c
12249         * src/mcs51/main.c
12250         * src/pic/main.c
12251         * src/pic16/main.c
12252         * src/xa51/main.c
12253         * src/z80/main.c
12254
12255 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12256
12257         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12258         * device/lib/time.c: fixed warning "integer overflow in expression"
12259
12260 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12261
12262         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12263         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12264         constants are unsigned; added recognition of "u" flag for unsigned
12265         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12266         * src/SDCCval.c (valDiv, valMod): fixed signdness
12267         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12268         signedness of modulo, left and right shift
12269         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12270         * support/Util/SDCCerr.h: added warning W_INT_OVL
12271         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12272         * src/SDCCast.c (ast_print): improved output of constants
12273
12274 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12275
12276         Fixed some warnings when building with MSVC:
12277
12278         * as/mcs51/asdata.c
12279         * as/z80/asdata.c
12280         * as/mcs51/asm.h
12281         * as/z80/asm.h
12282         * link/z80/aslink.h
12283         * link/z80/lkdata.c
12284         * link/z80/lkeval.c
12285         * link/z80/lkgb.c
12286         * link/z80/lkihx.c
12287         * link/z80/lks19.c
12288         * link/z80/lksym.c
12289         * support/cpp2/cpplib.c
12290         * src/ds390/gen.c
12291         * src/mcs51/gen.c
12292
12293 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12294
12295         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12296
12297 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12298
12299         * support/librarian/clean.mk: Do not remove Makefile.
12300         * support/librarian/Makefile: added.
12301
12302 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12303
12304         Added librarian to MSVC build:
12305         * all.dsp
12306         * sdcc.dsw
12307         * support/librarian/librarian.dsp
12308
12309         'configure' not needed for librarian, removed:
12310         * support/librarian/configure
12311         * support/librarian/configure.in
12312         * support/librarian/config_in.h
12313         * support/librarian/Makefile.in
12314
12315         Hopefully these ones built the librarian and the rest of sdcc properly:
12316         * Makefile
12317         * Makefile.common.in
12318
12319         Messed up 'configure', so revert to previous version:
12320         * configure
12321         * configure.in
12322
12323 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12324
12325         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12326         there, while the mantissa of a double is "only" 53 bits wide.
12327
12328 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12329
12330         Adding sdcclib to the build.  MSVC project coming soon.
12331         Files added/changed:
12332
12333         * support/librarian/clean.mk
12334         * support/librarian/configure
12335         * support/librarian/configure.in
12336         * support/librarian/config_in.h
12337         * support/librarian/Makefile.bcc
12338         * support/librarian/Makefile.in
12339         * support/librarian/sdcclib.c
12340         * Makefile.bcc
12341         * Makefile
12342         * Makefile.common.in
12343         * configure
12344         * configure.in
12345
12346 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12347
12348         Linker now complaints if linked modules have conflicting options, for
12349         example, one compiled using --model-large and another one compiled with
12350         --model-small.  The following files were modified:
12351
12352         * as/mcs51/asdata.c
12353         * as/mcs51/aslink.h
12354         * as/mcs51/asm.h
12355         * as/mcs51/asmain.c
12356         * as/mcs51/asout.c
12357         * as/mcs51/i51pst.c
12358         * as/mcs51/lkdata.c
12359         * as/mcs51/lklibr.c
12360         * as/mcs51/lkmain.c
12361         * as/z80/asdata.c
12362         * as/z80/asm.h
12363         * as/z80/asmain.c
12364         * as/z80/asout.c
12365         * as/z80/z80pst.c
12366         * link/z80/aslink.h
12367         * link/z80/lkdata.c
12368         * link/z80/lklibr.c
12369         * link/z80/lkmain.c
12370         * src/SDCCglue.c
12371
12372 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12373
12374         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12375         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12376
12377 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12378
12379         * src/z80/mappings.i: fix _mul[us][int,long] entries
12380
12381 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12382
12383         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12384
12385 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12386
12387         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12388         * support/regression/tests/bitopcse.c: added
12389         fixed warning:
12390         * src/avr/gen.c:
12391         * src/pic/gen.c:
12392         * src/pic16/gen.c:
12393         * src/z80/gen.c:
12394         * src/xa51/gen.c:
12395
12396 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12397
12398         added support for new library format to z80, gbz80 linkers:
12399         *link/z80/aslink.h
12400         *link/z80/lklex.c
12401         *link/z80/lklib.c
12402         *link/z80/lklist.c
12403
12404 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12405
12406         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12407         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12408
12409 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12410
12411         added DUMMY_READ_VOLATILE:
12412         * src/SDCC.y:
12413         * src/avr/gen.c:
12414         * src/xa51/gen.c:
12415         * src/z80/gen.c:
12416         * src/pic/gen.c:
12417         * src/pic16/gen.c:
12418         * src/mcs51/gen.c:
12419         * src/ds390/gen.c:
12420         * src/SDCCcse.c (algebraicOpts): many improvements
12421         * src/SDCCcse.h: removed algebraicOpts()
12422         * src/SDCCicode.c (picDummyRead): added
12423
12424 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12425
12426         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12427         "Insufficient space in data memory".
12428
12429 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12430
12431         * src/mcs51/gen.c: fixed bug #771358
12432         * src/z80/gen.c: fixed bug #759087
12433
12434 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12435
12436         * src/pic16/glue.c: minor cleanup by Vangelis
12437
12438 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12439
12440         * device/include/regc515c.h: fixed #758477
12441         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12442         * device/lib/_gptrput.c: saved a few bytes
12443         * my tab spacing is 8, yours too?)
12444         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12445         * device/lib/serial.c: process RX bytes earlier than TX bytes
12446         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12447
12448 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12449
12450         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12451
12452 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12453
12454     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12455
12456 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12457
12458         * device/lib/Makefile.in: bad fix, reverted to 1.43
12459
12460 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12461
12462         * device/lib/Makefile.in: added missing z80 object files
12463
12464 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12465
12466         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12467         pic16 progress by Vangelis:
12468         * src/SDCCglobl.h:
12469         * src/SDCCmain.c:
12470         * src/pic/Makefile:
12471         * src/pic:
12472         * pic/Makefile:
12473         * pic16/device.c:
12474         * pic16/device.h:
12475         * pic16/gen.c:
12476         * pic16/gen.h:
12477         * pic16/genarith.c:
12478         * pic16/glue.c:
12479         * pic16/main.c:
12480         * pic16/pcode.c:
12481         * pic16/pcode.h:
12482         * pic16/pcodepeep.c:
12483         * pic16/peeph.def:
12484
12485 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12486
12487     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12488
12489 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12490
12491     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12492     added gbz80 build to MSVC project.
12493     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12494     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12495     from 8051 stuff and setup so it links using a .lnk file.
12496
12497 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12498
12499     * support/librarian/sdcclib.c: sdcc librarian.
12500     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12501     with sdcclib.
12502
12503 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12504
12505     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12506
12507 2003-07-02  Borut Razem <borut.razem AT siol.net>
12508
12509         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12510         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12511         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12512         src/xa51/main.c, src/z80/main.c:
12513         virtualization of glue() function: each port has it's own glue function,
12514         which is accessed by do_glue function pointer in PORT.general structure
12515
12516 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12517
12518         * DS800C400 fun, improved ROM interface and tinibios.
12519
12520 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12521
12522         * More support for DS80C400. Now includes beginning of interface to ROM.
12523
12524 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12525
12526         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12527
12528 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12529
12530         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12531
12532 2003-06-19  Borut Razem <borut.razem AT siol.net>
12533
12534         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12535
12536 2003-06-19  Borut Razem <borut.razem AT siol.net>
12537
12538         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12539         fixed Z80 port - crt0.o: cannot open.
12540
12541 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12542
12543         * support/Util/MySystem.c (merge_command): revert bad fix
12544
12545 2003-06-18  Borut Razem <borut.razem AT siol.net>
12546
12547         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12548
12549 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12550
12551         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12552         option --use-stdout sends errors to stdout instead of stderr.
12553
12554 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12555
12556         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12557
12558 2003-06-15  Borut Razem <borut.razem AT siol.net>
12559
12560         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12561         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12562         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12563         fixed width array of pointers replaced with sets;
12564         multiple include and lib paths ared transferred to preprocessor and linker
12565         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12566         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12567         fixed width array of pointers
12568         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12569         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12570         fixupPath(), getPathDifference()
12571         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12572         fixed width array of pointers
12573
12574 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12575
12576         * src/pic16/ralloc.c: fix warnings
12577         * src/pic16/pcode.c: fix warning
12578
12579 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12580
12581          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12582         know all the details, but essentially this set of changes enable
12583         the pic16 port to generate movff instructions and generate assembler
12584         directives,
12585         * src/SDCCmain.c:
12586         * src/pic16/gen.c:
12587         * src/pic16/glue.c:
12588         * src/pic16/pcode.c:
12589         * src/pic16/device.c:
12590         * src/pic16/main.c:
12591         * src/pic16/pcode.h:
12592         * src/pic16/pcoderegs.c:
12593         * src/pic16/ralloc.c:
12594         * src/pic16/ralloc.h:
12595
12596 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12597
12598         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12599         added option --vc, so sdcc errors and warnings are compatible with
12600         Microsoft Visual Studio.
12601
12602 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12603
12604         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12605           device/lib/libfloat.lib: added atof function.
12606
12607 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12608
12609         * doc/sdccman.lyx: updated to Lyx 1.3
12610         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12611         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12612         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12613
12614 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12615
12616         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12617
12618 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12619
12620         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12621           additions to the "related tools/documentation" section
12622
12623 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12624
12625         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12626
12627 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12628
12629         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12630         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12631
12632 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12633
12634         * doc/sdccman.lyx: fix double dash and other minor things
12635         * doc/Makefile: fix double dash
12636
12637 2003-05-28  Karl Bongers(patches from Martin Helmling)
12638         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12639           condition and ignore commands.
12640
12641 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12642
12643         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12644           is in parts still quite out of date, I did changes as far as I felt makes sense
12645           for a non-native english speaker.
12646           Please feel free to add to the manual or to correct my changes.
12647         * doc/Makefile: undid touching the date of intermediate tex files.
12648
12649 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12650
12651         * doc/sdccman.lyx: Manual has an index now
12652
12653 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12654
12655         Finalize muluint/mulsint and mululong/mulslong merging:
12656         * device/lib/_mulint.c
12657         * device/lib/_mullong.c
12658         * device/lib/gbz80/mul.s
12659         * device/lib/gbz80/stubs.s
12660         * device/lib/z80/mul.s
12661         * device/lib/z80/stubs.s
12662         * src/SDCCsymt.c (initCSupport)
12663
12664 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12665
12666         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12667         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12668           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12669           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12670           instead of /Zm500.
12671
12672 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12673
12674         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12675           the regression tests I'm not brave enough to enable 245.b, 245.c
12676         * doc/sdccman.lyx: added latex preamble for hyperref package.
12677           Using pdflatex this will give you a hyperlinked pdf file with
12678           bookmarks. (prepend '%' before /usepackage if this breaks something)
12679
12680 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12681
12682          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12683
12684 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12685
12686         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12687
12688 2003-05-21    <johan AT balder>
12689
12690         * src/SDCCglue.c (printIval): fixed bug #739934
12691
12692 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12693
12694         Applied patch from bug 737905 (renamed yylineo to mylineno):
12695         * src/altlex.c
12696         * src/SDCCast.c
12697         * src/SDCglobl.h
12698         * src/SDCC.lex
12699         * src/SDCCsymt.c
12700         * src/SDCCval.c
12701         * src/pic16/pcode.c: Cleaned warnings
12702         * src/pic16/pcodeflow.c: Cleaned warnings
12703         * src/pic16/pcoderegs.c: Cleaned warnings
12704
12705 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12706
12707         * src/pic16/pcode.c: Cleaned warnings
12708         * src/pic16/pcodepeep.c: Cleaned warnings
12709         * src/pic16/ralloc.c: Cleaned warnings
12710
12711 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12712
12713         * doc/sdccman.lyx: fixed bug 739745
12714         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12715
12716 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12717
12718         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12719         it can be defined with CFLAGS when running configure
12720         * src/SDCCmain.c: fixed compiling + linking with object files
12721
12722 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12723
12724         * configure.in: configure for pic16 port,
12725             added --disable-pic16-port
12726         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12727         * src/SDCCmain.c: linkOptions is changed to set *,
12728             added if/endif conditional macros to remove options help
12729             messages from optionsTable when a port is not configured, added
12730             support for the PIc16 port in the ports table, when executing
12731             the compiler with no port specified on command line, a default
12732             port is selected with the new macro DEFAULT_PORT which is
12733             defined in port.h, in setDefaultOptions() linkOptions is removed
12734             from initialization assignment, since now it is a set,
12735             parseCmdLine uses setParseWithComma for linkOptions, in
12736             linkEdit() linkOptions are accessed with new function indexSet()
12737             which returns the i'th item of a set variable. See SDCCset.c, in
12738             linkEdit() when calling buildCmdLine(), added linkOptions as
12739             last argument. Now users can pass arguments to gplink via the
12740             -Wl option, main() uses pic16glue() to glue up pic16 programs
12741         * src/SDCCpeeph.c: various changes to support pic16
12742         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12743             return the i'th item of the set
12744         * src/SDCCset.h: added function prototype for indexSet()
12745         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12746         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12747         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12748             added macro DEFAULT_PORT
12749         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12750         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12751             generated
12752         * src/pic16/glue.c: commented out some error producing lines
12753         * src/pic16/main.c: __config directives are commented out to stop
12754             gpasm complaining and test the linkage with gplink, _linkCmd and
12755             _asmCmd changed to be more gplink and gpasm friendly
12756         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12757             produced an error when parsed, peep rule 12 is added to utilize
12758             movff, but it is commented out since the pCode does not support
12759             yet a command with 2 address arguments
12760
12761 2003-05-18    <johan AT balder>
12762
12763         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12764         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12765 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12766
12767         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12768   Added feature to script commands from file.
12769
12770 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12771
12772         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12773         * src/SDCCutil.c: include ctype.h for win32
12774
12775 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12776
12777         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12778
12779 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12780
12781         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12782   Fixed so you can set breakpoints prior to run, run does not stop
12783   on entry now.  Add tbreak.  Other enhancements and fixes for use
12784   with ddd.
12785
12786 2003-05-12  Borut Razem <borut.razem AT siol.net>
12787
12788         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12789
12790 2003-05-11  Borut Razem <borut.razem AT siol.net>
12791
12792         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12793         the path of bin directory, so that PATH is the only env. variable, which has to be set
12794         in case of standard installation.
12795         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12796         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12797         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12798
12799 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12800
12801         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12802         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12803         temp files are in the port dir; clean the gen/test directory when
12804         generating new test.c
12805         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12806         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12807         * support/regression/tests/zeropad.c: added
12808
12809 2003-05-09    <johan AT balder>
12810
12811         * src/SDCCglue.c: fixed bug #597940
12812
12813 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12814
12815         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12816   cache sfr, optimize next,step, fix off by one sourceline,
12817   support ddd list function.
12818         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12819
12820 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12821
12822         * support/regression/HTMLgen.py: added compare_s2f()
12823         * support/regression/Makefile: redo 1.27
12824         * support/regression/generate-cases.py: redo 1.5
12825
12826 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12827
12828         * support/regression/tests/float.c: workaround 33 bit hex constant
12829         * support/regression/tests/simplefloat.c: fix division for host
12830
12831 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12832
12833         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12834         that tame's the PIC's over-aggressive optimizer.
12835
12836 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12837
12838          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12839          support for MSVC.
12840
12841 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12842
12843         Initial support for DS80C400. "Hello world" runs on TINIm400
12844         (with polled I/O).
12845
12846 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12847
12848          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12849          * Some notes on ddd usage added in debugger/README
12850          Martin Helmling adding more features and fixes for ddd GUI debugger.
12851          Code added for nexti, stepi, up, down, and other adjustments.
12852
12853 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12854
12855         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12856         * src/pic/peeph.def Added two rules to optimize carry manipulation
12857         * src/pic/* removed debug printfs
12858
12859 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12860
12861         * debugger/mcs51/cmd.c: added header newalloc.h
12862
12863 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12864
12865         * as/Makefile: new EXEEXT
12866         * as/z80/Makefile: remove trailing slash of BUILDIR
12867         * as/z80/clean.mk: new EXEEXT
12868         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12869         * support/cpp2/Makefile.in: new EXEEXT
12870         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12871
12872 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12873
12874         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12875         EXEEXT was introduced to fix all related problems with targets
12876         "clean", "install" and "uninstall"; a couple of further flaws
12877         especially with "clean" have been fixed too
12878         * as/mcs51/Makefile.in
12879         * as/mcs51/clean.mk
12880         * as/z80/Makefile
12881         * Makefile
12882         * clean.mk
12883         * debugger/mcs51/Makefile.in
12884         * debugger/mcs51/clean.mk
12885         * link/z80/Makefile
12886         * link/z80/Makefile.in
12887         * link/z80/clean.mk
12888         * link/Makefile
12889         * packihx/Makefile.in
12890         * packihx/clean.mk
12891         * sim/ucsim/Makefile
12892         * sim/ucsim/clean.mk
12893         * sim/ucsim/avr.src/Makefile.in
12894         * sim/ucsim/avr.src/clean.mk
12895         * sim/ucsim/s51.src/Makefile.in
12896         * sim/ucsim/s51.src/clean.mk
12897         * sim/ucsim/xa.src/Makefile.in
12898         * sim/ucsim/xa.src/clean.mk
12899         * sim/ucsim/z80.src/Makefile.in
12900         * sim/ucsim/z80.src/clean.mk
12901         * sim/ucsim/main_in.mk
12902         * sim/ucsim/packages_in.mk
12903         * sim/ucsim/gui.src/Makefile.in
12904         * sim/ucsim/gui.src/serio.src/Makefile.in
12905         * sim/ucsim/gui.src/serio.src/clean.mk
12906         * src/Makefile.in
12907         * src/clean.mk
12908         * support/cpp2/Makefile.in
12909         * support/cpp2/clean.mk
12910         * support/makebin/Makefile
12911         * support/makebin/clean.mk
12912         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12913         * doc/sdccman.lyx: --program-suffix no longer needed
12914
12915 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12916
12917          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12918          Martin Helmling added support for ddd GUI debugger.
12919          Code added to display assembly, set variables, and other commands
12920          to interface to ddd.
12921
12922 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12923
12924         * as/Makefile: fix target clean
12925         * as/clean.mk: fix target clean
12926         * as/z80/clean.mk: fix target clean
12927
12928 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12929
12930         * Makefile.common.in: added  AT EXEEXT AT
12931         * configure.in: removed all mingw32 stuff
12932         * configure: rebuilt from configure.in
12933         * doc/sdccman.lyx: updated section "installation"
12934         * support/scripts/sdcc_mingw32: adapted to configure
12935         * support/scripts/sdcc_cygwin_mingw32: added
12936
12937 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12938
12939         * src/pic Added object file support for the PIC port
12940         * src/pic Applied patch from Craig Franklin (this started the object file support)
12941         * src/regression Updated the PIC regression tests for object files
12942
12943 2003-04-20  Borut Razem <borut.razem AT siol.net>
12944
12945         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12946           lklex.c: In function `getfid':
12947           lklex.c:203: warning: array subscript has type `char'
12948         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12949           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12950         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12951           stack handling macros
12952
12953 2003-04-19  Borut Razem <borut.razem AT siol.net>
12954
12955         * "handling space characters in file path" task:
12956         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12957         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12958         * support/Util/MySystem.h: make it self-sufficient
12959         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12960           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12961           handling space characters in file path
12962         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12963           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12964         * support/Util/MySystem.c: handling space characters in executable's path
12965
12966 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12967
12968         * as/z80/Makefile: fix permanent rebuild of z80
12969         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12970         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12971
12972 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12973
12974         * src/SDCCopt.c: add special case optimization to replace modulo by
12975           a power of two with a bitwise AND.
12976
12977 2003-04-18    <johan AT balder>
12978
12979         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12980
12981 2003-04-17    <johan AT balder>
12982
12983         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12984         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12985
12986 2003-04-13  Borut Razem <borut.razem AT siol.net>
12987
12988         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12989         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12990           fixed mingw problem in adl_NORMALIZE_PATH
12991
12992 2003-04-12  Borut Razem <borut.razem AT siol.net>
12993
12994         * fixed "#pragma SAVE/RESTORE can not be nested":
12995         * src/SDCC.lex: reworked pragma handling functions
12996         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12997         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12998
12999 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13000
13001         * src/SDCCutil.c (pathEquivalent): defined but not used
13002         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13003         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13004         * configure: rebuilt from configure.in
13005         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13006         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13007         * device/include/Makefile.in: replace sdcc_datadir
13008         * device/lib/Makefile.in: replace sdcc_datadir
13009         * Makefile.common.in: add LDFLAGS from configure
13010         * packihx/Makefile.in: use LDFLAGS
13011         * src/Makefile.in: use LDFLAGS
13012         * support/cpp2/Makefile.in: add LDFLAGS from configure
13013         * support/makebin/Makefile: use LDFLAGS
13014         * .version: bumped version number to 2.3.5
13015
13016 2003-04-12  Borut Razem <borut.razem AT siol.net>
13017
13018         * completed "different paths" task:
13019         * src/SDCCmacro.c: fixed bug in handling quotes
13020         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13021         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13022
13023 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13024
13025         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13026
13027 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13028
13029         * ds390/gen.c ds390/peeph.def: fix bug 706781
13030
13031 2003-04-11  Borut Razem <borut.razem AT siol.net>
13032
13033         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13034
13035 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13036
13037         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13038         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13039          set - this bit used to not be set...).
13040         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13041           bad code in PIC Port
13042         * src/regression/and2.c added to test bug 609268
13043         * src/regression/Makefile added and2.c to regression test
13044
13045
13046 2003-04-08    <johan AT CP255758-A>
13047
13048         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13049         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13050         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13051
13052 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13053
13054         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13055         fix bug #487815
13056         * support/cpp2/Makefile.in: fix bug #487815
13057         * configure: rebuilt from configure.in
13058         * Makefile.common.in: docdir changed, new path suffixes
13059         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13060         * sdcc_vc_in.h: reflect changes from sdccconf.h
13061         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13062         * src/SDCCutil.h: remove BINDIR hack
13063         * doc/sdccman.lyx: update new path hierarchy
13064
13065 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13066
13067         * src/SDCCpeeph.c: added okToRemoveSLOC test
13068
13069 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13070
13071         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13072
13073 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13074
13075         * src/SDCCpeeph.c: added labelIsReturnOnly test
13076         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13077
13078 2003-04-05    <johan AT balder>
13079
13080         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13081         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13082         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13083         * src/SDCCast.c: fixed a warning
13084         * src/SDCCast.h: fixed a warning
13085         * src/SDCCicode.c (operandFromAst): fixed a warning
13086
13087 2003-04-04    <johan AT balder>
13088
13089         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13090         * src/SDCCast.c (decorateType): fixed bug #715076
13091         * src/SDCC.y: fixed bug #702907
13092
13093 2003-04-03    <johan AT balder>
13094
13095         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13096         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13097         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13098         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13099         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13100
13101 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13102
13103         * _decdptr.c: fix return values
13104         * _gptrget.c: fix return values
13105         * _gptrgetc.c: fix return values
13106         * _gptrput.c: fix return values
13107         * _mulint.c: fix return values
13108         * as/z80/Makefile: fix 'make -j' problem
13109
13110 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13111
13112         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13113         * configure.in: big cleanup, updated to autoconf 2.5x
13114         * configure: rebuilt from configure.in
13115         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13116         * sdcc_vc_in.h: reflect changes from sdccconf.h
13117         * doc/Makefile: fixed a flaw in "make install"
13118
13119 2003-04-02    <johan AT balder>
13120
13121         * src/ds390/gen.c (genCmp): no comments
13122         * src/mcs51/gen.c (genCmp): no comments
13123         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13124         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13125
13126 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13127
13128         * support/regression/generate-cases.py: place generated file in given sub directory
13129         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13130         * support/regression/Makefile: improvements for 'make -j';
13131         side effect: it's simpler and faster now
13132
13133 2003-03-31  Borut Razem <borut.razem AT siol.net>
13134
13135         * src/z80/main.c: link-{port} and as-{port} defined without path
13136         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13137
13138 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13139
13140         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13141
13142 2003-03-30  Borut Razem <borut.razem AT siol.net>
13143
13144         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13145           changed type of list parameter to set
13146         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13147         * src/port.h: changed type of do_assemble() parameter to set
13148         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13149           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13150           definition of "cppoutfilename" macro with NULL value in preProcess()
13151         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13152         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13153         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13154           replaced with set *binPathSet
13155         * shash_add() deallocates the item, if allready exsists, before adding the new one
13156         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13157
13158 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13159
13160         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13161           a nested for loop bug in the PIC port
13162         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13163           for loops
13164
13165 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13166
13167         * support/Util/dbuf.h: remove C++ stuff to make it portable
13168
13169 2003-03-28  Borut Razem <borut.razem AT siol.net>
13170
13171         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13172           literal strings in stringLiteral()
13173         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13174         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13175           to the project
13176
13177 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13178
13179         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13180
13181 2003-03-26    <johan AT balder>
13182
13183         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13184         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13185         * src/SDCCast.c (decorateType): fixed " -v < 3"
13186
13187 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13188
13189         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13190         Added Lenny Story's debug infrastructure changes:
13191         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13192         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13193         * src/cdbFile.c: added
13194         * src/SDCCdebug.c: added
13195         * src/SDCCdebug.h: added
13196         * src/SDCCast.c (createFunction)
13197         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13198         * src/SDCCmain.c (parseCmdLine, main)
13199         * src/SDCCmem.c (redoStackOffsets)
13200         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13201         * src/SDCCsymt.h
13202         * src/common.h
13203         * src/avr/gen.c (genAVRCode)
13204         * src/ds390/gen.c (gen390Code)
13205         * src/mcs51/gen.c (gen51Code)
13206         * src/pic/gen.c (genpic14Code)
13207         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13208         * src/xa51/gen.c (genXA51Code)
13209         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13210
13211 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13212
13213         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13214         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13215
13216 2003-03-22    <johan AT balder>
13217
13218         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13219
13220 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13221
13222         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13223         * doc/cdbfileformat.lyx: added, written by Lenny Story
13224         * doc/Makefile: added cdbfileformat.lyx
13225         * doc/clean.mk: added cdbfileformat.lyx
13226
13227 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13228
13229         * src/mcs51/peeph.def: fix bug #705773
13230
13231 2003-03-20    <johan AT balder>
13232
13233         An sfr/sbit can have an "at #" AND an initializer
13234         * src/SDCCsymt.c (checkSClass):
13235         * src/SDCCmem.c (allocGlobal):
13236         * src/SDCCmem.c (allocLocal):
13237         * src/SDCCast.c (createBlock):
13238
13239 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13240
13241         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13242
13243 2003-03-16    <johan AT balder>
13244
13245         Undid the hackup of const and volatile, the problem is much bigger
13246         * src/SDCC.y:1.65
13247         * src/SDCCast.c:1.171
13248         * src/SDCCglue.c:1.138
13249         * src/SDCCicode.c:1.146
13250         * src/SDCCsymt.c:1.150
13251         * src/SDCCval.c:1.65
13252
13253 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13254
13255         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13256         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13257
13258 2003-03-13    <johan AT balder>
13259
13260         Hackup const and volatile modifiers in type chains a bit:
13261         * src/SDCC.y:1.63
13262         * src/SDCCast.c:1.169
13263         * src/SDCCglue.c:1.136
13264         * src/SDCCicode.c:1.143
13265         * src/SDCCsymt.c1.146
13266         * src/SDCCsymt.h1.59
13267         * src/SDCCval.c:1.63
13268
13269 2003-03-12    <johan AT balder>
13270
13271         * src/SDCCBBlock.h: more LRH debugging junk
13272         * src/SDCCcflow.h: more LRH debugging junk
13273         * src/SDCCloop.c: more LRH debugging junk
13274         * src/SDCC.y (struct_declaration): fixed bug #697590
13275         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13276         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13277         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13278
13279 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13280         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13281         test function names must now match exactly).
13282         * src/SDCCcse.c: added special case in findCheaperOp to allow
13283         extending a short integer. Makes less awful code for bug 700121 test case.
13284
13285 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13286
13287         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13288         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13289
13290 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13291
13292         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13293         actually called (operandsNotEqual() was called for all
13294         operandsNotEqualX tests).
13295
13296 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13297
13298         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13299         with shorter literals. Fixes bug 700121.
13300
13301 2003-03-11    <johan AT balder>
13302
13303         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13304
13305 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13306
13307         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13308         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13309
13310 2003-03-10  Borut Razem <borut.razem AT siol.net>
13311
13312         * src/SDCCmain.c: pipe preprocessor's output
13313         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13314         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13315         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13316         which closes all pipes in pipeSet set
13317         * src/SDCCset.c: free deleted item in function deleteSetItem()
13318         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13319         moved from z80 to src subproject
13320         * .version: increased version number to 2.3.4
13321
13322 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13323
13324         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13325         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13326         * support/regression/ports/xa51/spec.mk: fix typo
13327
13328 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13329
13330         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13331
13332 2003-03-09  Borut Razem <borut.razem AT siol.net>
13333
13334         * src/SDCCmain.c: pipe preprocessor's output
13335         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13336         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13337         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13338         which closes all pipes in pipeSet set
13339         * src/SDCCset.c: free deleted item in function deleteSetItem()
13340         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13341         moved from z80 to src subproject
13342
13343 2003-03-09  Borut Razem <borut.razem AT siol.net>
13344
13345         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13346         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13347         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13348         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13349         * src/SDCCglobl.h: unification of WIN32 native definitions
13350
13351 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13352
13353         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13354
13355 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13356
13357         * src/configure.in:   check for endianess (even while cross-compiling)
13358         * src/configure:      check for endianess (even while cross-compiling)
13359         * src/configure_in.h: check for endianess (even while cross-compiling)
13360         * src/avr/gen.c:        remove old endianess stuff
13361         * src/mcs51/gen.c:      remove old endianess stuff
13362         * src/ds390/gen.c:      remove old endianess stuff
13363         * src/pic/gen.c:        remove old endianess stuff
13364         * src/pic/genarith.c:   remove old endianess stuff
13365         * src/pic/glue.c:       fix endianess check
13366         * src/pic16/gen.c:      remove old endianess stuff
13367         * src/pic16/genarith.c: remove old endianess stuff
13368         * src/pic16/glue.c:     fix endianess check
13369         * src/xa51/gen.c:       remove old endianess stuff
13370         * src/z80/gen.c:        fix endianess check
13371         * src/SDCCglue.c:       fix endianess check
13372         * src/ds390/peeph.def: fix bug 700036
13373
13374 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13375
13376         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13377         * src/configure: find appropriate data-types on host for SDCC's int and long
13378         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13379         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13380         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13381
13382 2003-03-07    <johan AT balder>
13383
13384         Just a big NOOP:
13385                 some minor cleanups before the big shot
13386                 OP_DEFS and OP_USES now use Kevin's protection
13387                 new option --nolabelopt
13388
13389         * src/SDCCBBlock.c:
13390         * src/SDCCast.c,:
13391         * src/SDCCcflow.c:
13392         * src/SDCCcse.c:
13393         * src/SDCCicode.c:
13394         * src/SDCCicode.h:
13395         * src/SDCClabel.c:
13396         * src/SDCCloop.c:
13397         * src/SDCCmain.c:
13398         * src/ds390/ralloc.c:
13399         * src/mcs51/ralloc.c:
13400         * src/pic/ralloc.c:
13401         * src/xa51/ralloc.c:
13402         * src/z80/ralloc.c:
13403
13404 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13405
13406         * src/pic/pcode.c (get_op): fix 64 bit warnings
13407         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13408         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13409         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13410         * support/regression/tests/malloc.c: fix 64 bit warnings
13411
13412 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13413
13414         * src/mcs51/gen.c (genMinus): fixed bug 696436
13415
13416 2003-03-02  Borut Razem <borut.razem AT siol.net>
13417
13418         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13419
13420 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13421
13422         * configure.in: test for mkstemp
13423         * sdccconf_in.h: add HAVE_MKSTEMP
13424
13425 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13426
13427         * device/include/ctype.h: removed warning while using --stack-auto
13428         * device/include/malloc.h: removed warning while using --stack-auto
13429         * device/include/string.h: removed warning while using --stack-auto
13430
13431 2003-02-23  Borut Razem <borut.razem AT siol.net>
13432
13433         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13434         because NDEBUG is defined (see man assert)
13435         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13436
13437 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13438
13439         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13440         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13441
13442 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13443
13444         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13445         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13446
13447 2003-02-18    <johan AT balder>
13448
13449         * as/mcs51/asmain.c (asmbl): module can start with a digit
13450         * as/z80/asmain.c (asmbl): module can start with a digit
13451
13452 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13453
13454         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13455         * src/asm.c: fix pipe() for Mingw32
13456
13457 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13458
13459         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13460         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13461         make -V work again; --c1mode reads now from stdin
13462         * doc/sdccman.lyx: added --c1mode
13463         * support/Util/SDCCerr.c: new messages for c1 mode
13464         * support/Util/SDCCerr.h: new messages for c1 mode
13465         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13466
13467 2003-02-15    <johan AT balder>
13468
13469         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13470
13471 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13472
13473         * doc/sdccman.lyx: Environment variables, -o and other minor things
13474
13475 2003-02-14    <johan AT balder>
13476
13477         * src/xa51/main.c: before anyone really tries to use it :)
13478
13479         * Install doc's in share/sdcc/doc
13480         * removed some obsolete files
13481         * Do a proper make distclean and uninstall
13482         M Makefile.common.in
13483         R sdccbuild.sh
13484         M as/Makefile
13485         M device/include/Makefile.in
13486         M device/lib/Makefile.in
13487         M doc/sdccman.lyx
13488         M link/Makefile
13489         M sim/ucsim/doc/Makefile.in
13490         M src/clean.mk
13491         R src/avr/peeph.rul
13492         R src/xa51/peeph.rul
13493         M support/cpp2/Makefile.in
13494         M support/makebin/Makefile
13495
13496
13497 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13498
13499         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13500
13501 2003-02-10  Borut Razem <borut.razem AT siol.net>
13502
13503         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13504         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13505         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13506         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13507         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13508         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13509         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13510         src/z80/Makefile.bcc: Borland Makefile cleanup
13511         * as/z80/Makefile.bcc: Added Borland Makefile
13512         * support/cpp2/borland.h: Removed
13513
13514 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13515
13516         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13517         * src/SDCC.lex: new pragma NOIV
13518         * src/SDCCglobl.h: new pragma NOIV
13519         * src/SDCCmem.c: new pragma NOIV
13520
13521 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13522
13523         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13524
13525 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13526
13527         * src/SDCCmain.c: signal handling is switched off by --debug
13528         * doc/Makefile: small fix for install; use clean.mk again
13529         * doc/clean.mk: clean *.pdf and *.html too
13530
13531 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13532
13533         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13534         * device/lib/printfl.c: fix a ds390 bug by making it portable
13535         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13536         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13537         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13538         * debugger/mcs51/cmd.c: converted multi-line string literals
13539         * sim/ucsim/globals.cc: converted multi-line string literals
13540         * src/SDCCmain.c: introduced signal handler to remove temp files
13541         * doc/Makefile: small tweaks, implement clean
13542         * doc: removed generated files
13543
13544 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13545
13546         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13547         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13548         Address Record is not correctly generated for DS390."
13549
13550 2003-02-02  Borut Razem <borut.razem AT siol.net>
13551
13552         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13553         * as/mcs51/asm.h: fixed compilation with Borland C
13554         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13555         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13556         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13557         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13558         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13559         src/z80/Makefile.bcc: delete $(LIB) only if exist
13560         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13561
13562 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13563
13564         * device/include/malloc.h: introduced NULL
13565         * device/include/string.h: introduced NULL
13566         * device/include/stdlib.h: introduced NULL
13567         * device/lib/_memcpy.c: removed NULL
13568         * device/lib/_strcat.c: removed NULL
13569         * device/lib/_strchr.c: removed NULL
13570         * device/lib/_strcmp.c: removed NULL
13571         * device/lib/_strcpy.c: removed NULL
13572         * device/lib/_strcspn.c: removed NULL
13573         * device/lib/_strlen.c: removed NULL
13574         * device/lib/_strncat.c: removed NULL
13575         * device/lib/_strncmp.c: removed NULL
13576         * device/lib/_strncpy.c: removed NULL
13577         * device/lib/_strpbrk.c: removed NULL
13578         * device/lib/_strrchr.c: removed NULL
13579         * device/lib/_strspn.c: removed NULL
13580         * device/lib/_strstr.c: removed NULL
13581         * device/lib/_strtok.c: removed NULL
13582         * device/lib/malloc.c: removed NULL, include own header
13583
13584 2003-02-02    <johan AT balder>
13585
13586         * 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
13587         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13588         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13589         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13590         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13591         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13592
13593 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13594
13595         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13596         area 'DATA'"
13597
13598 2003-02-01    <johan AT balder>
13599
13600         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13601
13602 2003-01-31    <johan AT CP255758-A>
13603
13604         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13605
13606 2003-01-30    <johan AT balder>
13607
13608         * src/SDCCBBlock.c: automatic bug detection
13609         * src/SDCCicode.c: automatic bug detection
13610
13611 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13612
13613         * src/SDCCglobl.h:   now --xram-size 0 works
13614         * src/SDCCmain.c:    now --xram-size 0 works
13615
13616 2003-01-29    <johan AT balder>
13617
13618         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13619
13620 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13621
13622         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13623         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13624         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13625         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13626         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13627         * src/SDCCmain.c:    Added options --xram-size and --code-size
13628
13629 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13630
13631         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13632         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13633
13634 2003-01-27    <johan AT balder>
13635
13636         * src/SDCC.y: fixed bug #613764
13637
13638 2003-01-26    <johan AT balder>
13639
13640         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13641         * src/SDCCsymt.h: fixed bug #673374
13642         * src/SDCCglue.c: fixed bug #661910
13643         * src/SDCCast.c: fixed bug #458099 and 673374
13644
13645 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13646
13647         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13648         * as/mcs51/strcmpi.h: added
13649         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13650         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13651         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13652         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13653         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13654         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13655         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13656         * as/mcs51/Makefile.aslink: new module strcmpi
13657         * as/mcs51/Makefile.asx8051: new module strcmpi
13658         * as/mcs51/Makefil.bcc: new module strcmpi
13659         * as/mcs51/Makefile.in: new module strcmpi
13660         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13661
13662 2003-01-26    <johan AT balder>
13663
13664         * src/SDCCglue.c: reverted back to 1.124
13665         * src/SDCCast.c: reverted back to 1.156
13666         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13667
13668 2003-01-25    <johan AT balder>
13669
13670         * src/SDCCglue.c: A better fix for bug #661910
13671         * src/SDCCast.c: A better fix for bug #661910
13672         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13673
13674 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13675
13676         * src/Makefile.in: remove spawn.o
13677         * src/SDCCmain.c: remove spawn.h
13678         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13679         * src/spawn.c: removed
13680         * src/spawn.h: removed
13681         * support/regression/ports/ds390/spec.mk: link with -r
13682
13683 2003-01-24    <johan AT CP255758-A>
13684
13685         * src/ds390/gen.c (aopOp): fixed bug #667458
13686         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13687         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13688         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13689
13690 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13691
13692         * src/mcs51/peeph.def: better assembler identation by Frieder
13693         * src/mcs51/gen.c: better assembler identation by Frieder
13694
13695 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13696
13697         * as/z80/string.h: removed for gcc 3.2
13698         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13699         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13700
13701 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13702
13703         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13704         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13705         * support/regression/Makefile: separate temp files for ports
13706         * support/regression/generate-cases.py: separate temp files for ports
13707         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13708         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13709
13710 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13711
13712         * moved tinitalk to device/examples/ds390
13713
13714 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13715
13716         * as/mcs51/lkmem.c: rflag is for DS390
13717         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13718         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13719                          (linkEdit): move mem- and map-files the same way as ihx-files
13720         * src/z80/main.c (_setDefaultOptions): removed --generic
13721         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13722         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13723         * src/pic/glue.c (picglue): --c1mode works again
13724         * src/pic16/glue.c (pic16glue): --c1mode works again
13725         * src/asm.c (printCLine): fix #660034
13726
13727 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13728
13729         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13730         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13731         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13732         * as/mcs51/lkmem (summary): better fix for sp problem
13733         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13734         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13735         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13736                                               remove --stack-after-data
13737
13738 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13739
13740         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13741         * src/SDCCutil.c (join): ugly bug: missing '\0'
13742         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13743
13744 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13745
13746         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13747         * src/port.h: typo
13748         * src/pic/main.c (_asmCmd): gpasm supports -o
13749         * src/z80/main.c: more general macros
13750         * device/lib/Makefile.in: remove intermediate files
13751
13752 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13753
13754         * .version: Bumped version number to 2.3.3
13755         * src/SDCCBBlock.c: new option -o
13756         * src/SDCCglobl.h: new option -o
13757         * src/SDCCglue.c: new option -o
13758         * src/SDCCmain.c: new option -o
13759         * src/asm.c: new option -o
13760         * src/ds390/main.c: new option -o
13761         * src/pic/glue.c: new option -o
13762         * src/pic/pcode.c: new option -o
13763         * src/pic/ralloc.c: new option -o
13764         * src/pic16/glue.c: new option -o
13765         * src/pic16/pcode.c: new option -o
13766         * src/pic16/ralloc.c: new option -o
13767         * src/z80/main.c: new option -o
13768         * device/lib/Makefile.in: use -o
13769         * support/regression/ports/ds390/spec.mk: use -o
13770         * support/regression/ports/gbz80/spec.mk: use -o
13771         * support/regression/ports/mcs51/spec.mk: use -o
13772         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13773         * support/regression/ports/z80/spec.mk: use -o
13774         * support/regression/ports/ucz80/spec.mk: use -o
13775         * support/regression/ports/xa51/spec.mk: use -o
13776         * support/regression/fwk/lib/timeout.c: fix usage string
13777
13778 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13779         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13780
13781 2003-01-07    <johan AT balder>
13782
13783         * src/SDCCast.c (decorateType): fixed bug #600035
13784
13785 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13786         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13787         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13788         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13789         * src/pic/pcode.c: outcommented unused variable to remove warnings
13790         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13791
13792 2003-01-06    <karl AT turbobit.com>
13793         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13794    regression tests.
13795
13796 2003-01-06    <johan AT balder>
13797
13798         * src/SDCCicode.c: fixed array add
13799
13800 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13801         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13802         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13803
13804 2003-01-04    <johan AT balder>
13805
13806         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13807
13808 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13809         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13810
13811 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13812         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13813         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13814
13815 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13816         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13817
13818 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13819         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13820
13821 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13822         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13823
13824 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13825
13826     * in /sdcc/as/mcs51/ changed these files in order to create an
13827     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13828     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13829     following files to include the previous two files: aslink.dsp,
13830     Makefile.aslink, Makefile.bcc, and Makefile.in.
13831
13832     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13833     .adb instead of .cdb
13834
13835 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13836
13837         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13838         value from option --iram-size.
13839
13840 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13841
13842         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13843         dram[] array.
13844
13845 2002-09-18    <wiml AT hhhh.org>
13846
13847         * SDCClrange.h: exposed setFromRange() and setToRange()
13848         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13849           packRegsForAccUse() (bug 542397)
13850         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13851           multiple times and emitting the fetch operations more than once
13852           added aopGetUsesAcc() function to allow binary operators to
13853           fetch their operands in the correct order; made genMinus() emit
13854           compact code for X = LITERAL - Y
13855
13856 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13857         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13858         sprintf() in line 1267.
13859
13860 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13861         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13862         like ports.
13863
13864 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13865         Changes to aslink (All the changes are marked with 'JCF'):
13866
13867         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13868         summary().
13869
13870         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13871         area BSEG.  Also moves, if possible, the DATA area down into the internal
13872         ram so more space is available.
13873
13874         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13875         sflag.
13876
13877         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13878         not bytes.  Function summary() which creates a memory usage summary
13879         file with extension .mem.  Reports of overlaping stack and small stack
13880         size.  If the space for the stack is less than 16 bytes aslink trows a
13881         warning.
13882
13883         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13884         the 8051.  Option 'y' for memory summary output file.
13885
13886         Changes to sdcc (All the changes are marked with 'JCF'):
13887
13888         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13889
13890         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13891         overlaying area for it (uses RegBankUsed[4]).
13892
13893         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13894         bank zero as used by default.  By default aslink locates the stack
13895         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13896         the creation of the .mem file.  Delegates the allocation of data area
13897         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13898         the begining of the stack area to aslink.
13899
13900         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13901         glue() in SDCCglue.c creates an area for it.
13902
13903 2002-09-03  Borut Razem <borut.razem AT siol.net>
13904         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13905         sdcc/src/pic/glue.c:
13906         introduced atexit() handler for teporay files removal in case of
13907         errors, assertions, ...
13908
13909 2002-08-29  Borut Razem <borut.razem AT siol.net>
13910         * sdcc/support/cpp2/auto-host_vc_in.h:
13911         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13912         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13913         Maybe there is a similar problem with BORLANDC? It should be checked!
13914
13915         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13916         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13917         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13918         was not executed, and the compiler (cl) launched a warning:
13919         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13920
13921 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13922         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13923
13924 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13925         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13926
13927         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13928           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13929           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13930           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13931           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13932           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13933           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13934         - added Release configuration in VS projects
13935         - review of compiler an linker options
13936         - VC .exe files are generated in bin_vc directory, not to interfere
13937           with binaries generated from other projects (cygwin, mingw, bcc ...)
13938
13939         * sdcc/src/yacc.dsp: added
13940
13941         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13942         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13943         and insert the version number definitions from .version
13944
13945         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13946
13947         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13948         added - genarate auto-host.h using auto-host_vc_in.h as template
13949
13950         * sdcc/sdcc_vc.h,
13951         removed from CVS, generated automatically
13952
13953 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13954         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13955
13956 2002-08-11  Borut Razem <borut.razem AT siol.net>
13957         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13958
13959 2002-08-10  Borut Razem <borut.razem AT siol.net>
13960         * src/SDCCmain.c (main):
13961         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13962         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13963         The consequence was that some temporary files were not removed.
13964
13965         * src/SDCCglue.c:
13966         unification of code in functions tempfilename() and tempfile():
13967         function tempnam() is defined in Visual Studio 6.0 and .NET
13968
13969         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13970
13971         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13972           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13973         - removed compiler command line option /WX: Treats all warnings as errors
13974         - update a list of source files, included into the project
13975
13976         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13977           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13978         changed project type to Generic Project so that can be correcly converted to VS.NET project
13979
13980         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13981
13982         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13983
13984         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13985
13986         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13987         added return 0 statements after assert() to make compiler happy
13988
13989         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13990         added newline in the def file to keep MSC compiler satisfied
13991
13992         * sdcc/src/z80/gen.c:
13993         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13994           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13995         - solved MSC error in function aopDump()
13996
13997         * sdcc_vc.h: define PREFIX as "\\sdcc"
13998
13999 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14000         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14001
14002 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14003         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14004         - Rewrote the register banking algorithm.
14005         - Added pCode live-range analysis to registers (for now, only non-used and
14006         singly-used registers optimized away)
14007
14008         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14009
14010         * 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.
14011
14012 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14013         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14014
14015 2002-04-22  Michael Hope  <michaelh AT vroom>
14016
14017         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14018
14019         * configure.in (DD_COPT): Added include support required for gbdk.
14020
14021         * .version: Bumped version number just to increase it.
14022
14023         * src/SDCCmain.c: Added -nostdinc to the default options.
14024
14025 2002-04-15  Michael Hope  <michaelh AT vroom>
14026
14027         * device/lib/z80/printf.c (sprintf): Added.
14028
14029         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14030
14031         * src/z80/peeph.def: Added transpose redundent load rule.
14032
14033         * src/z80/main.c: Added force callee saves for jaune.
14034
14035         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14036
14037         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14038
14039 2002-03-28  Johan Knol  <johan AT balder>
14040
14041         * src/SDCCval.c: fixed bug #532436
14042
14043 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14044         * /src/port.h:
14045         Added "char *Processor" field to the port structure.
14046
14047         * /src/SDCCmain.c:
14048         Added -p option. Allows port dependent processor to be specified.
14049
14050         * all ports:
14051         Initialized the new field char *Processor field to NULL in all ports
14052
14053         * /src/pic/*:
14054         Compiler generated registers for interrupt context saving
14055         were not getting allocated.
14056
14057 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14058
14059         * /src/SDCCast.c:
14060         Fixed left shift. Will promote the left side of a left shift
14061         if a) left shifting more than size of operand or b) when assigned
14062         to something size > size of left side
14063
14064 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14065         * src/pic/*
14066         tons of changes. Register allocation has been
14067         rewritten. Added customization for the various PICs. Flow
14068         analysis is restructured. ...
14069
14070         * src/pic/device.h:
14071         Added
14072
14073         * src/pic/device.c:
14074         Added. device.c is a PIC port hack to accomodate variations
14075         in PIC devices.
14076
14077 2002-03-13  Michael Hope  <michaelh AT vroom>
14078
14079         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14080
14081 2002-03-04  johanknol  <johanknol AT manik>
14082
14083         * /src/SDCCval.c: fixed
14084
14085         const unsigned char arr[][2] = { { 0, 1 } };
14086         t18.c:1: error: Initializer element is not constant
14087
14088 2002-03-04  bela  <bela AT manik>
14089
14090         * /device/include/mcs51reg.h:
14091         ds89c420 register definition update
14092
14093 2002-03-03    <johan AT FRIJA>
14094
14095         * support/Util/SDCCerr.c: did something, but don't no why anymore
14096
14097         * support/regression/tests/bug-524691.c: made it a little less shy
14098
14099         * src/SDCCast.c (decorateType): fixed bug #524697
14100
14101         * src/SDCCast.c: made some lineno improvements
14102
14103         * src/SDCCval.c (getNelements): changed warning to error
14104
14105         * src/SDCCglue.c (printIvalArray): changed warning to error
14106
14107         * src/SDCCicode.c: fixed a warning for mingw
14108
14109         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14110
14111         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14112
14113 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14114
14115         * src/ds390/peeph.def:
14116         Added some more peephole rules
14117
14118         * src/ds390/gen.c: Various fixes & enhancements
14119
14120         * src/SDCClrange.c, src/SDCClrange.h:
14121         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14122
14123         * src/ds390/ralloc.c:
14124         various fixes & enhancements (ds390) specific
14125
14126         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14127         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14128         from rallocs.
14129
14130         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14131
14132 2002-03-02    <johan AT FRIJA>
14133
14134         * src/SDCCast.c (decorateType): fixed bug #524708
14135
14136         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14137
14138         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14139
14140 2002-03-01  Michael Hope  <michaelh AT vroom>
14141
14142         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14143
14144         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14145
14146 2002-03-01    <johan AT FRIJA>
14147
14148         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14149
14150         * src/SDCCast.c (decorateType): fixed bug #524209
14151
14152         * src/SDCCval.c (valNot): fixed bug #524195
14153
14154 2002-02-26    <johan AT balder>
14155
14156         * src/xa51/gen.c: fixed a warning
14157
14158         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14159
14160         * src/SDCCast.c (decorateType): fixed bug #522534
14161
14162 2002-02-23    <johan AT balder>
14163
14164         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14165
14166 2002-02-22    <johan AT balder>
14167
14168         * src/SDCCast.c: fixed bug #514865
14169
14170         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14171
14172 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14173
14174         * sdcc/src/SDCCloop.c:
14175         Previous fix was not good. basic blocks that have "break" or "return" are
14176         not really partof a loop , but live ranges used in these blocks should
14177         be live thru the entire loop, so set partOfLoop but don't add them to
14178         loop region
14179
14180 2002-02-21    <johan AT FRIJA>
14181
14182         * src/SDCCcse.c: fixed bug #514308
14183
14184 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14185
14186         * src/SDCCloop.c:
14187         Fixed BUG #519583. If a conditional block ended in a return/break
14188         statement inside a loop, it was not being considered part of the loop.
14189
14190         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14191
14192 2002-02-10  Karl Bongers <karl AT turbobit.com>
14193
14194         * debugger/*:
14195         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14196         with lots of comments and notes.
14197
14198         * device/examples/test2.c:
14199         Fix bug, "red" variable not being initialized(compiler complained).
14200
14201         * device/examples/Makefile, examples/test3.c:
14202         Add Makefile in device/examples folder, compiles test3.c
14203         for use as a multiple module SDCDB test case.
14204
14205         * sim/ucsim/cmd.src/cmdset.cc:
14206         Took out debug printfs in ucsim "next" command.
14207
14208         * sim/ucsim/xa.src:
14209         Karl and Johan start ucsim XA support.  Most dissassembly working,
14210         about 75% emulation done(plenty of work remaining).
14211
14212         * sim/ucsim/z80.src:
14213         Add Z80 support to ucsim, add test-ucz80 regression test,
14214         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14215         Notice z80 compiler fails on examples/test3.c/crc code.
14216
14217 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14218
14219         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14220         Added support for --parms-in-bank1
14221
14222         * src/ds390/peeph.def:
14223         added a few more peephole optimzations
14224
14225         * src/ds390/main.c:
14226         1) added __builtin_inp & __builtin_outp used to read in data of given length
14227            from a memory mapped port
14228         2) added __builtin_memcmp
14229         3) added __builtin_swapw swap bytes of a short
14230
14231         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14232         1) handle multiple send & receives from register bank1
14233         2) ralloc can now allocate DPTR1 to some liveRanges
14234
14235         * src/SDCCsymt.c, src/SDCCsymt.h:
14236         changes to handle multiple sends & receives
14237
14238         * src/SDCCptropt.h:
14239         added some pointer arithmetic optimization
14240
14241         * src/SDCCptropt.c:
14242         added some pointer arithmetic optimizations but not stable yet so not
14243         called from anywhere (will get this working shortly)
14244
14245         * src/SDCCopt.c: fixed for multiple sends & receives
14246
14247         * src/SDCCmain.c:
14248         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14249         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14250            set preprocessor defines (depending on options)
14251
14252         * src/SDCCicode.c, src/SDCCicode.h:
14253         changes made to handle multiple sends & receives
14254
14255         * src/SDCCglobl.h:
14256         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14257
14258         * src/SDCCcse.c, src/SDCCcse.h:
14259         added function findbackward def (to be used in upcoming optimization)
14260
14261         * src/SDCCcflow.c, src/SDCCcflow.h:
14262         added function returnAtEnd - to determine if a basic block terminates with
14263         a RETURN iCode
14264
14265         * src/SDCCast.c, src/SDCCast.h:
14266         added option parms-in-bank1
14267
14268         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14269         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14270         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14271         adjusted for --parms-in-bank1 option
14272
14273         * device/include/string.h:
14274         donot redefine "reentrant" keyword
14275
14276         * device/include/ds80c390.h: Added some more SFRs
14277
14278 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14279
14280         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14281
14282 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14283
14284         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14285
14286 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14287
14288         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14289
14290 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14291
14292         * Added --xram-movc option
14293
14294 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14295
14296         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14297
14298 2002-01-11  Johan Knol
14299
14300         * Added math lib of Jesus Calvino-Fraga
14301
14302 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14303
14304         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14305         * support/regression/Makefile: new target test-mcs51-stack-auto
14306         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14307
14308 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14309
14310         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14311
14312 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14313
14314         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14315
14316 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14317
14318         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14319
14320         * src/SDCCglue.h: add definition for printIvalChar()
14321
14322 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14323
14324         * src/SDCCast.c: fix #498138 by Johan
14325
14326         * src/SDCCglue.c: fix #498138 by Johan
14327
14328 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14329
14330         * support/regression/Makefile: fix clean
14331
14332         * support/regression/ports/ds390/support.c: fix transmission of last character
14333
14334 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14335
14336         * /sdcc/src/ds390/gen.c:
14337         a) improved computing address of stack variable
14338         b) took out some #if 0 code
14339         c) improved parmBytes adjustment
14340         d) improved genPlusIncr & genMinusIncr
14341         e) genCmp could generate bad code (when left assigned to DPTR)
14342         f) Fixed bug in hasInc
14343
14344         * /sdcc/src/ds390/ralloc.c:
14345         a) packRegsForSupport could mess up live information (Fixed)
14346         b) packRegsDPTRuse could be incorrect for left & right shift
14347
14348         * /sdcc/src/mcs51/ralloc.c:
14349         packRegsForSupport could mess up the live information (Fixed)
14350
14351         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14352
14353         * /sdcc/src/SDCCast.c:
14354         can reverse a loop even if function call is present as long
14355         as the loop control variable is local & is not passed as parameter
14356
14357 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14358
14359         * /sdcc/ChangeLog: *** empty log message ***
14360
14361         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14362         More builtin function additions for TININative
14363
14364         * /sdcc/src/ds390/ralloc.c:
14365         Had broken the regression testsuite
14366
14367         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14368
14369         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14370         Added funcattr hasStackParms will be set for reentrant functions when there
14371         are paramteres on the stack, this helps in minimizing frame pointer generation
14372         typeFromStr can handle function pointers now
14373
14374         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14375         *** empty log message ***
14376
14377 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14378
14379         * /src/ds390/gen.c, /src/ds390/main.c:
14380         More builtin function additions for TININative
14381
14382         * /src/ds390/ralloc.c:
14383         Had broken the regression testsuite
14384
14385         * /src/SDCCast.c: Fixed a bug in dumptree
14386
14387         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14388         Added funcattr hasStackParms will be set for reentrant functions when there
14389         are paramteres on the stack, this helps in minimizing frame pointer generation
14390         typeFromStr can handle function pointers now
14391
14392         * /doc/builtins.txt, /doc/TININative.txt:
14393         *** empty log message ***
14394
14395
14396 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14397
14398         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14399         ALPHA version for -mTININative
14400
14401         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14402         updated to reflect changes in the port structure
14403
14404         * /src/port.h:
14405         added function do_assemble (similar to do_link) if non-null this function
14406         will be called to do assembly (-mTININative) requires a multi command
14407         assembly
14408         added function genAssemblerEnd will be called to generate assembler Epilogue
14409
14410         * /src/SDCCsymt.c:
14411         added _JavaNative to debug info printing
14412
14413         * /src/SDCCmain.c: added option --tini-libid
14414         added port->do_assemble function (-mTININative) has a multi command assemble
14415
14416         * /src/SDCCglue.c: Disabled "constExpr" check
14417         added port->genAssemblerEnd function
14418
14419         * /src/SDCCglobl.h: Added option --tini-libid value
14420
14421         * /src/SDCCast.h:
14422         tookout optimizeCompare from the header (has no external references)
14423
14424         * /src/SDCCast.c: made one more function "static"
14425
14426 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14427
14428         * src/z80/mappings.i: Added z80asm support.
14429
14430         * src/z80/main.c: Added z80asm support on --asm=z80asm
14431
14432         * src/z80/gen.c: Fixed asm portability issues.
14433
14434         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14435
14436         * src/SDCCglue.c (printExterns): Added global/extern split.
14437
14438 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14439
14440         * support/regression/Makefile: added test for mcs51 model large
14441
14442         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14443
14444         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14445
14446 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14447
14448         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14449
14450 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14451
14452         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14453
14454         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14455
14456 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14457
14458         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14459
14460         * support/regression/tests/simplefloat.c: Port to mcs51.
14461
14462 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14463         * support/regression/tests/bug-485362.c: Added.
14464
14465         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14466
14467         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14468
14469         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14470
14471         * src/z80/gen.c (aopDump): Added a dump function.
14472
14473 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14474         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14475
14476         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14477
14478         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14479
14480         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14481
14482         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14483
14484         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14485
14486         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14487
14488         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14489
14490         * support/regression/ports/ds390/support.c: Use tinibios.
14491
14492         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14493
14494 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14495
14496         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14497         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14498
14499         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14500
14501         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14502
14503 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14504
14505         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14506
14507         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14508         (packRegsForIYUse): Created and optimised.
14509
14510 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14511
14512         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14513 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14514
14515         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14516
14517         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14518
14519         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14520
14521 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14522
14523         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14524
14525         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14526
14527 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14528
14529         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14530
14531         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14532
14533         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14534
14535 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14536
14537         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14538         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14539         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14540
14541         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14542
14543         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14544         (genNotFloat): Added.
14545         (genUminusFloat): Added.
14546
14547         * device/lib/z80/Makefile: Added floating pt stubs.
14548
14549         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14550
14551         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14552
14553         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14554
14555 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14556
14557         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14558
14559         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14560
14561         * sdcc/support/regression/Makefile: Add port ds390.
14562
14563         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14564
14565         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14566
14567         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14568
14569         * sdcc/support/regression/ports/ds390/support.c: Added.
14570
14571         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14572
14573         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14574
14575         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14576
14577 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14578
14579         * device/include/malloc.h: Added z80 and gbz80 support.
14580
14581         * device/lib/gbz80/heap.s: Added.
14582
14583         * device/lib/z80/heap.s: Added.
14584
14585         * device/lib/malloc.c: Added z80 and gbz80 support.
14586
14587         * support/regression/tests/malloc.c (testMalloc): Added.
14588
14589         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14590
14591         * support/regression/tests/bug-478094.c: Added.
14592
14593         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14594
14595 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14596
14597         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14598
14599         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14600
14601         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14602
14603         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14604
14605         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14606
14607 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14608
14609         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14610
14611 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14612
14613         * support/regression/tests/bug-477927.c: Added.
14614
14615         * src/z80/peeph.def: Added minor rules.
14616
14617         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14618
14619         * src/z80/peeph.def: Added jump optimisation modification.
14620
14621 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14622
14623         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14624
14625 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14626
14627         * support/regression/tests/funptrs.c: Added.
14628
14629 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14630
14631         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14632
14633 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14634
14635         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14636
14637         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14638
14639         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14640         (movLeft2ResultLong): Created.
14641
14642         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14643         (joinPushes): Added.  Joins two char pushes into a word push.
14644
14645 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14646
14647         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14648
14649         * support/makebin/Makefile (install): Added creation of dest dir.
14650
14651 2001-10-24 Karl Bongers <karl AT turbobit.com>
14652
14653         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14654
14655 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14656
14657         * src/z80/ralloc.c: Turned off faulty pack for one use.
14658
14659         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14660
14661         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14662
14663 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14664
14665         * support/regression/Makefile: Improved clean
14666
14667         * support/regression/ports/gbz80/spec.mk: Added clean
14668
14669         * support/regression/ports/host/spec.mk: Added clean
14670
14671         * support/regression/ports/z80/spec.mk: Added clean
14672
14673         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14674
14675         * support/regression/ports/mcs51/timeout.c: little improvements
14676
14677 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14678
14679         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14680
14681         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14682
14683         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14684
14685 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14686
14687         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14688
14689         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14690
14691 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14692         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14693
14694         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14695
14696         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14697
14698         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14699
14700         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14701
14702         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14703
14704         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14705
14706         * support/regression/tests/longor.c: Added.
14707
14708 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14709
14710         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14711
14712         * as/mcs51/aslink.h: define PATH_MAX
14713
14714         * as/mcs51/asm.h: define PATH_MAX
14715
14716         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14717
14718         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14719
14720         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14721
14722         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14723
14724         * src/SDCCglobl.h: define PATH_MAX
14725
14726         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14727
14728         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14729
14730 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14731
14732         * src/z80/gen.c (gencjneshort): Fixed
14733
14734         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14735
14736 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14737
14738         * support/regression/tests/bug-469671.c: Added.
14739
14740         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14741
14742 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14743
14744         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14745
14746         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14747
14748 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14749
14750         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14751
14752         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14753
14754         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14755
14756         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14757
14758         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14759
14760         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14761
14762         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14763
14764 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14765
14766         * 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.
14767
14768         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14769
14770         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14771
14772 2001-10-07    <johan AT FRIJA>
14773
14774         * device/lib/gets.c (gets): fixed the return value.
14775
14776 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14777         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14778
14779         * 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.
14780
14781         * 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.
14782
14783         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14784
14785         * src/pic/gen.c: Removed Safe_strdup.
14786
14787         * configure.in: Added option to enable libgc support.
14788
14789         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14790         (bitVectUnion): Optimised.
14791         (bitVectIntersect): Optimised.
14792         (bitVectBitsInCommon): Optimised.
14793         (bitVectCplAnd): Optimised.
14794
14795         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14796
14797 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14798
14799         * src/SDCCmain.c: distinguish between assembler debug and plain options
14800
14801         * src/avr/main.c:   remove standard assembler options
14802
14803         * src/ds390/main.c: remove standard assembler options
14804
14805         * src/mcs51/main.c: remove standard assembler options
14806
14807         * src/port.h: removed "PENDING" comment
14808
14809 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14810
14811         * src/device/lib/_mulint.c  : new, with assember functions
14812
14813         * src/device/lib/_mullong.c : new, with assember functions
14814
14815         * src/device/lib/_divuint.c : with assember functions
14816
14817         * src/device/lib/_divsint.c : with assember functions
14818
14819         * src/device/lib/_divulong.c: with assember functions
14820
14821         * src/device/lib/_divslong.c: with assember functions
14822
14823         * src/device/lib/_moduint.c : with assember functions
14824
14825         * src/device/lib/_modsint.c : with assember functions
14826
14827         * src/device/lib/_modulong.c: with assember functions
14828
14829         * src/device/lib/_modslong.c: with assember functions
14830
14831         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14832
14833         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14834
14835         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14836                                       replaced _mululong.c and _mulslong.c by _mullong.c
14837
14838 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14839
14840         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14841
14842 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14843
14844         * src/SDCCglue.c: test, if win32api is available for MINGW
14845
14846 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14847
14848         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14849         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14850         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14851         * support/regression/ports/host/spec.mk: removed GENERIC
14852         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14853         * support/regression/ports/z80/spec.mk: removed GENERIC
14854
14855 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14856
14857         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14858
14859         * support/regression/tests/bug-467035.c: Created.
14860
14861 2001-10-01    <johan AT FRIJA>
14862
14863         * src/SDCC.y: fixed bug #466586 part 1
14864
14865 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14866
14867         * SDCCicode.c: z80 has no generic pointers
14868         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14869
14870 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14871
14872         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14873
14874 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14875
14876         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14877
14878         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14879
14880 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14881
14882         * configure.in: Fixed up so that ucsim is only configured once.
14883
14884         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14885
14886         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14887         (getPathDifference): As above.
14888
14889         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14890
14891         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14892
14893 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14894         * .version: Updated to 2.3.1
14895
14896         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14897         Added copyright header.
14898
14899         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14900         (assemble): Added support for macro based assembler commands.
14901         (linkEdit): Added support for macro based linker commands.
14902         (preProcess): Changed the pre-processor to use macros.
14903         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14904         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14905
14906         * device/lib/z80/crt0.s: Added module name for debugging.
14907
14908 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14909
14910         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14911
14912         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14913
14914         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14915
14916         * src/Makefile.in: Added SDCCmacro and SDCCutil
14917
14918 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14919
14920         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14921
14922 2001-09-16    <johan AT FRIJA>
14923
14924         * 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.
14925
14926 2001-09-15    <johan AT FRIJA>
14927
14928         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14929         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14930
14931 2001-09-11    <johan AT FRIJA>
14932
14933         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14934
14935 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14936
14937         * support/regression/tests/bug-460444.c: Added test case.
14938
14939         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14940         (genCast): Added justification for all of the asserts.
14941
14942 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14943
14944         * support/regression/support.c: _xdata replaced by xdata
14945
14946         * support/regression/spec.mk: removed _generic
14947
14948 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14949
14950         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14951
14952         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14953         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14954
14955         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14956
14957         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14958
14959         * support/regression/tests/bug-460010.c: Added test case.
14960
14961         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14962
14963 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14964
14965         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14966
14967         * support/regression/testfwk.c: removed workaround for bug #436344
14968
14969         * support/regression/tests/bp.c: use less memory with mcs51
14970
14971         * support/regression/tests/bug-441448.c: use less memory
14972
14973         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14974
14975         * support/regression/collate-results.py: typo
14976
14977 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14978
14979         * support/regression/tests/fetchoverlap.c: Added new test case.
14980
14981         * support/regression/tests/bp.c: Added new test case.
14982
14983         * support/regression/tests/bug-448984.c: Added new test case.
14984
14985         * support/regression/tests/pow2shifts.c: Added new test case.
14986
14987         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14988         (genlshTwo): Fixed right shift for count > 8.
14989
14990         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14991
14992 2001-09-08    <johan AT FRIJA>
14993
14994         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14995
14996 2001-09-07    <johan AT FRIJA>
14997
14998         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14999
15000         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15001
15002 2001-09-06    <johan AT FRIJA>
15003
15004         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15005         * bernhard noted me at this: "() equals to (void)" (1.38)
15006
15007 2001-09-05    <johan AT FRIJA>
15008
15009         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15010
15011 2001-09-04    <johan AT FRIJA>
15012
15013         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15014
15015
15016 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15017
15018         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15019
15020 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15021
15022         * link/z80/aslink.h: Fixed path for PATH_MAX
15023
15024 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15025
15026         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15027
15028         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15029
15030         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15031
15032         * 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.
15033
15034 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15035
15036         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15037         (genCmp): Fixed up genCmp for the GB with longs.
15038
15039         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15040
15041         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15042
15043         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15044
15045         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15046
15047 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15048
15049         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15050
15051 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15052
15053         * 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.
15054
15055         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15056
15057 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15058
15059         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15060
15061         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15062
15063 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15064
15065   * sim/ucsim/configure:    little improvement of Cygwin-detection
15066   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15067   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15068   * support/regression/tests/bug-221100.c: small changes for mcs51
15069   * support/regression/tests/bug-221168.c: small changes for mcs51
15070   * support/regression/tests/bug-227710.c: small changes for mcs51
15071   * support/regression/tests/staticinit.c: small changes for mcs51
15072   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15073   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15074   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15075
15076 $Revision$