d81938c91998dc24127f6d3ac6c3dc3652d3ae14
[fw/sdcc] / ChangeLog
1 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2
3         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
4           instead of lyx 1.5.0.
5
6 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7
8         * device/include/hc08/mc68hc908apxx.h: new header contributed by
9           Lucas Loizaga, with minor modifications. Thanks!
10
11 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
12
13         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
14           in sdcclib.
15
16 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
17
18         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
19           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
20           with acall/ajmp.
21
22 2007-07-22 Borut Razem <borut.razem AT siol.net>
23
24         * configure.in, configure: re-introduced .version
25         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
26           the version reverted to 2.7.0
27
28 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
29
30         * configure.in,
31         * doc/sdccman.lyx: bumped version to 2.7.3
32         * device/include/mcs51/compiler.h: fixed elif->else
33         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
34         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
35           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
36            enable accuse for bit operands
37         * src/SDCCmain.c (printVersionInfo),
38         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
39           environment descriptor
40         * src/SDCCutil.h: added getBuildEnvironment
41         * src/SDCCglue.c (initialComments): use getBuildEnvironment
42         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
43         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
44         * support/regression/tests/bug1348008.c,
45         * support/regression/tests/bug1496419.c,
46         * support/regression/tests/bug1503067.c,
47         * support/regression/tests/preproc.c: added empty tests
48
49 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
50
51         * support/regression/tests/bug1678803.c: new, added
52
53 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
54
55         * as/link/aslink.h,
56         * as/link/hc08/lkihx.c,
57         * as/link/hc08/lkrloc.c,
58         * as/link/mcs51/lkihx.c,
59         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
60           ihxExtendedLinearAddress
61         * as/link/mcs51/lkrloc.c (relr),
62         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
63           acall/ajmp, see bug 830513
64
65 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
66
67         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
68           (cseBBlock): remember aggr2ptr has been used
69         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
70           (geniCodeAssign): fixed bug 868103
71         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
72           added operandSize prototype
73         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
74           (genDataPointerSet): use max of size of right and result,
75           (gencjne): added parameter useCarry for optimization,
76           (genCmpEq): use carry if appropriate,
77           (genXor): check if operand already in carry
78         * support/regression/tests/bug-868103.c: enabled test
79
80 2007-07-12 Raphael Neider <rneider AT web.de>
81
82         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
83
84 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
85
86         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
87           from Robert Larice, thanks
88         * support/regression/tests/bitopcse.c,
89         * support/regression/tests/bitvars.c,
90         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
91         * support/regression/tests/bug-927659.c: enabled test for z80
92         * support/regression/tests/bug1738367.c: added extra tests by Frieder
93         * support/regression/tests/bug1745717.c: new, added
94         * support/regression/tests/literalop.c,
95         * support/regression/tests/nullstring.c: removed storage definitions that
96           are now in testfwk.h
97
98 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
99
100         * device/include/stdbool.h: do not define __bool_true_false_are_defined
101           and bool for targets that do not fully support it.
102         * support/regression/tests/bug1546986.c,
103         * support/regression/tests/bug1723128.c,
104         * support/regression/tests/bug1734654.c,
105         * support/regression/tests/bug1738367.c,
106         * support/regression/tests/constantRange.c: only use bool if allowed
107
108 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
109
110         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
111           Larice, also handle function pointers
112         * support/regression/tests/bug1749275.c: new, added
113
114 2007-07-03 Borut Razem <borut.razem AT siol.net>
115
116         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
117           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
118           #1746528: SDCC should ignore ':' in inline assembler comments
119         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
120
121 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
122
123         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
124         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
125
126 2007-06-29 Borut Razem <borut.razem AT siol.net>
127
128         * src/SDCCmain.c: fixed bug
129           #1744746: SDCC #4867: broken option --xram-size
130
131 2007-06-28 Borut Razem <borut.razem AT siol.net>
132
133         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
134           find out the endianess of host machine for ucsim
135
136 2007-06-27 Borut Razem <borut.razem AT siol.net>
137
138         * support/regression/generate-cases.py: corrected the file name
139           in warning
140         * configure.in, configure, sdccconf_in.h: find out the endianess of
141           host machine
142         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
143           negative size
144
145 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
146
147         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
148
149 2007-06-26 Borut Razem <borut.razem AT siol.net>
150
151         * support/regression/generate-cases.py: display warning if function
152           list is empty; implemented more flexible rule for detection of
153           testing functions, allowing return type 'void' in the same line as
154           the function name in the function definition
155         * support/regression/tests/bug-1654060.c: corrected test
156         * support/librarian/sdcclib.c: fixed warning:
157           format '%s' expects type 'char *', but argument 2 has type 'int'
158
159 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
160
161         * support/librarian/sdcclib.c: Added feature Requests [1510635]
162           Multiple infiles for sdcclib.
163
164 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
165
166         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
167           bug 1731741
168
169 2007-06-18 Borut Razem <borut.razem AT siol.net>
170
171         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
172           how to handle comments, so they have to be removed by the
173           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
174         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
175           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
176           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
177           table driven option hadling
178
179 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
180
181         * src/SDCCast.c (decorateType),
182         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
183           iCode to ast level to fix bug 1738367
184         * support/regression/tests/bug1738367.c: new, added
185
186 2007-06-15 Raphael Neider <rneider AT web.de>
187
188         * src/pic16/devices.inc,
189         * device/lib/pic16/pics.all,
190         * device/include/pic16/pic18fregs.h,
191         * device/include/pic16/pic18f[24][45]20.h,
192         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
193           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
194         * device/lib/pic16/Makefile.in: faster cleanup
195
196 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
197
198         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
199
200 2007-06-13 Raphael Neider <rneider AT web.de>
201
202         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
203
204 2007-06-12 Raphael Neider <rneider AT web.de>
205
206         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
207           suppress bit defines if NO_BIT_DEFINES is #define'd
208         * device/include/pic/pic*.h: recreated all headers to include
209           conditional bit defines
210         * device/include/pic/pic16f886.h,
211         * device/include/pic/pic16f887.h: fixed based on newer .inc file
212         * device/include/pic/recreate.sh: script to recreate the complete
213           device library files based on the currently supported devices
214
215 2007-06-12 Borut Razem <borut.razem AT siol.net>
216
217         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
218           support/regression/Makefile.in, support/scripts/build.mak,
219           support/scripts/Makefile.snapshot:
220           use new svn URL scheme
221         * doc/sdccman.lyx: SDCC Wiki moved to
222           http://sdcc.wiki.sourceforge.net/
223
224 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
225
226         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
227         * support/regression/tests/bug1734654.c: added
228
229 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
230
231         * src/SDCCast.c (decorateType): optimized '?' for equal operands
232         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
233           with literal operands
234
235 2007-06-10 Borut Razem <borut.razem AT siol.net>
236
237         * as/link/z80/lklibr.c: fixed mingw build warning
238           lklibr.c:575: warning: implicit declaration of function 'tolower'
239         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
240           src/z80/main.c: move target specific options from src/SDCCmain.c
241           to src/<target>/main.c
242
243 2007-06-09 Borut Razem <borut.razem AT siol.net>
244
245         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
246           removed unused swap_sense; removed outBitCLong, replaced with outBitC
247         * support/regression/tests/bug-1294691.c: added
248
249 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
250
251         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
252           can also be static, fixes bug 1733438
253         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
254           have absolute address too
255           (computeType): added optimization for 'cond ? true : false'
256         * support/regression/tests/absolute.c: added test for static absolute var
257
258 2007-06-08 Raphael Neider <rneider AT web.de>
259
260         * src/regression/Makefile: suppress parallel builds, allow easy
261           switching between pic14/pic16 ports
262         * src/regression/picregs.h: added pic14/16 header file switch
263         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
264           inline.c,nestfor.c,string1.c}: include "picregs.h"
265
266 2007-06-07 Borut Razem <borut.razem AT siol.net>
267
268         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
269           permanent solution to suppress GCC 4.2.0 c++ warning:
270           deprecated conversion from string constant to `char *'
271           use 'const char *' where ever required
272         * support/regression/generate-cases.py: implemented more flexible rule
273           for detection of testing functions, allowing white-spaces surrounding
274           the function name and the 'void' parameter.
275         * support/regression/tests/constantRange.c,
276           support/regression/tests/scott-compare3.c: fixed failing regression
277           tests, uncovered by implementation of more flexible rule for detection
278           of testing functions
279
280 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
281
282         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
283
284 2007-06-04 Borut Razem <borut.razem AT siol.net>
285
286         * configure.in, configure, config_vc.awk: sdcc version number is now
287           stored in configure.in; removed .version
288         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
289           doc/INSTALL.txt: version bumped to 2.7.2
290         * sim/ucsim/configure.in, sim/ucsim/configure:
291           use "read" to read from .version
292
293 2007-06-03 Borut Razem <borut.razem AT siol.net>
294
295         * */Makefile.in: removed annoying warning:
296           Makefile:xx: Makefile.dep: No such file or directory
297
298 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
299
300         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
301           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
302         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
303         * src/SDCCast.c (resultTypePropagate): propagate for '!',
304           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
305           bugfix: only use newBoolLink for bit result type
306         * src/SDCCicode.c (geniCodeLogic): added param tree,
307           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
308           (geniCodeLogicAndOr): use IS_BIT,
309           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
310           (ast2iCode): added tree param to geniCodeLogic for comparisons
311         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
312         * support/regression/tests/bug1723128.c: added test NotZero
313
314 2007-06-01 Borut Razem <borut.razem AT siol.net>
315
316         * SDCPP synchronized with GCC CPP release version 4.2.0,
317           currently the latest release:
318         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
319           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
320           support/cpp2/cppdefault.h, support/cpp2/except.h,
321           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
322           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
323           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
324           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
325           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
326           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
327           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
328           support/cpp2/opts.h, support/cpp2/output.h,
329           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
330           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
331           support/cpp2/system.h, support/cpp2/version.c,
332           support/cpp2/Makefile.in: modified
333         * support/cpp2/opts-common.c: added
334         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
335         * device/lib/pic16/libdev/pic18f[24]5j10.c:
336           search for included source file in local directory
337         * sim/ucsim/configure, sim/ucsim/configure.in:
338           temporary solution to suppress GCC 4.2.0 c++ warning:
339           deprecated conversion from string constant to `char *'
340
341 2007-06-01 Raphael Neider <rneider AT web.de>
342
343         * device/lib/pic/libdev/pic12f683.c,
344         * device/include/pic/pic12f683.h: added GPIO bits
345
346 2007-06-01 Raphael Neider <rneider AT web.de>
347
348         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
349           quotation marks, clarified role of PIC14 vs. PIC16 ports
350         * src/pic16/devices.inc,
351         * device/include/pic16/pic18fregs.h,
352         * device/include/pic16/pic18f[24][45]j10.h,
353         * device/lib/pic16/pics.all,
354         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
355           18f24j10, 18f25j10, 18f44j10, and 18f45j10
356         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
357           for new devices as they are not yet supported by gputils
358
359 2007-05-31 Borut Razem <borut.razem AT siol.net>
360
361         * Small Device C Compiler 2.7.0 released
362         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
363           changed sdcc version to 2.7.1
364         * support/scripts/sdcc.nsi: added How to create WIN32 release
365           setup.exe package
366
367 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
368
369         * doc/sdccman.lyx: documented initialization and allocation of absolute
370           variables, bit parameter passing, the need for function pointers to be
371           reentrant and alpha quality support of inline and retrict
372
373 2007-05-26 Borut Razem <borut.razem AT siol.net>
374
375         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
376           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
377         * docs/knownbugs.html: updated
378
379 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
380
381         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
382           thanks Jan Waclawek
383         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
384           AOP_CRY and ruonly
385           (gencjneshort): optimized when left is AOP_DIR
386         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
387           initializing unions in a struct/array
388         * support/regression/fwk/include/testfwk.h: added defines for data, near
389           and far for host and z80
390         * support/regression/tests/bug1723128.c: new, added
391
392 2007-05-22 Borut Razem <borut.razem AT siol.net>
393
394         * doc/knownbugs.html: updated
395
396 2007-05-21 Raphael Neider <rneider AT web.de>
397
398         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
399           error message instead
400         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
401
402 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
403
404         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
405
406 2007-05-21 Raphael Neider <rneider AT web.de>
407
408         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
409           closes #1722392
410         * src/regression/gpsim_assert.h,
411         * src/regression/Makefile,
412         * src/regression/pcodeopt.c: regression test for the above fix
413
414 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
415
416         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
417           jumps to self, fixed bug 1717281
418
419 2007-05-10 Borut Razem <borut.razem AT siol.net>
420
421         * support/scripts/gen_known_bugs.pl: cosmetic fix
422         * doc/knownbugs.html: generated by gen_known_bugs.pl
423
424 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
425
426         * src/SDCCast.c (createFunction): also generate non-inlined version of
427           function for functions declared as "static inline"
428         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
429           function can be inlined after non-inlined version generated.
430
431 2007-05-10 Borut Razem <borut.razem AT siol.net>
432
433         * support/scripts/gen_known_bugs.pl: added script
434           which generates knownbugs.html
435
436 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
437
438         * doc/knownbugs.html: updated for release 2.7.0
439
440 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
441
442         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
443
444 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
445
446         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
447           (throughout): updated generating comments
448         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
449           (throughout): updated generating comments
450         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
451           rule instead of at the second, or it might skip lines when removing the
452           complete match
453         * support/regression/tests/bug1714204.c: changed test to foo
454
455 2007-05-08 Borut Razem <borut.razem AT siol.net>
456
457         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
458           thanks to SDCC Distributed Compile Farm members,
459           added Z80 and GBZ80 command line options
460         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
461
462 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
463
464         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
465         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
466         * support/regression/tests/longlit.c: modified to be tested at all and
467           to pass the actual test
468
469 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
470
471         * device/include/mcs51/uPSD33xx.h: Added.
472
473 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
474
475         * device/lib/_gptrput.c,
476         * device/lib/_gptrget.c: removed old code,
477          (_gptrgetWord),
478         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
479         * support/regression/tests/bug1714204.c: new, added
480
481 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
482
483         * support/regression/tests/regtrack.c: test was never executed
484           because of the regression test being picky about white spaces.
485         * device/lib/mcs51/crtclear.asm: added comment
486
487 2007-05-06 Raphael Neider <rneider AT web.de>
488
489         * device/lib/pic/Makefile.rules,
490         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
491           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
492
493 2007-05-06 Raphael Neider <rneider AT web.de>
494
495         * src/pic16/device.h,
496         * src/pic16/main.h,
497         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
498           _pic16_setDefaultOptions): removed/reordered command-line args
499         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
500           devices, regrouped command line args, environment variables),
501           clarified sone points, added sections on how to add devices to the
502           PIC14/PIC16 ports
503
504 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
505
506         * src/z80/peeph.def: fixed bug in rule 2
507
508 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
509
510         * src/port.h: added TARGET_MCS51_LIKE
511         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
512           take advantage of it too
513         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
514           (shiftR2Left2Result): Optimized: don't check shifting by 0
515         * src/z80/peeph-z80.def,
516         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
517           modifications, see patch 1700823
518         * src/mcs51/peep.c (): fixed bug 1712928
519         * support/regression/tests/bug1712928.c: new, added
520
521 2007-05-05 Borut Razem <borut.razem AT siol.net>
522
523         * device/lib/pic16/Makefile.common.in,
524           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
525           removed bash dependencies
526
527 2007-05-01 Borut Razem <borut.razem AT siol.net>
528
529         * src/SDCCicode.c:
530           fixed bug #1710507: --i-code-in-asm makes compile fail
531           all iCode comments are now one liners
532         * src/mcs51/gen.c: fixed memory leak
533
534 2007-05-01 Raphael Neider <rneider AT web.de>
535
536         * device/lib/pic/libdev/*.c
537         * device/include/pic/*.h: regenerated all device libs from updated
538           .inc files
539         * support/scripts/inc2h.pl: documented usage, now uses strict to
540           catch more bugs
541
542 2007-04-30 Borut Razem <borut.razem AT siol.net>
543
544         * doc/sdccman.lyx:
545           fixed bug #1669175: Problem with space in output paths
546           documented how to use paths with spaces for Windows users
547
548 2007-04-29 Borut Razem <borut.razem AT siol.net>
549
550         * Fixed svn:eol-style and svn:keywords properties
551         * src/SDCCval.c: fixed bug
552           #1592871: Segfault with "large" const arrays of characters
553           replaced recursion with iteration
554         * Removed svn:executable property from non-executable files
555
556 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
557
558         * src/mcs51/gen.c (genRet): fixed bug 1707003
559
560 2007-04-27 Raphael Neider <rneider AT web.de>
561
562         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
563           createReachingDefinitions,assignValnums,pic16_destructDF,
564           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
565           prevent NULL pointer dereferences
566         * device/lib/pic/libdev/pic16f886.c,
567         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
568           prevent building them, gputils do not really support them yet
569
570 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
571
572         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
573           helps printf_small. 32 bytes more __idata mem.
574
575 2007-04-27 Raphael Neider <rneider AT web.de>
576
577         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
578           return early when pb or pb->pcHead is NULL (patch #1708427)
579         * src/regression/empty.c,
580         * src/regression/Makefile: added test with empty functions
581         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
582
583 2007-04-27 Borut Razem <borut.razem AT siol.net>
584
585         * src/SDCCast.c: fixed feature request
586           #1547512: Redundant strings linked when using sizeof("abc")
587
588 2007-04-23 Borut Razem <borut.razem AT siol.net>
589
590         * doc/sdccman.lyx, src/SDCCmain.c:
591           peep-hole comments are generated only if --fverbose-asm option is
592           specified and --no-peep-comments is not, as proposed by Frieder.
593         * support/regression/Makefile.in: compile regression tests with
594           --fverbose-asm option so one can "grep" whether a new (or an old)
595           peephole is (still) applied; requested by Frieder.
596
597 2007-04-23 Kevin Buettner <kevin AT buettner.to>
598
599         * device/include/pic/pic16f886.h,
600         * device/include/pic/pic16f887.h,
601         * device/lib/pic/libdev/pic16f886.c,
602         * device/lib/pic/libdev/pic16f887.c,
603         * device/include/pic/pic14devices.txt,
604         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
605
606 2007-04-23 Kevin Buettner <kevin AT buettner.to>
607
608         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
609           fixes #1704666
610
611 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
612
613         * device/lib/_memset.c: assembler version for mcs51
614
615 2007-04-22 Borut Razem <borut.razem AT siol.net>
616
617         * support/scripts/listerr.c: program to create the list of errors and
618           warnings list from - added
619         * doc/sdccman.lyx: removed the note
620           "For list of warnings and corresponding codes, see err_warn.txt"
621         * src/SDCCsymt.c: fixed bug #1699804:
622           Bug with some uses of sizeof(static local array) (MCS51)
623         * support/regression/tests/bug-1699804.c: added
624
625 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
626
627         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
628           (main): added option -i,
629           (asmbl, case S_INCL): use search_path_fopen,
630           mostly from patch 1579668 by Peter Miller, thanks
631         * src/z80/main.c: fixed typo --callee-saves-bc
632         * device/include/mcs51/compiler.h: added sfrword for Tasking
633
634 2007-04-20 Borut Razem <borut.razem AT siol.net>
635
636         * src/z80/main.c: replaced reserved keyword asm with asmblr
637
638 2007-04-19 Borut Razem <borut.razem AT siol.net>
639
640         * src/port.h: use const pointers to strings
641         * src/SDCCargs.h: declared getStringArg() and getIntArg()
642         * src/pic16/main.c: include SDCCargs.h
643         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
644           const char, since the strings are dynamically allocated
645         * src/SDCCmain.c: options.code_seg and options.const_seg are
646           dynamically allocated; check port specific command line options
647           before the general ones
648         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
649
650 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
651
652         * device/include/ds400rom.h,
653         * device/lib/ds390/lcd390.c,
654         * device/lib/ds390/memcpyx.c,
655         * device/lib/ds390/rtc390.c,
656         * device/lib/ds400/ds400rom.c,
657         * device/lib/ds400/memcpyx.c,
658         * device/lib/hc08/_ret.c: more replacements of keywords with their
659           double underscore equivalents
660         * device/lib/ds390/Makefile.in,
661         * device/lib/ds400/Makefile.in,
662         * device/lib/gbz80/Makefile.in,
663         * device/lib/hc08/Makefile.in,
664         * device/lib/mcs51/Makefile.in,
665         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
666
667 2007-04-17 Borut Razem <borut.razem AT siol.net>
668
669         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
670           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
671           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
672           to --fverbose-asm, to be gcc'ish
673
674 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
675
676         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
677
678 2007-04-17 Borut Razem <borut.razem AT siol.net>
679
680         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
681         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
682           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
683           with their double underscore equivalent
684
685 2007-04-14 Borut Razem <borut.razem AT siol.net>
686
687         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
688           source"
689
690 2007-04-13 Borut Razem <borut.razem AT siol.net>
691
692         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
693           C99 standard
694         * device/examples/serialcomm/windows/serial.[ch],
695           device/examples/serialcomm/windows/test_serialcomm.cpp:
696           updated by Bela Torok
697         * device/examples/serialcomm/windows/serialcomm.dsw,
698           device/examples/serialcomm/windows/serialcomm.dsp: added
699
700 2007-04-13 Jan Waclawek <wek AT efton.sk>
701
702         * doc/sdccman.lyx: additions and changes at various places
703           (submitted as #1697136).
704           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
705
706 2007-04-10 Borut Razem <borut.razem AT siol.net>
707
708         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
709           LyX file format changed to 245
710         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
711           "FreeWare" replaced with "free open source"
712
713 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
714
715         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
716
717 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
718
719         * device/include/pic16/pic18fregs.h,
720         * device/lib/_bp.c,
721         * device/lib/_decdptr.c,
722         * device/lib/_divsint.c,
723         * device/lib/_divslong.c,
724         * device/lib/_divuint.c,
725         * device/lib/_divulong.c,
726         * device/lib/_fs2schar.c,
727         * device/lib/_fs2sint.c,
728         * device/lib/_fs2slong.c,
729         * device/lib/_fs2uchar.c,
730         * device/lib/_fs2uint.c,
731         * device/lib/_fs2ulong.c,
732         * device/lib/_fsadd.c,
733         * device/lib/_fscmp.c,
734         * device/lib/_fsdiv.c,
735         * device/lib/_fseq.c,
736         * device/lib/_fsget1arg.c,
737         * device/lib/_fsget2args.c,
738         * device/lib/_fsgt.c,
739         * device/lib/_fslt.c,
740         * device/lib/_fsmul.c,
741         * device/lib/_fsneq.c,
742         * device/lib/_fsnormalize.c,
743         * device/lib/_fsreturnval.c,
744         * device/lib/_fsrshift.c,
745         * device/lib/_fssub.c,
746         * device/lib/_fsswapargs.c,
747         * device/lib/_gptrget.c,
748         * device/lib/_gptrgetc.c,
749         * device/lib/_gptrput.c,
750         * device/lib/_logexpf.c,
751         * device/lib/_modsint.c,
752         * device/lib/_modslong.c,
753         * device/lib/_moduint.c,
754         * device/lib/_modulong.c,
755         * device/lib/_mulint.c,
756         * device/lib/_mullong.c,
757         * device/lib/_schar2fs.c,
758         * device/lib/_ser.c,
759         * device/lib/_setjmp.c,
760         * device/lib/_sint2fs.c,
761         * device/lib/_slong2fs.c,
762         * device/lib/_spx.c,
763         * device/lib/_uchar2fs.c,
764         * device/lib/_uint2fs.c,
765         * device/lib/_ulong2fs.c,
766         * device/lib/asincosf.c,
767         * device/lib/atanf.c,
768         * device/lib/calloc.c,
769         * device/lib/ds390/tinibios.c,
770         * device/lib/ds400/tinibios.c,
771         * device/lib/expf.c,
772         * device/lib/free.c,
773         * device/lib/hc08/_mulint.c,
774         * device/lib/logf.c,
775         * device/lib/malloc.c,
776         * device/lib/printf_fast.c,
777         * device/lib/printf_tiny.c,
778         * device/lib/printfl.c,
779         * device/lib/realloc.c,
780         * device/lib/ser_ir.c,
781         * device/lib/serial.c,
782         * support/regression/tests/libmullong.c: replaced all special keywords
783           with their double underscore equivalent
784         * support/regression/ports/mcs51-xstack-auto/spec.mk,
785         * device/lib/Makefile.in: compile libs with --std-c99 instead of
786           --std-sdcc99
787         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
788           (genRet): if the bit-symbol is ruonly it already is in the carry
789         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
790         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
791         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
792           type UCHAR if dest is not bit
793
794 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
795
796         * device/include/math.h,
797         * device/lib/cotf.c,
798         * device/lib/expf.c,
799         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
800
801 2007-04-01 Borut Razem <borut.razem AT siol.net>
802
803         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
804           fixed bug #1692042: input buffer overflow...scanner uses REJECT
805         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
806           gcc_unreachable() called internal_error()...
807
808 2007-03-30 Raphael Neider <rneider AT web.de>
809
810         * src/pic/ralloc.c (isData): suppress garbage debug output
811
812 2007-03-28 Borut Razem <borut.razem AT siol.net>
813
814         * doc/sdccman.lyx:
815           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
816           is developed, built and used worldwide, and the word "night" doesn't
817           make any sense.
818
819 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
820
821         * device/include/mcs51/C8051F360.h: new, added
822         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
823
824 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
825
826         * src/SDCC.y (declaration_specifiers, function_specifier),
827         * support/Util/SDCCerr.c,
828         * support/Util/SDCCerr.h,
829         * src/SDCCsymt.h,
830         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
831           inline keyword
832         * src/SDCCmem.c (deallocParms),
833         * src/SDCCast.c: support for function inlining, not quite complete
834         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
835           'restrict' qualifier
836
837 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
838
839         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
840           (saveRBank, unsaveRBank): don't save bits,
841           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
842         * support/regression/tests/bug1535242.c: new, added
843         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
844           thanks Alexey Shamrin <shamrin AT gmail.com>,
845           made assert.h header ANSI compliant (added a check for NDEBUG macro,
846           removed header guard)
847         * .version,
848         * sdcc.spec: bumped version to 2.6.5
849         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
850
851 2007-03-22 Borut Razem <borut.razem AT siol.net>
852
853         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
854           fixed bug #1653671: sdcdb integration into ddd is broken
855
856 2007-03-22 Raphael Neider <rneider AT web.de>
857
858         * src/pic/gen.c (popGetExternal): augmented to also create references
859           to external variables (not only labels),
860           (genCall): comment on plan to reduce PAGESEL overhead,
861           (genFunction, genEndFunction): also save/restore FSR around interrupt
862           handling code, removed lots of unused code
863           (genDivOneByte): release acquired temp register
864         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
865           of popGetExternal
866         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
867           for registers that need to be saved during interrupts (FSR, STATUS,
868           PCLATH; W needs special handling), currently only FSR is used
869
870 2007-03-22 Raphael Neider <rneider AT web.de>
871
872         * device/include/pic/pic14devices.txt: 16f688 has only one config word
873
874 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
875
876         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
877
878 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
879
880         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
881
882 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
883
884         * as/link/aslink.h: added LKOBJEXT
885         * as/link/hc08/link_hc08.dsp,
886         * as/link/hc08/Makefile.bcc,
887         * as/link/hc08/Makefile.in,
888         * as/link/mcs51/aslink.dsp,
889         * as/link/mcs51/Makefile.bcc,
890         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
891         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
892         * as/link/lkaomf51.c: merged and moved
893         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
894         * as/link/z80/lkdata.c,
895         * as/link/lkdata.c: merged and moved
896         * as/link/hc08/lkmain.c,
897         * as/link/mcs51/lkmain.c: cosmetic changes
898         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
899         * as/link/lklex.c: use LKOBJEXT
900         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
901           ANSI-fied functions, removed bubble-sorts
902         * as/link/z80/lksym.c           as/link/lksym.c: merged,
903           ANSI-fied functions
904         * as/link/z80/linkgbz80.dsp,
905         * as/link/z80/linkz80.dsp,
906         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
907           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
908         * as/link/z80/lkhead.c,
909         * as/link/z80/lklex.c: deleted
910         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
911         * as/link/z80/lkmain.c: added copyfile()
912
913 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
914
915         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
916
917 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
918
919         * device/lib/_strlen.c: assembler version for mcs51
920
921 2007-03-13 Raphael Neider <rneider AT web.de>
922
923         * device/include/pic16/pic18f2221.h,
924         * device/include/pic16/pic18f2321.h,
925         * device/include/pic16/pic18f2331.h,
926         * device/include/pic16/pic18f4221.h,
927         * device/include/pic16/pic18f4321.h,
928         * device/include/pic16/pic18f4331.h: fixed config byte location names
929         * support/scripts/inc2h-pic16.pl: removed debug output, emit
930           consistently named config byte locations
931
932 2007-03-13 Borut Razem <borut.razem AT siol.net>
933
934         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
935           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
936           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
937           as/link/z80/Makefile.in, as/z80/Makefile.in:
938           introduced LDFLAGS
939
940 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
941
942         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
943         * device/lib/printf_large.c: pointer was converted to generic
944         pointer for mcs51 models other than model-small (Maarten noticed)
945
946 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
947
948         * device/include/mcs51/ADuC84x.h: Added.
949
950 2007-03-10 Borut Razem <borut.razem AT siol.net>
951
952         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
953           fixed RFE #1624219: double backslashes in filenames;
954           functions hexEscape(), octalEscape() and copyStr() moved from
955           SDCCval.c to SDCCutil.c and made them glovbally available
956
957 2007-03-09 Borut Razem <borut.razem AT siol.net>
958
959         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
960           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
961           1673361: Missaligned comments in output files
962
963 2007-03-09 Raphael Neider <rneider AT web.de>
964
965         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
966
967 2007-03-09 Raphael Neider <rneider AT web.de>
968
969         * src/pic/gen.c,
970         * src/pic/glue.c,
971         * src/pic/ralloc.c: suppress undesired debug output
972         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
973
974 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
975
976         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
977
978 2007-03-07 Borut Razem <borut.razem AT siol.net>
979
980         * device/lib/pic16/libdev/pic18f[24][34]31.c:
981           search include files in the current directory
982
983 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
984
985         * src/SDCCglue.c (emitMaps, glue),
986         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
987           absolute xdata
988         * support/regression/tests/absolute.c: added xdata test
989
990 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
991
992         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
993           added condition to macro, fixes bug 1666080
994
995 2007-03-02 Raphael Neider <rneider AT web.de>
996
997         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
998
999 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1000
1001         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
1002         be cleared. Unconditionally set __XPAGE
1003         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
1004
1005 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1006
1007         * src/SDCCglobl.h,
1008         * src/SDCCmain.c,
1009         * src/mcs51/gen.c,
1010         * src/mcs51/rtrack.c,
1011         * src/ds390/gen.c,
1012         * doc/sdccman.lyx: added --no-gen-comments
1013         * src/mcs51/peeph.def: added 192.b, disabled 185
1014
1015 2007-02-25 Raphael Neider <rneider AT web.de>
1016
1017         * src/pic16/gen.c (genCast): fixed typo
1018         * device/lib/pic16/Makefile.subdir: only install existing files
1019         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1020
1021 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1022
1023         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1024         * device/lib/mcs51/crtclear.asm,
1025         * device/lib/mcs51/crtxclear.asm: renumbered labels
1026         * device/lib/mcs51/Makefile.in: added crtcall.asm
1027         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1028         * src/mcs51/gen.c (movc): removed,
1029           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1030             acc.x or psw.x),
1031           (toCarry, genSend, genRet): added function toCarry,
1032           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1033           (assignBit, genAssign, genCast): added function assignBit
1034         * src/mcs51/Makefile.bcc: added rtrack.c
1035         * src/mcs51/ralloc.h: made valueKnown a bitfield
1036         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1037           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1038           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1039         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1040         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1041           (_pop): only pop valid pairs, see gencjneshort,
1042           (gencjneshort): return pair that still needs to be popped, restructured,
1043           (gencjne, genCmpEq): call _pop
1044
1045 2007-02-23 Raphael Neider <rneider AT web.de>
1046
1047         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1048
1049 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1050
1051         * device/include/mcs51/P89LPC925.h: Added.
1052
1053 2007-02-18 Raphael Neider <rneider AT web.de>
1054
1055         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1056
1057 2007-02-17 Borut Razem <borut.razem AT siol.net>
1058
1059         * support/cpp2/directives.c, support/cpp2/version.c:
1060           synchronized with GCC CPP 4.1.2
1061
1062 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1063
1064         * src/mcs51/rtrack.h,
1065         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1066           by checking the strings passed by emitcode() to the assembler.
1067           Feel free to change. This in part addresses RFE #482179.
1068           Set environment variable SDCC_RTRACK to enable.
1069         * src/mcs51/gen.c: inserted hooks
1070         * src/mcs51/ralloc.h: added two members to struct regs
1071         * support/regression/tests/regtrack.c: added
1072
1073 2007-02-14 Borut Razem <borut.razem AT siol.net>
1074
1075         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1076         * Makefile.in: applied patch from Makefile related part of
1077           #1469393: Compiler does not initialize static data
1078
1079 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1080
1081         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1082           for better fix of bug 1273984, compiles pic16 rand.c
1083
1084 2007-02-12 Borut Razem <borut.razem AT siol.net>
1085
1086         * src/pic16/main.c: fixed pic16 standard library directory bug
1087
1088 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1089
1090         * src/hc08/gen.c (genSwap): fix swap regression test
1091
1092 2007-02-10 Borut Razem <borut.razem AT siol.net>
1093
1094         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1095           with same scope
1096         * support/regression/tests/bug-1654060.c: added regression test for
1097           #1654060
1098
1099 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1100
1101         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1102         bit moves in return statement
1103
1104 2007-02-09 Borut Razem <borut.razem AT siol.net>
1105
1106         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1107           syntax error
1108
1109 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1110
1111         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1112         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1113
1114 2007-02-07 Raphael Neider <rneider AT web.de>
1115
1116         * src/pic16/devices.inc,
1117         * device/include/pic16/pic18fregs.h,
1118         * device/include/pic16/pic18f[24][34]31.h,
1119         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1120         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1121         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1122
1123 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1124
1125         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1126           can this have lived here for so many years?
1127         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1128           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1129         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1130
1131 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1132
1133         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1134         appended by loop induction must be at the very end of the eBBlock
1135
1136 2007-02-05 Kevin Vigor
1137
1138         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1139
1140 2007-02-05 Borut Razem <borut.razem AT siol.net>
1141
1142         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1143           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1144
1145 2007-02-03 Borut Razem <borut.razem AT siol.net>
1146
1147         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1148           applied patch #1646602 option to set default signedness of char to
1149           unsigned, added -funsigned-char command line option,
1150           thanks to Gunther Jehle
1151         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1152           prompt for file deletion a few hundred times (especially the
1153           subversion files, which have ro permissions so it asks for
1154           confirmation), thanks to Simon McAuliffe;
1155           added {} + option to find in order to remove multiple files from a
1156           single rm commad
1157
1158 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1159
1160         * device/include/mcs51/SST89x5xRDx.h: Added.
1161
1162 2007-02-02 Raphael Neider <rneider AT web.de>
1163
1164         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1165         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1166
1167 2007-02-01 Raphael Neider <rneider AT web.de>
1168
1169         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1170           config words again
1171
1172 2007-01-31 Borut Razem <borut.razem AT siol.net>
1173
1174         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1175           if compiled with GCC. Thanks to Raphael Neider
1176
1177 2007-01-31 Raphael Neider <rneider AT web.de>
1178
1179         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1180             operand names, handles name and (name + n) for all n,
1181           (sameBank): restructured, also check bank allocation policy,
1182         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1183           (pic14_operandsAllocatedInSameBank): check whether to operands
1184             will be allocated into the same bank (i.e., section) to reduce
1185             BANKSEL overhead, queried from pcode.c:sameBank,
1186           (pic14printLocals): reintroduced clustering registers into a single
1187             section: all compiler generated symbols will now reside in one
1188             bank (per file), reducing BANKSEL overhead and code size,
1189           (showAllMemmaps): use local dbuf where possible
1190
1191 2007-01-29 Raphael Neider <rneider AT web.de>
1192
1193         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1194           (call_libraryfunc): retrieve/create symbol and mark as used,
1195           (genFunction): mark defined functions as non-extern and add again
1196            to code memmap for later output
1197         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1198           (pic14printLocals): reworked for new symbol emission,
1199           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1200           showAllMemmaps): reworked symbol output using dbufs, added handling
1201             of string literals (still incomplete),
1202           (picglue): removed symbol emission, moved into showAllMemmaps,
1203           (emitSymbolSet): new workhorse for symbol output,
1204           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1205
1206 2007-01-29 Borut Razem <borut.razem AT siol.net>
1207
1208         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1209           component contains the extension separator.
1210
1211 2007-01-28 Borut Razem <borut.razem AT siol.net>
1212
1213         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1214           on WIN32
1215         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1216           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1217           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1218           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1219           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1220           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1221           src/z80/gen.c, support/Util/MySystem.c:
1222           accept slash and backslash as directory separator on WIN32 and
1223           Cygwin ports
1224
1225 2007-01-28 Raphael Neider <rneider AT web.de>
1226
1227         * src/pic16/devices.inc,
1228         * device/include/pic16/pic18f[24][23]21.h,
1229         * device/include/pic16/pic18fregs.h,
1230         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1231         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1232         * device/lib/pic16/libio/adc.ignore,
1233         * device/lib/pic16/libio/i2c.ignore,
1234         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1235           family, as gputils do not yet support the devices
1236         * device/lib/pic16/Makefile.subdir: ignore errors on install
1237         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1238           headers and libraries from gputils .inc files
1239
1240 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1241
1242         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1243
1244 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1245
1246         * doc/sdccman.lyx: add printf benchmarks
1247
1248 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1249
1250         * device/lib/printf_fast.c: fix %c, char promoted to int
1251         * device/lib/printf_tiny.c: fix %c, char promoted to int
1252
1253 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1254
1255         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1256
1257 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1258
1259         * support/regression/tests/swap.c: 64 bit hosts failed
1260         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1261
1262 2007-01-25 Raphael Neider <rneider AT web.de>
1263
1264         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1265           based on absolute register address, patch by Alex Blond
1266
1267 2007-01-22 Raphael Neider <rneider AT web.de>
1268
1269         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1270           emitted, do not emit them again...
1271
1272 2007-01-22 Raphael Neider <rneider AT web.de>
1273
1274         * src/regression/bank1.c, src/regression/compare6.c,
1275           src/regression/add.c: cosmetic changes
1276         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1277         * src/pic/gen.c: fixed global zero and one,
1278           (aopForSym): removed unued code,
1279           (aopGet): assert aop is defined, check and use `index' of
1280             pCodeImmd operands (fixes #1630908),
1281         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1282           (register_reassign): prevent accidental register unification,
1283           (ReuseReg): cosmetic changes (also above)
1284         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1285           pic14emitStaticSeg): do not emit initialized data,
1286           (printIval*): replaced with working versions,
1287           (pic14createInterruptVect,picglue): use idata for initialized data,
1288             now init data should work in all modules (not only main()),
1289         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1290
1291 2007-01-21 Borut Razem <borut.razem AT siol.net>
1292
1293         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1294           use -fPIC or -fpic if they are supported and not ignored
1295         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1296         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1297
1298 2007-01-20 Borut Razem <borut.razem AT siol.net>
1299
1300         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1301           implemented RFE #1470316: allow "$" in variable names
1302
1303 2007-01-20 Raphael Neider <rneider AT web.de>
1304
1305         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1306
1307 2007-01-20 Raphael Neider <rneider AT web.de>
1308
1309         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1310         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1311         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1312         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1313           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1314         * device/lib/pic/libdev/pic*.c,
1315         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1316         * device/lib/pic/libdev/Makefile.in: show progress
1317
1318 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1319
1320         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1321         * support/scripts/sdcc_cygwin_mingw32,
1322         * support/scripts/sdcc_mingw32,
1323         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1324         conformance with autoconf 2.6
1325
1326 2007-01-19 Raphael Neider <rneider AT web.de>
1327
1328         * src/pic/device.c (register_map): fixed list construction
1329         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1330           (genMod): removed case for genModbits,
1331           (genModbits): removed as now unused/unimplemented
1332         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1333
1334 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1335
1336         * support/regression/tests/swap.c: added in response to #1638622
1337         * doc/sdccman.lyx: synced version, minor changes
1338
1339 2007-01-18 Borut Razem <borut.razem AT siol.net>
1340
1341         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1342           thanks to Gunther Jehle
1343         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1344         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1345           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1346           use filename in lineno instead.
1347         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1348           print the file name in ast_print()
1349
1350 2007-01-18 Borut Razem <borut.razem AT siol.net>
1351
1352         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1353           defined in MSVC
1354         * src/SDCC.lex: stringLiteral() returns const char pointer,
1355           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1356           fixed column counting
1357         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1358           accept const char pointer as parameter
1359         * src/SDCCdwarf2.c: corrected buffer size
1360
1361 2007-01-17 Borut Razem <borut.razem AT siol.net>
1362
1363         * support/Util/dbuf_string.c: fixed for amd64
1364
1365 2007-01-15 Borut Razem <borut.razem AT siol.net>
1366
1367         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1368           removed terminal symbol ELIPSIS, since it was never generated by the
1369           lexer and it was wrongly used in parameter_identifier_list rule
1370
1371 2007-01-15 Raphael Neider <rneider AT web.de>
1372
1373         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1374             code page and data banking description
1375         * src/pic/genarith.c,
1376         * src/pic/gen.h: removed bit arithmetic functions,
1377             updated exit(1) to exit(EXIT_FAILURE)
1378         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1379         * device/include/pic16/pic18f2455.h,
1380         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1381             TRISD and TRISE, fixed/added some bit names
1382         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1383         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1384             updated pic18f2455.{c,h} instead of duplicating them
1385
1386 2007-01-14 Borut Razem <borut.razem AT siol.net>
1387
1388         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1389           Cannot debug files that contain spaces in the path name
1390           by converting spaces in asm file name to underscores
1391
1392 2007-01-13 Borut Razem <borut.razem AT siol.net>
1393
1394         * doc/sdccman.lyx: fixed format errors
1395
1396 2007-01-10 Borut Razem <borut.razem AT siol.net>
1397
1398         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1399           codeseg/constseg #pragma fail
1400         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1401         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1402           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1403           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1404
1405 2007-01-09 Borut Razem <borut.razem AT siol.net>
1406
1407         * get rid of diagnistic.[ch], pretty-print.[ch],
1408           c-pretty-print.[ch], ... used just for error, warning, ...
1409           message formatting
1410         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1411           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1412           suppoprt/cpp2/pretty-print.[ch]:
1413           removed
1414         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1415           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1416           suppoprt/cpp2/sdcpp.dsp:
1417           changed
1418
1419 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1420
1421         * device/lib/printf_large.c (output_float): removed recursion,
1422           use smaller buffer on stack for mcs51,
1423           fixed bug printing 1.96
1424         * support/regression/tests/snprintf.c: added test
1425
1426 2007-01-07 Borut Razem <borut.razem AT siol.net>
1427
1428         * use dynamic memory buffers instead temporary files
1429         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1430           added
1431         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1432           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1433           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1434           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1435           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1436           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1437           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1438           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1439           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1440           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1441           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1442           support/Util/dbuf.c, support/Util/dbuf.h:
1443           modified
1444         * .version, sdcc.spec: bumped version to 2.6.4
1445
1446 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1447
1448         * src/port.h: added TARGET_Z80_LIKE macro
1449         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1450           output PSEG location if --xram-loc or --xstack-loc was used
1451         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1452
1453 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1454
1455         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1456         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1457         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1458         * sdcc.dsw: moved project files into subdir
1459         * as/hc08/as_hc08.dsp,
1460         * as/hc08/Makefile.bcc,
1461         * as/hc08/Makefile.in,
1462         * as/mcs51/Makefile.bcc,
1463         * as/mcs51/Makefile.in,
1464         * as/z80/Makefile.bcc,
1465         * as/z80/Makefile.in,
1466         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1467         * as/hc08/asm.h,
1468         * as/mcs51/asm.h,
1469         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1470         * as/hc08/asmain.c,
1471         * as/hc08/assym.c,
1472         * as/mcs51/asmain.c,
1473         * as/mcs51/assym.c,
1474         * as/z80/assym.c: removed include "strcmpi.h"
1475         * as/hc08/strcmpi.c,
1476         * as/hc08/strcmpi.h,
1477         * as/mcs51/strcmpi.c,
1478         * as/mcs51/strcmpi.h,
1479         * support/Util/strcmpi.c,
1480         * support/Util/strcmpi.h: removed files
1481         * as/strcmpi.c: added as_strncmpi()
1482
1483 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1484
1485         * sdcc.dsw: Added some dependencies on project config.dsp
1486
1487 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1488
1489         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1490           with [di]ram_start to fix a regresion
1491
1492 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1493
1494         * configure.in: added missing mcs51 in status output
1495         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1496         directory
1497         * debugger/mcs51/clean.mk (distclean): remove config.h
1498         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1499         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1500         options.h, s-options-h and options.c
1501         * support/cpp2/clean.mk: unused, removed
1502         * Makefile.common.in,
1503         * main_in.mk,
1504         * as/Makefile.in,
1505         * as/hc08/Makefile.in,
1506         * as/hc08/clean.mk,
1507         * as/mcs51/Makefile.in,
1508         * as/mcs51/clean.mk,
1509         * as/z80/clean.mk,
1510         * as/z80/conf.mk,
1511         * as/z80/Makefile.in,
1512         * as/z80/clean.mk,
1513         * as/link/Makefile.in,
1514         * as/link/hc08/Makefile.in,
1515         * as/link/hc08/clean.mk,
1516         * as/link/mcs51/Makefile.in,
1517         * as/link/mcs51/clean.mk,
1518         * as/link/z80/Makefile.in,
1519         * as/link/z80/clean.mk,
1520         * as/link/z80/conf.mk,
1521         * debugger/mcs51/Makefile.in,
1522         * debugger/mcs51/clean.mk,
1523         * device/include/Makefile.in,
1524         * device/lib/Makefile.in,
1525         * device/lib/mcs51/Makefile.in,
1526         * device/lib/pic/Makefile.in,
1527         * device/lib/pic/Makefile.common.in,
1528         * device/lib/pic/Makefile.subdir,
1529         * device/lib/pic/Makefile.rules,
1530         * device/lib/pic16/libio/Makefile.in,
1531         * device/lib/pic16/Makefile.subdir,
1532         * device/lib/pic16/libdev/Makefile.in,
1533         * device/lib/pic16/Makefile.rules,
1534         * device/lib/pic16/Makefile.common.in,
1535         * sim/ucsim/avr.src/Makefile.in,
1536         * sim/ucsim/main_in.mk,
1537         * sim/ucsim/cmd.src/Makefile.in,
1538         * sim/ucsim/doc/Makefile.in,
1539         * sim/ucsim/gui.src/Makefile.in,
1540         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1541         * sim/ucsim/gui.src/serio.src/Makefile.in,
1542         * sim/ucsim/hc08.src/Makefile.in,
1543         * sim/ucsim/libltdl/Makefile.in,
1544         * sim/ucsim/s51.src/Makefile.in,
1545         * sim/ucsim/sim.src/Makefile.in,
1546         * sim/ucsim/sim.src/conf.mk,
1547         * sim/ucsim/xa.src/Makefile.in,
1548         * sim/ucsim/z80.src/Makefile.in,
1549         * src/Makefile.in,
1550         * src/clean.mk,
1551         * src/port.mk,
1552         * support/cpp2/Makefile.in,
1553         * support/librarian/Makefile.in,
1554         * support/librarian/clean.mk,
1555         * support/makebin/Makefile.in,
1556         * support/makebin/clean.mk,
1557         * support/packihx/Makefile.in,
1558         * support/regression/Makefile.in,
1559         * support/regression/ports/ds390/spec.mk,
1560         * support/regression/ports/gbz80/spec.mk,
1561         * support/regression/ports/hc08/spec.mk,
1562         * support/regression/ports/mcs51/spec.mk,
1563         * support/regression/ports/mcs51-large/spec.mk,
1564         * support/regression/ports/mcs51-medium/spec.mk,
1565         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1566         * support/regression/ports/pic14/spec.mk,
1567         * support/regression/ports/pic16/spec.mk,
1568         * support/regression/ports/mcs51-stack-auto/spec.mk,
1569         * support/regression/ports/ucz80/spec.mk,
1570         * support/regression/ports/xa51/spec.mk,
1571         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1572         adding a slash after $(top_builddir) and/or adding @datarootdir@
1573         * configure.in,
1574         * debugger/mcs51/configure.in,
1575         * device/lib/pic/configure.in,
1576         * device/lib/pic16/configure.in,
1577         * sim/ucsim/configure.in,
1578         * support/cpp2/configure.in,
1579         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1580         * configure,
1581         * debugger/mcs51/configure,
1582         * device/lib/pic/configure,
1583         * device/lib/pic16/configure,
1584         * sim/ucsim/configure,
1585         * support/cpp2/configure,
1586         * support/packihx/configure: generated with autoconf 2.60
1587
1588 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1589
1590         * as/link/hc08/lkihx.c (newArea),
1591         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1592
1593 2007-01-02 Borut Razem <borut.razem AT siol.net>
1594
1595         * doc/sdccman.lyx: documented #pragma sdcc_hash
1596         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1597           initialized to 0
1598         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1599
1600 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1601
1602         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1603         empty 'while'-loop to work correctly, see regression test 'while.c'
1604         * support/regression/tests/while.c: added
1605
1606 2007-01-01 Borut Razem <borut.razem AT siol.net>
1607
1608         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1609           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1610           support/cpp2/libcpp/sdcpp.c:
1611           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1612         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1613         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1614
1615 2006-12-31 Borut Razem <borut.razem AT siol.net>
1616
1617         * SDCPP synchronized with GCC CPP release version 4.1.1,
1618           currently the latest release:
1619         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1620           support/cpp2/libcpp/include/cpp-id-data.h
1621           support/cpp2/libiberty/fopen_unlocked.c
1622           support/cpp2/libiberty/md5.c
1623           support/cpp2/md5.h
1624           support/cpp2/opt-functions.awk
1625           support/cpp2/opt-gather.awk
1626           support/cpp2/optc-gen.awk
1627           support/cpp2/opth-gen.awk:
1628           added
1629         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1630           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1631           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1632           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1633           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1634           support/cpp2/diagnostic.h, support/cpp2/except.h,
1635           support/cpp2/hwint.h, support/cpp2/input.h,
1636           support/cpp2/intl.h, support/cpp2/move-if-change,
1637           support/cpp2/opts.c, support/cpp2/opts.h,
1638           support/cpp2/output.h, support/cpp2/prefix.c,
1639           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1640           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1641           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1642           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1643           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1644           support/cpp2/version.c:
1645           modified
1646         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1647           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1648           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1649           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1650           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1651           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1652           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1653           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1654           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1655           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1656           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1657           moved
1658         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1659           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1660           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1661           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1662           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1663           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1664           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1665           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1666           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1667           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1668           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1669           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1670           support/cpp2/system.h:
1671           deleted / moved
1672
1673 2006-12-31 Borut Razem <borut.razem AT siol.net>
1674
1675         * configure.in, configure: fixed bug #1538756: configure dies if bison
1676           and flex are not installed, 2nd try
1677
1678 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1679
1680         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1681         400.x for better code in RFE 899102
1682
1683 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1684
1685         * src/SDCCpeeph.c (deadMove),
1686         * src/port.h,
1687         * src/mcs51/peep.h: renamed 'op' by 'reg'
1688         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1689         (scan4op): small change for removeDeadMove(), added support for
1690         'callee saves' and/or PACLL function calls,
1691         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1692         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1693         left in new dispatcher mcs51DeadMove()
1694         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1695         removeDeadMove()
1696         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1697
1698 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1699
1700         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1701           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1702
1703 2006-12-30 Borut Razem <borut.razem AT siol.net>
1704
1705         * support/cpp2/spacs.h: deleted from svn
1706         * configure.in, configure: fixed bug #1538756: configure dies if bison
1707           and flex are not installed
1708
1709 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1710
1711         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1712           with this z80 passes printf float test when enabled
1713         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1714
1715 2006-12-28 Borut Razem <borut.razem AT siol.net>
1716
1717         * support/cpp2/config.in, support/cpp2/configure.in,
1718           support/cpp2/configure, support/cpp2/Makefile.in:
1719           fix for the solaris build
1720
1721 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1722
1723         * src/SDCC.y (type_specifier2, pointer),
1724         * src/SDCCsymt.h,
1725         * src/SDCCsymt.c (mergeSpec, checkSClass),
1726         * support/Util/SDCCerr.c,
1727         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1728         * support/valdiag/valdiag.py: Allow test cases to specify
1729           required language standard
1730         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1731         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1732
1733 2006-12-27 Borut Razem <borut.razem AT siol.net>
1734
1735         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1736         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1737           mbchar removed
1738         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1739           fixed for borland C
1740         * support/cpp2/libiberty/Makefile.bcc: updated
1741         * src/pic16/main.c: fixed #pragma udata handling
1742         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1743
1744 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1745
1746         * src/SDCCpeeph.c: made labelHashEntry global,
1747         made pcDistance, FBYNAME static,
1748         (pcDistance): made static, use isComment and isLabel,
1749         (deadMove): added,
1750         (getLabelRef): added, extracted from labelRefCount(),
1751         (labelRefCount): use new getLabelRef(),
1752         (callFuncByName): made static, added deadMove,
1753         use isComment and isLabel,
1754         (newPeepRule): made static, set isLabel,
1755         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1756         labels from peephole rules,
1757         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1758         when isComment or isLabel is set
1759         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1760         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1761         to make them global
1762         * src/mcs51/peep.h: added
1763         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1764         * src/port.h: added peep->deadMove to port structure
1765         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1766         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1767         deadMove, finally removed no. 1 and 2
1768         * src/mcs51/gen.c,
1769         * src/pic/gen.c,
1770         * src/z80/gen.c,
1771         * src/z80/ralloc.c,
1772         * src/pic16/gen.c,
1773         * src/ds390/gen.c,
1774         * src/hc08/gen.c: mark lines with isComment or isLabel
1775         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1776         * .version,
1777         * sdcc.spec: bumped version to 2.6.3
1778
1779 2006-12-26 Borut Razem <borut.razem AT siol.net>
1780
1781         * support/cpp2/Makefile.in: added dependency on options.h
1782         * configure: regenerated
1783         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1784         * support/cpp2/Makefile.in: added vasprintf.c
1785
1786 2006-12-25 Borut Razem <borut.razem AT siol.net>
1787
1788         * SDCPP synchronized with GCC CPP release version 3.4.6,
1789           the latest release before 4.x:
1790         * support/cpp2/Makefile.in, support/cpp2/config.h,
1791           support/cpp2/configure, support/cpp2/configure.in,
1792           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1793           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1794           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1795           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1796           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1797           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1798           support/cpp2/cpptrad.c, support/cpp2/except.h,
1799           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1800           support/cpp2/hwint.h, support/cpp2/intl.h,
1801           support/cpp2/line-map.c, support/cpp2/line-map.h,
1802           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1803           support/cpp2/output.h, support/cpp2/prefix.c,
1804           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1805           support/cpp2/system.h, support/cpp2/version.c:
1806           modified
1807         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1808           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1809           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1810           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1811           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1812           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1813           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1814           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1815           support/cpp2/move-if-change, support/cpp2/opts.c,
1816           support/cpp2/opts.h, support/cpp2/opts.sh,
1817           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1818           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1819           support/cpp2/win32, support/cpp2/win32/dirent.c,
1820           support/cpp2/win32/dirent.h:
1821           added
1822         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1823         * support/cpp2/sdcpp.h: renamed from sdcc.h
1824         * sdcppinit.c: deleted
1825
1826 2006-12-23 Borut Razem <borut.razem AT siol.net>
1827
1828         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1829           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1830           preproc.c: an other try to fix bug #982435: introduced
1831           -pedantic-parse-number command line option and pedantic_parse_number
1832           pragma
1833
1834 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1835
1836         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1837            BSEG handling,
1838           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1839            corrected overlayed areax addresses, warn about memory overlaps
1840         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1841         * src/avr/main.c,
1842         * src/ds390/main.c,
1843         * src/hc08/main.c,
1844         * src/mcs51/main.c,
1845         * src/pic16/main.c,
1846         * src/pic/main.c,
1847         * src/xa51/main.c,
1848         * src/z80/main.c,
1849         * src/port.h: added xabs_name and iabs_name
1850         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1851           (glue, emitMaps): create and emit maps d_abs and i_abs
1852         * src/SDCCglue.h: cosmetic changes
1853         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1854         * src/SDCCmem.h,
1855         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1856           (allocDefault): put absolute, initialized globals in them
1857         * support/regression/tests/absolute.c: added absolute bdata test
1858         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1859
1860 2006-12-20 Borut Razem <borut.razem AT siol.net>
1861
1862         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1863         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1864           added regression test for bug #982435
1865
1866 2006-12-18 Borut Razem <borut.razem AT siol.net>
1867
1868         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1869         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1870           small cosmetic changes
1871         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1872         * support/regression/tests/bug-1351710.c: added regression test
1873
1874 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1875
1876         * doc/sdccman.lyx: added the long missed iCode table
1877           "<where is figure II?>", added links to wiki
1878
1879 2006-12-17 Borut Razem <borut.razem AT siol.net>
1880
1881         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1882           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1883           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1884           unified table driven pragma handling, pragma argument type checking
1885         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1886           current one - version 1.1.3
1887         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1888
1889 2006-12-13 Raphael Neider <rneider AT web.de>
1890
1891         * src/pic/device.h: removed AssignedMemory structure and macros
1892         * src/pic/device.c: removed global finalMapping (linker assigns
1893             memory locations),
1894           (register_map): add SFRs to remembered memRanges
1895           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1896           assignFixedRegisters,assignRelocatableRegisters): removed,
1897           (setMaxRAM,validAddress): adapted accordingly,
1898           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1899             reasonably sized sharebanks,
1900         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1901           (allDefsOutOfRange): removed unused code,
1902         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1903             handling
1904         * src/pic/pcode.c (register_reassign): removed recursion warning,
1905             fired far too often,
1906         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1907             to use existing pic14_stringInSet() to avoid duplicate symbols,
1908             tidied up the code a bit,
1909           (pic14printLocals): added in symmetry to printExterns, replaces
1910             writeUsedRegs more or less,
1911           (picglue): call new pic14_printLocals(),
1912         * device/include/pic/pic*.h: removed #pragma memmap directives,
1913             information gathered from include/pic/pic14devices.txt
1914         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1915
1916 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1917
1918         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1919
1920 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1921
1922         * device/include/mcs51/cc2430.h: fixed missing ';'
1923
1924 2006-12-10 Raphael Neider <rneider AT web.de>
1925
1926         * device/lib/pic16/libc/stdio/vfprintf.c,
1927         * device/lib/pic16/libc/stdio/printf_small.c,
1928         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1929           char arguments, as char varargs are cast to int by the caller,
1930           hopefully fixes #1604915 (other device libraries are still affected)
1931
1932 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1933
1934         * src/mcs51/ralloc.c (packRegsForAssign),
1935         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1936
1937 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1938
1939         * device/include/malloc.h: removed init_dynamic_memory
1940         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1941           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1942         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1943         * device/lib/libsdcc.lib,
1944         * device/lib/Makefile.in,
1945         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1946         * doc/sdccman.lyx: documented use of new _heap.c
1947         * support/regression/tests/malloc.c: removed init_dynamic_memory
1948         * src/cdbFile.c(spacesToUnderscores): new function,
1949           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1950           1068030
1951         * device/include/tinibios.h: removed defines for putchar and getchar
1952         * device/lib/ds390/Makefile.in: added putchar.c
1953         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1954
1955 2006-12-09 Borut Razem <borut.razem AT siol.net>
1956
1957         * support/cpp2/sdcc.h: prevent multiple inclusion
1958         * support/cpp2/options.h: deleted
1959
1960 2006-12-08 Borut Razem <borut.razem AT siol.net>
1961
1962         * support/cpp2/sdcc.h: removed x*alloc() macros
1963         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1964         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1965           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1966         * support/cpp2/system.h: moved #include "sdcc.h"
1967         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1968           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1969           added
1970         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1971           -funsigned-char options
1972         * support/cpp2/sdcppmain.c: fixed bug 1611411
1973
1974 2006-12-07 Borut Razem <borut.razem AT siol.net>
1975
1976         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1977           directive
1978
1979 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1980
1981         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1982         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1983         * doc/sdccman.lyx,
1984         * .version: bumped to 2.6.2 because a) it's been a while
1985           b) the linker sources have moved c) the preprocessor is upgraded
1986
1987 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1988
1989         * support/regression/tests/snprintf.c: some checks
1990         * lib/src/printf_large.c: %bc: read char instead of int from stack
1991
1992 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1993
1994         * device/include/mcs51/cc2430.h: inserted _XPAGE
1995
1996 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1997
1998         * device/include/mcs51/cc2430.h: added
1999
2000 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
2001
2002         * device/include/asm/default/features.h,
2003         * device/include/asm/ds390/features.h,
2004         * device/include/mcs51/at89s53.h,
2005         * device/include/ser.h,
2006         * device/include/ser_ir.h,
2007         * device/include/serial.h: changed keywords to double underscore variants,
2008           fixes bug 1590261 some more, thanks Steven Borley
2009
2010 2006-12-01 Raphael Neider <rneider AT web.de>
2011
2012         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2013           but emit warning (recursion is not supported for pic14)
2014
2015 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2016
2017         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2018         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2019
2020 2006-11-30 Raphael Neider <rneider AT web.de>
2021
2022         * src/pic/device.c (dump_sfr): always emit symbols
2023         * src/pic/glue.c (pic14printPublics): fixed typo
2024
2025 2006-11-30 Raphael Neider <rneider AT web.de>
2026
2027         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2028           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2029           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2030            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2031            a sharebank, use a non-shared bank for the stack if none available
2032         * src/pic/device.h (struct memRange): added linked list next field,
2033           added prototypes for above functions
2034         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2035           (typeRegWithIdx): accept fixed and unfixed stack registers
2036         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2037           the stack, handle shared and banked stack (except for WSAVE),
2038           (insertBankSel): removed useless optimization (will never fire),
2039           (FixRegisterBanking): added optimization for devices with only one
2040           possibly aliased bank of memory, like 16f84
2041         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2042           devices have no SHAREBANK in the linker script
2043         * device/include/pic/pic14devices.txt: documented memmap
2044         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2045
2046 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2047
2048         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2049           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2050           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2051           genhc08Code): switched most of the D (debug) macros to DD (detailed
2052           debug) macros to better control clutter in the generated .asm file.
2053         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2054           genRightShift): fixed bug with non-constant bit shift stored to
2055           a volatile result (SF Open Discussion forum thread #1616749).
2056           Single byte case is not yet optimized.
2057
2058 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2059
2060         * device/include/asm/mcs51/features.h,
2061         * device/include/malloc.h,
2062         * device/include/stdio.h: changed keywords to double underscore variants,
2063           fixes bug 1590261
2064
2065 2006-11-27 Borut Razem <borut.razem AT siol.net>
2066
2067         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2068           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2069           support/cpp2/output.h, support/cpp2/cppinit.c,
2070           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2071           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2072           support/cpp2/cppdefault.c, support/cpp2/system.h,
2073           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2074           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2075           support/cpp2/prefix.c, support/cpp2/except.h,
2076           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2077           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2078           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2079           support/cpp2/version.c, support/cpp2/cppmain.c,
2080           support/cpp2/version.h, support/cpp2/hashtable.c,
2081           support/cpp2/cpperror.c:
2082           synchronized with GCC CPP release version 3.3.6,
2083           the latest where cppmain.c still exists.
2084         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2085           support/cpp2/sdcppinit.c: added
2086
2087 2006-11-27 Borut Razem <borut.razem AT siol.net>
2088
2089         * support/cpp2/cpplex.c:
2090           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2091           synchronization
2092         * support/cpp2/cpplib.c: removed definitions of unused variables
2093
2094 2006-11-26 Borut Razem <borut.razem AT siol.net>
2095
2096         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2097           since they are redefined by macros in support/cpp2/sdcc.h
2098         * support/cpp2/sdcc.h: x*alloc macro redefinition
2099
2100 2006-11-25 Borut Razem <borut.razem AT siol.net>
2101
2102         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2103           support/cpp2/configure, support/cpp2/Makefile.in,
2104           support/cpp2/cppfiles.c, support/cpp2/output.h,
2105           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2106           support/cpp2/config.h, support/cpp2/cpplib.h,
2107           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2108           support/cpp2/cppdefault.c, support/cpp2/config.in,
2109           support/cpp2/system.h, support/cpp2/cpplex.c,
2110           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2111           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2112           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2113           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2114           support/cpp2/configure.in, support/cpp2/intl.h,
2115           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2116           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2117           support/cpp2/version.c, support/cpp2/cppmain.c,
2118           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2119           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2120           support/cpp2/cpperror.c,
2121           support/cpp2/libiberty/safe-ctype.c,
2122           support/cpp2/libiberty/safe-ctype.h,
2123           support/cpp2/libiberty/splay-tree.c,
2124           support/cpp2/libiberty/obstack.c,
2125           support/cpp2/libiberty/lbasename.c,
2126           support/cpp2/libiberty/splay-tree.h,
2127           support/cpp2/libiberty/obstack.h:
2128           synchronized with GCC CPP release version 3.2.3,
2129           the latest before integration of cpp into gcc
2130         * support/cpp2/except.h, support/cpp2/line-map.c,
2131           support/cpp2/line-map.h,
2132           support/cpp2/libiberty/hex.c,
2133           support/cpp2/libiberty/concat.c,
2134           support/cpp2/libiberty/filenames.h: added
2135         * support/cpp2/intl.c: deleted
2136
2137 2006-11-24 Borut Razem <borut.razem AT siol.net>
2138
2139         * src/SDCC.y: enabled compilation of empty source file
2140         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2141           "ISO C forbids an empty source file"
2142         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2143           if all the code is ifdefed out.
2144
2145 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2146
2147         * src/hc08/gen.c (genPcall): fix for bug #1601032
2148
2149 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2150
2151         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2152         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2153         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2154         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2155         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2156         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2157         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2158         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2159         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2160         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2161         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2162         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2163         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2164         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2165         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2166           Renamed to all upper case as per the standard set by SiLabs
2167
2168 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2169
2170         * device/include/mcs51/C8051F520.h: new, added
2171         * device/include/mcs51/compiler.h: added link about predefined macros
2172
2173 2006-11-23 Raphael Neider <rneider AT web.de>
2174
2175         * src/regression/Makefile: add -L path to fresh library
2176         * src/regression/simulate: emphasize FAILED output
2177         * src/regression/create_stc: output _failures from gpsim
2178         * src/regression/compare4.c,
2179         * src/regression/rotate6.c: fixed char literals,
2180           all compile, all run =8-D
2181
2182         * src/pic/pcode.h: added isPCASMDIR macro
2183         * src/pic/gen.c (genAnd): fixed bit offset
2184         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2185           packBits): unified register numbering schemes,
2186           (newReg): do not insert stack registers into hash table,
2187           (initStack): unpinned pseudo stack, simplified,
2188           (typeRegWithIdx): fixed retrieval of stack registers,
2189         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2190           (pCodeReplace): removed invalid assertion,
2191           (insertPCodeInstruction): fixed newly added labels,
2192           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2193           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2194           DumpFlow): removed unsed (broken?) code,
2195           (insertBankSel): prevent STATUS from being BANKSELed,
2196           (FixRegisterBanking): rewritten from scratch, implemented generic
2197             optimizations (suppress BANKSELs to same register and to registers
2198             present in all banks),
2199           (AnalyzeBanking): update flow after BANKSELection
2200
2201         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2202             sharebank, let linker place it, mark STKxx symbols as emitted
2203
2204 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2205
2206         * src/regression/arrays.c,
2207         * src/regression/bank1.c,
2208         * src/regression/bool2.c,
2209         * src/regression/compare7.c,
2210         * src/regression/compare8.c,
2211         * src/regression/compare9.c,
2212         * src/regression/compare10.c,
2213         * src/regression/configword.c,
2214         * src/regression/for.c,
2215         * src/regression/mult1.c,
2216         * src/regression/pointer1.c,
2217         * src/regression/rotate6.c,
2218         * src/regression/string1.c,
2219         * src/regression/struct1.c,
2220         * src/regression/Makefile: make PIC14 regression tests run again
2221           (3 fail, 6 won't compile)
2222
2223 2006-11-21 Raphael Neider <rneider AT web.de>
2224
2225         * device/include/pic16/pic18f4550.h,
2226         * device/include/pic16/pic18f4455.h,
2227         * device/lib/pic16/libdev/pic18f4550.c,
2228         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2229         * configure.in: removed superfluous closing bracket
2230
2231 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2232
2233         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2234           always positive.
2235
2236 2006-11-21 Raphael Neider <rneider AT web.de>
2237
2238         * src/pic/device.{c,h}: added pic14_getPIC()
2239         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2240           (genAnd): added PIC code for one case, fixes #1597044
2241         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2242           SFRs that are present in all banks (e.g., STATUS)
2243
2244 2006-11-20 Raphael Neider <rneider AT web.de>
2245
2246         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2247           INCFSZ/INCFSZW and declared them as changing Z bit,
2248           (insertPCodeInstruction): correctly invert the above instructions,
2249           fixes #1599333,
2250           (DoBankSelect): don't panic on po_immediates
2251
2252 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2253
2254         * as/link/aslink.h,
2255         * as/link/mcs51/lkihx.c (newArea),
2256         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2257         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2258
2259 2006-11-11 Raphael Neider <rneider AT web.de>
2260
2261         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2262           bitfield symbols, fixes #1579535 (once more...).
2263
2264 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2265
2266         * support/regression/generate-cases.py,
2267         * support/regression/fwk/include/testfwk.h,
2268         * support/regression/fwk/lib/testfwk.c: used code pointers,
2269           (about 50kByte less code generated for mcs51)
2270
2271 2006-11-06 Borut Razem <borut.razem AT siol.net>
2272
2273         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2274           debugger/mcs51/configure: fixed failed check because the function
2275           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2276           who submitted the patch for gpsim.
2277         * debugger/mcs51/configure.in: removed the result message
2278         * debugger/mcs51/Makefile.in: fixed the config.status warning
2279           "... seems to ignore the --datarootdir setting"
2280
2281 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2282
2283         * device/include/mcs51/c8051f020.h,
2284         * device/include/mcs51/c8051f040.h,
2285         * device/include/mcs51/c8051f060.h,
2286         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2287         * src/z80/gen.c (gencjneshort),
2288         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2289
2290 2006-10-31 Borut Razem <borut.razem AT siol.net>
2291
2292         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2293           debugger/mcs51/configure: get readline version
2294
2295 2006-10-30 Borut Razem <borut.razem AT siol.net>
2296
2297         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2298         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2299           debugger/mcs51/configure: locate readline even when cross compiling
2300         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2301
2302 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2303
2304         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2305           serial port.
2306
2307 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2308
2309         * device/include/malloc.h,
2310         * device/lib/calloc.c,
2311         * device/lib/free.c,
2312         * device/lib/malloc.c,
2313         * device/lib/realloc.c: moved definition of struct into sources
2314         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2315
2316 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2317
2318         * as/asx8051.dsp: corrected output directories
2319         * as/link/hc08: new directory for hc08 linker
2320         * as/hc08/aslink.h,             as/link/aslink.h,
2321         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2322         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2323         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2324         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2325         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2326         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2327         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2328         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2329         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2330         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2331         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2332         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2333         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2334         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2335         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2336         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2337         * as/link/hc08/conf.mk,
2338         * configure,
2339         * configure.in,
2340         * Makefile.in,
2341         * sdcc.dsw: moved hc08 linker to as/link/hc08
2342         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2343         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2344         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2345         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2346         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2347         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2348         * as/link/mcs51/aslink.dsp,
2349         * as/link/mcs51/Makefile.in: factored out the common files
2350         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2351         * as/clean.mk: extra cleaning common files
2352         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2353         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2354         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2355
2356 2006-10-29 Raphael Neider <rneider AT web.de>
2357
2358         * src/pic/ralloc.c (newReg): create aliases for registers with
2359           multiple names to fix #1579535 and #1584001,
2360           (regWithIdx,dirregWithName): resolve aliases on lookup
2361         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2362           bankselect
2363         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2364           to prevent build errors on small devices
2365
2366 2006-10-28 Raphael Neider <rneider AT web.de>
2367
2368         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2369           assumption within interrupt handlers, fixes #1584940
2370         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2371           "emitted" to avoid emitting them again in udata
2372
2373 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2374
2375         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2376         Removed.
2377
2378 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2379
2380         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2381         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2382         on/off CR to CRLF conversion.
2383
2384 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2385
2386         * doc/sdccman.lyx: updated IRQ section
2387
2388 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2389
2390         * device/lib/serial_io.c: removed
2391         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2392         replacements for serial_io.c
2393
2394 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2395
2396         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2397
2398 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2399
2400         * device/lib/serial_io.c: Default putchar() and getchar() for
2401           mcs51 uses serial port.
2402
2403 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2404
2405         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2406
2407 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2408
2409         * support/regression/ports/mcs51/support.c: smaller
2410         _sdcc_external_startup()
2411         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2412
2413 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2414
2415         * device/lib/gbz80/crt0.s,
2416         * device/lib/gbz80/crt0_rle.s,
2417         * device/lib/gbz80/div.s,
2418         * device/lib/gbz80/fstubs.s,
2419         * device/lib/gbz80/heap.s,
2420         * device/lib/gbz80/mul.s,
2421         * device/lib/gbz80/putchar.s,
2422         * device/lib/gbz80/stubs.s,
2423         * device/lib/z80/crt0.s,
2424         * device/lib/z80/crt0_rle.s,
2425         * device/lib/z80/div.s,
2426         * device/lib/z80/fstubs.s,
2427         * device/lib/z80/heap.s,
2428         * device/lib/z80/mul.s,
2429         * device/lib/z80/putchar.s,
2430         * device/lib/z80/stubs.s: reverted, I was mistaken
2431
2432 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2433
2434         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2435         * support/regression/ports/mcs51/support.c: removed race
2436         condition on TI in _putchar allowing to use serial port mode 0
2437
2438 2006-10-20 Borut Razem <borut.razem AT siol.net>
2439
2440         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2441
2442 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2443
2444         * device/lib/gbz80/crt0.s,
2445         * device/lib/gbz80/crt0_rle.s,
2446         * device/lib/gbz80/div.s,
2447         * device/lib/gbz80/fstubs.s,
2448         * device/lib/gbz80/heap.s,
2449         * device/lib/gbz80/mul.s,
2450         * device/lib/gbz80/putchar.s,
2451         * device/lib/gbz80/stubs.s,
2452         * device/lib/z80/crt0.s,
2453         * device/lib/z80/crt0_rle.s,
2454         * device/lib/z80/div.s,
2455         * device/lib/z80/fstubs.s,
2456         * device/lib/z80/heap.s,
2457         * device/lib/z80/mul.s,
2458         * device/lib/z80/putchar.s,
2459         * device/lib/z80/stubs.s: removed all leading underscores from area names
2460
2461 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2462
2463         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2464           regression tests are not waiting in the simulator for simulated
2465           transmission of debug output
2466
2467 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2468
2469         * device/lib/printf_large.c: slightly smaller
2470         * doc/sdccman.lyx: do not use spaces within html links
2471
2472 2006-10-16 Borut Razem <borut.razem AT siol.net>
2473
2474         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2475           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2476           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2477           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2478           debugger/mcs51/configure:
2479           [ 1185668 ] add gnu readline support to sdcdb - enabled
2480
2481 2006-10-16 Raphael Neider <rneider AT web.de>
2482
2483         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2484           fixes #1577882, removes close to all banking optimizations
2485
2486 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2487
2488         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2489           variables in code memory
2490         * support/regression/tests/absolute.c: added test for this
2491
2492 2006-10-15 Raphael Neider <rneider AT web.de>
2493
2494         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2495           devices,
2496           (BankSelect): emit BANKSEL before touching linker-placed regs,
2497           fixes #1570934
2498
2499 2006-10-10 Raphael Neider <rneider AT web.de>
2500
2501         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2502         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2503         * src/pic/main.c (_pic14_parseOptions),
2504         * src/pic/main.h: mostly reverted to previous state, now use results
2505             from SDCCmain.c's argument parsing
2506
2507 2006-10-10 Borut Razem <borut.razem AT siol.net>
2508
2509         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2510           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2511           [ 1185668 ] add gnu readline support to sdcdb -
2512           prepared for READLINE, not enabled yet,
2513           thanks to <tal.bav AT gmail.com>
2514
2515 2006-10-10 Raphael Neider <rneider AT web.de>
2516
2517         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2518         * src/pic16/devices.inc,
2519         * device/include/pic16 (pic18f[24]620.h),
2520         * device/include/pic18fregs.h,
2521         * device/lib/pic16/pics.all,
2522         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2523             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2524             Gary Plumbridge and Anton Strobl
2525
2526 2006-10-10 Raphael Neider <rneider AT web.de>
2527
2528         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2529           --stack-siz=NUM options to configure the argument passing stack
2530         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2531         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2532           (pic14_getSharebankSize): obey --stack-siz=NUM,
2533           (pic14_getSharebankAddress): obey --stack-loc=NUM
2534
2535 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2536
2537         * doc/sdccman.lyx: added to the manual
2538         * doc/figures/ddd_example.png: added (neither pdflatex nor
2539         most browsers seem to like the .eps file)
2540
2541 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2542
2543         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2544         to /tmp and /var/tmp acc. LSB
2545         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2546         RESULT_TYPE_IFX
2547         * support/regression/tests/onebyte.c: added test
2548
2549 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2550
2551         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2552
2553 2006-10-05 Borut Razem <borut.razem AT siol.net>
2554
2555         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2556           thanks to dfulab:
2557           - sdcc.dsw: changed property eol-style to CRLF
2558           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2559
2560 2006-10-04 Raphael Neider <rneider AT web.de>
2561
2562         * device/include/pic/{pic16f84.h,pic16f84a.h},
2563         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2564           from patch #1522504, thanks to Robas Teodor
2565
2566 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2567
2568         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2569           fixes bug 1566015
2570
2571 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2572
2573         * src/pic16/glue.c (pic16emitMaps),
2574         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2575         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2576         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2577         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2578           Philipp Krause
2579         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2580         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2581
2582 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2583
2584         * support/librarian/sdcclib.c: Added option -l.
2585         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2586           usage totals.
2587         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2588           using Windows command prompt.
2589
2590 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2591
2592         * device/lib/libsdcc.lib: added module rand
2593         * src/ds390/ralloc.c (rematStr),
2594         * src/hc08/ralloc.c (rematStr),
2595         * src/mcs51/ralloc.c (rematStr),
2596         * src/z80/ralloc.c (rematStr): made output more consistent
2597         * src/mcs51/gen.c: cosmetic changes
2598
2599 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2600
2601         * src/port.h: added mem.cabs_name to PORT
2602         * src/ds390/main.c,
2603         * src/hc08/main.c,
2604         * src/mcs51/main.c,
2605         * src/pic16/main.c,
2606         * src/pic/main.c,
2607         * src/xa51/main.c,
2608         * src/z80/main.c: added cabs_name initializers
2609         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2610           constants
2611           (emitMaps): emit absolutes in code memory into cabs_name
2612         * src/SDCCmem.c,
2613         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2614         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2615         * support/regression/fwk/include/testfwk.h: added define for at
2616         * support/regression/tests/absolute.c: added, new
2617
2618 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2619
2620         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2621           optimizations, see also patch 887161 by Stas Sergeev
2622         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2623           to be necessary anymore,
2624           (102, 103, 104, 127): renamed all occurances of bp to _bp
2625
2626 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2627
2628         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2629           thanks Weston T. Schmidt for patch 1555221
2630         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2631         * src/SDCCicode.c(geniCodeMultiply): small optimization
2632
2633 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2634
2635         * device/include/stdlib.h: added rand prototypes
2636         * device/lib/rand.c: new, added
2637         * device/lib/Makefile.in: added rand.c
2638         * src/z80/peeph.def,
2639         * src/z80/peeph-gbz80.def,
2640         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2641
2642 2006-09-20 Raphael Neider <rneider AT web.de>
2643
2644         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2645
2646 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2647
2648         * as/link/aslink.h: cosmetic changes
2649         * as/link/mcs51/Makefile.in,
2650         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2651
2652 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2653
2654         * as/link/aslink.h,
2655         * as/link/mcs51/aslink.h,
2656         * as/link/z80/aslink.h: merged and moved to as/link/
2657         * as/link/lkstore.c,
2658         * as/link/mcs51/lkstore.c: moved to as/link/
2659         * as/link/clean.mk: remove *.o
2660         * as/link/mcs51/alloc.h: deleted
2661         * as/link/mcs51/lkarea.c: added lnksect prototype
2662         * as/link/mcs51/lkdata.c,
2663         * as/link/mcs51/lklex.c,
2664         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2665         * as/link/mcs51/lkmem.c,
2666         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2667         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2668         * as/link/mcs51/aslink.dsp,
2669         * as/link/mcs51/Makefile.aslink,
2670         * as/link/mcs51/Makefile.bcc,
2671         * as/link/mcs51/Makefile.in: updated for moved files
2672         * as/link/z80/lkarea.c,
2673         * as/link/z80/lkhead.c,
2674         * as/link/z80/lklex.c,
2675         * as/link/z80/lklibr.c,
2676         * as/link/z80/lklist.c,
2677         * as/link/z80/lkmain.c,
2678         * as/link/z80/lkrloc.c,
2679         * as/link/z80/lksym.c: synced with mcs51
2680         * as/link/z80/lkdata.c,
2681         * as/link/z80/lkeval.c,
2682         * as/link/z80/lkihx.c,
2683         * as/link/z80/lks19.c: cosmetic changes
2684         * as/link/z80/Makefile.in,
2685         * as/link/z80/linkgbz80.dsp,
2686         * as/link/z80/linkz80.dsp: updated for moved files
2687
2688 2006-09-16 Borut Razem <borut.razem AT siol.net>
2689
2690         * debugger/mcs51/sdcdb.c: partially fixed
2691           [ 1203664 ] sdcdb fails to open files w. two "." periods
2692         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2693           debugger/mcs51/symtab.h: fixed indenting
2694         * configure.in, configure: up to date with latest Maarten's changes
2695
2696 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2697
2698         as/link/mcs51
2699         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2700         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2701         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2702         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2703         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2704         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2705         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2706         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2707         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2708         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2709         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2710         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2711         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2712         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2713         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2714         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2715         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2716         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2717         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2718         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2719         as/link/mcs51/alloc.h,
2720         as/link/mcs51/clean.mk,
2721         as/link/mcs51/conf.mk,
2722         as/link/mcs51/Makefile.bcc,
2723         as/link/mcs51/Makefile.in,
2724         as/link/mcs51/readme.390,
2725         as/link/mcs51/strcmpi.c,
2726         as/link/mcs51/strcmpi.h,
2727         as/mcs51/clean.mk,
2728         as/mcs51/Makefile.bcc,
2729         as/mcs51/Makefile.in,
2730         configure,
2731         Makefile.in,
2732         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2733
2734 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * as/link,
2737         * as/link/Makefile.in,
2738         * as/link/z80/linkgbz80.dsp,
2739         * as/link/z80/linkz80.dsp,
2740         * configure,
2741         * link,
2742         * link/clean.mk,
2743         * link/Makefile.in,
2744         * link/README,
2745         * link/z80,
2746         * link/z80/aslink.h,
2747         * link/z80/clean.mk,
2748         * link/z80/conf.mk,
2749         * link/z80/linkgbz80.dsp,
2750         * link/z80/linkz80.dsp,
2751         * link/z80/lkarea.c,
2752         * link/z80/lkdata.c,
2753         * link/z80/lkeval.c,
2754         * link/z80/lkgb.c,
2755         * link/z80/lkgg.c,
2756         * link/z80/lkhead.c,
2757         * link/z80/lkihx.c,
2758         * link/z80/lklex.c,
2759         * link/z80/lklibr.c,
2760         * link/z80/lklist.c,
2761         * link/z80/lkmain.c,
2762         * link/z80/lkrloc.c,
2763         * link/z80/lks19.c,
2764         * link/z80/lksym.c,
2765         * link/z80/Makefile.in,
2766         * Makefile.in,
2767         * sdcc.dsw: moved link/ to as/link/
2768
2769 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2770
2771         * as/mcs51/i51mch.c (machine): fixed warning
2772
2773 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2774
2775         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2776
2777 2006-09-09 Borut Razem <borut.razem AT siol.net>
2778
2779         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2780           sdcdb WIN32 native port
2781         * src/clean.mk: fixed
2782
2783 2006-09-08 Borut Razem <borut.razem AT siol.net>
2784
2785         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2786
2787 2006-09-08 Raphael Neider <rneider AT web.de>
2788
2789         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2790         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2791             to gplink to disable processor mismatch warning and to allow
2792             the use of devices with only aliased (shared) memory banks,
2793           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2794
2795 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2796
2797         * doc/sdccman.lyx: Some re-formating plus example on using
2798           #pragma preproc_asm +/-
2799
2800 2006-09-07 Borut Razem <borut.razem AT siol.net>
2801
2802         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2803           section
2804
2805 2006-09-06 Borut Razem <borut.razem AT siol.net>
2806
2807         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2808           line at sdcc.nsi:153
2809         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2810
2811 2006-09-05 Borut Razem <borut.razem AT siol.net>
2812
2813         * configure.in, configure: support for winsock2
2814         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2815           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2816           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2817           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2818           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2819
2820 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2821
2822         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2823           and OP_DEFS
2824         * support/regression/tests/bug1551947.c: new, added
2825         * src/SDCCsymt.h: strings are char* not byte*
2826
2827 2006-09-05 Raphael Neider <rneider AT web.de>
2828
2829         * device/lib/pic16/libdev/pic18f4550.c,
2830           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2831             declarations/definitions from patch #1520949
2832
2833 2006-09-05 Raphael Neider <rneider AT web.de>
2834
2835         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2836           byte-aligned bitfields, fixes #1539278
2837
2838 2006-09-05 Raphael Neider <rneider AT web.de>
2839
2840         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2841           fixes #1544120
2842
2843 2006-09-04 Borut Razem <borut.razem AT siol.net>
2844
2845         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2846         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2847           -mno-cygwin is a part of the compiler name
2848         * support/scripts/sdcc_mingw32: don't disable ucsim
2849
2850 2006-09-03 Borut Razem <borut.razem AT siol.net>
2851
2852         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2853         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2854
2855 2006-09-03 Raphael Neider <rneider AT web.de>
2856
2857         * src/pic/ralloc.c,
2858         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2859           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2860           fixes #1550049
2861
2862 2006-09-01 Borut Razem <borut.razem AT siol.net>
2863
2864         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2865           to make ppc-osx happy
2866
2867 2006-08-31 Borut Razem <borut.razem AT siol.net>
2868
2869         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2870         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2871         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2872         * support/regression/ports/ds390/spec.mk,
2873           support/regression/ports/mcs51/spec.mk,
2874           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2875           To run regression tests in mingw environment:
2876           make DEV_NULL=NUL CC=gcc
2877
2878 2006-08-30 Borut Razem <borut.razem AT siol.net>
2879
2880         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2881           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2882           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2883           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2884           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2885           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2886           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2887           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2888           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2889           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2890           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2891           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2892           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2893           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2894           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2895           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2896           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2897           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2898           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2899           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2900           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2901           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2902           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2903           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2904           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2905           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2906           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2907           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2908           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2909           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2910           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2911           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2912           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2913           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2914           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2915           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2916           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2917           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2918           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2919           ucsim WIN32 native port
2920
2921 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2922
2923         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2924
2925 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2926
2927         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2928         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2929
2930 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2931
2932         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2933         * support/regression/tests/bug1546986.c: new, added
2934         * as/mcs51/.cvsignore,
2935         * debugger/mcs51/.cvsignore,
2936         * src/.cvsignore: deleted
2937
2938 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2939
2940         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2941           definitions)
2942
2943 2006-08-20 Borut Razem <borut.razem AT siol.net>
2944
2945         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2946           removed cl_listen_console::match(), cl_console::match(),
2947           restructured cl_commander::proc_input()
2948
2949 2006-08-16 Borut Razem <borut.razem AT siol.net>
2950
2951         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2952           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2953           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2954
2955 2006-08-14 Borut Razem <borut.razem AT siol.net>
2956
2957         * support/regression/Makefile.in,
2958           support/regression/ports/pic14/gpsim.cmd,
2959           support/regression/ports/pic14/spec.mk,
2960           support/regression/ports/pic14/support.c:
2961           added pic14 regression test
2962
2963 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2964
2965         * as/doc/asxhtm.html: documented changed ABS behaviour
2966         * as/doc/README: fixed some typos
2967
2968 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2969
2970         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2971           not defined on host
2972
2973 2006-08-12 Borut Razem <borut.razem AT siol.net>
2974
2975         * support/regression/fwk/include/testfwk.h,
2976           support/regression/fwk/lib/testfwk.c,
2977           support/regression/generate-cases.py,
2978           support/regression/Makefile.in:
2979           regression test framework does not depend on function pointers and
2980           variable arguments
2981
2982 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2983
2984         * device/include/stddef.h: c temporary hack to fix bug 1518273
2985
2986 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2987
2988         * device/include/mcs51/cc2510fx.h: added
2989         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2990           to projects.
2991
2992 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2993
2994         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2995         * as/z80/Makefile.in: added strcmpi.c
2996         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2997         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2998
2999 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
3000
3001         * device/lib/gbz80/asm_strings.s,
3002         * device/lib/gbz80/crt0_rle.s,
3003         * device/lib/gbz80/div.s,
3004         * device/lib/gbz80/mul.s,
3005         * device/lib/gbz80/shift.s,
3006         * device/lib/z80/asm_strings.s,
3007         * device/lib/z80/crt0_rle.s,
3008         * device/lib/z80/div.s,
3009         * device/lib/z80/mul.s,
3010         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3011           flags which are all upper case
3012
3013 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3014
3015         * as/z80/asm.h: made CASE_SENSITIVE 1
3016         * link/z80/aslink.h: made CASE_SENSITIVE 1
3017         * src/z80/gen.c (throughout): made all conditionals upper case
3018         * support/regression/tests/bug1503067.c: new
3019
3020 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3021
3022         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3023           (shiftIntoPair): added case 2 for PAIR_IY,
3024           (setupToPreserveCarry): replaced parameters with iCode and check if
3025            PAIR_DE is in use to fix bug 1399290,
3026           (genPlus, genMinus): updated call to setupToPreserveCarry
3027         * support/regression/tests/bug1399290.c: new
3028
3029 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3030
3031         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3032         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3033         * src/ds390/gen.c (shiftRLong),
3034         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3035         * src/mcs51/gen.c (sameReg): changed to sameByte,
3036           (xch_a_aopGet): new,
3037           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3038            shiftRLong): fixed bug 1533966
3039         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3040           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3041         * support/regression/Makefile.in: disabled z80, enabled ucz80
3042         * support/regression/tests/float_trans.c: enabled test for z80 and host
3043         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3044
3045 2006-08-01 Borut Razem <borut.razem AT siol.net>
3046
3047         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3048           comparison is always false due to limited range of data type
3049           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3050
3051 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3052
3053         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3054         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3055         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3056         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3057
3058 2006-07-31 Borut Razem <borut.razem AT siol.net>
3059
3060         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3061           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3062           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3063           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3064           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3065           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3066           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3067           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3068           enable ucsim mingw compilation. Serial port is disabled,
3069           since it uses termios.h API, which is not available on native
3070           WIN32
3071
3072 2006-07-31 Borut Razem <borut.razem AT siol.net>
3073
3074         * Small Device C Compiler 2.6.0 released
3075         * support/scripts/sdcc.nsi: added FULL_DOC option
3076         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3077
3078 2006-07-28 Borut Razem <borut.razem AT siol.net>
3079
3080         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3081         * doc/INSTALL.txt: updated
3082
3083 2006-07-27 Borut Razem <borut.razem AT siol.net>
3084
3085         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3086           device/lib/pic/libdev/Makefile.in: fixed bug
3087           [ 1438354 ] pic libsdcc: distclean doesn't work
3088         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3089           device/lib/pic16/libio/Makefile.in: fixed bug
3090           [ 1438344 ] pic16 lib: clean doesn't work properly
3091         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3092
3093 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3094
3095         * device/lib/pic/libsdcc/fsdiv.c,
3096         * device/lib/pic/libsdcc/fsmul.c,
3097         * device/lib/pic16/libsdcc/float/fsdiv.c,
3098         * device/lib/pic16/libsdcc/float/fsmul.c,
3099         * device/lib/_fsdiv.c,
3100         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3101         * support/regression/tests/bug1520966.c: added
3102         * doc/knownbugs.html: removed [ 1520966 ] from the list
3103
3104 2006-07-25 Borut Razem <borut.razem AT siol.net>
3105
3106         * configure.in, configure, sdccconf_in.h: fixed bug
3107           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3108         * doc/knownbugs.html: removed [ 1519095 ] from the list
3109
3110 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3111
3112         * doc/knownbugs.html: added, contains list of known bugs at release
3113         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3114
3115 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3116
3117         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3118           function registers and corrected defaults with additional warning
3119         * device/lib/malloc.c: cosmetic changes
3120         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3121         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3122           (fillGaps): and used it
3123
3124 2006-07-20 Raphael Neider <rneider AT web.de>
3125
3126         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3127           output unless SDCCPICDEBUG is set
3128         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3129           output if SILENT is set
3130
3131 2006-07-11 Borut Razem <borut.razem AT siol.net>
3132
3133         * doc/README.txt: updated
3134
3135 2006-07-10 Borut Razem <borut.razem AT siol.net>
3136
3137         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3138           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3139           in WIN32 installation
3140         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3141           release candidate 1
3142
3143 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3144
3145         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3146         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3147
3148 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3149
3150         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3151
3152 2006-07-06 Borut Razem <borut.razem AT siol.net>
3153
3154         * support/regression/tests/bitfields.c:
3155           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3156         * support/regression/tests/constantRange.c:
3157           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3158
3159 2006-07-04 Borut Razem <borut.razem AT siol.net>
3160
3161         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3162           src/port.mk,
3163           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3164           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3165           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3166           reverted changes from 2006-07-03
3167         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3168         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3169           added CPPFLAGS, used by the host port
3170
3171 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3172
3173         * support/regression/valdiag/tests/switch.c,
3174         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3175         * support/regression/tests/libmullong.c: fixed for host
3176         * support/regression/ports/host/spec.mk: disable all warnings for host,
3177         SDCC runs with --less-pedantic too
3178
3179 2006-07-03 Borut Razem <borut.razem AT siol.net>
3180
3181         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3182           defined CPPFLAGS
3183         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3184         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3185           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3186           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3187           include ../port.mk
3188         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3189           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3190           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3191           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3192
3193 2006-07-02 Raphael Neider <rneider AT web.de>
3194
3195         * src/pic16/devices.inc,
3196         * device/include/pic16/pic18fregs.h,
3197         * device/include/pic16/pic18f4550.h,
3198         * device/lib/pic16/pics.all,
3199         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3200
3201 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3202
3203         * as/hc08/lkaomf51.c (OutputName),
3204         * as/mcs51/lkaomf51.c (OutputName),
3205         * as/z80/asmain.c (asmbl),
3206         * src/ds390/main.c (asmLineNodeFromLineNode),
3207         * src/hc08/ralloc.c (hc08_assignRegisters),
3208         * src/mcs51/main.c (asmLineNodeFromLineNode),
3209         * src/xa51/ralloc.c (checkRegMask),
3210         * src/xa51/gen.c (emitcode),
3211         * src/z80/gen.c (_emit2),
3212         * src/SDCCast.c (searchLitOp),
3213         * src/SDCCglobl.h,
3214         * support/packihx/packihx.c,
3215         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3216         * src/ds390/gen.c (aopPutUsesAcc),
3217         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3218         * support/regression/tests/libmullong.c (mullong_wrapper),
3219         * src/SDCCsymt.c (powof2),
3220         * src/SDCCast.c,
3221         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3222         * src/SDCCsymt.h: added TYPE_TARGET_*
3223         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3224         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3225         SDCCast because 1) header problems 2) this is the right place
3226         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3227         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3228         prototype
3229
3230 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3231
3232         * src/SDCCicode.h: removed buggy semicolon in unused macro
3233         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3234         search for previous definiton of auto symbols too,
3235         (findPrevUse): fixed logic of emitWarnings
3236
3237 2006-06-26 Raphael Neider <rneider AT web.de>
3238
3239         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3240           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3241
3242 2006-06-25 Raphael Neider <rneider AT web.de>
3243
3244         * device/lib/pic/libm: NEW, added math library functions
3245         * device/lib/pic/libsdcc: NEW; added float support functions
3246         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3247         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3248           NEW, added math related headers
3249         * device/include/asm/pic/features.h: NEW
3250         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3251           (popGet): allow larger offsets for AOP_PCODE,
3252           (genDataPointerSet): handle literals explicitly, more debug output,
3253           (genAssign): fixed for float using aopLiteral ;-)
3254         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3255           GOTO initialisation routine
3256         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3257           flag on registers, fixes #1469043 (local variables do not work)
3258         * src/pic/main.c (_pic14_do_link),
3259         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3260           available
3261
3262 2006-06-25 Borut Razem <borut.razem AT siol.net>
3263
3264         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3265           characters printed (not including the trailing '\0' used to end
3266           output to strings). Problem detected in regression test bug-927659.c.
3267           NOTE: printf() family functions should return int instead
3268           unsigned int!
3269         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3270           specifier are printed as themselves
3271         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3272           support flags, width and precision specifiers
3273
3274 2006-06-24 Borut Razem <borut.razem AT siol.net>
3275
3276         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3277           to the list of sdcc tagrets not supporting bit type
3278         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3279           testfor pic16 due to bug:
3280           [ 1511794 ] pic16: regression test bug-895992.c fails
3281
3282 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3283
3284         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3285         * src/SDCCglue.c (initPointer), fixed bug 1496419
3286         * support/regression/tests/bug1496419.c: new, added
3287
3288 2006-06-22 Borut Razem <borut.razem AT siol.net>
3289
3290         * support/regression/ports/pic16/support.c: use gpsim usart module from
3291           libgpsim_modules library
3292
3293 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3294
3295         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3296         IP0H to IPH0.
3297
3298 2006-06-19 Raphael Neider <rneider AT web.de>
3299
3300         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3301         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3302           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3303           (pic14printExterns,pic14printPublics,pic16printPublics,
3304           pic16_printExterns): use new functions to emit symbols
3305           (picglue,pic16glue): emit publics before emitting externs
3306         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3307           locally defined functions to avoid bug #1443651
3308         * support/regression/tests/bug-716242.c: removed pic16 workaround
3309         * support/regression/ports/pic16/spec.mk: ignore errors during build
3310
3311 2006-06-19 Raphael Neider <rneider AT web.de>
3312
3313         * src/pic/glue.h: added pic14aopLiteral prototype
3314         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3315         * src/pic/gen.c: removed stdint.h dependency
3316           (aopGet): use Safe_strdup()
3317           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3318           (genDataPointerSet): use pic14aopLiteral()
3319         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3320           for pic16; thanks to Bernhard and Maarten
3321
3322 2006-06-18 Borut Razem <borut.razem AT siol.net>
3323
3324         * support/regression/tests/structflexarray.c: flexible array members
3325           not supported by gcc < 3
3326         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3327           GUI tool by default
3328         * src/pic/gen.c: don't include [p]strdin.h on solaris
3329         * support/Util/pstdint.h: addad svn attributes
3330         * support/regression/tests/constantRange.c,
3331           support/regression/tests/rotate.c: include inttypes.h instead
3332           stdint.h on solaris, addad svn attributes
3333
3334 2006-06-18 Raphael Neider <rneider AT web.de>
3335
3336         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3337           int for PIC16
3338         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3339           (pic16_genMinusBits): simplified sign-extension
3340           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3341             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3342             adjusted to correctly handle mixed-signed operands, disabled
3343             now unused multiplciation routines
3344         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3345           (assignResultValue): added argument denoting the size of the result
3346             as returned by the function (fixes upcasts in assigning from
3347             function calls: char foo(); int i = foo();)
3348           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3349             function result to assignResultValue
3350           (genMult): disabled inlined multiplication code
3351           (genDiv): augmented to also handle the modulus operator, fixed to
3352             handle mixed-signed operands correctly
3353           (genMod): simply call genDiv, disabled unused code
3354           (genAssign): fixed missing (sign-)extension on result
3355         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3356             valid char operands, allow signed operands for native code, added
3357             division and modulo operator handling
3358         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3359
3360         As a consequence, onebyte.c (if split into two files) and muldiv.c
3361         pass regression tests.
3362
3363 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3364
3365         * doc/Makefile.in: two runs of makeindex seem needed to get
3366         correct page references in the index of sdccman.pdf
3367         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3368
3369 2006-06-17 Borut Razem <borut.razem AT siol.net>
3370
3371         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3372
3373 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3374
3375         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3376         mentioned ec2drv and paulmon
3377
3378 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3379
3380         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3381           consecutive abs areas
3382           (find_empty_space, allocate_space): added map to handle codemap or
3383            xdatamap,
3384           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3385            absolute idata and xdata
3386         * as/mcs51/lkmem.c (summary2): updated legend
3387
3388 2006-06-16 Raphael Neider <rneider AT web.de>
3389
3390         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3391
3392 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3393
3394         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3395           1208515
3396         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3397
3398 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3399
3400         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3401         value of generic pointers,
3402         * src/avr/main.c,
3403           src/ds390/main.c,
3404           src/hc08/main.c,
3405           src/izt/i186.c,
3406           src/izt/tlcs900h.c,
3407           src/mcs51/main.c,
3408           src/pic/main.c,
3409           src/pic16/main.c,
3410           src/xa51/main.c,
3411           src/z80/main.c: PORT structure, added elements for gp_tags field,
3412         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3413         fields in the PORT structure of each port,
3414         * src/SDCCast.c (decorateType): allow processing of generic pointers
3415         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3416         S_FIXED symbols
3417
3418 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3419
3420         * link/z80/lkgb.c,
3421         * link/z80/lkgg.c,
3422         * src/pic16/gen.c,
3423         * src/pic16/main.c,
3424         * src/pic16/pcode.c,
3425         * src/pic/main.c,
3426         * src/pic/pcoderegs.c,
3427         * src/SDCCicode.c,
3428         * src/SDCCmain.c,
3429         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3430           bug 1504689 on minGW
3431
3432 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3433
3434         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3435
3436 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3437
3438         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3439
3440 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3441
3442         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3443           for optimization
3444
3445 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3446
3447         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3448         to a char variable. Fixed bug #1504211
3449         * device/include/pic16/adc.h,
3450         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3451         and fixed bug #1364390
3452
3453 2006-06-10 Borut Razem <borut.razem AT siol.net>
3454
3455         * CVSROOT: removed the CVS left-over
3456
3457 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3458
3459         * as/hc08/asmain.c (asexit),
3460         * as/hc08/lkmain.c (lkexit),
3461         * as/mcs51/asmain.c (asexit),
3462         * as/mcs51/lkmain.c (lkexit),
3463         * src/SDCCglue.c (DEFSETFUNC),
3464         * src/SDCCmain.c (linkEdit, assemble),
3465         * support/librarian/sdcclib.c (AddRel),
3466           replaced unlink() by standard C remove()
3467         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3468         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3469           gatherImplicitVariables): new, added to fix bug 608752,
3470           (createFunction): added gatherImplicitVariables()
3471         * src/SDCCast.h: added createRMW prototype
3472         * src/SDCCsymt.h (struct symbol): added infertype
3473         * support/regression/tests/bug608752.c: new, added
3474
3475 2006-06-10 Raphael Neider <rneider AT web.de>
3476
3477         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3478           multibyte dummy reads (fixes #1503234)
3479
3480 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3481
3482         * device/include/mcs51/compiler.h: new, added header file to enable
3483           creating common sfr definition header files for different compilers
3484
3485 2006-06-05 Raphael Neider <rneider AT web.de>
3486
3487         * src/pic16/{pcode.h,genarith.c}:
3488           introduced pCodeOp combining any two pCodeOps (previously only
3489           two register operands could be combined), removed pcop2 from
3490           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3491         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3492         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3493           rewritten to use new PO_TWO_OPS
3494         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3495         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3496           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3497           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3498           (pic16_get_op): embraced return arg to allow #define return(x),
3499             added new case for combined opcodes
3500           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3501           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3502            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3503
3504 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3505
3506         * src/SDCCval.c (checkConstantRange): added
3507         * src/SDCCval.h: added checkConstantRange
3508         * support/Util/SDCCerr.c,
3509         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3510         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3511         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3512         * src/SDCCast.c (decorateType): added checkConstantRange,
3513         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3514         can be emitted with the correct always true/false warning,
3515         added optimization for double '!';
3516         result of decorateType() must be assigned back to the tree, because
3517         decorateType() can change the tree
3518         * src/SDCCicode.c (geniCodeLogic),
3519         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3520         (checkConstantRange): removed, it was only a fragment which never
3521         emitted a warning
3522         * src/SDCCsymt.c (computeType): fixed promotion for
3523         "-1 < (unsigned bit) b"
3524         * src/pic/ralloc.c (packRegsForAssign),
3525         * src/pic16/ralloc.c (packRegsForAssign),
3526         * src/hc08/ralloc.c (packRegsForAssign),
3527         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3528         from mcs51
3529         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3530         * support/regression/tests/constantRange.c: added
3531         * support/valdiag/tests/constantRange.c: added
3532         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3533
3534 2006-06-02 Borut Razem <borut.razem AT siol.net>
3535
3536         * support/regression/ports/pic16/support.c: increase stack size
3537           to 255 bytes
3538         * support/regression/Makefile.in: sort tests by name so that the
3539           resutlts can be compared on different machines / platforms
3540
3541 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3542
3543         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3544         * src/ds390/gen.c (emitLabel): new, added,
3545           (genDjnz): fixed stack overflow bug,
3546           (throughout): cosmetic changes to sync with mcs51/gen.c,
3547           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3548         * src/mcs51/gen.c (genEndFunction): small optimization,
3549           (throughout): cosmetic changes to sync with ds390/gen.c
3550
3551 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3552
3553         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3554           (_print_format): fixed printing pointers
3555         * src/mcs51/gen.c (emitLabel, movb): new, added,
3556           (genAssign): small optimization,
3557           (genDjnz): fixed stack overflow bug,
3558           (throughout): replaced sprintf with SNPRINTF,
3559           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3560           replaced emitcode("mov", "b,...") with MOVB(...),
3561           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3562           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3563         * src/mcs51/peeph.def: added rules 140 and 264
3564         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3565           so they may get optimized into registers
3566
3567 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3568
3569         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3570           immediately when encountered,
3571           (printUsage): always use stderr even on windows
3572
3573 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3574
3575         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3576         (processParms): fixed bug #1247551
3577         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3578         parseCmdLine, main): print '--version' to stdout,
3579         print 'help' to stdout if --help is given,
3580         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3581         arguments are given; fixed --help
3582
3583 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3584
3585         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3586         * support/regression/tests/bug-1493710.c: added
3587
3588 2006-05-27 Borut Razem <borut.razem AT siol.net>
3589
3590         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3591           static instead auto
3592         * support/regression/ports/pic16/support.c: increase stack size
3593           from default 64 bytes to 128 bytes
3594         * support/regression/tests/staticinit.c,
3595           support/regression/tests/float.c: regression tests fully enabled
3596           for pic16 port by putting the initialized data arrays into the code
3597           section
3598         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3599           This was changed by mistake in the previous version.
3600
3601 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3602
3603         * src/pic16/gen.c (genFunction, genEndFunction): some
3604         beautifications, fixed bug with falsely restoring FSR2 in large
3605         stack model, thanks to Beau E. Cox for reporting the bug
3606
3607 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3608
3609         * debugger/mcs51/break.c,
3610         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3611           use %p to print pointers, made address variables unsigned
3612         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3613         * debugger/mcs51/symtab.c (parseSymbol): must return something
3614         * src/mcs51/gen.c (aopForSym): small optimization,
3615            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3616           (freeAsmop): added missing break,
3617           (aopPut): removed parameter bvolatile, determine it inside the function,
3618           (saveRegisters, unsaveRegisters): small optimization,
3619           (genIpush): removed pointless check,
3620           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3621           replaced sprintf with SNPRINTF,
3622           replaced strcpy with strncpyz,
3623           updated aopPut calls,
3624           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3625         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3626
3627 2006-05-24 Borut Razem <borut.razem AT siol.net>
3628
3629         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3630           modification of test for the pic16 port, put the array to the code
3631           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3632
3633 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3634
3635         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3636         * support/Util/pstdint.h: added
3637
3638 2006-05-22 Borut Razem <borut.razem AT siol.net>
3639
3640         * src/regression/Makefile: removed bool2.c test, added -q linker option
3641         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3642           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3643           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3644           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3645           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3646           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3647           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3648           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3649           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3650
3651 2006-05-22 Raphael Neider <rneider AT web.de>
3652
3653         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3654           bug #1492360 (problematic due to generic pointers, see code)
3655
3656 2006-05-22 Borut Razem <borut.razem AT siol.net>
3657
3658         * support/regression/ports/pic16/specs.mk: removed stack size linker
3659           directive
3660         * support/regression/tests/array.c,
3661           support/regression/tests/bitopcse.c,
3662           support/regression/tests/bug-908454.c,
3663           support/regression/tests/malloc.c: modified for pic16 regression test
3664         * support/regression/tests/bitfields.c:
3665           pic16 - excluded bitfileds of size > 8
3666         * support/regression/tests/bp.c: pic16 - reduced data size
3667         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3668         * support/regression/tests/bug-460010.c:
3669           pic16 - used the absolute address the fits in memory
3670         * support/regression/tests/bug-716242.c:
3671           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3672         * support/regression/tests/float.c:
3673           pic16 - excluded - data size too big
3674         * support/regression/tests/onebyte.c:
3675           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3676         * support/regression/tests/shifts.c:
3677           pic16 - function names probably have to differ in first X characters
3678           (gpasm limitation?)
3679         * support/regression/tests/staticinit.c:
3680           pic16 - excluded some tests due error: no target memory available for
3681           section ".idata"
3682
3683 2006-05-22 Borut Razem <borut.razem AT siol.net>
3684
3685         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3686           second try. Thanks Stas Sergeev once more.
3687
3688 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3689
3690         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3691           (genLeftShift, genRightShift): fixed bug 1491627
3692         * src/hc08/peeph.def (rules 7, 8.x): added
3693         * support/regression/tests/shifts.c (ShiftLeftByParam,
3694           ShiftRightByParam, testShiftByParam): added to test variable shifting
3695
3696 2006-05-20 Raphael Neider <rneider AT web.de>
3697
3698         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3699         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3700           (allocReg): add only new registers to dynAllocRegs,
3701           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3702             #1489055, #1445850, and probably #1483693
3703
3704 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3705
3706         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3707         bug in for-loop that didn't emit the last of CONFIG and ID registers
3708
3709 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3710
3711         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3712           with offset
3713         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3714           1489016, 1434401 and 1490124
3715         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3716           1489016, 1434401 and 1490124
3717
3718 2006-05-17 Borut Razem <borut.razem AT siol.net>
3719
3720         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3721           thanks Stas Sergeev
3722
3723 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3724
3725         * device/include/mcs51/P89c51RD2.h,
3726         * device/include/mcs51/P89LPC901.h,
3727         * device/include/mcs51/P89LPC922.h,
3728         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3729
3730 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3731
3732         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3733         to fix missing stack pragma in compiled binary object file,
3734
3735 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3736
3737         * support/packihx/configure.in,
3738         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3739         determine sizeof basic types even while cross compiling
3740
3741 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3742
3743         * src/avr/gen.c (aopop),
3744         * src/ds390/gen.c (aopOp),
3745         * src/hc08/gen.c (aopOp),
3746         * src/mcs51/gen.c (aopop),
3747         * src/pic16/gen.c (pic16_aopOp),
3748         * src/pic/gen.c (aopOp),
3749         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3750         if size of operand is smaller than spill location
3751
3752 2006-05-12 Borut Razem <borut.razem AT siol.net>
3753
3754         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3755           have to have CR/LF line endings even if they are checked out on *nix
3756           or on WIN32 in cygwin binmode
3757
3758 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3759
3760         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3761         * device/include/ds80c390.h: added sfr16 definitions
3762         * src/ds390/gen.c,
3763         * src/ds390/gen.h,
3764         * src/ds390/main.c,
3765         * src/ds390/ralloc.c,
3766         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3767           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3768           bit returning functions
3769         * support/regression/tests/sfr16.c: enabled test on ds390
3770
3771 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3772
3773         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3774         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3775
3776 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3777
3778         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3779         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3780           (cl_address_space constructor): removed expensive initialization,
3781           (cl_address_space::get_cell): extended for late initialization,
3782           (cl_address_space::*): use late initialization,
3783           (cl_address_decoder::activate): removed expensive initialization,
3784           This reduced regression test running time by 25%
3785
3786 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3787
3788         * packihx/,
3789         * configure.in,
3790         * configure,
3791         * sdcc.dsw,
3792         * Makefile.bcc,
3793         * Makefile.in,
3794         * support/packihx/Makefile.in,
3795         * support/packihx/clean.mk,
3796         * support/packihx/Makefile.bcc,
3797         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3798
3799 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3800
3801         * src/SDCCval.c (valNot): fix for regression test failure
3802           of not.c on big endian hosts
3803
3804 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3805
3806         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3807
3808 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3809
3810         * device/lib/mcs51/Makefile.in: changed string comparison operator
3811           to = for POSIX compliance; == is bash extension
3812
3813 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3814
3815         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3816           kosmonaut_pirx
3817
3818 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3819
3820         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3821         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3822         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3823         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3824         bug report #1478657,
3825
3826 2006-05-05 Borut Razem <borut.razem AT siol.net>
3827
3828         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3829           making the html
3830
3831 2006-05-02 Borut Razem <borut.razem AT siol.net>
3832
3833         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3834           create *.ind, which made make to fail if invoked with -j 2
3835
3836 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3837
3838         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3839           Hubert Sack for patch 1479782
3840
3841 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3842
3843         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3844
3845 2006-05-01 Raphael Neider <rneider AT web.de>
3846
3847         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3848           (create_pic): store only prefix-free device name,
3849           (init_pic): check for device names with "16" prefix,
3850           (list_valid_pics),
3851         * src/pic/device.h (struct PIC_device),
3852         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3853             stored device name,
3854         * device/include/pic/pic12f{635,675,629,683}.h,
3855         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3856         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3857         * device/include/pic/pic16f505.h,
3858         * device/lib/pic/libdev/pic16f505.c: removed
3859         * device/include/pic/pic14devices.txt: added support for pic12f
3860             devices, removed unsupported non 16-bit devices
3861             [above changes provided by patch from Zik Saleeba]
3862         * src/pic/*, src/pic16/*, device/include/pic16/*,
3863           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3864
3865 2006-05-01 Borut Razem <borut.razem AT siol.net>
3866
3867         * configure.in, configure, doc/Makefile.in:
3868           sync with nightly build makefile - latex, dvipdf and dvips
3869           not needed any more
3870
3871 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3872
3873         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3874         in the library source
3875
3876 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3877
3878         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3879
3880 2006-04-28 Raphael Neider <rneider AT web.de>
3881
3882         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3883         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3884           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3885         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3886
3887 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3888
3889         * device/lib/pic/libdev/Makefile.in,
3890         * device/lib/hc08/Makefile.in,
3891         * device/lib/gbz80/Makefile.in,
3892         * device/lib/z80/Makefile.in,
3893         * device/lib/ds390/Makefile.in,
3894         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3895         thanks to Borut for the bug report
3896         * configure.in,
3897         * configure: always create doc/Makefile independent from --enable-doc
3898         * Makefile.in: always install from directory doc independent from
3899         --enable-doc
3900         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3901         removed
3902         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3903         * doc/Makefile.in: install *.txt if present
3904         * device/include/Makefile.in (install): added installation of pic/*.inc
3905         and pic/*.txt files again, they were erroneously removed
3906
3907 2006-04-28 Raphael Neider <rneider AT web.de>
3908
3909         * src/pic/{gen.c,main.h,pcode.c},
3910         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3911             concerning signedness with casts
3912
3913 2006-04-28 Raphael Neider <rneider AT web.de>
3914
3915         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3916             definition of an interrupt handler,
3917         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3918             interrupt handler stuff from picglue() to separate routine,
3919           (picglue): enabled definition of intr handlers in files w/o main()
3920
3921 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3922
3923         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3924           compilation with MSVC 2005 Express Edition (VC8)
3925
3926 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3927
3928         * device/lib/Makefile: fixed build of gbz80 lib
3929
3930 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3931
3932         * support/regression/tests/bug-460010.c,
3933         * support/regression/tests/bug-524691.c,
3934         * support/regression/tests/bug-716242.c: removed conditional defines
3935           that are already in testfwk.h
3936
3937 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3938
3939         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3940           (AccAXRsh1): added, shift right by 1,
3941           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3942            AccAXLrl1
3943         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3944
3945 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3946
3947         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3948         remove cast to same type
3949         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3950         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3951         * as/z80/Makefile,
3952         * link/z80/Makefile: removed, they have moved to
3953         Makefile.in files
3954         * configure,
3955         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3956         * install-sh: fix bug #1204398 by setting umask 0022
3957         * device/lib/Makefile: separate build of z80 and gbz80 lib
3958
3959 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3960
3961         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3962         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3963
3964         One basic decision: e.g. src/clean.mk includes further files. In order
3965         to make this work there are two solutions:
3966         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3967           run configure on them. This way they can use
3968           'include $(srcdir)/port-clean.mk'
3969         - always include clean.mk by the Makefile at the same level. To avoid
3970           that `make clean` tries to include and build Makefile.dep the
3971           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3972           implemented, because now even `make uninstall` doesn't create
3973           Makefile.in. clean.mk could be eliminated by pasting it in
3974           Makefile.in.
3975
3976         * debugger/mcs51/Makefile.in: build own objects from library sources
3977         (SLIB, SDCC) in current directory
3978
3979         * configure, configure.in: renamed --disable-device-lib-build in
3980         --disable-device-lib; added --enable-doc, the required tools are
3981         searched by configure; added result message; the toolchain for the
3982         belonging ports are now only built, if the port is enabled.
3983
3984         * support/regression/*: all output is written in directory gen, because
3985         the fwk and ports directories don't livet in the build tree using vpath
3986
3987         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3988         --disable-device-lib, added --enable-doc, added section VPATH
3989
3990         * sim/ucsim/configure.in,
3991         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3992         z80 are enabled by default
3993
3994 2006-04-24 Raphael Neider <rneider AT web.de>
3995
3996         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3997             to config word, "pic14_"-prefixed some extern functions
3998           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3999             config word has been found
4000         * src/pic/device.h: added prototypes
4001         * src/pic/pcode.c: added "pic14_"-prefix where needed
4002         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
4003             fixup
4004         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4005             words,
4006           (pic14emitRegularMap): ignore config words,
4007           (pic14createInterruptVect): moved generating __config directives away
4008           (picglue): have __config directives emitted
4009
4010 2006-04-24 Borut Razem <borut.razem AT siol.net>
4011
4012         * doc/Makefile: sync with nightly build makefile
4013
4014 2006-04-24 Raphael Neider <rneider AT web.de>
4015
4016         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4017             registers that have not been assigned proper liveranges,
4018             fixes #1469504 and #1474602,
4019           (pCodeRegOptimizeRegUsage): fixed typo in comment
4020
4021 2006-04-24 Borut Razem <borut.razem AT siol.net>
4022
4023         * device/examples/main8051.c: deleted - it was removed from CVS
4024           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4025           after the transition to Subversion
4026         * src/SDCCalloc.h: deleted - it was removed  from CVS
4027           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4028           after the transition to Subversion
4029         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4030           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4031           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4032           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4033
4034 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4035
4036         * as/asx8051.dsp: added mcs51/strcmpi.h
4037         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4038         * as/hc08/aslink.h: updated lnksect prototype
4039         * as/hc08/asm.h,
4040         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4041         * as/hc08/asmain.c,
4042         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4043           (newdot): handle A_ABS
4044         * as/hc08/asout.c,
4045         * as/mcs51/asout.c (outarea): output address
4046         * as/hc08/lkaomf51.c,
4047         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4048         * as/hc08/m08pst.c,
4049         * as/mcs51/i51pst.c,
4050         * as/z80/z80pst.c: "ABS" is not A_OVR
4051         * as/hc08/lkarea.c (newarea): read a_addr,
4052           (lnkarea): added codemap array, sort absolute areas to the front,
4053            combine all GSINITx/GSFINAL,
4054           (find_empty_space, allocate_space): new functions,
4055           (lnksect): return next address, handle absolute sections
4056         * as/mcs51/lkarea.c (newarea): read a_addr,
4057           lnksect2 prototype changed,
4058           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4059           (find_empty_space, allocate_space): new, factored out of lnksect2,
4060           (lnksect2): return next address, handle absolute sections
4061         * as/hc08/lkhead.c,
4062         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4063         * as/hc08/lklibr.c (addfile, fndsym),
4064         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4065           index out of range and detect both '\' and '/'
4066         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4067         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4068           regression tests (ds390 cannot return bool yet)
4069         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4070           document critical interrupts on z80, document changed SDCC define
4071         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4072           (_a390_mapping): added .org directive
4073         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4074           (genMultOneByte): fixed warnings
4075         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4076           ones
4077         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4078         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4079           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4080         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4081         * src/pic16/main.c: removed newReg prototype
4082         * src/pic16/pcode.c,
4083         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4084           warnings
4085         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4086           ones
4087         * src/pic16/ralloc.c
4088         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4089           to fix warnings
4090         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4091           from short to PIC_OPTYPE
4092         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4093         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4094           optype from short to PIC_OPTYPE
4095         * src/port.h: made int_size unsigned to fix warnings
4096         * src/SDCC.y: fixed warning on MSVC
4097         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4098         * src/SDCCopt.c (convertToFcall): fixed warnings
4099         * src/SDCCsymt.h: removed double prototype for genSymName
4100         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4101           offset int to fix warnings
4102
4103 2006-04-22 Borut Razem <borut.razem AT siol.net>
4104
4105         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4106           references to CVS replaced with Subversion
4107
4108 2006-04-21 Borut Razem <borut.razem AT siol.net>
4109
4110         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4111           references to CVS replaced with Subversion
4112
4113 2006-04-19 Borut Razem <borut.razem AT siol.net>
4114
4115         * src/version.awk: adapted for svn
4116         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4117           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4118           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4119           /binutils-avr/etc/*.vi, *.jin: removed all properties
4120           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4121
4122 2006-04-19 Borut Razem <borut.razem AT siol.net>
4123
4124         * CVS to Subversion migration completed
4125
4126 2006-04-18 Borut Razem <borut.razem AT siol.net>
4127
4128         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4129           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4130
4131 2006-04-17 Borut Razem <borut.razem AT siol.net>
4132
4133         * device/include/Makefile.in: added pic/*.inc to the installation
4134
4135 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4136
4137         * support/regression/collate-results.py: fixed output in case of
4138         a valdiag error
4139         * support/regression/generate-cases.py: fixed splitting of pathnames
4140         with dots
4141         * as/hc08/lklibr.c (addfile),
4142         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4143
4144 2006-04-11 Raphael Neider <rneider AT web.de>
4145
4146         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4147         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4148         * src/pic16/pcode.c (assignValnums): fixed #1460578
4149
4150 2006-04-11 Raphael Neider <rneider AT web.de>
4151
4152         * device/lib/pic/libdev/*.c,
4153         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4154           fixes #1468739, enables compilation in --std-c99 mode
4155         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4156
4157 2006-04-11 Raphael Neider <rneider AT web.de>
4158
4159         * src/pic/device.c (find_device): removed debug output
4160           (list_valid_pics): enabled verbose listing of supported devices
4161         * device/include/stdbool.h: define bool as char for pic14/16 as well
4162
4163 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4164
4165         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4166
4167 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4168
4169         * .version: bumped version to 2.5.6
4170         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4171
4172 2006-04-06 Raphael Neider <rneider AT web.de>
4173
4174         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4175         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4176         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4177           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4178             pic14_constructAbsMap
4179           (pic14printPublics): declare absolute global symbols as global
4180           (pic14createInterruptVect),
4181         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4182           (newReg): assume new registers unused, use correct name in
4183             hashtable (reg->name instead of name), more debugLog output
4184         * src/pic/device.h (PIC_device): added fields for verbose output
4185         * src/pic/device.c: moved device definition to pic14devices.txt,
4186             added routines for runtime parsing of pic14devices.txt,
4187             added support for second config word
4188         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4189           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4190           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4191           (_pic14_parseOptions): moved pCodeInitRegisters here
4192           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4193         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4194           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4195             handling the pseudo stack
4196         * device/lib/Makefile.in: ignore failures in objects-pic16,
4197         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4198         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4199         * device/lib/pic/Makefile.subdir,
4200         * device/lib/pic16/Makefile.subdir: improved clean rules
4201         * device/lib/pic/libdev/: NEW, pic14 device libraries
4202         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4203         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4204         * device/include/Makefile.in: create subdir and install pic14 headers
4205         * device/include/pic/p16f_common.inc: removed unused declarations
4206         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4207             PICs from inc2h.pl v1.6,
4208             replaced BIT_AT macros with struct declarations
4209         * device/include/pic/pic14devices.txt: definition of supported devices,
4210             all above improvements contributed by Zik Saleeba, thanks
4211         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4212         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4213             headers
4214
4215 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4216
4217         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4218         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4219           thanks to Charles Olds
4220
4221 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4222
4223         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4224
4225 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4226
4227         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4228         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4229         * support/regression/bug1464657.c: added, new test
4230
4231 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4234           version number
4235
4236 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4237
4238         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4239           --no-peep and --peep-file <file> are used don't use default rules but
4240           do use the <file>
4241
4242 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4243
4244         * src/mcs51/gen.c (genCall): fixed bug 1457608
4245
4246 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4247
4248         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4249         changes seem to cause (trigger?) problems with the build system.
4250
4251 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4252
4253         * src/SDCCpeeph.c (operandsLiteral): new, added,
4254           (callFuncByName): inserted operandsLiteral
4255         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4256
4257 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4258
4259         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4260         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4261
4262 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4263
4264         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4265           implemented patch 1120823 Thanks to Willy De la Court (normal
4266           interrupts need an interrupt number now if they are made critical),
4267           and enabled nesting of critical functions though not for gbz80
4268           (genCritical, genEndCritical): added functions
4269           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4270         * src/z80/mappings.i: added "ei" to all mappings
4271
4272 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4273
4274         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4275         submitted by the Debian SDCC maintainer Aurelien Jarno:
4276         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4277         archive with gcc 4.1 on mips and wrote the patch"
4278
4279 2006-03-16 Raphael Neider <rneider AT web.de>
4280
4281         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4282           the left operand is shorter than the result (c* = lit-c* + int),
4283           fixes bug #1450796
4284         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4285           OP_SYMBOL
4286
4287 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4288
4289         * src/.version: increased version number to 2.5.5
4290         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4291         linking is done manually in pic16 port's _linkEdit,
4292         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4293         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4294         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4295         allocate asmop as AOP_ACC,
4296         (aopForRemat): added parameter 'bool result' in function declaration,
4297         (pic16_aopGet): return AOP_ACC when accessing WREG,
4298         (pic16_popGetTempReg): minor modification,
4299         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4300         'pic16_allocWithIdx',
4301         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4302         calling function in absolute addresses,
4303         (genAssign): take into account AOP_ACC asmop,
4304         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4305         * src/pic16/pcoderegs.c: some debug functions and lines added,
4306         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4307         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4308         register too,
4309         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4310         call to allocReg, not by manually allocating a new one,
4311         (pic16_assignRegisters): now before going through the register
4312         allocating functions mark all registers as free. This eliminates some
4313         side effects resulting from peephole parser done earlier in the backbone
4314
4315 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4316
4317         * src/SDCCicode.c (geniCodeLogic),
4318         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4319
4320 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4321
4322         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4323           (genSend): bugfix, do not allocate and free twice,
4324           (shiftRLong): handle partially overlapping aops
4325         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4326
4327 2006-03-08 Borut Razem <borut.razem AT siol.net>
4328
4329         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4330           for pic16
4331
4332 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4333
4334         * support/regression/tests/bug1409955.c: new, added
4335         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4336         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4337           (aopForSym, aopOp): increment asmop.allocated if reused,
4338           (freeAsmop): decrement asmop.allocated and check for zero instead of
4339           using asmop.freed,
4340           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4341           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4342            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4343            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4344            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4345            genSignedRightShift, genRightShift, genDataPointerGet,
4346            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4347            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4348             in reverse order from allocation,
4349           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4350             added swappedLR to keep track
4351         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4352           pdata & code for GCC, z80, gbz80 & hc08
4353         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4354
4355 2006-03-08 Raphael Neider <rneider AT web.de>
4356
4357         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4358
4359 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4360
4361         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4362         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4363         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4364
4365 2006-03-06 Borut Razem <borut.razem AT siol.net>
4366
4367         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4368           made the linker quiet
4369
4370 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4371
4372         * src/pic16/gen.c (genPcall): fixed bug #1443644
4373         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4374         which dumps before the function entry point a data byte which represents
4375         the number of the local variables used by the specified function, added
4376         'xinst' for initial support for Extended Instruction Support,
4377         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4378         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4379         port->fun_prefix anymore (may change later),
4380         (genFunction, genEndFunction): do not store/restore local registers for
4381         _main (this should take care the --main-return command line option in
4382         the future),
4383         (genOr): removed some legacy pic-port instructions,
4384         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4385         performing operations with SFR's causes data to be written more than
4386         once to each SFR. Perhaps SFRs should be handled in special cases...
4387         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4388         pcode.h
4389         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4390         into account for stack starting position,
4391         (struct OPTIONS pic16_optionsTable): added command line argument
4392         --extended or -y for Extended Instruction Support,
4393         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4394         (deassignLRs): *** perhaps the most important change, old 'for' code
4395         (commented out for reference), didn't account for some registers which
4396         were left marked 'not free' after a pointer operation. The change
4397         reduces register usage a lot in some cases
4398
4399 2006-03-04 Borut Razem <borut.razem AT siol.net>
4400
4401         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4402           _clean
4403         * support/regression/tests/bug-524697.c: decreased array size for
4404           mcs51 to fit into the internal RAM
4405         * support/regression/Makefile.in: a little bit more verbose
4406
4407 2006-03-03 Borut Razem <borut.razem AT siol.net>
4408
4409         * support/regression/fwk/lib/testfwk.c,
4410           support/regression/fwk/include/testfwk.h: introduced function
4411           _prints(), nonrecursive _printn(), call _initEmu() from main()
4412         * support/regression/ports/gbz80/support.asm,
4413           support/regression/ports/ucz80/support.asm,
4414           support/regression/ports/z80/support.asm,
4415           support/regression/ports/ds390/support.c,
4416           support/regression/ports/hc08/support.c,
4417           support/regression/ports/host/support.c,
4418           support/regression/ports/mcs51/support.c,
4419           support/regression/ports/xa51/support.c: added empty _initEmu()
4420           function
4421         * support/regression/ports/pic16/gpsim.cmd,
4422           support/regression/ports/pic16/spec.mk,
4423           support/regression/ports/pic16/support.c,
4424           support/regression/Makefile.in: added pic16 regression test
4425
4426 2006-03-01 Raphael Neider <rneider AT web.de>
4427
4428         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4429           genConstPointerGet): use safe way of generating MOVFF to cover
4430             literals as well as registers, fixes bug #1440527
4431         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4432             dereference
4433           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4434             more correctly, fixes bug #1232186
4435           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4436         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4437             gplink guess the correct processor in more cases, applied patch
4438             from Till Riedel attached to and fixing bug #1436552
4439
4440 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4441
4442         * support/regression/tests/array.c: added, contains check for #1434401
4443         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4444
4445 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4446
4447         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4448         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4449         * device/include/mcs51/c8051f326.h,
4450         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4451         * device/include/mcs51/c8051f000.h,
4452         * device/include/mcs51/c8051f018.h,
4453         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4454           PCON_IDLE,PCON_STOP and added sfr16 definitions
4455
4456 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4457
4458         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4459           genGetWord): fixed bug 1409955
4460
4461 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4462
4463         * device/include/hc08/mc68hc908gp32.h,
4464         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4465
4466 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4467
4468         * src/SDCCast.c (constExprValue): return NULL if not a value
4469         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4470         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4471         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4472
4473 2006-02-13 Borut Razem <borut.razem AT siol.net>
4474
4475         * src/regression/ptrarg.c: added, fails due to bug #1430967
4476         * src/regression/Makefile: ptrarg.c added, ...
4477
4478 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4479
4480         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4481         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4482
4483 2006-02-11 Borut Razem <borut.razem AT siol.net>
4484
4485         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4486           print "Processor: xxx" message to stdout only if --verbose
4487
4488 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4489
4490         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4491         * support/regression/tests/bug1426356.c: added
4492         * support/regression/tests/bitfields.c: removed 2 tests
4493
4494 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4495
4496         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4497         * device/include/mcs51/c8051f330.h,
4498         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4499           PCON_IDLE,PCON_STOP and added sfr16 definitions
4500         * device/lib/_divsint.c,
4501         * device/lib/_divuint.c,
4502         * device/lib/_divulong.c,
4503         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4504           register bank bug for small stackauto
4505
4506 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4507
4508         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4509
4510 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4511
4512         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4513         * all.dsp: corrected several bin paths
4514         * device/include/mcs51/c8051f120.h,
4515         * device/include/mcs51/c8051f300.h,
4516         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4517           to PCON_IDLE,PCON_STOP
4518         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4519         * device/lib/printf_large.c (output_float): fixed bug 1388703
4520         * support/regression/tests/bug1057979.c: added test for bug 1388703
4521
4522 2006-02-08 Raphael Neider <rneider AT web.de>
4523
4524         * src/pic/pcode.c (pciTRIS): fixed typo,
4525           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4526           (LinkFlow): fixed handling of flows that end in a call,
4527           (ReuseReg): perform safety check earlier
4528         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4529             to work with flows at the beginning of a pBlock,
4530             fixes #1426557 (Symbol not previously defined),
4531           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4532             usage information
4533           (RemoveUnusedRegisters): update register usage info
4534         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4535             created, reuse existing ones instead
4536         * src/pic/gen.c (genPcall): fixed #1424719
4537
4538 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4539
4540         * link/z80/lkmain.c,
4541         * link/z80/lklex.c,
4542         * link/z80/lkdata.c,
4543         * link/z80/aslink.h: fixed build on current cygwin:
4544         replaced getline() by lk_getline()
4545
4546 2006-02-01 Borut Razem <borut.razem AT siol.net>
4547
4548         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4549           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4550           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4551           src/regression/bool1.c, src/regression/bool2.c,
4552           src/regression/bool3.c, src/regression/call1.c,
4553           src/regression/compare.c, src/regression/compare10.c,
4554           src/regression/compare2.c, src/regression/compare3.c,
4555           src/regression/compare4.c, src/regression/compare5.c,
4556           src/regression/compare6.c, src/regression/compare7.c,
4557           src/regression/compare8.c, src/regression/compare9.c,
4558           src/regression/configword.c, src/regression/for.c,
4559           src/regression/inline.c, src/regression/mult1.c,
4560           src/regression/nestfor.c, src/regression/or1.c,
4561           src/regression/pointer1.c, src/regression/ptrfunc.c,
4562           src/regression/rotate1.c, src/regression/rotate2.c,
4563           src/regression/rotate3.c, src/regression/rotate4.c,
4564           src/regression/rotate5.c, src/regression/rotate6.c,
4565           src/regression/rotate7.c, src/regression/string1.c,
4566           src/regression/struct1.c, src/regression/sub.c,
4567           src/regression/sub2.c, src/regression/switch1.c,
4568           src/regression/while.c, src/regression/xor.c,
4569           src/regression/create_stc, src/regression/simulate,
4570           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4571           regression tests
4572         * src/regression/gpsim_assert.h: added
4573
4574 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4575
4576         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4577         ((void (code *) (void)) 0) ();
4578         * as/hc08/aslex.c,
4579         * as/hc08/aslink.h,
4580         * as/hc08/asm.h,
4581         * as/hc08/asmain.c,
4582         * as/hc08/lkdata.c,
4583         * as/hc08/lklex.c,
4584         * as/hc08/lkmain.c,
4585         * as/mcs51/aslex.c,
4586         * as/mcs51/aslink.h,
4587         * as/mcs51/asm.h,
4588         * as/mcs51/asmain.c,
4589         * as/mcs51/lkdata.c,
4590         * as/mcs51/lklex.c,
4591         * as/mcs51/lkmain.c,
4592         * as/z80/aslex.c,
4593         * as/z80/asm.h,
4594         * as/z80/asmain.c: fixed build on current cygwin:
4595         replaced getline() by as_getline()
4596
4597 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4598
4599         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4600         declarator in the symbol chain
4601         * src/SDCCsymt.h,
4602         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4603         parameter list for function pointers
4604         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4605         * support/regression/tests/bug-716242.c: added
4606
4607 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4608
4609         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4610         offset if possible
4611         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4612
4613 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4614
4615         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4616         inifinitely recurseable, added static
4617         * support/regression/tests/bug-1408066.c: added
4618
4619 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4620
4621         * src/SDCCicode.h,
4622         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4623         renamed, added possibility to create "postLoopLbl"-labels
4624         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4625         newiTempLoopHeaderLabel
4626         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4627         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4628         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4629         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4630         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4631         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4632         (basicInduction): fixed bug #136564, made static,
4633         (loopInduction): changed parameter of basicInduction, made static,
4634         (addPostLoopBlock): added
4635         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4636         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4637         findLoopEndSeq
4638         * support/regression/tests/bug-136564.c: added
4639         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4640         --std-sdcc99 to LIBSDCCFLAGS
4641
4642 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4643
4644         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4645         while loop
4646         * support/regression/tests/bug-1406131.c: added
4647
4648 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4649
4650         * src/SDCCast.c (decorateType): fix promotion of unary minus
4651         * src/SDCCsymt.c (computeType): beautified
4652         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4653         (valUnaryPM, valComplement): fix sign and promotion,
4654         (valNot): ANSI: result type is int (SDCC: unsigned char)
4655         * support/regression/tests/uminus.c: speedup by removing superflous
4656         test case 'int'
4657         * support/regression/tests/onebyte.c: added promotion and signedness
4658         tests for unary minus
4659         * support/regressions/tests/bug-477927.c: disable warning about
4660         uninitialized variables
4661         * support/regression/tests/not.c: added
4662
4663 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4664
4665         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4666         * src/mcs51/gen.c (gen51Code): show final register usage after
4667         fillGaps in asm with --i-code-in-asm
4668         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4669         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4670         incUsed, rliveClear, adjustIChain): made static,
4671         (setFromRange): excluded because it's unused,
4672         (findPrevUseSym, markWholeLoop): added,
4673         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4674         through all branches of predecessors enables sdcc to emit the warning
4675         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4676         (rlivePoint): made static, added parameter emitWarnings which is only
4677         true during the first run out of two,
4678         (findRecursiveSucc, findRecursivePred): removed,
4679         (computeLiveRanges): made static, added parameter emitWarnings,
4680         (dumpIcRlive): added for debugging only
4681         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4682         removed prototype of setFromRange()
4683         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4684         in call of computeLiveRanges()
4685         * support/regression/tests/bug-895992.c: added
4686         * support/regression/tests/bug-971834.c: added
4687         * support/valdiag/tests/bug-895992.c: added
4688         * support/valdiag/tests/bug-971834.c: added
4689
4690 2005-12-18 Raphael Neider <rneider AT web.de>
4691
4692         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4693           (genUnpackBits): improved code for direct operands,
4694           (genPackBits): improved code for literal assignment to bitfields
4695             and for direct destination operands (no FSR indirection),
4696             prevented redundant AND, fixes #1362800,
4697           (AccLsh): added parameter to disable masking of the result
4698         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4699           skip instructions with side-effects (like incfsz),
4700           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4701         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4702         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4703           fixes #1375263
4704
4705 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4706
4707         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4708         volatile variables as spill location
4709
4710 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4711
4712         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4713         replacing literals
4714         * support/regression/tests/bug-1376320.c: added
4715
4716 2005-12-08 Raphael Neider <rneider AT web.de>
4717
4718         * src/pic/device.c: renamed is_shared to pic14_is_shared
4719         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4720         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4721           (is_valid_identifier): added for above workaround
4722
4723 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4724
4725         * device/lib/Makefile.in: fixed to enable port-specific-objects
4726         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4727           char, thanks Hubert Sack
4728         * doc/sdccman.lyx: documented --xstack-loc,
4729           elaborated a bit more on interrupts and pitfalls,
4730           removed "setjmp/longjmp unsupported",
4731           documented some unsupported C99 features
4732         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4733         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4734           if, thanks Hubert Sack
4735         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4736         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4737           make make_library
4738         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4739           regression tests can report resource usage (rfe 700441)
4740         * support/regression/collate-results.py: report resource usage
4741         * support/regression/ports/ds390/spec.mk,
4742         * support/regression/ports/hc08/spec.mk,
4743         * support/regression/ports/mcs51/spec.mk,
4744         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4745         * support/regression/ports/ds390/uCsim.cmd,
4746         * support/regression/ports/hc08/uCsim.cmd,
4747         * support/regression/ports/mcs51/uCsim.cmd,
4748         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4749         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4750           library, use the default one
4751         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4752           building the library
4753
4754 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4755
4756         * config.dsp: added dependency on .version and configure_vc.awk
4757         * device/include/setjmp.h: updated for --stack-auto and --xstack
4758         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4759         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4760         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4761         * device/lib/libsdcc.lib: added _setjmp
4762         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4763           (decorateType): fixed bug 1372851,
4764           (optimizeGetHbit): fixed warning
4765         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4766           array initialisation
4767         * support/regression/tests/bug1057979.c: added test for bug 1358192
4768         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4769
4770 2005-12-03 Borut Razem <borut.razem AT siol.net>
4771
4772         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4773           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4774
4775 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4776
4777         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4778         createIval): implement symbol independant "flexible array member",
4779         (createIvalCharPtr): implemented flexible array initialisation with a
4780         string
4781         * src/SDCCsymt.c (copyStruct): removed,
4782         (getSize): fixed misleading comment,
4783         (getAllocSize): removed, the additional allocation size is now in
4784         sym->flexArrayLength,
4785         (checkStructFlexArray): new, syntax checks for flexible array members,
4786         (compStructSize): added syntax checks for "flexible array members"
4787         (copyStruct): removed,
4788         (copyLinkChain): removed inefficient fix for bug 770487
4789         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4790         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4791         symbol->flexArrayLength
4792         * src/SDCCerr.c,
4793         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4794         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4795         * support/regression/tests/structflexarray.c: added
4796         * support/valdiag/tests/structflexiblearray.c: added
4797
4798 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4799
4800         * src/SDCCast.c (decorateType): fixed bug 1368489
4801         * support/Util/SDCCerr.c,
4802         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4803
4804 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4805
4806         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4807           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4808
4809 2005-11-27 Borut Razem <borut.razem AT siol.net>
4810
4811         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4812           support/cpp2/mkdeps.h: added command line option
4813           -obj-ext=<extension> to SDCPP to define object file externion, used
4814           for generation of make dependencies (-M)
4815         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4816
4817 2005-11-26 Borut Razem <borut.razem AT siol.net>
4818
4819         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4820           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4821           added pic and pic16 libraries
4822
4823 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4824
4825         * device/include/float.h: Corrected typo in prototype of __fsgt
4826
4827 2005-11-25 Borut Razem <borut.razem AT siol.net>
4828
4829         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4830           added creation of model-mcs51-stack-auto libraries
4831
4832 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4833
4834         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4835         and fields-list too
4836         * src/SDCCast.c (createIvalArray): removed obsolete comment
4837
4838 2005-11-24 Borut Razem <borut.razem AT siol.net>
4839
4840         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4841           added missing device/lib/mcs51/crt*.asm sources
4842
4843 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4844
4845         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4846
4847 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4848
4849         * device/lib/_fs2schar.c,
4850         * device/lib/_fs2sint.c,
4851         * device/lib/_fs2slong.c: optimized inline asm
4852
4853 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4854
4855         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4856           Better handling of floats between -1.0 and 0.0.
4857
4858 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4859
4860         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4861           (the missing "if"s prohibited removal of redundant labels)
4862
4863 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4864
4865         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4866           Properly convert floats between -1.0 and 0.0 to long, int, and char
4867           types (max integer value of negative floats tends to zero).
4868         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4869           Removed changes made so to work properly with floats between
4870           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4871           and _fs2char.c
4872
4873 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4874
4875         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4876         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4877         (genCast) cosmetic change
4878         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4879         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4880         from mcs51
4881         * support/regression/tests/bitfields (testSignedBitfields): added
4882
4883 2005-11-18 Borut Razem <borut.razem AT siol.net>
4884
4885         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4886         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4887           introduced SILENT option to make building of pic16 libraries less
4888
4889 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4890
4891         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4892           Now they work properly with floats between -1.0 and 0.0
4893         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4894
4895 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4896
4897         * src/SDCCicode.c (printOperand): added missing else
4898
4899 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4900
4901         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4902         reformatted for better readability
4903         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4904         signed bitfields
4905
4906 2005-11-17 Borut Razem <borut.razem AT siol.net>
4907
4908         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4909           introduced SILENT option to make building of pic16 libraries less
4910           verbose - used for nightly snapshot build
4911         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4912           available on Win32 platforms.
4913         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4914           medium, large, pic and pic16
4915
4916 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4917
4918         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4919           printf("%f"...) sets fraction to zero.
4920
4921 2005-11-16 Raphael Neider <rneider AT web.de>
4922
4923         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4924           fixes #1357221
4925         * src/pic/gen.c (genIfx): implemented for CARRY bit
4926         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4927           to generic pointers, fixes #1357332,
4928           (pic16_movLit2f): NEW,
4929           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4930
4931 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4932
4933         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4934
4935 2005-11-11 Raphael Neider <rneider AT web.de>
4936
4937         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4938         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4939           compute pointer's type from operand,
4940           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4941           improved single bit reads, fixes bug #1353379
4942
4943 2005-11-09 Borut Razem <borut.razem AT siol.net>
4944
4945         * support/scripts/sdcc.nsi: added lib/pic to the package
4946
4947 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4948
4949         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4950
4951 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4952
4953         * support/regression/tests/bug1348008.c: added
4954         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4955         * support/regression/tests/bug1337835.c: updated comment
4956
4957 2005-11-06 Borut Razem <borut.razem AT siol.net>
4958
4959         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4960           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4961           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4962           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4963           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4964           dynamic construction of cl_error_class and derivates - 2.nd try
4965
4966 2005-11-05 Borut Razem <borut.razem AT siol.net>
4967
4968         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4969           bug, which caused Bus Errors on sparc solaris
4970
4971 2005-11-04 Borut Razem <borut.razem AT siol.net>
4972
4973         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4974           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4975           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4976           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4977           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4978           and derivates to resolve the initialization problem on OSX
4979
4980 2005-11-02 Borut Razem <borut.razem AT siol.net>
4981
4982         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4983           corrected typo - #include <winsock2.h>
4984
4985 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4986
4987         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4988           (_asxxxx_mapping): added org directive for future enhancements
4989
4990 2005-11-01 Borut Razem <borut.razem AT siol.net>
4991
4992         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4993           enabled sockets on WIN32
4994         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4995
4996 2005-10-31 Borut Razem <borut.razem AT siol.net>
4997
4998         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4999           WIN32 backslash path delimiters should be escaped when used in C strings
5000         * support/regression/tests/bitfields.c: exclude failing assertions for
5001           __CYGWIN32__ and __MINGW32__ hosts
5002
5003 2005-10-30 Borut Razem <borut.razem AT siol.net>
5004
5005         * src/SDCCutil.c: corrected double comparison typo
5006
5007 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5008
5009         * device/lib/medium/Makefile: added for new memory model medium
5010         * device/include/asm/mcs51/features.h: updated for medium/pdata
5011         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5012           added Multiply & Accumulate sbit's and MAC0_PAGE define
5013         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5014         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5015         * device/lib/_mullong.c: update for medium model
5016         * device/lib/incl.mk: added medium model
5017         * doc/sdccman.lyx: documented medium model
5018         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5019         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5020         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5021         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5022           (allocParms): set SCLS and OCLS to pdata for medium model
5023         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5024           for pdata,
5025           (powof2): return <0 if not power of 2
5026         * src/avr/gen.c (genBitWise): use updated powof2
5027         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5028           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5029           (shiftLLeftOrResult): use B if necessary
5030         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5031         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5032         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5033         * support/regression/Makefile.in: added test-mcs51-medium
5034         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5035
5036 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5037
5038         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5039         specifier unsigned
5040         * device/lib/time.c (mktime): fixed bug 1334315
5041
5042 2005-10-28 Raphael Neider <rneider AT web.de>
5043
5044         * device/include/pic/p16f_common.inc: added common declarations
5045         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5046
5047 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5048
5049         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5050           (aopPutUsesAcc): added to predict accumulator use,
5051           (assignResultValue): save acc if necessary,
5052           (genMinusDec): store result if indirectly addressed,
5053           (genDivOneByte):  save acc if necessary,
5054           (movLeft2Result): bugfix if left already in acc,
5055           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5056             attention to accumulator use (esp. pdata),
5057           (genReceive): receive pdata correctly
5058         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5059         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5060
5061 2005-10-27 Raphael Neider <rneider AT web.de>
5062
5063         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5064
5065 2005-10-27 Raphael Neider <rneider AT web.de>
5066
5067         * .version: changed version to 2.5.4
5068         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5069         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5070           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5071             arithmetics support routines
5072         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5073         * device/lib/Makefile.in: also create installdir for pic
5074
5075         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5076           pic14 port as well
5077         * src/pic/device.c (dump_sfr): rewritten to delegate register
5078           placement to the linker (use `extern sym' rather than sym EQU addr),
5079           (validAddress): fixed to check last specified address
5080         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5081           (popGetLit): truncate literal value to 8 bit,
5082           (popGet): moved assert to more appropriate place
5083           (popGetExternal): create pCode operand from and mark the according
5084             symbol as being `extern'
5085           (popGetAddr): added sanity check on immediate's offset, provide
5086             GPOINTER tag on demand
5087           (aopPut): fixed for immediates,
5088           (mov2w_op): move operand's address or contents to WREG (depending on
5089             operand type), safer variant of mov2w,
5090           (movwf,call_libraryfunc): NEW, handy abbreviations,
5091           (get_argument_pcop,get_return_val_pcop,pass_argument,
5092           get_returnvalue): interface for accessing function parameters and
5093             return values,
5094           (assignResultValuei,genRet): use new parameter/return value interface
5095           (pic14_getDataSize): back to old version handling generic pointers,
5096           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5097             provided implementation and/or fixed old one,
5098           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5099             calls, removed legacy 8051 reference code
5100           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5101           (loadSignToC): NEW, move the operands sign bit to CARRY,
5102           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5103             genRightShiftSigned, accepts negative shift counts,
5104           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5105           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5106             generic pointers, __data pointers and __code pointers,
5107           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5108             and signed bitfields, limit bitfields to 8 bit,
5109           (genDataPointerGet): fixed number of bytes read,
5110           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5111           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5112             pointers to constant data are no longer assumed to point to __code
5113             space, removed invalid pointer types,
5114           (bitpatternFromVal): retrieve the PICs representation of an integer
5115             or float literal,
5116           (genDataPointerSet): fixed assigning to po_immediate operands,
5117           (genGenPointerSet): implemented as library call,
5118           (genIfx): fixed incorrect condition,
5119           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5120             provide GPOINTER tag according to destination's storage class,
5121           (genCast): added code to handle casting to generic pointers, added
5122             sign-/zero extension of the result
5123           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5124         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5125         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5126           extend the result
5127         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5128           address/register resides in the shared banks
5129           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5130             put all variables into separate sections (have the linker arrange
5131             them)
5132           (picglue): put init code and interrupt handlers in separate sections
5133         * src/pic/main.c: added port specific options table, modified to PORT
5134           structure to make GPOINTERs 3 byte, added pic14_options
5135           (_pic14_do_link): private linking routine (update paths to libraries,
5136             add libsdcc.lib by default)
5137         * src/pic/main.h: declare pic14_options
5138         * src/pic/pcode.c: fixed instructions i/o relations,
5139           (RegCond): reverted to correct version,
5140           (newpCodeOpLit): truncate literals to 8 bit,
5141           (genericPrint): added debug output,
5142           (getRegFromInstruction): fixed for various operand types, simplified
5143           (BuildFlow): fixed broken handling of isntructions with labels
5144           (LinkFlow): start at last instruction in flow (skip trailing comments),
5145             pass the flow on to the next instruction after CALL
5146           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5147           (insertPCodeInstruction): fixed inserting after a skip instruction,
5148           (DoBankSelect): fixed for labeled instructions
5149           (OptimizepBlock): honor --nopeep switch
5150           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5151         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5152         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5153           (pCodeOptime2pCodes): allow disabling this optimization via
5154             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5155             but is still buggy), started implementation of a dataflow based
5156             pCode optimization (CSE + dead code elimination)
5157           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5158         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5159           names are independant of the stack location and therefore portable across
5160           devices
5161
5162 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5163
5164         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5165           (selectSpil): fixed bug 1337835 by not spilling bit variables
5166         * support/regression/tests/bug1337835.c: added test for this bug
5167         * src/mcs51/peeph.def: restart after rule 3.c,
5168           addded rules 263.x to optimize loading constants
5169
5170 2005-10-26 Raphael Neider <rneider AT web.de>
5171
5172         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5173         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5174           (genAssign): emit warning when casting literals to generic pointer
5175             type, also applies when taking the address of a fixed variable,
5176           (genCast): improved casting to generic pointers
5177         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5178           extern variables, added verbose error message
5179         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5180
5181 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5182
5183         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5184         carry must be complemented too
5185         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5186         could be emitted by genMinus
5187         * src/SDCCval.c (constVal): fixed bug 1305065
5188
5189 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5190
5191         * src/SDCCast.c (addCast): added promotion for bit variables
5192         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5193         promotion casts + optimisation
5194         (optimizeGetWord): fix warning 'i' might be used uninitialized
5195         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5196         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5197
5198 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5199
5200         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5201         all chars are promoted to int; promotion should be handled in SDCCast.c
5202
5203 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5204
5205         * device/lib/_strcmp.c: Fixed bug 1326457
5206
5207 2005-10-11 Raphael Neider <rneider AT web.de>
5208
5209         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5210         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5211
5212 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5213
5214         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5215         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5216
5217 2005-10-04 Raphael Neider <rneider AT web.de>
5218
5219         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5220           device/lib/pic16/pics.all: added pic18f1320
5221         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5222
5223 2005-09-30 Raphael Neider <rneider AT web.de>
5224
5225         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5226         * src/pic16/devices.inc: NEW, provides device descriptions
5227         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5228
5229 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5230
5231         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5232           GETHBIT
5233
5234 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5235
5236         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5237           documented Any Order Bit, Higher Order Byte and Higher Order Word
5238         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5239         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5240           (optimizeGetAbit): new, to get any bit, not only the high bit,
5241           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5242           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5243           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5244           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5245             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5246             GETABIT, GETBYTE, GETWORD: decorate them,
5247           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5248           (ast_print): added GETABIT, GETBYTE, GETWORD
5249         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5250         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5251           (geniCodeBinary): new generic binary icode,
5252           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5253         * src/port.h: updated comment for PORT.hasExtBitOp
5254         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5255           (genGetByte): new, to get a single byte,
5256           (genGetWord): new, to get a word from a long,
5257           (gen51Code): added GETABIT, GETBYTE, GETWORD
5258         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5259
5260 2005-09-23 Raphael Neider <rneider AT web.de>
5261
5262         * configure.in, configure: have device/lib/pic configured
5263         * device/lib/Makefile.in: added model-pic14
5264         * device/lib/clean.mk: added pic/ to clean rule
5265         * device/lib/pic: added rudimentary pic14 library providing support
5266           functions for multiplication/division/generic pointer access
5267         * src/SDCCopt.c (convilong): mark support functions as extern
5268           for pic14 port as well
5269         * src/pic/gen.c (genMult): added assertions,
5270           (genpic14Code): emit warning on unhandled iCodes
5271         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5272         * src/pic/pcode.c (pCodeOpCopy),
5273         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5274           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5275           SFR_REGISTER}), made safe for future extensions
5276         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5277           instructions even if preceeded by SKIP instructions (also remove
5278           them); removed unused code
5279         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5280           prevents leaving parts of the structure uninitialized after copying
5281
5282 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5283
5284         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5285           ago by me
5286         * support/regression/tests/addsub.c: added test for the bug
5287
5288 2005-09-21 Raphael Neider <rneider AT web.de>
5289
5290         * device/include/pic16/pic18f1220.h,
5291           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5292         * device/lib/pic16/Makefile.rules: added missing opening paren
5293         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5294           are provided in genutils.c,
5295           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5296           operand/result sizes,
5297           (genCmp): assert on NULL pointers first, then check deref'ed values
5298         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5299           result size
5300
5301 2005-09-18 Raphael Neider <rneider AT web.de>
5302
5303         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5304           as these are now unused,
5305           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5306         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5307           local, avoids uninitialized pointer dereference on r->name
5308         * src/pic16/ralloc.c (newReg): fixed indentation
5309
5310 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5311
5312         * src/SDCCval.c (constVal): fixed bug 730366
5313         * support/Util/SDCCerr.c,
5314         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5315
5316 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5317
5318         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5319
5320 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5321
5322         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5323
5324 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5325
5326         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5327           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5328         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5329           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5330         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5331         * packihx/packihx.c (hexDigit): made c unsigned char
5332         * as/mcs51/lklibr.c (fndsym),
5333         * link/z80/lkgb.c (gb),
5334         * link/z80/lklibr.c (fndsym),
5335         * link/z80/lkrloc.c (relr),
5336         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5337         * src/SDCC.lex (checkCurrFile, process_pragma),
5338         * src/SDCCglue.c (spacesToUnderscores),
5339         * src/SDCCmain.c (setParseWithComma, processFile),
5340         * src/asm.c (tvsprintf, printCLine),
5341         * src/avr/gen.c (emitcode, aopPut),
5342         * src/ds390/gen.c (emitcode),
5343         * src/hc08/gen.c (emitcode, emitinline),
5344         * src/mcs51/gen.c (emitcode, genInline),
5345         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5346           tokenizeLineNode),
5347         * src/pic/ralloc.c (debugLog),
5348         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5349           tokenizeLineNode),
5350         * src/pic16/ralloc.c (debugLog),
5351         * src/z80/main.c (_process_pragma):
5352            made all ctype.h function calls safe
5353         * src/SDCCopt.c: include math.h for fabs
5354         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5355           and used them throughout the code to make ctype.h function calls safe
5356         * src/ds390/main.c (asmLineNodeFromLineNode),
5357         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5358         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5359            unsigned char*
5360         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5361           (newpCodeAsmDir): made ctype.h function calls safe
5362         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5363           pic16_emitcode):  made lbp unsigned char*
5364         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5365           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5366         * src/xa51/gen.c (emitcode),
5367         * src/z80/gen.c (_emit2): made lbp unsigned char*
5368         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5369            char*
5370
5371 2005-09-05 Raphael Neider <rneider AT web.de>
5372
5373         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5374           access bank splitpoint
5375
5376 2005-09-05 Raphael Neider <rneider AT web.de>
5377
5378         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5379
5380 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5381
5382         * .version: changed to version 2.5.3
5383         * doc/sdccman.lyx: changed version to 2.5.3,
5384           documented --codeseg and --constseg and pragma codeseg and constseg,
5385           documented bit parameters (reentrant) and bit returning
5386         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5387            currFunc->recvSize, but is this ok for all ports?
5388           (ast2iCode): result of ~ on unsigned char must be cast to int for
5389            bool to work
5390         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5391           function pointers in bit space
5392         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5393           (processFuncArgs): call port.reg_parm() with reentrancy info
5394         * src/port.h,
5395         * src/avr/main.c,
5396         * src/ds390/main.c,
5397         * src/hc08/main.c,
5398         * src/pic/main.c,
5399         * src/pic16/main.c,
5400         * src/xa51/main.c,
5401         * src/z80/main.c: port.reg_parm prototype extended with
5402           "bool reentrant" parameter
5403         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5404           options.stackAuto for allocating bit register parameters
5405         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5406           (genSend): set BitBankUsed if it is,
5407           (selectRegBank): factored out of genCall for use in genPcall,
5408           (genCall): removed redundant dtype assignmen, use selectRegBank,
5409           (genPcall): handle returning in Carry properly, save in F0 if needed,
5410           (genReceive): handle bit register parameters
5411         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5412           (mcs51_assignRegisters): enable bit registers for all reentrant
5413            functions and don't set BitBankUsed unconditionally
5414         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5415         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5416         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5417
5418 2005-08-27 Borut Razem <borut.razem AT siol.net>
5419
5420         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5421         ppc-osx (Darwin) does not support -u option. It seems that it is
5422         supported only on Linux - GNU cp
5423
5424 2005-08-25 Borut Razem <borut.razem AT siol.net>
5425
5426         * sim/ucsim/gui.src/serio.src/Makefile.in,
5427           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5428           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5429           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5430           install and strip, since the strip at /usr/ccs/bin should be used
5431           on solaris
5432
5433 2005-08-24 Borut Razem <borut.razem AT siol.net>
5434
5435         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5436
5437 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5438
5439         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5440         ffffffffu
5441
5442 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5443
5444         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5445         * as/mcs51/lkmain.c (link_main): fixed warning
5446         * device/include/stdbool.h: ds390 has no advanced bit support yet
5447         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5448         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5449         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5450           and updated their macros
5451         * src/SDCCval.c (constVal): updated comment for renamed b_long
5452
5453 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5454
5455         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5456         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5457           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5458           (oprio): set priority for '['
5459         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5460            and adb_24_bit
5461         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5462         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5463         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5464         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5465           added overlayable BIT_BANK area
5466         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5467           (summary2): explain 'T' in legenda
5468         * as/mcs51/lkrloc.c: replaced old K&R style,
5469           (relr): added R_BIT processing,
5470           (errmsg): added "Bit-addressable relocation error",
5471           (adb_bit): added for converting from byte- to bit-addressable space,
5472           (adb_24_bit): added for converting from byte- to bit-addressable space
5473         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5474            used in reentrant functions now even as return value
5475         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5476         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5477           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5478         * src/SDCCglobl.h: added indicator BitBankUsed
5479         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5480            the bit registers b0-b7
5481         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5482           (geniCodeCast): fixed bug 1263853,
5483           (geniCodeLogicAndOr): put result in bool or char,
5484           (geniCodeReceive): added parameter func for accessing the return type,
5485           (geniCodeFunctionBody): pass func to geniCodeReceive
5486         * src/SDCCmain.c: added indicator BitBankUsed
5487         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5488         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5489           (checkSClass): don't put automatic bool/bit on stack,
5490           (checkFunction): removed check on function cannot return bit
5491         * src/SDCCsymt.h: added newBoolLink prototype
5492         * src/mcs51/gen.c (rb1regs): added bit registers,
5493           (movc): created for assigning to carry,
5494           (pushReg, popReg): created for pushing registers,
5495           (sameRegs): check both AOP_REG and AOP_CRY types,
5496           (aopOp): handle bit registers,
5497           (aopPut): optimization no self-assign,
5498           (saveRegisters): push reg->base (bits) only once for bit registers,
5499            and use pushReg,
5500           (unsaveRegisters): pop reg->base only once and use popReg,
5501           (assignResultValue): added parameter func and return in carry for bits,
5502           (genIpush): optimization no reload in A if not changed,
5503           (genSend): bit parameters in reentrant functions are passed in bit
5504            registers by first assigning to bits in B, then save registers and
5505            copy B to bits,
5506           (genCall): handle returning in Carry properly, save it in F0 if needed,
5507           (genPcall): updated assignResultValue call, this is not safe yet for bit
5508            returning function !!!
5509           (genFunction): don't generate equ's for bit registers and use pushReg,
5510           (genEndFunction): take care of bit returning functions and use popReg,
5511           (genRet): return bit in Carry,
5512           (genIfx): optimize bit registers and other directly addressable bits,
5513           (genReceive): updated assignResultValue call
5514         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5515           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5516            registers when using stack-auto
5517         * src/mcs51/ralloc.c (_G): added allBitregs,
5518           (regs8051): added the bit registers,
5519           (createStackSpil): use macro IS_BIT,
5520           (getRegBit): added to allocate a bit register, else spill,
5521           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5522           (updateRegUsage): factored out to ease stepping while debugging,
5523           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5524            also allocate bit registers,
5525           (fillGaps): handle bit registers,
5526           (findAllBitregs): added to create bit vector with all bit registers,
5527           (mcs51_allBitregs): returns this bit vector,
5528           (mcs51_assignRegisters): when using stack-auto use bit registers for
5529            passing parameters and creating local variables
5530         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5531
5532 2005-08-22 Borut Razem <borut.razem AT siol.net>
5533
5534         * device/lib/Makefile.in: replaced find option -or with -o
5535           to make it run on solaris
5536
5537 2005-08-22 Raphael Neider <rneider AT web.de>
5538
5539         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5540           fixes #1265442 (crash on Solaris)
5541
5542 2005-08-20 Borut Razem <borut.razem AT siol.net>
5543
5544         * configure, configure.in: added tests for libsocket and libnsl libraries,
5545           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5546           from support/regression/Makefile.in
5547         * support/regression/Makefile.in: added
5548         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5549         * sim/ucsim/libtool: regenerated on sparc-solaris
5550         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5551           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5552           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5553           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5554           sparc-solaris, which doesn't use GNU ld linker
5555         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5556         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5557
5558 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5559
5560         * src/mcs51/peeph.def: updated comments
5561
5562 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5563
5564         * device/lib/_gptrget.c,
5565         * device/lib/_gptrput.c: slightly shorter
5566         * doc/sdccman.lyx: incremented version
5567         * src/mcs51/peeph.def: moved peephole comments to the line of first
5568           change to better keep line correlation, reanimated 186.e
5569         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5570
5571 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5572
5573         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5574           David Saxton with quotes around file name.
5575
5576 2005-08-15 Borut Razem <borut.razem AT siol.net>
5577
5578         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5579           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5580           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5581           make tests run on x86_64 platform
5582
5583 2005-08-13 Raphael Neider <rneider AT web.de>
5584
5585         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5586           as it might be executed DURING a build (parallel make is wonderful)
5587
5588 2005-08-13 Raphael Neider <rneider AT web.de>
5589
5590         * device/lib/Makefile.in (port-specific-objects-pic16):
5591           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5592         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5593           dependency
5594         * device/lib/pic16/Makefile.rules: build subdirs before creating
5595           the library, removed builddir rule, create $(builddir) early in
5596           recurse rule, use empty recurse rule for leaf directories
5597         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5598           mkdir errors (race condition), removed duplicate suffix "hex"
5599           from clean rules
5600         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5601         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5602           prevents mkdir -p from aborting on Alpha
5603
5604 2005-08-12 Raphael Neider <rneider AT web.de>
5605
5606         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5607           db-statements in order to allow for arrays of pointers in code
5608           sections to be placed without interspersed 0-padding, fixes
5609           bug #1256215
5610         * (emitStatistics): fixed division by zero for pic18f1220
5611         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5612           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5613         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5614         * (pic16_pCodeConstString): keep track of already emitted string
5615           literals to prevent "duplicate definitions of symbol _str_NR"
5616         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5617           debug message
5618         * device/lib/Makefile.in: ignore failing PIC16 library builds
5619         * device/lib/pic16/Makefile: do not build if gputils are missing
5620         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5621
5622 2005-08-10 Raphael Neider <rneider AT web.de>
5623
5624         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5625           my last commit)
5626
5627 2005-08-10 Raphael Neider <rneider AT web.de>
5628
5629         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5630           Rokas' patch to add the new fixed point type "__fixed16x16"
5631         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5632           functions for __fixed16x16 arithmetics
5633         * device/lib/pic16: reimplemented the build system to support
5634           a separate build directory, better handling of libio (create
5635           the library in a separate subdir for each architecture) and
5636           easier configuration (centralized in Makefile.common)
5637
5638 2005-08-07 Raphael Neider <rneider AT web.de>
5639
5640         * src/pic16/gen.c (genrshTwo): fixed sign extension
5641         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5642         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5643           added T0CONbits
5644         * device/include/pic16/pic18f4220.h: NEW, header for
5645           pic18f4220 and pic18f4320
5646         * device/include/pic16/pic18fregs.h: added new devices,
5647           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5648         * device/include/pic16/signal.h: resolved name clashes
5649           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5650           to also allow testing for interrupt enable bits, added
5651           comments on how to use the macros
5652         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5653         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5654           register definitions for the devices
5655         * device/lib/pic16/pics.all: added new devices
5656         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5657           allocated memory
5658         * device/lib/pic16/libc/stdlib/memfree: do not count
5659           the block header as free memory
5660         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5661           simplified and added missing end-of-blocklist-marker
5662           (reported by Peter Onion, fixes #1252814)
5663         * (_mergeHeapBlock): fixed loop condition
5664         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5665           len==0, restructured code
5666         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5667           up a bit, reduced bitfield accesses, prevent endless loops
5668           in case of heap corruption
5669         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5670           "unreferenced arguments/must return a value" warnings
5671         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5672           replaced BAUDREG with SPBRG
5673         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5674           device/lib/pic16/debug/gstack/gstack.c: replaced
5675           _naked, _asm, _endasm with __naked, __asm, __endasm
5676
5677 2005-08-05 Raphael Neider <rneider AT web.de>
5678
5679         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5680           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5681
5682 2005-08-05 Borut Razem <borut.razem AT siol.net>
5683
5684         * device/lib/Makefile.in: added missing ';'
5685         * configure: removed ^M characters
5686
5687 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5688
5689         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5690           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5691           License
5692
5693 2005-08-04 Borut Razem <borut.razem AT siol.net>
5694
5695         * configure.in: pic16 libraries build 2nd try - enable running
5696           configure in device/lib/pic16
5697         * configure: regenerated from configure.in
5698         * device/lib/Makefile.in: create $(PORT)/bin directory
5699
5700 2005-08-03 Raphael Neider <rneider AT web.de>
5701
5702         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5703           to get/set values via pointers
5704         * (genUnpackBits,genPackBits): changed detection of
5705           ptr->bitfield vs. sym.bitfield, fixed access via generic
5706           pointers, removed dead (wrong) code for multibyte bitfields
5707         * (genNearPointerGet, genGenPointerGet): removed useless code,
5708           fixed bitfield detection, fixes #1250594
5709         * (genNearPointerSet): removed useless code
5710         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5711           and introduced macro pic16_emitpcode that conditionally emits
5712           the origin of the following pCode (useful for debugging SDCC)
5713         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5714         * (createDefmap): fixed handling of LFSR for --optimize-df
5715
5716 2005-08-02 Borut Razem <borut.razem AT siol.net>
5717
5718         * device/lib/Makefile.in: pic16 libraries build enabled since
5719           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5720
5721 2005-08-02 Raphael Neider <rneider AT web.de>
5722
5723         * src/pic16/gen.c (genPackBits): removed deprecated warning
5724         * (genGenPointerSet): fixed bitfield detection
5725
5726 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5727
5728         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5729
5730 2005-07-31 Raphael Neider <rneider AT web.de>
5731
5732         * device/lib/pic16/libdev/pic18f458.c,
5733           device/include/pic16/pic18f458.h: added missing T0CONbits
5734
5735 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5736
5737         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5738
5739 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5740
5741         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5742
5743 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5744
5745         * device/include/mcs51/at89c51ed2.h: added.
5746
5747 2005-07-23 Raphael Neider <rneider AT web.de>
5748
5749         * src/pic/gen.h: added emitpcode macro for debugging
5750         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5751           and replace by macro adding debug information on demand
5752         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5753         * (gencjne): tried to fix; replaced with correct (slower) code
5754         * (gen{Unp,P}ackBits): fixed single bit access
5755         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5756         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5757           previous instruction
5758         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5759           register has to be handled with care (forbidding movement
5760           of assignments/uses, removing assignments completely, ...)
5761         * (pCodeOptime2pCodes): make use of regIsSpecial
5762         * added lots of debugging output (commented out)
5763         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5764           from being reused as result UNLESS it is known to work
5765
5766 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5767
5768         * support/Util/dbuf.h: include <stddef.h> for size_t
5769         * .version: changed to version 2.5.2
5770
5771 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5772
5773         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5774
5775 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5776
5777         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5778           (genModOneByte): removed needless psha/pula
5779
5780 2005-07-22 Raphael Neider <rneider AT web.de>
5781
5782         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5783           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5784         * src/pic/gen.c (resolveIfx): do not "invent" labels
5785         * (genSkipc): changed to positive logic
5786         * (genSkipCond): removed as no longer needed
5787         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5788           backport from PIC16
5789         * (genLeftShift): check operands are in different registers
5790         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5791           INCF does not update CARRY...
5792         * src/pic/main.c: fixed _linkCmd
5793         * src/pic/pcode.c (unlinkpCode): added inactive code
5794         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5795           alive (do not assign result and operand overlapping registers)
5796
5797 2005-07-22 Raphael Neider <rneider AT web.de>
5798
5799         * src/pic/device.c (dump_sfr): replaced register declaration with
5800           call to emitSymbolToFile() to avoid duplicate symbols
5801         * (assignRelocatableRegisters): do not declare external symbols
5802         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5803           right (take size of type, not etype)
5804         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5805         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5806         * (packRegsForAccUse): disabled assignment of WREG as
5807           the result reg to prevent occurence of just fixed #1235003,
5808           fixes #1242954
5809         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5810           symbols (avoids duplicate symbols in .asm file)
5811         * (pic14emitRegularMap): use emitSymbolToFile()
5812         * src/pic/gen.c (aopOp): fixed spillLocation handling
5813         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5814         * (genDataPointerSet): removed unneccessary variables/output
5815
5816 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5817
5818         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5819         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5820
5821 2005-07-21 Raphael Neider <rneider AT web.de>
5822
5823         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5824           architecture cannot handle them efficiently, fixes bug #1235003
5825         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5826           check for empty sets before using them (fixes bug #1232190)
5827
5828 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5829
5830         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5831           (lnksect2): generate warnings for memory overlap
5832         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5833           constseg to set the name of these segments so you can instruct the linker
5834           to place them in banks
5835         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5836         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5837           added code_seg and const_seg to options
5838         * src/SDCCglue.c (emitMaps): use options.const_seg,
5839           (createInterruptVect): put interrupt vectors in segment HOME,
5840           (glue): put HOME before static segment and put the main glue in HOME,
5841           (glue): use options.code_seg
5842         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5843         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5844           these segments so you can instruct the linker to place them in banks
5845           (linkEdit): use code_loc for HOME segment which should be the first
5846           segment in code memory now
5847         * src/SDCCmem.c: fixed more stuff like bug 1238386
5848         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5849           (changePointer): don't change function pointers to code pointers for
5850           banked functions,
5851           (compareType): added exceptional check for banked function pointers
5852         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5853         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5854           after static in code memory
5855         * src/mcs51/gen.c: added aopLiteralLong prototype,
5856           (aopForSym): use getSize for functions,
5857           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5858           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5859           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5860           the segment,
5861           (genPcall): use call for literal function pointers and generate banked
5862           calls over the one trampoline so there's only one place for the user to
5863           modify according to his/hers hardware,
5864           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5865           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5866         * src/mcs51/main.c: added keyword banked,
5867           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5868         * support/Util/SDCCerr.c,
5869         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5870           needed for passing the bank and address to the trampoline
5871         * device/lib/mcs51/crtbank.asm: added for bankswitching
5872         * device/lib/mcs51/Makefile: added crtbank
5873
5874 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5875
5876         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5877           for fields at offset 0 of a struct or union as reported
5878           on 2005-07-07 in the developer mailing list.
5879
5880 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5881
5882         * src/SDCCmem.c: fixed bug 1238386
5883
5884 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5885
5886         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5887           (patch #1144962), added peephole 300, enabled 259.x
5888         * doc/sdccman.lyx: removed screenshot and provided link instead
5889
5890 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5891
5892         * doc/sdccman.lyx: added section about debugging with ddd
5893         * doc/figures/ddd_example.eps: screenshot of debugging session
5894
5895 2005-07-04 Raphael Neider <rneider AT web.de>
5896
5897         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5898           like CODE pointers, fixes #1115683
5899         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5900           call, fixes bugs #1232211, #1228110,
5901           fixed wrong casts to pCodeFlow from pCodeInstructions
5902
5903 2005-07-04 Raphael Neider <rneider AT web.de>
5904
5905         * src/pic/gen.c (popGet): changed assert to allow for
5906           bit operands
5907         * (popGetAddr): changed signature to provide
5908           an additional index, patched all call sites
5909         * (genCmpEq): handle literal-like operands correctly
5910         * (genAddrOf): added sanity checks on __code/__data pointers
5911         * (genAssign): added handling of symbols from __code section
5912         * (gencjne): do not generate code for comparisons whose result
5913           is neither stored nor used, fixes bug #1171114
5914         * (AccLsh, AccRsh): operate on operand instead of WREG
5915         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5916           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5917           by known count
5918         * rewrote complete shift-by-literal logic, commented unused
5919           functions out
5920         * (genConstPointerGet): get multiple bytes (if result size > 1),
5921           fixed handling of non-immediate addresses
5922         * (genPointerGet): handle CODE pointers like CONST pointers
5923         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5924         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5925           operand is to be treated as a literal or not
5926         * (mov2w,genPcall,genCmpEq),
5927           src/pic/genarith.c: use aop_isLitLike() to decide between
5928           literal/register contents
5929         * (addSign): added missing offset
5930         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5931           only emit comment in debug-mode,
5932           use {aop,op}_isLitLike throughout the file
5933         * src/pic/glue.c: fix initializers for pointers (work in progress)
5934         * src/pic/pcode.c (get_op): honor index on _const symbols
5935         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5936         * (dumppBlock): added pCode size estimation
5937         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5938           check for IS_SYMOP before OP_SYMBOL'ing
5939         * fixed indentation, compacted switch-statements
5940         * (allocReg): find free register and allocate it instead of
5941           allocating new registers all the time
5942         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5943           registers as its operands (necessary only for multibyte GETs)
5944
5945 2005-07-01 Raphael Neider <rneider AT web.de>
5946
5947         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5948           debugging .asm-output macros FENTRY + FEXIT
5949         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5950           way... I wonder...
5951         * (emitpComment): NEW, printf to pCode
5952         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5953           offset handling
5954         * (popGetAddr): NEW, variant of popGet to access an immediates
5955           high(er) bytes instead of the n'th byte of memory they reference,
5956           replaced popGet with popGetAddr where neccessary
5957         * (genDataPointerGet): reactivated and fixed implementation
5958         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5959           accesses
5960         * (genDataPointerSet): fixed multibyte assignments
5961         * (genpic14Code): fixed --i-code-in-asm handling
5962         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5963         * (genPlus): fixed index-out-of-bounds error
5964         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5965         * src/pic/ralloc.c: added debugging output macro FENTRY2
5966         * (spillThis): fixed indentation, enbraced for-body for clarity
5967         * (rematStr): commented out as now unused
5968         * (regTypeNum): commented out special spill case (overwrites
5969           arbitrary values)
5970         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5971
5972 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5973
5974         * doc/sdccman.lyx: documented sfr16/sfr32,
5975           added example for using storage class with function pointers
5976         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5977
5978 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5979
5980         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5981         * device/lib/_itoa.c,
5982         * device/lib/_ltoa.c: optimized codesize
5983         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5984           but don't know how to suppress the double warning.
5985         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5986         * support/Util/SDCCerr.c,
5987         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5988
5989 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5990
5991         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5992           fixed old K&R prototypes
5993         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5994         * device/lib/_gptrget.c,
5995         * device/lib/_gptrgetc.c,
5996         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5997           also new versions for small generic pointers and banked generic pointers
5998         * src/port.h: added const_name
5999         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
6000         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
6001         * src/SDCCcse.c (findPrevIc): check all associative operators
6002         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
6003         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
6004         * src/SDCCmem.c: updated comments,
6005           set far-space to 0 for pdata, results in optimized code
6006         * src/SDCCmem.h: added macro CONST_NAME
6007         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6008           moving the info into the highest bits, see also gptrget/gptrput
6009         * src/src.dsp: added sdcc.ico to project files
6010         * src/avr/gen.c (genCast): fixed bug 0x%d
6011         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6012         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6013           relation between ptr_type and DCL_TYPE,
6014           (genCast): fixed bug 0x%d
6015         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6016           (CODE)" for const_name
6017         * src/hc08/gen.c (genCast): fixed bug 0x%d
6018         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6019           (hc08_port): added "CONST (CODE)" for const_name
6020         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6021           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6022           between ptr_type and DCL_TYPE,
6023           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6024           operand* and took AOP() inside function so sfr-ness can be checked,
6025           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6026           new prototype,
6027           (genFunction, genEndFunction): optimized stack setup,
6028           (genMinus): optimized for literals with ending zeroes (in bytes),
6029           (genCast): fixed bug 0x%d
6030         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6031           (mcs51_port): added "CONST (CODE)" for const_name
6032         * src/mcs51/peeph.def: made rule 226 more generic
6033         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6034         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6035         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6036         * src/z80/main.c (z80_port): added NULL for const_name,
6037           (gbz80_port): added NULL for const_name
6038         * support/regression/tests/bug663539.c,
6039         * support/regression/tests/sfr16.c: new tests
6040
6041 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6042
6043         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6044
6045 2005-06-24 Raphael Neider <rneider AT web.de>
6046
6047         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6048           corrected typos...
6049         * device/include/pic16/signal.h: added USBIF
6050           and SIG_USB
6051
6052 2005-06-24 Raphael Neider <rneider AT web.de>
6053
6054         * device/lib/pic16/libdev/pic18f2455.c,
6055           device/include/pic16/pic18f2455.h: NEW
6056         * device/include/pic16/pic18fregs.h,
6057           device/lib/pic16/pics.all,
6058           src/pic16/device.c: added 18f2455
6059         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6060           device/include/pic16/{pic18f[68][567].h,usart.h}:
6061           replaced MULTIPLE_USARTS define with more relaible
6062           compatibility sfrs (for USART access)
6063
6064 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6065
6066         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6067           and the output asm file line is printed on two lines.
6068
6069 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6070
6071         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6072           BGT, BLE, BHI, and BLS instructions
6073         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6074           genCmpEq): removed
6075         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6076           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6077           fixes bug #1216342
6078         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6079
6080 2005-06-15 Raphael Neider <rneider AT web.de>
6081
6082         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6083         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6084         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6085           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6086           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6087
6088 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6089
6090         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6091           Marcel Telka in bug #1215704
6092
6093 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6094
6095         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6096           located in shared memory bank.
6097
6098 2005-05-31 Raphael Neider <rneider AT web.de>
6099
6100         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6101           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6102           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6103
6104 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6105
6106         * device/lib/_strncpy.c: fixed the fix
6107
6108 2005-05-26 Raphael Neider <rneider AT web.de>
6109
6110         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6111           initializers with \0, bug #1208187
6112         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6113           intializers with \0, bug #1208187
6114
6115 2005-05-26 Raphael Neider <rneider AT web.de>
6116
6117         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6118           initializers with \0, bug #1208187
6119         * src/pic16/main.c (_process_pragma): added sanity checks
6120           for stack position and size, emit warnings when appropriate
6121
6122 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6123
6124         * device/lib/_strncpy.c: fixed not filling with \0
6125
6126 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6127
6128         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6129           createFunction),
6130         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6131           compound_statement),
6132         * src/SDCCsymt.h,
6133         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6134
6135 2005-05-24 Raphael Neider <rneider AT web.de>
6136
6137         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6138
6139 2005-05-24 Raphael Neider <rneider AT web.de>
6140
6141         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6142           TRISE definitions, closes bug #1162453
6143
6144 2005-05-22 Raphael Neider <rneider AT web.de>
6145
6146         * src/pic16/main.c (_process_pragma): check for missing
6147           arguments to pragmas code and udata
6148         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6149           consistency fixes to match other headers (thanks to Jim Paris)
6150         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6151
6152 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6153
6154         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6155
6156 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6157
6158         * support/regression/tests/bug1198642.c: new test
6159         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6160         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6161         * support/scripts/resource.h,
6162         * support/scripts/resource.rc,
6163         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6164         * support/scripts/sdcc.ico: added 32x32 icon
6165
6166 2005-05-18 Raphael Neider <rneider AT web.de>
6167
6168         * device/lib/pic16/libdev/pic18f*.c,
6169         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6170           keywords to "__sfr" and "__at (X)"
6171         * device/include/pic16/pic18fregs.h: added pic18f4520
6172         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6173           #1203088 (MPLAB compatibility)
6174
6175 2005-05-17 Raphael Neider <rneider AT web.de>
6176
6177         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6178         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6179         * device/lib/pic16/pics.all: added new devices
6180         * src/pic16/device.c: added support for pic18f4520
6181
6182 2005-05-16 Raphael Neider <rneider AT web.de>
6183         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6184         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6185         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6186           convenience function for bit access
6187
6188 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6189
6190         * device/lib/printf_large.c: fixed bug 1193299
6191         * support/regression/tests/bug1057979.c: added test %3.3s
6192
6193 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6194
6195         * device/include/mcs51/8051.h,
6196         * device/include/mcs51/8052.h: made parseable with lint
6197         * device/include/mcs51/lint.h: added include file for (sp)lint
6198         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6199         * doc/cdbfileformat.lyx,
6200         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6201
6202 2005-05-14 Raphael Neider <rneider AT web.de>
6203
6204         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6205         * device/lib/pic16/libc/stdlib/itoa.c (new)
6206         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6207         * device/lib/pic16/libio/Makefile: exclude subdir according to
6208           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6209         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6210         * src/pic16/gen.c (genFunction): prevent annoying warning
6211         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6212           nameclashes on BeOS
6213         * support/cpp2/cppmain.c (cpp_output_string): new
6214         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6215           fixes bug 1116802
6216
6217 2005-05-13 Borut Razem <borut.razem AT siol.net>
6218
6219         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6220
6221 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6222
6223         * .version: changed to version 2.5.1; back to bleeding edge development
6224
6225 2005-05-11 Borut Razem <borut.razem AT siol.net>
6226
6227         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6228           generate PDF version 1.3 documents
6229
6230 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6231
6232         * .version: changed to version 2.5.0
6233
6234 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6235
6236         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6237
6238 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6239
6240         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6241         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6242         well as many smaller updates.
6243         * .version: changed to version 2.5.0-pre1
6244
6245 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6246
6247         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6248
6249 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6250
6251         * support/regression/tests/bug1185672.c: added
6252         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6253           bug 1185672
6254         * src/mcs51/gen.c (genCall): added comments, made it look safer
6255         * src/mcs51/gen.c (genEndFunction): simplified
6256
6257 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6258
6259         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6260
6261 2005-04-14 Borut Razem <borut.razem AT siol.net>
6262
6263         * fixed bug 1045046 - SIGSEGV with really simple code?:
6264           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6265           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6266
6267 2005-04-14 Borut Razem <borut.razem AT siol.net>
6268
6269         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6270           src/pic16/device.h: temporarily disabled experimental #inline pragma
6271           for 2.5.0 release
6272
6273 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6274
6275         * device/include/z80/stdio.h,
6276         * device/include/z80/string.h: removed these highly incomplete files so
6277           SDCC can use the default ones in device/include/
6278
6279 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6280
6281         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6282         gcc warning.
6283         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6284         fix sdcpp warnings.
6285
6286 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6287
6288         * device/include/malloc.h: removed redundant __reentrant prototypes
6289         * device/lib/_mullong.c: added working xstack variant in asm (C version
6290           doesn't pass regression tests)
6291         * device/lib/bpx.c: used __data and made bpx char for mcs51
6292         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6293           (createFunction): fixed bug with xstackPtr
6294         * src/SDCCcse.c: corrected comments
6295         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6296           (killDeadCode, eBBlockFromiCode): removed unused code
6297         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6298           corrected comments
6299         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6300           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6301           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6302           (genModOneByte): fixed warning in MSVC
6303         * src/mcs51/main.c (): added comments
6304         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6305
6306 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6307
6308         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6309
6310 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6311
6312         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6313
6314 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6315
6316         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6317         characters arrays of larger size than the declared one.
6318
6319 2005-04-10 Borut Razem <borut.razem AT siol.net>
6320
6321         * src/pic/gen.c (genInline),
6322           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6323           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6324           (findNextInstruction), (findPrevInstruction),
6325           (findInstructionUsingLabel),
6326           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6327         * src/pic/pcode.c (findLabel): added missing '\n'
6328         * src/src.dsp: added SDCCdwarf2.c to the project
6329
6330 2005-04-09 Borut Razem <borut.razem AT siol.net>
6331
6332         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6333
6334 2005-04-08 Raphael Neider <rneider AT web.de>
6335
6336         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6337           into the chain after a given one) and mergeDefmapSymbols (combine
6338           defmap entries for each symbol per pcode)
6339         * (createDefmap): have defmap entries merged in the end
6340         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6341           a symbol before replacing one access type's symbol, merge symbols in
6342           the end (replacement symbol might already have an entry)
6343         * (assignValnums): keep reference to written WREG intact
6344
6345 2005-04-08 Raphael Neider <rneider AT web.de>
6346
6347         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6348           Alpha)
6349
6350 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6351
6352         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6353         bytes
6354
6355 2005-04-07 Raphael Neider <rneider AT web.de>
6356
6357         * device/include/pic16/usart.h: added compatibility defines for
6358           devices with more than one USART
6359         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6360
6361 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6362
6363         * device/lib/Makefile.in: updated for port specific include
6364
6365 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6366
6367         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6368
6369 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6370
6371         * device/include/8051.h,
6372         * device/include/8052.h,
6373         * device/include/at89S8252.h,
6374         * device/include/at89c55.h,
6375         * device/include/at89x051.h,
6376         * device/include/at89x51.h,
6377         * device/include/at89x52.h,
6378         * device/include/mcs51reg.h,
6379         * device/include/reg51.h,
6380         * device/include/reg764.h,
6381         * device/include/regc515c.h,
6382         * device/include/sab80515.h: (re)moved these 12 files
6383         * device/include/mcs51/8051.h,
6384         * device/include/mcs51/8052.h,
6385         * device/include/mcs51/at89S8252.h,
6386         * device/include/mcs51/at89c55.h,
6387         * device/include/mcs51/at89x051.h,
6388         * device/include/mcs51/at89x51.h,
6389         * device/include/mcs51/at89x52.h,
6390         * device/include/mcs51/mcs51reg.h,
6391         * device/include/mcs51/reg51.h,
6392         * device/include/mcs51/reg764.h,
6393         * device/include/mcs51/regc515c.h,
6394         * device/include/mcs51/sab80515.h: and added them here
6395
6396 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6397
6398         * device/include/stdarg.h: changed SDCC specific keywords to double
6399           underlined form.
6400         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6401           mcs51 and ds390.
6402         * device/include/hc08/mc68hc908gp32.h,
6403         * device/include/hc08/mc68hc908jb8.h,
6404         * device/include/hc08/mc68hc908jkjl.h,
6405         * device/include/hc08/mc68hc908qy.h: fixed comments
6406         * device/include/mcs51/README: updated
6407         * device/include/mcs51/c8051f120.h: added PINRSF
6408         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6409         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6410           amidst code. Also inline is not supported.
6411
6412 2005-04-06 Raphael Neider <rneider AT web.de>
6413
6414         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6415         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6416           callers stack/frame pointers
6417
6418 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6419
6420         * device/include/pic16/usart.h: added, missing in previous commit,
6421         * device/include/pic16/adc.h: fixed typo,
6422         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6423         commit,
6424         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6425         <p18fxxx.inc>
6426         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6427         uninitialized because a bug appears with gplink
6428         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6429         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6430         complains for unrecognised option
6431
6432 2005-04-05 Raphael Neider <rneider AT web.de>
6433
6434         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6435           structs as well (using memcpy)
6436         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6437           on ISRs (GOTO has no label)
6438         * src/pic16/device.h: added OF_OPTIMIZE_DF
6439         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6440           new data flow analysis/optimization
6441         * src/pic16/pcode.c: added (prototypes for and implementation of)
6442           dataflow analysis functions, fixed pCodeInstructions' inCond and
6443           outCond values, made RCALL a branch instruction
6444         * (pic16_unlinkpCode): keep C line if possible
6445         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6446           C line moved if possible
6447         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6448         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6449           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6450         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6451           new flow)
6452         * (pic16_getJumptabpCode): NEW, needed in...
6453         * (LinkFlow): fixed handling of jumptables, calls and conditional
6454           branches
6455         * (pic16_InsertCommentAfter): NEW
6456         * (pic16_pCodeReplace): made verbose and flow preserving
6457         * (AnalyzeFlow): added call to data flow analysis
6458         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6459         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6460         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6461
6462 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6463
6464         * src/SDCCast.c (decorateType): fixed bug #1105626
6465
6466 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6467
6468         * device/include/asm/pic16/features.h,
6469         * pic18f*.h headers,
6470         * device/include/pic16/adc.h,
6471         * device/include/pic16/delay.h,
6472         * device/include/pic16/i2c.h,
6473         * device/include/pic16/malloc.h,
6474         * device/include/pic16/stdio.h,
6475         * device/include/pic16/stdlib.h,
6476         * device/include/pic16/string.h,
6477         * device/lib/pic16/libc/stdio/printf_tiny.c,
6478         * device/lib/pic16/libc/stdio/printf_small.c,
6479         * device/lib/pic16/libc/stdio/strmgpsim.c,
6480         * device/lib/pic16/libc/stdio/strmmssp.c,
6481         * device/lib/pic16/libc/stdio/strmusart.c,
6482         * device/lib/pic16/libc/stdio/vfprintf.c,
6483         * device/lib/pic16/libc/stdlib/ltoa.c,
6484         * device/lib/pic16/libc/stdlib/putchar.c,
6485         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6486         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6487         * device/lib/pic16/libc/stdlib/memchrram.c,
6488         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6489         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6490         * device/lib/pic16/libio/adc/adcbusy.c,
6491         * device/lib/pic16/libio/adc/adcread.c,
6492         * device/lib/pic16/libio/adc/adcsetch.c,
6493         * device/lib/pic16/libio/usart/ubaud.c,
6494         * device/lib/pic16/libio/usart/ubusy.c,
6495         * device/lib/pic16/libio/usart/udrdy.c,
6496         * device/lib/pic16/libio/usart/uopen.c,
6497         * device/lib/pic16/libio/usart/uputc.c,
6498         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6499         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6500         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6501         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6502         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6503         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6504         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6505         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6506         specific keywords to double underlined form,
6507         * device/lib/pic16/libc/Makefile.rules,
6508         * device/lib/pic16/libsdcc/Makefile.rules,
6509         * device/lib/pic16/libm/Makefile,
6510         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6511         to compile with C standard set in Makefile.common
6512         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6513         rand.c and crc.c in compilation process,
6514         * device/lib/pic16/libsdcc/int/divuint.c,
6515         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6516         `c' from signed to unsigned,
6517         * device/lib/pic16/startup/crt0.c,
6518         * device/lib/pic16/startup/crt0i.c,
6519         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6520         keywords to double underlined form, bug fixes in _do_cinit function
6521         which prevented the correct initialization of the .idata segment,
6522         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6523         core to enter a infinite loop
6524         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6525
6526 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6527
6528         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6529
6530 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6531
6532         * device/include/Makefile.in: add support for hc08 subdirectory
6533         * device/include/hc08/: new subdirectory
6534         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6535         Lucas Loizaga, thanks!
6536         * device/include/hc08/mc68hc908qy.h,
6537         * device/include/hc08/mc68hc908gp32.h,
6538         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6539         their own directory. Changed internal macro names to use the compiler
6540         reserved namespace. Changed SDCC specific keywords to double
6541         underlined form.
6542         * device/include/math.h,
6543         * device/include/malloc.h,
6544         * device/include/stdarg.h,
6545         * device/include/stdbool.h
6546         * device/include/string.h,
6547         * device/include/tinibios.h,
6548         * device/include/ds400rom.h,
6549         * device/include/8051.h,
6550         * device/include/8052.h,
6551         * device/include/80c51xa.h,
6552         * device/include/at89c55.h,
6553         * device/include/at89S8252.h,
6554         * device/include/at89x51.h,
6555         * device/include/at89x52.h,
6556         * device/include/ds80c390.h,
6557         * device/include/reg764.h,
6558         * device/include/regc515c.h,
6559         * device/include/sab80515.h,
6560         * device/include/mcs51/c8051f000.h,
6561         * device/include/mcs51/c8051f018.h,
6562         * device/include/mcs51/c8051f020.h,
6563         * device/include/mcs51/c8051f040.h,
6564         * device/include/mcs51/c8051f060.h,
6565         * device/include/mcs51/c8051f120.h,
6566         * device/include/mcs51/c8051f300.h,
6567         * device/include/mcs51/c8051f310.h,
6568         * device/include/mcs51/c8051f320.h,
6569         * device/include/mcs51/c8051f330.h,
6570         * device/include/mcs51/c8051f350.h,
6571         * device/include/z180.h: Changed SDCC specific keywords to double
6572         underlined form.
6573
6574 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6575
6576         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6577         18F4455,
6578         * (pic16_assignConfigWordValue): disable testing of configuration
6579         register value with config mask,
6580         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6581         function with port->fun_prefix,
6582         * (genFunction): when generating a naked interrupt function never
6583         create an absolute segment placed in interrupt vector address, place
6584         the actual interrupt function at IVA instead, when an interrupt
6585         function is generated with unspecified interrupt then do not create
6586         the absolute section,
6587         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6588         code for generating a call to generic pointer get/put function with
6589         a call to function pic16_callGenericPointer(),
6590         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6591         the call to the generic pointer get/put functions with prefixing the
6592         function name with port->fun_prefix,
6593         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6594         * src/pic16/main.c (_process_pragma): prefix function with
6595         port->fun_prefix,
6596         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6597         calling assembler, old 18Fxxxx macro is deprecated,
6598         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6599         PC_ASMDIR in while condition,
6600         * (findInstruction): add PC_ASMDIR in while condition,
6601         * (buildCallTree): prefix main with port->fun_prefix,
6602         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6603         identifier for variable with banked access in instructions BTFSS,
6604         BTFSC, BCF, BSF, BTG
6605         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6606         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6607         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6608         perform optimization when enviroment variable NO_REG_OPT is set,
6609         * (insideLRBlock): NEW, return 1 if register is inside an
6610         INF_LOCALREGS block,
6611         * (RemoveRegFromLRBlock): remove a register that is completely
6612         eliminated by register optimization, but it is still left in local
6613         register store/restore in/from stack block,
6614         * (Remove2pcodes): after removing register, check to see if it
6615         should be removed from local register store/restore in/from stack
6616         block,
6617         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6618         DUMMY_READ_VOLATILE,
6619
6620         * device/include/pic16/adc.h: minor prototype modifications and
6621         update,
6622         * device/include/pic16/malloc.h: added GPL notice various
6623         modifications,
6624         * device/include/pic16/stdint.h: NEW, standard header for ints
6625         * device/include/pic16/delay.h: NEW, header for delay functions,
6626         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6627         delay1mtcy,
6628         * device/include/pic16/signal.h: NEW, header providing helper macros
6629         for implementing signal handlers,
6630         * device/include/pic16/stdio.h: added prototypes for functions,
6631         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6632         prototypes for stdin and stdout, added macro PUTCHAR to
6633         automatically implement putchar function prototype,
6634         * device/include/pic16/usart.h: modified and updated USART library,
6635         * device/lib/pic16/libio/adc/,
6636         * device/lib/pic16/libio/i2c: some modifications to improve library
6637         performance,
6638         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6639         family of functions,
6640         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6641         family of functions and other sources,
6642         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6643         of the PIC18Fxx[28] devices,
6644         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6645         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6646         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6647         _do_cinit function, because the previous failed when local variables
6648         where not placed in the same memory bank,
6649         * device/lib/pic16/libsdcc/char/: various modifications to improve
6650         library performance,
6651         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6652         information on the new functions of the c library and more...
6653
6654 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6655
6656         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6657
6658 2005-03-26 Raphael Neider <rneider AT web.de>
6659
6660         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6661           if condition == CARRY)
6662         * (genCmp): adapted to new genSkipc semantics
6663         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6664           on rIfx (genCmp was broken)
6665
6666 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6667
6668         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6669         * src/z80/main.c (_keywords[]),
6670         * src/SDCCglobal.h (struct options),
6671         * src/SDCC.y,
6672         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6673         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6674         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6675         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6676         always available in leading double underscore form. The C99 support is
6677         mostly missing, but it's a start.
6678         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6679         reserved identifier "__data".
6680
6681 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6682
6683         * src/mcs51/peeph.def: fixed bug 1170013
6684
6685 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6686
6687         * device/include/mcs51reg.h: fixed bug 842007
6688
6689 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6690
6691         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6692         last time.
6693
6694 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6695
6696         * src/port.h (struct PORT),
6697         * src/avr/ralloc.c (avr_assignRegisters),
6698         * src/avr/main.c,
6699         * src/ds390/ralloc.c (ds390_assignRegisters),
6700         * src/ds390/main.c,
6701         * src/hc08/ralloc.c (hc08_assignRegisters),
6702         * src/hc08/main.c,
6703         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6704         * src/mcs51/main.c,
6705         * src/pic/ralloc.c (pic14_assignRegisters),
6706         * src/pic/main.c,
6707         * src/pic16/ralloc.c (pic16_assignRegisters),
6708         * src/pic16/main.c,
6709         * src/xa51/ralloc.c (xa51_assignRegisters),
6710         * src/xa51/main.c,
6711         * src/z80/ralloc.c (z80_assignRegisters),
6712         * src/z80/ralloc.h,
6713         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6714         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6715         * src/SDCCcse.h,
6716         * src/SDCCdflow.c (computeDataFlow),
6717         * src/SDCCdflow.h,
6718         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6719         * src/SDCCloop.h,
6720         * src/SDCCcflow.c (*),
6721         * src/SDCCcflow.h,
6722         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6723         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6724         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6725         immedDom() returning wrong block; probably fixes bug #1160833)
6726
6727 2005-03-20 Borut Razem <borut.razem AT siol.net>
6728
6729         * support/scripts/inc2h.pl: WIN32 port
6730
6731 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6732
6733         * device/lib/makefile.in: added abs.c and labs.c
6734
6735 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6736
6737         * device/include/stdint.h: added
6738         * device/lib/abs.c: added
6739         * device/lib/labs.c: added
6740         * device/include/stdlib.h: added abs() and labs() prototypes
6741         * device/lib/libsdcc.lib: added abs and labs
6742         * device/include/float.h,
6743         * device/lib/_fsmul.c,
6744         * device/lib/printf_fast.c,
6745         * device/lib/printf_tiny.c: updated comments
6746
6747 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6748
6749         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6750         bug #1164313
6751
6752 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6753
6754         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6755         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6756
6757 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6758
6759         * device/lib/printf_large.c: removed inline assembly for portability and
6760           readability. Use printf_fast if speed or size are more important.
6761         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6762         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6763
6764 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6765
6766         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6767         prevent compiler warning
6768
6769 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6770
6771         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6772         moved to level 0 and declared as static. Also they are explicit
6773         placed in access bank. This was necessery because some times they
6774         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6775         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6776         optimizations. Currently only compare to unsigned char is implemented,
6777         * src/pic16/gen.c: added fReturnIdx array,
6778         * (struct resolvedIfx) is moved to gen.h and made public,
6779         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6780         * (aopForSym): added an optimization to directly store in stack of
6781         the operand of a SEND iCode,
6782         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6783         but as registers instead (AOP_REG) using the fReturnIdx array,
6784         * (pic16_freeAsmop): remove the freed register from the
6785         _G.sregsAlloc field,
6786         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6787         a compare of 'WREG',
6788         * (pic16_popGetTempRegCond): changed function prototype, now
6789         function takes also a bitVector argument v which holds the current
6790         set of registers that are allocated for stack access by aopForSym,
6791         registers allocated in aopForSym for accessing stack symbols are not
6792         any more part of the functions usedRegs field,
6793         * (genCall): some times aopOp is called for a stack variable to be
6794         send, aopForSym might perform the push, if this is true make sure
6795         that genCall doesn't push the variable twice by testing _G.resDirect,
6796         * (genFunction): changed testing for unspecified interrupt number
6797         from 256 to INTNO_UNSPEC,
6798         * modified selection scheme of frame pointer generation. Previously
6799         if function did use local registers a frame pointer was generated,
6800         now a frame pointer is generated only if function has arguments
6801         (that need PLUSW2 register access), or has stack arguments, or the
6802         compiler is not instructed to omit the frame pointer,
6803         * (genEndFunction): before restoring local registers that were saved
6804         in the function preamble, also restore the registers that *might*
6805         have been allocated for stack access,
6806         * (genRet): removed some old comments,
6807         * (genCmp, the active (RN's) version): added a call to the
6808         pic16_genCmp_special function to perform the compare with a more
6809         robust and optimized way,
6810         * (genInline): a feature has been added in inline code generation,
6811         which allows a wildcard variable substitution when writing inline
6812         assembly. Code is incomplete and experimental therefore undocumented,
6813         * (genCast): changed order of aopOp for result and right to allow
6814         aopForSym to directly load the result if possible,
6815         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6816         perform an optimized compare on some selected special occasions,
6817         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6818         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6819         generate an IVT any more,
6820         * src/pic16/main.c (pic16_optionsTable): added command line option
6821         --optimize-cmp,
6822         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6823         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6824         macros,
6825         * src/pic16/NOTES: Raphael Neider added in list of active developers
6826         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6827         jumptable_end to prevent bug #,
6828         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6829         inCond and outCond fields,
6830         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6831         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6832         turn off register spilling,
6833         * (packRegsForOneUse): synced with other ports' versions although it
6834         is not used currently,
6835         * (pic16_packRegisters): added an optimization while reading
6836         structure bitfields, some registers may be saved (malloc code is
6837         decreased by 80 bytes)
6838
6839 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6840
6841         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6842         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6843         this can be optimized more?
6844
6845 2005-03-10 Raphael Neider <rneider AT web.de>
6846
6847         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6848           genNearPointerGet): (hopefully) fixed access to bitfields via
6849           pointers (p->bitN = x; and x = p->bitN; failed)
6850
6851 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6852
6853         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6854
6855 2005-03-09 Raphael Neider <rneider AT web.de>
6856
6857         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6858
6859 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6860
6861         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6862         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6863           (regTypeNum): set REG_BIT type if necessary
6864         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6865         * support/regression/tests/critical.c: check bug 1144613
6866
6867 2005-03-02 Raphael Neider <rneider AT web.de>
6868
6869         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6870
6871 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6872
6873         * src/avr/ralloc.c (serialRegAssign),
6874         * src/ds390/ralloc.c (serialRegAssign),
6875         * src/hc08/ralloc.c (serialRegAssign),
6876         * src/mcs51/ralloc.c (serialRegAssign),
6877         * src/pic/ralloc.c (serialRegAssign),
6878         * src/pic16/ralloc.c (serialRegAssign),
6879         * src/xa51/ralloc.c (serialRegAssign),
6880         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6881
6882 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6883
6884         * src/SDCCast.c (decorateType): fixed bug 1124787
6885
6886 2005-02-20 Hubert Sack <sack AT digiplan.de>
6887         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6888
6889         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6890         patch #1121755
6891
6892 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6893
6894         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6895         to keep the correct label reference count when adding/removing references
6896         to labels. A peephole file using this is appended to patch #1144962.
6897
6898 2005-02-14 Raphael Neider <rneider AT web.de>
6899
6900         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6901         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6902         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6903           retrievals of result operand's value on assignment
6904
6905 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6906
6907         * device/include/pic16/string.h: modified prototype for memccpy()
6908         to memccpy(void *, void *, char, size_t)
6909         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6910         check whether to omit frame pointer or not,
6911         * (genInline): convert all occurences of "\n" to LF in inline
6912         assembler blocks, this helps formatting the inline text,
6913         * (pic16_loadFSR0): modified prototype,
6914         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6915         removed some 8051 legacy code,
6916         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6917         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6918         before allocating temporary registers in functions,
6919
6920 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6921
6922         * support/regression/tests/bitvars.c: corrected the "fix"
6923
6924 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6925
6926         * support/regression/tests/bitvars.c,
6927         * support/regression/tests/bitwise.c,
6928         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6929
6930 2005-02-10 Raphael Neider <rneider AT web.de>
6931
6932         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6933           different size for Alpha
6934         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6935
6936 2005-02-09 Raphael Neider <rneider AT web.de>
6937
6938         * src/SDCC.lex(doPragma) : save and restore warning options as well
6939           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6940         * have #pragma less_pedantic set the errorlevel to WARNING
6941           (fixes #1117001)
6942         * (cloneOptimize) : fixed wrong malloc's size
6943         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6944           facilitate correct handling of #pragma (save|restore)
6945
6946 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6947
6948         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6949
6950 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6951
6952         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6953
6954 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6955
6956         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6957
6958 2005-02-02 Raphael Neider <rneider AT web.de>
6959
6960         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6961         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6962         * (pic16_storeForReturn): fixed to allow returning function pointers
6963         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6964         * device/include/pic16/{stddef.h,stdbool.h}: added
6965
6966 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6967
6968         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6969
6970 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6971
6972         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6973         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6974          appeared to be required
6975
6976 2005-01-31 Borut Razem <borut.razem AT siol.net>
6977
6978         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6979           include/mcs51 and include/z80 directories to the package
6980
6981 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6982
6983         * src/hc08/gen.c (genFunction): fixed bug #1112752
6984
6985 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6986
6987         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6988
6989 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6990
6991         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6992
6993 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6994
6995         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6996
6997 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6998
6999         * device/include/c8051fxxx.h: removed these 6 files
7000         * device/include/mcs51/c8051fxxx.h: added these 11 new files
7001
7002 2005-01-26 Raphael Neider <rneider AT web.de>
7003
7004         * src/pic16/gen.c (genAssign): fixed assignment from longs
7005           in codespace (were cut to three bytes)
7006         * (genDummyRead): implemented (except for CODESPACE...),
7007           fixed bug #1108575
7008         * src/pic16/glue.c (emitStatistics): beautified
7009         * device/lib/pic16/libm/Makefile: added include path
7010
7011 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7012
7013         * src/z80/gen.c (aopPut): fixed bug #1103902
7014
7015 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7016
7017         * device/lib/expf.c: fixed bug #1095792
7018
7019 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7020
7021         * device/lib/pic16/libm: added Math library sources
7022
7023 2005-01-24 Raphael Neider <rneider AT web.de>
7024
7025         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7026           to enable upcast to pCodeOpReg2 (there is no type tag to
7027           differenciate the two and pic16_popGet2p cast into PCOR2)
7028         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7029           (sizeof(sectNames) changed to sizeof(sectName))
7030           Both patches fix segfaults under MinGW.
7031
7032 2005-01-23 Raphael Neider <rneider AT web.de>
7033
7034         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7035           Safe_[mc]?alloc()'ed variables
7036         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7037           of (byte sized) temporaries (assign them to WREG for now)
7038         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7039           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7040           this might fix SIGSEGVs on MinGW...
7041         * src/SDCCopt.c (killDeadCode): restored original behaviour
7042           (volatile operands might get thrown away though)
7043
7044 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7045
7046         * src/pic16/gen.c: fixed bug #1106975,
7047         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7048         pointer update, INTCON is saved, global interrupts are disabled and
7049         restored after updateing TOS.
7050         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7051         * added function attribute 'shadowregs' to take advantage of shadow
7052         registers,
7053         * added function attribute 'wparam' as an alternative to the wparam
7054         pragma,
7055         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7056         user declares a non-ISR function as 'shadowregs',
7057         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7058
7059 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7060
7061         * .version: bumped version number to 2.4.8
7062         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7063         pic16 port,
7064         * device/lib/pic16/libio/i2c/: I2C module support library,
7065         * device/include/pic16/i2c.h: I2C support library header,
7066         * device/lib/pic16/libc/stdio/: standard IO support sources,
7067         * (printf_small.c): printf_small() source, supports float print,
7068         * (printf_tiny.c): printf_tiny() source, does not support floats,
7069         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7070         enable global optimizations for entire library source, other
7071         Makefiles in the source tree are also modified to reflect this,
7072         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7073         function,
7074         * doc/sdccman.lyx: updated to reflect new changes,
7075         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7076         sym->onStack if-case,
7077         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7078         sbit, idata, _idata, xdata, _xdata,
7079         * added pragma library, to link an external library, (see doc),
7080         * removed command line options, --pomit-config-words, --pomit-ivt,
7081         --pleave-reset-vector,
7082         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7083         when calling assembler to reflect memory model used, also define
7084         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7085         reflect stack model used,
7086         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7087         on stack return NULL,
7088
7089 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7090
7091         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7092           of the operands is volatile. Fixes #1020220
7093
7094 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7095
7096         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7097         * (OptimizeRegUsage): make sure that there is really no other flow where
7098           the first pCode is used
7099
7100 2005-01-22 Raphael Neider <rneider AT web.de>
7101
7102         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7103           to fix #1106967 (pCode->seq are not set up correctly)
7104
7105 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7106
7107         * src/SDCCglue.c (glue): make sure code area is declared before the
7108         static initialization area.
7109
7110 2005-01-21 Raphael Neider <rneider AT web.de>
7111
7112         * device/lib/Makefile.in: fixed test for pic16 install dir
7113         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7114           optimizations
7115         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7116           added --optimize-goto compiler switch and pragma wparam documentation
7117         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7118         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7119           and PRODH closing bug #1071770 (peephole optimizer)
7120
7121 2005-01-19 Raphael Neider <rneider AT web.de>
7122
7123         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7124           cmdLine buffers (used when calling sdcpp...) are large enough
7125           (MAX_PATH=256 truncates arguments leading to system halts when
7126           used in MinGW...)
7127         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7128         * (genUminus): rewritten to for efficiency
7129         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7130           used uninitialized in some cases)
7131         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7132           copy the third byte from the int -- now assumes 0x80 (data memory)
7133         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7134           operands (genAddLit expects the iCode's operands to swapped as
7135           well), fixed leftover bytes (crashed for short left operands)
7136         * (pic16_genMinusDec): performance improvements, removed false
7137           PIC14 emitSKPNCs
7138         * (pic16_genMinus): fixed to cope with differently sized operands
7139         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7140           for --obanksel > 1
7141         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7142         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7143           new banksel optimization
7144         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7145           analysis for temporary registers (segfaults...)
7146         * src/pic16/peeph.def: added rule
7147
7148 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7149
7150         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7151         which converts a float number to its ASCII representation
7152         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7153         functions to convert the fractional and integer part of a float to ASCII,
7154         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7155         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7156         ram
7157         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7158         _STATMEM macros,
7159         * device/include/pic16/adc.h: added GPL info,
7160         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7161         a pCodeOp as tested operand,
7162         * (genNearPointerGet): optimized bit testing, does not use
7163         intermediate register for bit value, test directly instead with
7164         BTFSS, BTFSC, works only for single bits,
7165         * (genpic16Code): dump the name of the iCode in the asm,
7166         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7167         renamed to pic16_decodeOp,
7168         * (serialRegAssign): do not allocate a temporary register for iCode
7169         sequences that test a single bit for 1/0
7170
7171 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7172
7173         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7174         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7175         access stack and frame pointers. They are initially assigned to
7176         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7177         accessing SFRs. Updated all occurences of modification of stack or
7178         frame pointer in gen.c and pcode.c,
7179         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7180         assigning of a literal value to pointers,
7181         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7182         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7183         selected
7184
7185 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7186
7187         * doc/sdccman.lyx: update documentation about stack pragma, added
7188         some info for stack memory models
7189
7190 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7191
7192         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7193
7194 2005-01-08 Raphael Neider <rneider AT web.de>
7195
7196         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7197           udata sections to fix bug #1097823
7198
7199 2005-01-05 Raphael Neider <rneider AT web.de>
7200
7201         * src/pic16/gen.c (genGenericShift): added handling of differently
7202           sized left operand and result
7203
7204 2005-01-04 Raphael Neider <rneider AT web.de>
7205
7206         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7207         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7208           to hold the condition bit)
7209         * added new version of genCmp (old code available via #define)
7210         * added new version of genShiftLeft/genShiftRight in a generic
7211           way, now supports shifting by negative values
7212         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7213           shiftCount (expected by genGenericShift)
7214         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7215         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7216           dump
7217         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7218           is an invalid literal too...)
7219
7220 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7221
7222         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7223         from Raphael Neider,
7224         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7225         for 8-bit literals. This fixes some literal operands which are sign
7226         extended to 16-bits ints when instruction needs only 8-bits.
7227
7228 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7229
7230         * device/lib/logf.c: added mcs51 assembly version
7231         * device/lib/expf.c: added mcs51 assembly version
7232         * device/lib/_logexpf.c: new shared asm code for expf and logf
7233         * device/include/math.h: add defines for assembly math library
7234         * device/lib/Makefile.in: build new _logexpf.c
7235         * device/lib/libfloat.lib: use new _logexpf.c
7236
7237 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7238
7239         * src/pic/device.c
7240         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7241           device types which have less than 0x7f registers.
7242
7243 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7244
7245         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7246
7247 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7248
7249         * device/lib/printf_fast.c: only build on supported arch.
7250         * device/lib/printf_tiny.c: only build on supported arch.
7251         * device/lib/printf_fast_f.c: only build if asm float lib
7252         * device/lib/_fsget1arg.c: only build if asm float lib
7253         * device/lib/_fsget2args.c: only build if asm float lib
7254         * device/lib/_fsnormalize.c: only build if asm float lib
7255         * device/lib/_fsreturnval.c: only build if asm float lib
7256         * device/lib/_fsrshift.c: only build if asm float lib
7257         * device/lib/_fsswapargs.c: only build if asm float lib
7258         * device/include/stdio.h: don't provide print_fast,
7259           print_fast_f, print_tiny prototypes if --xstack used
7260
7261 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7262
7263         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7264         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7265           to the SOURCES
7266
7267 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7268
7269         * device/lib/printf_fast_f.c: same as printf_fast, but
7270           with floating point enabled
7271         * device/lib/printf_fast.c: minor tweaks
7272         * device/include/stdio.h: add printf_fast_f
7273
7274 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7275
7276         * src/SDCCmain.c: make --float-reent default for mcs51
7277         * device/lib/_fsadd.c: added mcs51 assembly version
7278         * device/lib/_fssub.c: added mcs51 assembly version
7279         * device/lib/_fsmul.c: added mcs51 assembly version
7280         * device/lib/_fsdiv.c: added mcs51 assembly version
7281         * device/lib/_fseq.c: added mcs51 assembly version
7282         * device/lib/_fsneq.c: added mcs51 assembly version
7283         * device/lib/_fsgt.c: added mcs51 assembly version
7284         * device/lib/_fslt.c: added mcs51 assembly version
7285         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7286         * device/lib/Makefile.in: add _fscmp to build
7287         * device/lib/libfloat.lib: add _fscmp to build
7288
7289 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7290
7291         * device/lib/_fs2slong.c: added mcs51 assembly version
7292         * device/lib/_fs2sint.c: added mcs51 assembly version
7293         * device/lib/_fs2schar.c: added mcs51 assembly version
7294         * device/lib/_fs2ulong.c: added mcs51 assembly version
7295         * device/lib/_fs2uint.c: added mcs51 assembly version
7296         * device/lib/_fs2uchar.c: added mcs51 assembly version
7297         * device/lib/_slong2fs.c: added mcs51 assembly version
7298         * device/lib/_sint2fs.c: added mcs51 assembly version
7299         * device/lib/_schar2fs.c: added mcs51 assembly version
7300         * device/lib/_ulong2fs.c: added mcs51 assembly version
7301         * device/lib/_uint2fs.c: added mcs51 assembly version
7302         * device/lib/_uchar2fs.c: added mcs51 assembly version
7303         * device/include/float.h: added #define to select asm vs c
7304
7305 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7306
7307         * device/lib/printf_fast.c: improvements to float output
7308         * device/include/float.h: add defines for assembly float library
7309         * device/lib/_fsget1arg.c: receive 1 float arg
7310         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7311         * device/lib/_fsnormalize.c: normalize a float
7312         * device/lib/_fsreturnval.c: return float, various helper routines
7313         * device/lib/_fsrshift.c: right shift a float's mantissa
7314         * device/lib/_fsswapargs.c: swap 2 floats
7315         * device/lib/Makefile.in: build these 6 new files for mcs51
7316         * device/lib/libfloat.lib: add these 6 files to the library
7317
7318 2004-12-26 Borut Razem <borut.razem AT siol.net>
7319
7320         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7321           built by gcc 3.4.2
7322
7323 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7324
7325         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7326           and fully reentrant and register bank neutral.
7327         * device/lib/printf_fast.c: added float (not enabled by default),
7328           added compact/slower integer (also not enabled by default),
7329           improved size/speed of fast integer code, other minor changes
7330         * device/include/stdio.h, device/lib/Makefile.in,
7331           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7332
7333 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7334
7335         * src/pic16/pcode.c: declaring variables other than at the start of a
7336           block is not supported in C by VC6.
7337
7338 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7339
7340         * applied a previous patch from Raphael Neider that wasn't included
7341         in the previous commits, which fixes infinite loops within jumptable
7342         improvements,
7343         * made some fixes that previous patches introduced
7344
7345 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7346
7347         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7348         that fixes an issue with AOP_PCODE asmop's offset,
7349         * (pic16_popCopyReg): update instance field too,
7350         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7351         function of pic port,
7352         * (genCmp, genAnd, genAssign),
7353         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7354
7355 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7356
7357         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7358         variables initial values to idata section,
7359         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7360         variables in some functions. This utilizes parmBytes field of iCode
7361         structure to hold the offset of the variable in stack. (might be
7362         able to use the stack field too?)
7363         * applied patch from Raphael Neider # ### , # ###
7364         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7365         variable initial values in idata section,
7366         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7367         for static variables with initial value
7368         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7369         applied fix in while loop from Raphael Neider.
7370
7371 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7372
7373         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7374         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7375         * src/ds390/ralloc.c (serialRegAssign): spill bits
7376         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7377         * support/Util/SDCCerr.c,
7378         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7379         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7380         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7381
7382 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7383
7384         * device/include/sdcc-lib.h: inserted LGPL, added includes
7385           asm/ds390/features.h and asm/mcs51/features.h
7386         * device/include/asm/default/features.h,
7387         * device/include/asm/gbz80/features.h,
7388         * device/include/asm/z80/features.h: added empty _AUTOMEM
7389           and _STATMEM
7390         * device/include/asm/ds390/features.h,
7391         * device/include/asm/mcs51/features.h: added files with defines for
7392           _AUTOMEM and _STATMEM indicating automatic and static storage class
7393         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7394         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7395         * src/SDCCicode.c (geniCodeCast),
7396         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7397         * src/SDCCloop.c (loopInduction): removed unused variable lr
7398         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7399           to convertToFcall to include char modulo (RFE 1065037), added check
7400           if left operand is unsigned and use abs of literal value
7401         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7402           as it doesn't work after conversion from peephole.def to peephole.rul
7403         * src/mcs51/gen.c (toBoolean): added check for size,
7404           (genModOneByte): optimized code for signed char modulo a literal
7405           power of 2 (thanks to Hubert Sack),
7406           (genRRC): removed unnecessary "clr c",
7407           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7408         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7409           jump optimization,
7410           swapped rules 256.c and 256.d,
7411           extended 256.d by using new multiple checks (thanks Erik),
7412           added rules 256.e and 256.f,
7413           updated rule 261.a and 261.b to new generated code
7414         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7415
7416 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7417
7418         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7419           induction related bugs, including first part of bug #1074377
7420
7421 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7422
7423         * applied patch from bug-report #1076292,
7424         * applied patches for genAnd and Goto-optimizations for Raphael
7425         Neider,
7426         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7427         dump a less iCode information,
7428         * src/pic16/device.h (pic16_options_t): added field debgen,
7429         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7430         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7431         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7432         puclic,
7433         * (various functions): added macros FENTRY and FENTRY2 to functions,
7434         to emit function prologue,
7435         * (various functions): fixed indentation,
7436         * (genNearPointerGet): fixed loading of FSR0,
7437         * (genPackBits): applied patch from Raphael Neider to fix updating
7438         of FSR0 and touching only the modified bits,
7439         * src/pic16/genarith.c (various functions): added macros FENTRY to
7440         emit function prologue in comments,
7441         * src/pic16/pcode.h: added functions debugf2, debugf3,
7442         * src/pic16/ralloc.c: partial fix for packForPush caused
7443         segmentation fault,
7444
7445 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7446
7447         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7448           <stsp AT users.sourceforge.net> with reversed byte order
7449         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7450
7451 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7452
7453         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7454           bug #1074377
7455         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7456         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7457
7458 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7459
7460         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7461
7462 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7463
7464         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7465           conditions,
7466           (setFromConditionArgs): friendly operand parser for peephole rules,
7467           (operandBaseName, operandsNotRelated): new peephole condition
7468           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7469           architecture specific register naming into account, handles n-way
7470           comparisons, and supports quoted literals
7471         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7472
7473 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7474
7475         * src/mcs51/peeph.def: fixed bug #1076940
7476
7477 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7478
7479         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7480
7481 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7482
7483         Adding support for replacing ljmps with sjmps in jumptables
7484         generated for switch statements. For now you need to set the
7485         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7486         Now 4 algorithms for mcs51 jumptable generation are used:
7487         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7488         addresses loaded pc-relative for up to 112 cases and stack-pushing
7489         target addresses loaded with offset from dptr for up to 256 cases.
7490
7491         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7492         * src/mcs51/main.c: adapted constants for switch table generation
7493         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7494
7495 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7496
7497         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7498         * support/regression/tests/bug1057979.c: added test for bug 1073386
7499
7500 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7501
7502         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7503         compilers
7504
7505 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7506
7507         * src/pic16/device.h,
7508         * src/pic16/genarith.c,
7509         * src/pic16/glue.c,
7510         * src/pic16/main.c,
7511         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7512
7513 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7514
7515         Large cummulative patch for pic16 port.
7516         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7517         to call when a stack overflow occurs,
7518         * (malloc.h): added CVS Id tag,
7519         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7520         variable,
7521         * added libc directory. The current version of LibC contains string
7522         functions, ctype functions and macros and some functions of the
7523         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7524         be extensively tested in the future. Standard disclaimer here.
7525         Library is not automatically build yet. But one can build it by
7526         invoking 'make' inside the libc directory.
7527         * added ADC library under libio. Preliminary version yet.
7528
7529         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7530         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7531         aopForRemat() now and not by pic16_aopOp(),
7532         * (pic16_popGetTempReg): removed warning messgae when allocating
7533         temporary registers, its a buggy feature and will be removed,
7534         * (pic16_popGet): set register instance field in AOP_CRY,
7535         * (pic16_outBitC): fixed for results in size greater than 1,
7536         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7537         * (pic16_storeForReturn): optimized return of 0,
7538         * (genCmp): experimental code for new genCmp which uses PIC18's
7539         special compare&skip instructions. Initial tests fail some times
7540         with variables grater than 1 byte in size, so new code is disabled,
7541         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7542         a single bit,
7543         * (genCast): began a fix to optimize the casting of a bit to another
7544         bit, now assigning a bitfield to another bitfield will fail, sorry,
7545         * src/pic16/main.c: disabled the use of lr-support feature,
7546         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7547         * added some function prototypes, added function _debugf prototype,
7548         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7549         bits with offset (case PO_GPR_BIT),
7550         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7551         command line,
7552         * (isBankInstruction): modified to return 0 for no banking instruction,
7553         and 1 for banking instruction,
7554         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7555         caused stop processing pCodes after a inline assembly block,
7556         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7557         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7558         registers when it shouldn't,
7559         * src/pic16/ralloc.c (allocReg): add preliminary support for
7560         supporting a limited set of temporary registers,
7561
7562 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7563
7564         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7565           genDataPointerSet): ensure assignments always copy in MSB to LSB
7566           order,
7567           (loadRegFromAop): recognize CLRH optimization,
7568           (genFunction): optimize RECEIVE iCodes in reentrant functions
7569
7570 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7571
7572         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7573           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7574           selected.
7575         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7576         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7577           contiguous with data
7578
7579 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7580
7581         * device/lib/_gptrget.c (_gptrget),
7582         * device/lib/_gptrgetc.c (_gptrgetc),
7583         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7584           instead of sjmp to ret
7585         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7586           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7587
7588 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7589
7590         * .version: bumped version to 2.4.7
7591         * device/lib/_gptrget.c (_gptrget): is now _naked
7592         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7593         * device/lib/_gptrput.c (_gptrput): is now _naked
7594         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7595           (createFunction): fixed xstack
7596         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7597         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7598           or bit either,
7599           (geniCodeCritical): store original interrupt state in an iTemp bit
7600           var unless stack-auto
7601         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7602         * src/SDCCmain.c (setIncludePath): added include/target to search path
7603         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7604         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7605           prototype,
7606           (processFuncArgs): put bit vars in bit area
7607         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7608           unsaveRBank): fixed xstack,
7609           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7610           (genFunction, genEndFunction): fixed xstack,
7611           (genAssign): optimization don't walk backwards through mem
7612         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7613         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7614         * support/regression/Makefile: also make library (for stack-auto) when
7615           making "all" and added "test-mcs51-xstack-auto"
7616         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7617         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7618         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7619         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7620         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7621           make-library by MAKE_LIBRARY
7622         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7623           regression tests for xstack
7624         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7625         * support/regression/tests/critical.c: test for critical on mcs51
7626
7627 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7628
7629         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7630           built version of sdcc instead of installed version
7631
7632 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7633
7634         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7635         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7636           vprintf.c now
7637         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7638         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7639           WARNING: remove device/lib/build/z80/printf.o by hand when
7640           updating from previous build!
7641         * device/lib/z80/printf.c: updated comment
7642         * support/regression/tests/bug1057979.c: test all ports now
7643         * support/regression/tests/bug1065458.c: file added
7644
7645 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7646
7647         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7648           *_start and *_end symbols for static functions
7649
7650 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7651
7652         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7653           and search crt0.o in all library paths,
7654           (setIncludePath): proper handling of --nostdinc,
7655           (setLibPath): proper handling of --nostdlib
7656         * support/regression/Makefile,
7657         * support/regression/ports/ds390/spec.mk,
7658         * support/regression/ports/gbz80/spec.mk,
7659         * support/regression/ports/hc08/spec.mk,
7660         * support/regression/ports/mcs51/spec.mk,
7661         * support/regression/ports/mcs51-large/spec.mk,
7662         * support/regression/ports/mcs51-stack-auto/spec.mk,
7663         * support/regression/ports/z80/spec.mk: use include and lib files from
7664           built version of sdcc instead of installed version
7665         * doc/sdccman.lyx: fixed typo in --nostdinc
7666
7667 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7668
7669         * src/pic/pcode.c,
7670         * src/pic/device.c,
7671         * src/pic/ralloc.c,
7672         * src/pic/gen.c : added support to generate code for struct bit fields.
7673
7674 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7675
7676         * as/xa51/xa_version.h,
7677         * device/include/errno.h,
7678         * device/include/regc515c.h,
7679         * device/lib/_itoa.c,
7680         * device/lib/_ltoa.c,
7681         * device/lib/ser_ir_cts_rts.c,
7682         * sim/ucsim/xa.src/glob.cc,
7683         * sim/ucsim/xa.src/inst_gen.cc,
7684         * sim/ucsim/xa.src/xa_bit.cc,
7685         * sim/ucsim/xa.src/xa_sfr.cc,
7686         * sim/ucsim/z80.src/inst_dd.cc,
7687         * sim/ucsim/z80.src/inst_fdcb.cc,
7688         * support/scripts/keil2sdcc.pl,
7689         * src/pic16/pic16.dsp,
7690         * src/pic16/pic16a.dsp: corrected cvs line endings
7691         * device/lib/printf_large.c: fixed bug 1057979
7692         * src/pic16/gen.c: fixed non-C standard code
7693         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7694         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7695         * support/regression/ports/mcs51/support.c: reload T1 asap
7696         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7697           pdata use and clear idata startup behaviour
7698         * support/regression/tests/bug1057979.c: added
7699
7700 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7701
7702         * device/examples/ds390/ow390/ad26.h,
7703         * device/examples/ds390/ow390/cnt1d.h,
7704         * device/examples/ds390/ow390/crcutil.c,
7705         * device/examples/ds390/ow390/ownet.h,
7706         * device/examples/ds390/ow390/owsesu.c,
7707         * device/examples/ds390/ow390/swt12.h,
7708         * device/examples/ds390/ow390/swtoper.c,
7709         * device/examples/ds390/ow390/temp10.h,
7710         * device/examples/ds390/ow390/thermodl.c,
7711         * device/examples/ds390/tinitalk/tinitalk.dsp,
7712         * device/examples/ds390/tinitalk/tinitalk.dsw,
7713         * device/examples/mcs51/clock/hw.h,
7714         * device/examples/mcs51/simple2/go.bat,
7715         * device/examples/serialcomm/windows/serial.h,
7716         * device/examples/xa51/dummy.c,
7717         * device/examples/xa51/hello.c,
7718         * device/include/80c51xa.h,
7719         * device/include/at89x051.h: corrected cvs line endings
7720
7721 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7722
7723         * src/pic16/main.c (options): added command line --gstack, to trace
7724         stack over/under flows,
7725         * added pragma 'wparam' to allow passing first byte of function
7726         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7727         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7728         call to __gstack_test function and sets up the symbol as extern,
7729         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7730         * popaop): added call to pic16_testStackOverflow,
7731         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7732         wparamList list,
7733         * (genCall, genPcall): now all parameters are passed via stack
7734         except in functions that are pass to wparam pragma in which WREG is
7735         used too,
7736         * (genPcall): REENTRANT flag is checked to see if variable prototype
7737         contains reentrant keyword, don't call a non-reentrant function, via
7738         a reentrant function pointer or vice versa, functions are never
7739         passed via WREG,
7740         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7741         D.Winkler,
7742         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7743         SIGSEGV when accessing a NULL register stucture,
7744         * (pic16_printGPointerType): modified to handle UPPER modifier for
7745         function initializers, changed prototype of function to simpler one,
7746         * (pic16_printIvalFuncPtr): check to see if function is already
7747         added in externs list,
7748         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7749         optimized a move from W to SFR with a move to the same register
7750         later after a CALL,
7751         * device/lib/pic16/debug: NEW directory, contains debug features
7752         which are enabled when linking with libdebug.lib, currently command
7753         line option --gstack enables stack pointer tracing for over/under
7754         flow, corresponding sources are in debug/gstack
7755
7756 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7757
7758         * doc/sdccman.lyx: updated SDCC version,
7759         * (PIC16 port): update list of command line options,
7760         * src/pic16/device.h (structure pic16_options_t): added field gstack
7761         to enable stack overflow tracing on push/pops,
7762         * src/pic16/device.c (statistics structure): added statistics
7763         structure,
7764         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7765         pic16_dump_int_registers): increase statistics counters for each
7766         * variable which is encountered
7767         * (pic16_dump_usection): emit each .udata variable to its own udata
7768         section,
7769         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7770         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7771         parameters via stack, otherwise use old scheme,
7772         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7773         assembler output file,
7774         * src/pic16/main.c: added command line options --gstack to enable
7775         push/pop tracing for stack overflow,
7776         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7777         instructions): added size of each instruction,
7778         * (pic16_countInstruction): estimate size of instructions in
7779         the_pFile list, inline assembly blocks are not counted,
7780         * (pic16_FixRegisterBanking): trace previous register usage, when
7781         banksel optimizations is greater than 0, don't emit a redudant
7782         banksel directive,
7783
7784 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7785
7786         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7787         * src/pic16/ralloc.c : applied same fix for pic16.
7788         * src/pic/gen.c : tidied it up a little.
7789
7790 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7791
7792         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7793         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7794
7795 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7796
7797         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7798
7799 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7800
7801         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7802         non-reentrant function __modsint in the interrupt function (thus
7803         corrupting math operations during serial I/O)
7804         * device/lib/ser_ir.c: as above, changed buffersize
7805         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7806         256.c,d for zeroing
7807         * doc/Makefile: added option -t for rsync
7808
7809 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7810
7811         * src/SDCCast.h (struct ast),
7812         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7813
7814 2004-10-20 Borut Razem <borut.razem AT siol.net>
7815
7816         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7817         package
7818
7819 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7820
7821         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7822         makefile targets,
7823         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7824         support functions to replace long sequences of MOVFF's from access
7825         bank registers to stack and vice versa,
7826         * src/pic16/device.h: added new field opt_flags, where optimization
7827         flags can be set to enable certain features,
7828         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7829         * pBlock, (genFunction, genEndFunction): surroung loop for
7830         saving/loading used registers in stack with PC_INFO pCodes,
7831         INF_LREGS. Code in between can then be optimized by pCode optimizer
7832         to support function calls,
7833         * (genDataPointerSet): fixed bug which loaded float fields in
7834         structures with corrupt data,
7835         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7836         in a standard way debug info on stderr. Feature used for developing
7837         and debugging only,
7838         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7839         obsolete chunks of code,
7840         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7841         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7842         * pic16/src/pcode.c (pic16_newpCodeInfo,
7843         * (pic16_newpCodeOpLocalRegs),
7844         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7845         feature,
7846         * (pic16_pCodeConstString): printing of the initial value of a
7847         symbol as a comment is inhibited since parsing was already done by
7848         copyStr and output is corrupt,
7849         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7850
7851 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7852
7853         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7854
7855 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7856
7857         * as/mcs51/lkarea.c: removed old K&R style,
7858           (lnksect): changed check on boundary error,
7859           (lnksect2): changed check on boundary error,
7860           (lnksect2): extend XSTK to end of page if size = 1
7861         * as/mcs51/lkmain.c: removed old K&R style,
7862           (Areas51): create l_IRAM symbol
7863         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7864         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7865           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7866         * device/lib/_mullong.c: added version to be compiled with xstack
7867         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7868         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7869         * device/lib/mcs51/crtxstack.asm: fixed comment
7870         * src/SDCCglue.c: maxInterrupts defaults to 0,
7871           (emitMaps): added pdata,
7872           (createInterruptVect): (re)moved default,
7873           (glue): added pdata,
7874           (glue): moved __start__xstack to XSTK with default size 1
7875         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7876           and options.float_rent when options.stackAuto is set,
7877           (linkEdit): only write XDATA_NAME if provided on command line
7878         * src/SDCCmem.h,
7879         * src/SDCCmem.c: added pdata
7880         * src/port.h: added pdata_name to PORT
7881         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7882           (saveRegisters, unsaveRegisters): removed usage of B,
7883           (genMinus): fixed accumulator clash,
7884           (genJumpTab): added comment, this needs another look
7885         * src/mcs51/gen.c: added check for "B in use" paranoia,
7886           added pushB() and popB()
7887         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7888           chance
7889         * src/avr/main.c,
7890         * src/ds390/main.c,
7891         * src/hc08/main.c,
7892         * src/mcs51/main.c,
7893         * src/pic/main.c,
7894         * src/pic16/main.c,
7895         * src/xa51/main.c,
7896         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7897           added PSEG (PAG,XDATA) or NULL to port specifier
7898         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7899         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7900           (_mcs51_genInitStartup): removed __start__xstack equ,
7901           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7902         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7903         * src/z80/gen.c (_rleAppend): fixed warnings
7904         * support/regression/tests/zeropad.c: added pdata test
7905         * .version: bumped to 2.4.6
7906
7907 2004-10-17 Borut Razem <borut.razem AT siol.net>
7908
7909         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7910         as a part of nightly build
7911
7912 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7913
7914         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7915         WREG holds the first byte function parameters,
7916         * (aopForSym): take special case for symbols which are in FARSPACE
7917         but in CODESPACE too,
7918         * (assignResultValue): modified to take into account _G.useWreg,
7919         * (genCall): don't use wreg for parameter passing when function is
7920         declared as reentrant, too, added optimization INCF to stack
7921         pointer when stack parameter count is 1,
7922         * (genFunction, genEndFunction): refurnished and fixed to not using
7923         wreg for passing parameters when function has varargs or is
7924         reentrant, fixed bug with symbol name compare for generating
7925         functions in absolute address,
7926         * (pic16_storeForReturn): refurnished,
7927         * (genCmp): began writing a new version of the function, not ready
7928         yet, therefore it is disabled,
7929         * (genAssign): do not read code memory when assigning a function to
7930         a pointer function,
7931         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7932         array of characters, not pointer,
7933         * (pic16initialComments): in debug mode emit an .ident directive for
7934         the assembler,
7935         * (_process_pragma): emit a new warning type (internal to pic16)
7936         when setting stack to default length, emit a similar warning when
7937         placing a function at absolute address and address is not word aligned
7938         * (_pic16_parseOptions): added 'return TRUE' statement,
7939         * (_pic16_linkEdit): if compiling a source, then add the source's
7940         file object, first in the list of objects to link,
7941
7942 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7943
7944         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7945         * src/pic/main.c : removed VC warning.
7946         * src/pic/gen.c : changed comment.
7947
7948 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7949
7950         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7951         reference to a deprecated symbol _GPTRREG was causing failure to
7952         link. Thanks G. M. Gallant for the info.
7953
7954 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7955
7956         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7957         comments for Bugs item #954788.
7958
7959 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7960
7961         * src/pic16/device.c (pic16_dump_gsection,
7962         * pic16_groupRegistersInSection): handle symbols declared to be in
7963         access bank differently,
7964         * src/pic16/gen.c (struct _G): added field resDirect,
7965         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7966         send values read from stack directly to result and don't allocate
7967         temporary values,
7968         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7969         same registers,
7970         * (pic16_sameRegsOfs): NEW,
7971         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7972         free because they were not allocated from temporary pool,
7973         * pic16_popRegFromString): workaround to fix a problem with
7974         allocating variables twice or never,
7975         * (genGenPointerGet): using PRODL instead of FSR0H,
7976         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7977         instead of FSR0H,
7978         * (genAssign): take advantage of the _G.resDirect flag,
7979         * (genCast): around line 11844, use mov2f instead of directly
7980         MOVFF'ing between operands to account for literal values,
7981         * src/pic16/genutils.c: some new debug functions for gpsim have been
7982         added,
7983         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7984         float with integer part only,
7985         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7986         place variables in access bank
7987         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7988         updated sources to reflect recent changes in gen.c
7989
7990 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7991
7992         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7993         sources that searched for headers in installation path, now the
7994         device/include/pic16 is used,
7995         * src/pic16/glue.c (pic16glue),
7996         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7997         .line directives if not in debug mode, this suppresses assembler's
7998         warnings for ignored directives
7999
8000 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
8001
8002         * src/port.h: made reset_regparms prototype void parameter explicit.
8003         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
8004         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8005         * doc/sdccman.lyx: documented warning disabling and how to use
8006           printf_large to make it print floats.
8007         * device/include/stdbool.h: NEW
8008         * device/lib/_atof.c,
8009         * device/lib/_divuint.c,
8010         * device/lib/_divulong.c,
8011         * device/lib/expf.c,
8012         * device/lib/printf_large.c,
8013         * device/lib/sincosf.c,
8014         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8015         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8016           a completely reentrant lib.
8017
8018 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8019
8020         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8021         * device/include/pic16/stdio.h: fixed bug with colon
8022
8023 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8024
8025         * device/include/pic16/stdio.h,
8026         * device/include/pic16/stdlib.h,
8027         * device/include/pic16/math.h: NEW
8028         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8029         declared as _naked to reduce overhead
8030         * device/lib/Makefile.in (target port-specific-objects-pic16):
8031         changed * to *.* so to ignore the CVS directory,
8032         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8033         stacked variables back in stack,
8034         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8035         corruption
8036
8037 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8038
8039         * .version: bumped version number to 2.4.5
8040         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8041         * support/Util/SDCCerr.c (messages structure): added entry for
8042         W_POSSBUG2
8043
8044         Large cumulative patch for pic16 port and libraries.
8045         * device/include/pic16/sdcc-lib.h,
8046         * device/include/pic16/stdarg.h,
8047         * device/include/asm/pic16/features.h,
8048         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8049         * device/include/pic16/float.h: changes reentrant keyword with
8050         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8051         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8052         updated target build-libraries to include objects from gptr,
8053         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8054         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8055         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8056         all function headings,
8057         * src/SDCCmain.c: added global parameter userIncDirsSet,
8058         * (parseCmdLine): when option -I is encountered add directory to
8059         userIncDirsSet too,
8060         * src/version.awk: added space between control and long,
8061         * src/pic16/NOTES: added some notes for the port,
8062         * src/pic16/gen.c: added prototype for mov2fp function,
8063         * (fReturnpic16[]): properly named return value registers,
8064         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8065         * (aopForSym): added code to handle symbols with onStack flag set,
8066         symbols onStack are allocated PTRSIZE bytes,
8067         * (aopFreeAsmop): handles special case where asmops are stack objects,
8068         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8069         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8070         added argument lock to trace flaws in allocating temporary registers
8071         when developing port,
8072         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8073         * (pic16_popRegFromString): reenabled allocating a direct register
8074         from string,
8075         * (assignResultValue): various beautifications,
8076         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8077         referenced function argument,
8078         * (genIpush): reenabled to allow stacked arguments, handles only
8079         ic->parmPush iCodes,
8080         * (genCall, genPcall): major changes to allow for variable argument
8081         functions, fixed a bug with falsely restoring stack pointer after
8082         returning from call,
8083         * (genFunction): pending code for critical function,
8084         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8085         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8086         * (genNearPointerGet): fixed bug with indirect reading, was always
8087         reading from INDF0
8088         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8089         pointers,
8090         * (genAddrOf): rewrote code to take address of a stacked function parameter
8091         * (genCast): fixed casting to generic pointer type,
8092         * src/pic16/gen.h: added AOP_STA,
8093         * (struct asmop): added field stk,
8094         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8095         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8096         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8097         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8098         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8099         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8100         generic pointers,
8101         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8102         and library paths,
8103         * (pic16_port structure): generic pointer size is set to 3,
8104         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8105         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8106         compiler warning,
8107         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8108         operand is an iTemp,
8109
8110 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8111
8112         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8113         * debugger/mcs51/simi.c: addapt new syntax of s51
8114
8115 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8116
8117         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8118         * src/pic16/pcode.c: commented out some calls to free() in order to
8119         fix bug #989576,
8120
8121 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8122
8123         * src/SDCCicode.h,
8124         * src/SDCCicode.c (isiCodeInFunctionCall),
8125         * src/avr/ralloc.c (selectSpil),
8126         * src/pic/ralloc.c (selectSpil),
8127         * src/pic16/ralloc.c (selectSpil),
8128         * src/ds390/ralloc.c (selectSpil),
8129         * src/hc08/ralloc.c (selectSpil),
8130         * src/xa51/ralloc.c (selectSpil),
8131         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8132         stack in the middle of a function call sequence (fixes bug #1020268)
8133         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8134         costs associated with the minimum switch case.
8135
8136 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8137
8138         * src/SDCC.lex: fixed bug #1030549
8139
8140 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8141
8142         * src/SDCCcse.h (struct cseDef),
8143         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8144         over a function call if the CSE is derived from a symbol whose
8145         address has been taken (fixes bug #1029883)
8146         * support/regression/tests/bug-1029883: a new regression test for
8147         this bug
8148
8149 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8150
8151         * src/hc08/gen.c (emitinline): fixed bug #1029778
8152         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8153         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8154         and starts toward RFE #905167)
8155
8156 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8157
8158         * src/pic16/gen.c (mov2f): New function to move an operand to
8159         another without considering if it is a literal or a register,
8160         * (pic16_sameRegs): don't check if they are both AOP_REG,
8161         * (AccRsh): removed andmask=0 lines,
8162         * (genLeftShift): duplicated to be improved in future versions,
8163         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8164         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8165         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8166         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8167         * (insertBankSwitch): fixed inserting banksel directives algorithm
8168         for instructions that follow a skip instruction, this fixes a report
8169         for broken subtraction code generation,
8170         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8171         iCode is a left op, just in case result and right share the same
8172         registers
8173
8174 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8175
8176         * src/hc08/main.c,
8177         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8178         preservation of HX
8179         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8180         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8181         on 2004-09-12; it was buggy
8182
8183 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8184
8185         * src/SDCCsymt.h: removed RESULT_CHECK
8186         * src/SDCCast.c,
8187         * src/SDCCglue.c,
8188         * src/SDCCval.c,
8189         * src/pic/glue.c,
8190         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8191
8192 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8193
8194         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8195         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8196         configuration values no more rejected by compiler, they are assigned
8197         to configuration registers with a warning message instead,
8198         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8199         the for-loop so last conf register is emitted too,
8200         * (_pic16_initPaths): link library libsdcc.lib by default,
8201         * (_hasNativeMulFor): modified test for multiplication according to
8202         Raphael Neider's remarks. Integer multiplication is also done with
8203         support functions,
8204         * device/include/pic16/pic18fregs.h: corrected type error in while
8205         testing and including 18f6720 header file
8206
8207 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8208
8209         * src/pic16/device.h (pic16_options): removed field use_crt,
8210         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8211         until an optimization to handle single bits is added,
8212         * (pic16_loadFSR0): moved before genUnpackBits,
8213         * (genAnd): some white lines removed,
8214         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8215         leave_reset flags in pic16_options when using crt modules,
8216
8217 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8218
8219         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8220           for bugs 898889 & 979599. Also used some safer print instructions.
8221
8222 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8223
8224         * src/pic16/device.h (pic16_options_t): added field use_crt,
8225         crt_name, no_crt,
8226         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8227         catch a probable future bug,
8228         * src/pic16/gen.c: aopIdx function commented out,
8229         * (genAssign): commented out old code which used aopIdx,
8230         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8231         code, added if conditionals to take into account the --use-crt
8232         command line options,
8233         * src/pic16/main.c (pic16_optionsTable): added new command line
8234         options, --use-crt= and --no-crt,
8235         * (_pic16_linkEdit): now the proper crt object is added in the
8236         linker command line except than when --no-crt is specified,
8237         * src/pic16/pcode.c,
8238         * src/pic16/pcode.h: added some structures and functions for a new
8239         optimization scheme to compansate for instruction overhead between
8240         same iCodes, this scheme is currently under development and is not
8241         working in any way,
8242         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8243         to && operator,
8244         * device/lib/pic16/startup/crt0i.c,
8245         * device/lib/pic16/startup/crt0iz.c: added global char variable
8246         __uflags to force the generation of an idata section
8247
8248 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8249
8250         * doc/Makefile,
8251         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8252         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8253
8254 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8255
8256         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8257         Frieder) and clarified the default code optimization mode
8258
8259 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8260
8261         * src/SDCC.lex (doPragma, process_pragma),
8262         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8263         "opt_code_size", and "opt_code_balanced"
8264         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8265         regrouped options by category, added support for category headers
8266         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8267         and "--opt-code-size"
8268         * doc/sdccman.lyx: documented these new options and pragmas
8269         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8270         preference into account
8271
8272 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8273
8274         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8275           geniCodePreDec): Fixed bug 904237 by generating a warning
8276         * src/SDCCerr.h,
8277         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8278
8279 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8280
8281         * src/pic/device.c : When no max ram set validate full memory range.
8282         * src/pic/pcode.c,
8283         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8284
8285 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8286
8287         * device/lib/_gptrget.c,
8288         * device/lib/_gptrput.c: updated comment
8289         * device/lib/calloc.c,
8290         * device/lib/free.c,
8291         * device/lib/malloc.c,
8292         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8293         * src/SDCCcse.c (cseBBlock),
8294         * src/SDCCicode.c (printOperand, geniCodeArray),
8295         * src/SDCCicode.h (struct operand): fixed bug 868103
8296         * support/regression/tests/bug-868103.c: added
8297         * src/SDCCast.c (searchLitOp),
8298         * src/SDCCcse.h (struct cseDef),
8299         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8300         * src/SDCCicode.h (struct operand),
8301         * src/SDCCsymt.h (struct sym_link),
8302         * src/avr/gen.c (hasInc),
8303         * src/ds390/gen.c (hasInc),
8304         * src/hc08/gen.c (genPlusIncr, hasInc),
8305         * src/mcs51/gen.c (hasInc),
8306         * src/pic16/glue.c (pic16_printIvalChar),
8307         * src/pic16/ralloc.c (regWithIdx),
8308         * src/xa51/gen.c (hasInc) : removed warnings
8309         * src/SDCCast.c (createBlock): added comment ???
8310         * src/hc08/ralloc.c: updated comments
8311
8312 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8313
8314         * doc/sdccman.lyx: updated section on switch statements, added
8315         section about semaphore locking
8316         * doc/Makefile: added option -info for latex2html
8317         * device/lib/_gptrget.c,
8318         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8319
8320 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8321
8322         * src/pic/device.h,
8323         * src/pic/device.c,
8324         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8325          maxram is less than 0x100.
8326
8327 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8328
8329         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8330
8331 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8332
8333         * src/port.h,
8334         * src/mcs51/main.c,
8335         * src/ds390/main.c,
8336         * src/z80/main.c,
8337         * src/hc08/main.c,
8338         * src/pic/main.c,
8339         * src/pic16/main.c,
8340         * src/avr/main.c,
8341         * src/xa51/main.c
8342         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8343         a jump table is the best form for a switch statement, including
8344         automatic insertion of missing cases to make the case range
8345         continuous. Developed in collaboration with Frieder Ferlemann.
8346
8347 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8348
8349         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8350         accumulator result if it needs sign extension
8351
8352 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8353
8354         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8355
8356 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8357
8358         * device/lib/gbz80/printf.c,
8359         * device/lib/z80/printf.c: removed define for NULL
8360
8361 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8362
8363         * as/xa51/xa_link.c,
8364         * device/examples/ds390/ow390/ad26.c,
8365         * device/examples/ds390/ow390/cnt1d.c,
8366         * device/examples/ds390/ow390/counter.c,
8367         * device/examples/ds390/ow390/ds2480.h,
8368         * device/examples/ds390/ow390/ds2480ut.c,
8369         * device/examples/ds390/ow390/findtype.c,
8370         * device/examples/ds390/ow390/gethumd.c,
8371         * device/examples/ds390/ow390/owllu.c,
8372         * device/examples/ds390/ow390/ownetu.c,
8373         * device/examples/ds390/ow390/swt12.c,
8374         * device/examples/ds390/ow390/swtloop.c,
8375         * device/examples/ds390/ow390/temp.c,
8376         * device/examples/ds390/ow390/temp10.c,
8377         * device/examples/ds390/ow390/thermo21.c,
8378         * device/examples/ds390/ow390/tinilnk.c,
8379         * device/examples/ds390/ow390/tstfind.c,
8380         * device/examples/serialcomm/windows/serial.cpp,
8381         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8382         * device/include/reg51.h: fixed line endings for cvs
8383
8384 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385
8386         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8387         packRegsForAccUse, packRegisters): new accumulator register
8388         packing algorithm
8389         * support/regression/ports/hc08/support.c (_putchar): suppress
8390         warning of unused variable
8391         * src/SDCCicode.c: added SWAP entry to codeTable
8392
8393 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8394
8395         * device/lib/sprintf.c: forgot to add this file before previous commit
8396
8397 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8398
8399         * src/pic16/gen.c (genPackBits): added operand right in function
8400         parameters, load result directly if p_type is POINTER (that is
8401         called by genNearPointerSet)
8402         * (genUnPackBits): added operand left in function parameters,
8403         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8404         FSR0 if accessing bitfields,
8405
8406 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8407
8408         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8409           _print_format; updated printf, sprintf, vsprintf
8410         * device/include/asm/default/features.h: corrected comment/define
8411         * device/lib/Makefile.in: added sprintf.c
8412         * device/lib/libsdcc.lib: added sprintf module
8413         * device/lib/printf_large.c,
8414         * device/lib/vprintf.c,
8415         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8416           into these 3 files
8417         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8418         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8419         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8420           hc08 test
8421         * support/regression/tests/zeropad.c: define idata as data for hc08
8422
8423 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8424
8425         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8426         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8427         labels are referenced at least once (even if a reference is not found)
8428         * src/hc08/gen.c (emitcode): set isComment flag for comments
8429         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8430         loads), rules 6a..6b (optimize jumps to return)
8431
8432 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8433
8434         * device/lib/acosf.c (acosf),
8435         * device/lib/asinf.c (asinf),
8436         * device/lib/atanf.c (atanf),
8437         * device/lib/ceilf.c (ceilf),
8438         * device/lib/cosf.c (cosf),
8439         * device/lib/coshf.c (coshf),
8440         * device/lib/cotf.c (cotf),
8441         * device/lib/fabsf.c (fabsf),
8442         * device/lib/floorf.c (floorf),
8443         * device/lib/log10f.c (log10f),
8444         * device/lib/logf.c (logf),
8445         * device/lib/sinf.c (sinf),
8446         * device/lib/sinhf.c (sinhf),
8447         * device/lib/sqrtf.c (sqrtf),
8448         * device/lib/tanf.c (tanf),
8449         * device/lib/tanhf.c (tanhf),
8450         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8451         replaced all instances of "reentrant" in the library functions
8452         defined in math.h with this macro.
8453         * support/regression/tests/float_trans.c: reenabled test for hc08
8454
8455 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8456
8457         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8458         erroneously deleted
8459
8460 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8461
8462         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8463         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8464         multi-byte volatile operands are used
8465         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8466         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8467         initialization to area GSINIT0 so that it would always precede
8468         any static initializers in GSINIT
8469         * support/regression/tests/zeropad.c: fixed idata define for hc08
8470         * support/regression/tests/bug-927659.c,
8471         * support/regression/tests/float_trans.c: disabled tests for hc08
8472         pending missing library routines
8473         * .version: increased version number to 2.4.4 - hc08 port now passes
8474         regression tests
8475
8476
8477 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8478
8479         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8480         * Makefile.common.in,
8481         * as/Makefile,
8482         * as/hc08/Makefile.in,
8483         * as/mcs51/Makefile.in,
8484         * as/z80/Makefile.in,
8485         * debugger/mcs51/Makefile.in,
8486         * device/include/Makefile.in,
8487         * device/lib/Makefile.in,
8488         * doc/Makefile,
8489         * link/Makefile,
8490         * link/z80/Makefile.in,
8491         * packihx/Makefile.in,
8492         * sim/ucsim/main_in.mk,
8493         * sim/ucsim/avr.src/Makefile.in,
8494         * sim/ucsim/doc/Makefile.in,
8495         * sim/ucsim/gui.src/serio.src/Makefile.in,
8496         * sim/ucsim/hc08.src/Makefile.in,
8497         * sim/ucsim/s51.src/Makefile.in,
8498         * sim/ucsim/xa.src/Makefile.in,
8499         * sim/ucsim/z80.src/Makefile.in,
8500         * src/Makefile.in,
8501         * support/cpp2/Makefile.in,
8502         * support/librarian/Makefile,
8503         * support/makebin/Makefile: added DESTDIR to the install path proposed
8504         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8505         * doc/sdccman.lyx: added DESTDIR documentation
8506
8507 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8508
8509         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8510         instruction for interrupt handlers, use fast returns when returning
8511         from high priority interrupts
8512
8513 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8514
8515         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8516         code generation
8517         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8518         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8519         bugs, ported much of Bernhard's code from mcs51
8520         * src/mcs51/gen.c (genSend),
8521         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8522         than one when calling a reentrant function
8523         * device/lib/_mullong.c: defined an alternate struct layout for big
8524         endian ports (hc08)
8525
8526 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8527
8528         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8529         test
8530
8531 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8532
8533         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8534         are sane and complete before asking the port its prefered parameter
8535         passing method (fixes bug #1017633)
8536         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8537         and _ret3
8538
8539 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8540
8541         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8542         problem in bitfields >= 8 bits.
8543
8544 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8545
8546         * src/SDCCsymt.c: undid changes that were not meant to be committed
8547
8548 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8549
8550         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8551
8552 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8553
8554         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8555           copied and wrong bit got inverted
8556
8557 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8558
8559         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8560         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8561         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8562         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8563         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8564         assignments to bitfields at known addresses
8565         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8566         reads from bitfields at known addresses
8567         * src/hc08/ralloc.c (packRegisters),
8568         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8569         genhc08Code): optimize pointer get values used as conditionals
8570         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8571         and branch
8572
8573 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8574
8575         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8576         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8577         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8578         as conditionals
8579
8580 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8581
8582         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8583
8584 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8585
8586         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8587         related problems
8588
8589 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8590
8591         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8592
8593 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8594
8595         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8596         mcs51 port
8597
8598 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8599
8600         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8601
8602 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8603
8604         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8605         cases use more compact code.
8606
8607 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8608
8609         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8610
8611 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8612
8613         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8614
8615 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8616
8617         * src/SDCCsymt.h,
8618         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8619         parameter of changePointer() from symbol* to sym_link*
8620         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8621         * src/SDCCsymt.c (compareType): void* type is castable to other
8622         pointers, but not necesarily an exact match.
8623         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8624         is no longer blindly treated as an exact match.
8625         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8626
8627 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8628
8629         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8630
8631 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8632
8633         * src/pic/gen.c,
8634         * src/pic/pcode.c,
8635         * src/pic/ralloc.h,
8636         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8637
8638 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8639
8640         * src/pic/device.c,
8641         * src/pic/device.h,
8642         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8643
8644 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8645
8646         * src/mcs51/gen.c (emitcode): fixed bug #992819
8647
8648 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8649
8650         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8651           there's no need to make it worse
8652
8653 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8654
8655         * src/mcs51/ralloc.c (deassignLR),
8656         * src/ds390/ralloc.c (deassignLR),
8657         * src/hc08/ralloc.c (deassignLR),
8658         * src/z80/ralloc.c (deassignLR),
8659         * src/pic/ralloc.c (deassignLR),
8660         * src/pic16/ralloc.c (deassignLR),
8661         * src/avr/ralloc.c (deassignLR),
8662         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8663         rlivePoint): fixed another part of bug #971834
8664
8665 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8666
8667         * src/z80/main.c: enabled "critical" keyword
8668         * src/z80/mappings.i,
8669         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8670         functions (fixes bug #979646)
8671         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8672
8673 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8674
8675         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8676           such as c:\mydir.
8677
8678 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8679
8680         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8681           doesn't disable too much optimizations
8682
8683 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8684
8685         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8686
8687 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8688
8689         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8690
8691 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8692
8693         * src/pic/gen.c tidied up tabs
8694         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8695         * src/pic/main.c tidied up tabs
8696         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8697         * src/pic/pcoderegs.c tidied up tabs
8698         * src/pic/ralloc.c tidied up tabs
8699
8700 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8701
8702         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8703         to S_FIXED for pic16 port and when symbol is not in level 0,
8704         allocate for S_REGISTER storage class and pic16 port, too,
8705         * src/pic16/device.h: prototype for checkSym,
8706         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8707         * (pic16_assignConfigWordValue): test the value and the mask to
8708         validate that the value is suitable for the configuration word,
8709         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8710         collect extern declared symbols, don't emit symbol twice, check
8711         first if symbol is in publics set first,
8712         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8713         * added command line '--fstack' which enables an experimental
8714         feature for stack access, too buggy to be used yet...
8715         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8716         * (pic16_allocDirReg): when register has storage class S_REGISTER
8717         allocate in pic16_dynAccessRegs,
8718         * device/include/pic16/pic18f????.h: modified configuration word
8719         naming convention, words started as CONFIG0H but should be CONFIG1H
8720
8721 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8722
8723         * device/include/mcs51reg.h: fixed bug 970993
8724
8725 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8726
8727         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8728         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8729         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8730         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8731         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8732         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8733           error/warning numbers,
8734           added function setWarningDisabled()
8735         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8736         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8737           _memcmp.c _memmove.c calloc.c realloc.c free.c
8738         * support/regression/tests/malloc.c: added tests for new functionality
8739         * support/regression/tests/zeropad.c: added tests for truncated initializers
8740           and initialized char arrays starting with '\x0'
8741         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8742
8743 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8744
8745         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8746
8747 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8748
8749         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8750         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8751         peephole 177.e. Thanks to anonymous
8752
8753 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8754
8755         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8756         function isn't used in the source but referenced as a
8757         variable initializer then declare it as extern in .asm file
8758
8759 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8760
8761         * .version: increased version number to 2.4.3
8762
8763         Adding version extension according to ChangeLog CVS revision
8764         * src/Makefile.in (target all): added dependency 'version.h'
8765         * (rule version.h): added rule to create version.h from ChangeLog,
8766         * (rule dep): added dependency version.h,
8767         * src/version.awk: AWK script to create version.h
8768         * src/SDCCdwarf2.c (dwWriteModule),
8769         * src/SDCCglue.c (initialComments),
8770         * src/SDCCmain.c (printVersionInfo): modified to write after
8771         version string the version extension number,
8772         * src/SDCCutil.c: included "version.h"
8773         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8774         number,
8775         * src/SDCCutil.h: added prototype for getBuildNumber
8776
8777         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8778         includeDirsSet, too,
8779         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8780         const char [] is found in function prototype...
8781
8782         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8783         moving to WREG with source is already in WREG,
8784         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8785         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8786         * (aopForSym): stack'ed symbols are partially supported, added
8787         if-clause to support symbols in FARSPACE,
8788         * (sameRegs): added test for AOP_ACC to see if registers are same,
8789         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8790         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8791         * (pic16_popRegFromString): will not allocate a new register if it
8792         doesn't find one by name, bug may have introduced...
8793         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8794         * (genIpush): revived to use pic16 port's stack,
8795         * (genAddrOf): added incomplete case for stack'ed operand,
8796         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8797         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8798         can handle multibyte operands,
8799         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8800         * (pic16initialComments): added message for MPLAB compatibility
8801         mode enabled,
8802         * src/pic16/main.h: prototype for pic16_mplab_comp,
8803         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8804         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8805         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8806         because of increased complexity of procedure,
8807         * (_process_pragma): stack pragma changed to format 'stack pos len',
8808         emit symbol '_stack_end' to conform with gplink,
8809         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8810         to search for register,
8811         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8812         PO_GPR_REGISTER,
8813         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8814         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8815         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8816         case for PO_GPR_REGISTER,
8817         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8818         dies, the new era is ahead !...
8819         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8820         pic16_dynInternalRegs,
8821         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8822         * (pic16_allocDirReg): minor optimizations and bug fixes,
8823         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8824
8825         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8826         load stack and frame pointer with address of 'stack_end' symbol
8827
8828 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8829
8830         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8831         without source code but only variable initializers
8832
8833 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8834
8835         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8836         external are not declared as extern to reduce overhead while linking
8837
8838 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8839
8840         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8841
8842 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8843
8844         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8845           Yee Keat for the patch
8846         * src/SDCCast.c (decorateType): fixed bug #979599
8847         * src/ds390/gen.h: removed local fReturnSizeDS390
8848         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8849         * src/ds390/gen.c (genAnd, genOr, genXor),
8850         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8851
8852 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8853
8854         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8855         add relFilesSet to $3, manipulate $2 to handle linking of object
8856         files without source files in command line,
8857         * device/include/pic16 (all headers): added ID location macros,
8858         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8859         entries for ID location bytes,
8860         * (pic16_assignIdByteValue): NEW,
8861         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8862         added field dumpcalltree to pic16_options_t,
8863         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8864         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8865         emitting rFalseIfx label after check_carry label,
8866         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8867         pic16_emitDIRegs), NEW
8868         * (pic16glue): dump .calltree file when option --calltree found,
8869         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8870         * (_pic16_genAssemblerPreamble): emit ID locations after
8871         configuration registers,
8872         * (pic16_linkCmd): modifications of the link command,
8873         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8874         * (pic16_pCodeInitRegisters): don't init stack registers,
8875         * (pic16_findPrevInstruction): fixed bug,
8876         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8877         bug with immediate registers,
8878         * (buildCallTree): traces stack push and pop,
8879         * (pct2): dump also stack usage for each function,
8880         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8881         * (pic16_allocDirReg): various modifications,
8882         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8883         fixed to 1,
8884
8885 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8886
8887         * src/pic16/pcode.c: removed buggy double colon
8888
8889 2004-07-01 Borut Razem <borut.razem AT siol.net>
8890
8891         * support/scripts/sdcc.nsi: added include/pic16 to setup
8892
8893 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8894
8895         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8896         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8897         target 'clean',
8898         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8899         specific command line arguments. Also added sample lkr script
8900         for placing a variable at a specific memory bank.
8901         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8902         at a specific memory bank,
8903         * (pic16_dump_isection): fixed bug which caused string literals to
8904         be omitted when dumping idata section,
8905         * (pic16_groupRegistersInSection): added code to handle registers
8906         in specific memory banks,
8907         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8908         public, all references are renamed too,
8909         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8910         AOP_DPTR2,
8911         * (pic16_storeForReturn): added case to handle when dest is WREG,
8912         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8913         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8914         pic16_rel_udata, check to see if that register is marked as being
8915         a member of a specific memory bank,
8916         * (pic16_printIvalCharPtr): added code to add string literals either
8917         to code or the idata sections,
8918         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8919         also accept the 'udata' pragma,
8920         * src/pic16/main.h: new structure types sectName and sectSym
8921         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8922         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8923         * (pic16_findPrevInstruction): fixed, it returned nothing,
8924         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8925         instruction combinations,
8926         * (pic16_FixRegisterBanking): heavily reorganised,
8927         * (pic16_AnalyzeBanking): if generating banksel directives is
8928         disabled, then don't call FixRegisterBanking at all,
8929         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8930         completely removed,
8931         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8932
8933 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8934
8935         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8936         Phuah Yee Keat <yk.phuah AT nestac.com>
8937
8938 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8939
8940         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8941         correctly the IVT even if it is relocated to some other location
8942
8943 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8944
8945         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8946         * device/include/pic16/pic18f2220.h: NEW,
8947         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8948         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8949         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8950         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8951         nodefaultlibs, ivt_loc is the location of the interrupt vector
8952         table, and nodefaultlibs signs that default libraries should not be
8953         linked in link stage,
8954         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8955         according to --ivt-loc argument,
8956         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8957         when pragma stack is found,
8958
8959 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8960
8961         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8962         256 (range check), 257 (do while), 258.a-f (bit banging
8963         f.e. on 3-wire SPI bus)
8964
8965 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8966
8967         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8968         variables used exclusively within a loop
8969
8970 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8971
8972         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8973
8974 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8975
8976         * src/SDCClrange.c (computeClash): fixed bug #971834
8977
8978 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8979
8980         * src/mcs51/gen.c (genCmp): fixed bug #975903
8981         * src/hc08/gen.c (operandsEqu),
8982         * src/ds390/gen.c (operandsEqu),
8983         * src/z80/gen.c (operandsEqu),
8984         * src/pic/gen.c (operandsEqu),
8985         * src/pic16/gen.c (operandsEqu),
8986         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8987         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8988
8989 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8990
8991         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8992
8993 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8994
8995         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8996         default case in switch statement,
8997         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8998         to eliminate problem with initialisation of pointers, but problem
8999         still exists,
9000         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
9001         * (emitStaticSegment): removed various lines emitting debug info,
9002         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
9003         added processor registers for utilizing EEPROM,
9004         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9005         configurable and set 8
9006
9007 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9008
9009         * .version: increased version number to 2.4.2,
9010
9011         Cumulative patch for pic16 port
9012         * src/pic16/device.c: changed scheme to dump initial values for
9013         variables in idata segment, all print_idata* functions were removed,
9014         now the pic16_printIval* will be called,
9015         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9016         * _pic16_printPointerType, pic16_printPointerType,
9017         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9018         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9019         NEW, similar to the respective functions in SDCCglue.c,
9020         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9021         way, emitting hex bytes,
9022         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9023
9024 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9025
9026         * src/avr/ralloc.c (serialRegAssign),
9027         * src/xa51/ralloc.c (serialRegAssign),
9028         * src/pic/ralloc.c (serialRegAssign),
9029         * src/pic16/ralloc.c (serialRegAssign),
9030         * src/hc08/ralloc.c (serialRegAssign),
9031         * src/z80/ralloc.c (serialRegAssign),
9032         * src/ds390/ralloc.c (serialRegAssign),
9033         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9034
9035 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9036
9037         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9038         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9039
9040 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9041
9042         Cumulative patch for pic16 port:
9043         * src/pic16/device.h (typedef PIC16_device) modified fields for
9044         defining microcontrollers,
9045         * src/pic16/device.c: added new info for all devices in Pics16 array,
9046         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9047         to be optimised out by the pCode optimiser,
9048         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9049         specially, bug reported by G.M. Gallant,
9050         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9051         as force'd so that cannot be optimised out by pCode optimiser,
9052         * src/pic16/pcode.c,
9053         * src/pic16/pcodepeeph.c,
9054         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9055         they are disabled by default, but can be enabled explicit with
9056         command argument --denable-peeps, for testing,
9057         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9058         --pomit-ivt in COMPILE_FLAGS
9059
9060 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9061
9062         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9063           compilation on MSVC
9064
9065 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9066
9067         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9068
9069 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9070
9071         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9072         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9073
9074 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9075
9076         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9077         would only assign 0x300001 register.
9078
9079 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9080
9081         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9082         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9083
9084 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9085
9086         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9087         for ds80c400
9088         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9089         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9090         added peephole 254 (left shift), 255 (jump table)
9091
9092 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9093
9094         * device/lib/Makefile.in: removed comment line with model-pic16,
9095         * (target port-specific-objects-pic16): the libraries and objects
9096         are copied to the build directory form the device/lib/pic16/bin
9097         directory
9098
9099         Cumulative patch concerning pic16 port:
9100         * library directory has been re-organized,
9101         * added support for PIC18F1220,
9102         * added headers and library sources for chips 18f1220,18f6520,
9103         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9104
9105         * configuration registers setting has changed, now each supported
9106         device has a complete description of the registers it uses,
9107         * all initialisations are moved to idata sections, these section
9108         can be absolute or relocatable,
9109         * fixed initialisation of codespace variables,
9110         * fixed warning about PCLATU and gpsim,
9111         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9112         * (genAssign): use table reads when assigning from variables in codespace,
9113         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9114         char/int variables placed in codespace,
9115         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9116         registers set in .asm file, no need for --pomit-config-words anymore,
9117         * (pic16glue): some 8051 legacy segments are commented out
9118         (to be removed completely),
9119         * added support for alternative assembler and linker with --asm=
9120         and --link= command line arguments,
9121         * peepholes are disabled automatically in the port, no need to
9122         specify on command line,
9123         * port supports natively char/int/long multiplication, but converts
9124         all divisions to support functions,
9125         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9126         to the file set in variable $2,
9127         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9128         strings in ASCII format and not in hex,
9129         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9130         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9131         allocate proper register if iCodes aren't temporary,
9132
9133 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9134
9135         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9136
9137 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9138
9139         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9140         is commented out
9141
9142 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9143
9144         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9145         computed address is reused
9146         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9147         multi-byte bitfields
9148
9149 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9150
9151         * src/z80/gen.c: (genArrayInit): must check for pointers too
9152
9153 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9154
9155         * support/regression/tests/zeropad.c: never meant to commit the
9156           nestedstruct test: removed, added check for GCC version
9157
9158 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9159
9160         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9161         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9162         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9163           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9164           bugs 928906 and 954082 half-empty initializers
9165         * src/SDCCsymt.h,
9166         * src/SDCCsymt.c (getAllocSize): added for above fix
9167         * src/z80/gen.c (genArrayInit): fixed bug 741044
9168         * support/regression/tests/zeropad.c: added tests
9169
9170 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9171
9172         * src/pic16/device.c (pic16_dump_section): corrected bug which
9173         caused some symbols of the libraries to be misplaced
9174
9175 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9176
9177         * src/pic16/glue.c,
9178         * src/pic16/ralloc.h,
9179         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9180         to fix conflict with pic port
9181
9182 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9183
9184         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9185         externs configuration variables,
9186         * src/pic16/ralloc.h,
9187         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9188         prototype in header, commented out some debug messages
9189
9190 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9191
9192         * src/pic16/glue.c,
9193         * src/pic16/main.c,
9194         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9195         for gpasm COFF object generation. Thanks to D. Hawkins for
9196         his patch info
9197
9198 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9199
9200         * src/ds390/main.c,
9201         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9202         Brock for spotting this)
9203         * src/ds390/gen.c (genEndFunction),
9204         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9205         interrupt handler and critical. Disable push/pop optimizations when
9206         peephole optimizations disabled.
9207
9208 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9209
9210         Updated pic16 library sources and headers.
9211         * device/lib/pic16/pic18f*/ ,
9212         * device/include/pic16/*.h: modified to handle structured SFR
9213         definitions
9214
9215 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9216
9217         * src/port.h (PORT structure): added hook initPaths, now each
9218         port can declare its own default search paths,
9219         which can been seen with the --print-search-dirs option,
9220         see pic16 port for example,
9221         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9222         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9223         * (doPrintSearchDirs): NEW, replaces in a central manner the
9224         printing of search dirs which was split in set*Paths functions,
9225         * (main): added call to port->initPaths and doPrintSearchDirs,
9226         * src/avr/main.c,
9227         * src/ds390/main.c,
9228         * src/hc08/main.c,
9229         * src/izt/i186.c,
9230         * src/izt/tlcs900h.c,
9231         * src/mcs51/main.c,
9232         * src/pic/main.c,
9233         * src/pic16/main.c: modified port structures to reflect addition of
9234         initPaths hook,
9235
9236         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9237         * (pic16_dump_section): for registers in same address reserve memory once,
9238         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9239         to no_banksel,
9240         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9241         result is greater in size than right or left,
9242         * (pic16_genUMult8X8_8): there are some cases where the result can
9243         be 16 bits size, so handle these,
9244         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9245         * (pic16_outBitC): modified to emit pcodes,
9246         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9247         or not,
9248         * (genDivOneByte): implemented algorithm to divide 8-bits,
9249         * (genCmp): uncommented goto, but issues still exist,
9250         * (genAnd): fixed a bug with variables >8bits,
9251         * (genPackBits): optimization added that uses BCF/BSF to change a
9252         single bit,
9253         * (genAssign): fixed bug when assigning floating point literals,
9254         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9255         __sdcc_gsinit_startup label,
9256         * src/pic16/main.c (_pic16_init): removed search directory
9257         initialisations,
9258         * (_pic16_initPaths): NEW, used to initialise search directories,
9259         * (_hasNativeMulFor): support functions for all except char/int
9260         multiplication, and char division,
9261         * (PIC16_port struct): modified entry for native mul support,
9262         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9263         no_banksel option,
9264         * (buildCallTree): call to register_usage is ifdef'ed out,
9265
9266 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9267
9268         * device/include/string.h: applied Stas Sergeev's patch to make this
9269         header file compatible with the preprocessor -Wundef option
9270         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9271         failure (fixes bug #941458)
9272
9273 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9274
9275         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9276         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9277         that the variable, not the function, should be static
9278         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9279         to be consistent with non-literal case
9280
9281 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9282
9283         * src/SDCCast.c (isConformingBody): fixed bug #949967
9284         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9285         convilong): fixed bug #952086
9286
9287 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9288
9289         * src/SDCCmem.c (allocVariables): fixed bug #955321
9290
9291 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9292
9293         * src/hc08/main.c (_hc08_genAssemblerEnd),
9294         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9295         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9296         completely eliminated the use of a temporary file
9297         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9298         when more than one file linked
9299         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9300
9301 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9302
9303         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9304         which fixes bug #543481
9305         * support/regression/tests/bug-751703.c: fixed comments left from a
9306         cut and paste error
9307         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9308         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9309         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9310         scopes
9311         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9312         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9313         are now changed to underscores in moduleName
9314
9315 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9316
9317         * as/mcs51/lkmem.c: better fix for bug #954173
9318
9319 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9320         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9321
9322         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9323         * device/include/c8051f000.h,
9324         * device/include/c8051f120.h,
9325         * device/include/c8051f300.h,
9326         * device/include/c8051f310.h,
9327         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9328         PWM16) and detab'ed
9329
9330 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9331
9332         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9333         and mailing lists, doc'ed --no-peep-comments, removed reference
9334         to knoppix (newest version has no LyX/LaTeX), other minor changes
9335         * src/SDCCglue.c (glue): save 2 bytes stack space with
9336         option --main-return. The ljmp could probably be avoided too
9337
9338 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9339
9340         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9341
9342 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9343
9344         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9345         * src/SDCCopt.c (isLocalWithoutDef),
9346         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9347         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9348         (credit to Maarten Brock for patch #949363, on which this is based)
9349         * support/regression/tests/bug-751703.c: some test cases of extern used
9350         within inner scopes.
9351
9352 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9353
9354         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9355         SPEC_STRUCT
9356         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9357         struct definitions
9358         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9359         dwWriteLabel): fix to create valid debugger symbols even when
9360         the module name has non-alphanumeric symbols in it
9361         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9362         when a variable's allocation has been optimized away
9363
9364
9365 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9366
9367         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9368         * src/hc08/main.c,
9369         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9370         * src/mcs51/main.c,
9371         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9372         * src/ds390/main.c,
9373         * src/z80/gen.c (z80_emitDebuggerSymbol),
9374         * src/z80/main.c,
9375         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9376         * src/pic/main.c,
9377         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9378         * src/pic16/main.c,
9379         * src/avr/gen.c (avr_emitDebuggerSymbol),
9380         * src/avr/main.c,
9381         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9382         * src/xa51/main.c,
9383         * src/SDCCdebug.c (emitDebuggerSymbol),
9384         * src/SDCCdebug.h,
9385         * src/port.h: added a debugger struct to the port struct. Added a
9386         callback for defining debugger symbols
9387
9388         * src/SDCCast.c (createLabel),
9389         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9390         with isitmp = 1
9391         * src/SDCCicode.h,
9392         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9393         iCode back to the ast for the function
9394
9395         * src/hc08/ralloc.c (hc08_assignRegisters),
9396         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9397         unneeded fields from the regs struct.
9398         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9399         pushReg() & pullReg() functions instead of emitcode()
9400
9401         * src/hc08/gen.c (genLabel, genhc08Code),
9402         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9403
9404         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9405         debugger hooks
9406
9407         * src/hc08/gen.c (genEndFunction, genhc08Code),
9408         * src/hc08/gen.h,
9409         * src/mcs51/gen.c (genEndFunction, gen51Code),
9410         * src/mcs51/gen.h,
9411         * src/ds390/gen.c (genEndFunction, gen390Code),
9412         * src/ds390/gen.h,
9413         * src/z80/gen.c (genEndFunction, genZ80Code),
9414         * src/z80/gen.h,
9415         * src/z80/z80.h,
9416         * src/pic/gen.c (genEndFunction, genpic14Code),
9417         * src/pic/gen.h,
9418         * src/pic16/gen.c (genEndFunction, genpic16Code),
9419         * src/pic16/gen.h,
9420         * src/avr/gen.c (genEndFunction, genAVRCode),
9421         * src/avr/gen.h,
9422         * src/xa51/gen.c (genEndFunction, genXA51Code),
9423         * src/xa51/gen.h,
9424         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9425         specific code to cdbFile.c and out of the backend code generators
9426
9427         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9428         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9429         starting address is now 0
9430
9431         * as/hc08/asm.h,
9432         * as/hc08/m08pst.c,
9433         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9434         assembler directive for DWARF support
9435         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9436
9437         * src/src.dsp,
9438         * src/Makefile.in,
9439         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9440
9441 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9442
9443         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9444         and inappropriate peephole optimization in jump tables
9445
9446 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9447
9448         * as/hc08/m08pst.c,
9449         * src/SDCCglue.c: sdccopt works for the hc08 port now
9450
9451 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9452
9453         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9454
9455 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9456
9457         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9458
9459 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9460
9461         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9462         rules
9463         * src/SDCCmain.c,
9464         * src/SDCCglobl.h,
9465         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9466         comments from the peephole optimizer replacement rules
9467         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9468         symbols
9469         * src/SDCCcse.c (updateSpillLocation),
9470         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9471         equivalents
9472         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9473         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9474         objects far pointers
9475
9476 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9477
9478         * src/SDCCsymt.h: a missing part of my last change
9479         * src/pic/ralloc.c (regTypeNum),
9480         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9481
9482 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9483
9484         * src/SDCCicode.h,
9485         * src/SDCCicode.c (aggrToPtrDclType),
9486         * src/SDCCptropt.h,
9487         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9488         ptrPseudoSymConvert),
9489         * src/pic/ralloc.c (regTypeNum),
9490         * src/pic16/ralloc.c (regTypeNum),
9491         * src/hc08/ralloc.c (regTypeNum),
9492         * src/ds390/ralloc.c (regTypeNum),
9493         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9494         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9495
9496 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9497
9498         * link/z80/lkmain.c (afile),
9499         * as/hc08/lkmain.c (afile),
9500         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9501         prevent a pointer problem when a filename has no directory and
9502         no extension specified.
9503
9504 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9505
9506         * link/z80/lkmain.c (afile): allow periods in directory names
9507         * link/z80/lkmain.c (afile),
9508         * as/mcs51/lkmain.c (afile),
9509         * as/hc08/lkmain.c (afile): allow linker script file to have an
9510         extension other than ".lnk"
9511         * link/z80/lklex.c (getfid),
9512         * link/z80/lkmain.c (parse),
9513         * as/mcs51/lklex.c (getfid),
9514         * as/mcs51/lkmain.c (parse),
9515         * as/hc08/lklex.c (getfid),
9516         * as/hc08/lkmain.c (parse): Support comments in the linker script
9517         file on lines by themselves and after filenames
9518
9519 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9520
9521         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9522
9523 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9524
9525         * src/z80/peeph-z80.def: removed some peephole rules that don't
9526         work with multibyte arithmetic (fixed bug #937126)
9527         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9528         to registers and not global variables
9529         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9530         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9531         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9532         checking for assignments not internally generated (fixed bug #931895)
9533         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9534         structure member (fixed bug #930072)
9535
9536 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9537
9538         * src/SDCCmain.c (linkEdit),
9539         * src/hc08/main.c (_hc08_parseOptions),
9540         * as/hc08/Makefile.in,
9541         * as/hc08/aslink.h,
9542         * as/hc08/asm.h,
9543         * as/hc08/m08pst.c,
9544         * as/hc08/lkrloc.c (relr, rele),
9545         * as/hc08/lkarea.c (lnkarea)
9546         * as/hc08/lkmain.c (afile, parse),
9547         * as/hc08/lkelf.c: support for ELF output
9548         * as/hc08/lks19.c (s19),
9549         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9550
9551 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9552
9553         * as/mcs51/lkihx.c: Fixed bug #899105.
9554
9555 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9556
9557         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9558         .dsp files from Unix to DOS.
9559
9560 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9561
9562         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9563         function pointers; we have been compliant for several months now.
9564         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9565         change that was accidently commented out
9566         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9567         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9568         bug #922319
9569
9570 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9571
9572         * src/hc08/gen.c: output of all of the internal debugging information
9573         is now controlled by the D() macro; it is disabled by default
9574
9575 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9576
9577         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9578         harder to keep the same registers during a CAST iCode
9579         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9580         long via int can be done in a single cast, if the signedness is
9581         correct.
9582         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9583         putchar() in tinibios.c in ds390's library
9584
9585 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9586
9587         * src/SDCCast.c (decorateType): fixed bug #898889,
9588         cast result of a literal complement too
9589         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9590         fixed check for bitfields
9591
9592 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9593
9594         * src/SDCCicode.c (geniCodeLogic): made it static,
9595         (geniCodeLogicAndOr): added in order to fix bug #905492,
9596         (ast2iCode): fixed bug #905492
9597         * support/regression/tests/bug-905492.c: added
9598         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9599         (processParms): fixed bug #927659: don't copy parms, this will clear
9600         decorated flag
9601         * support/regression/tests/bug-927659.c: added
9602
9603 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9604
9605         * src/SDCCast.c (addCast): don't cast float to char
9606         * device/lib/libsdcc.lib: added _memmove
9607
9608 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9609
9610         * device/lib/large/Makefile: fixed parallel execution by
9611         replacing `make` by `$(MAKE)`
9612
9613 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9614
9615         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9616         offsets (fixes bug #923936)
9617
9618 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9619
9620         * device/lib/small/Makefile: fixed parallel execution by
9621         replacing `make` by `$(MAKE)`
9622
9623 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9624
9625         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9626
9627 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9628
9629         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9630         * src/regression/Makefile: Regression test was not running.
9631
9632 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9633
9634         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9635         complement if possible
9636         * src/SDCCval.c (valComplement),
9637         * src/SDCCicode.c (operandOperation): fixed complement of literal
9638         * support/regression/tests/onebyte.c (testComplement): added
9639
9640 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9641
9642         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9643         return an optimized tree; actually replace actParm with the new tree
9644         * src/SDCCast.h: added some parantheses to remove side effects
9645         * support/regression/tests/bug-920866.c
9646
9647 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9648         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9649         Bit operands were not being handled properly in the pic14 port.
9650         (now src/regression/add.c passes again).
9651
9652 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9653
9654         * src/SDCC.y (labeled_statement): case and default no longer require
9655         a following statement (RFE #893037)
9656
9657 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9658
9659         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9660         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9661         disabled (fixes bug #916294)
9662         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9663         "mov a,acc"; patch provided by Lenny Story
9664         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9665
9666 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9667
9668         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9669         functions
9670         * src/ds390/gen.c (genFunction, genEndFunction),
9671         * src/ds390/ralloc.c (ds390_assignRegisters),
9672         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9673         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9674         pushed if there are parameters passed on the stack. Also, a cleaner
9675         way to decide if r0/r1 should be pushed/popped. (Together they fix
9676         bug #918693)
9677
9678 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9679
9680         * doc/sdccman.lyx,
9681         * device/lib/mcs51/crtpagesfr.asm,
9682         * device/lib/mcs51/crtxinit.asm,
9683         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9684         to avoid confusion with Si Lab's SFRPAGE register.
9685
9686 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9687
9688         * src/SDCCglue.c (emitMaps): allow public sfr variables
9689         * src/SDCCglue.c (initialComments): include compiler build date
9690         with compiler version and put the timestamp of the generated
9691         assembly file on a serperate line to be less confusing.
9692         * src/port.h: added genInitStartup hook
9693         * src/avr/main.c,
9694         * src/ds390/main.c,
9695         * src/hc08/main.c,
9696         * src/pic/main.c,
9697         * src/pic16/main.c,
9698         * src/xa51/main.c,
9699         * src/z80/main.c: genInitStartup initialize as NULL (default to
9700         historical behaviour)
9701         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9702         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9703         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9704         library instead of hard coding it into the compiler.
9705         * support/regression/ports/mcs51-stack-auto/spec.mk,
9706         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9707         * device/lib/mcs51/Makefile,
9708         * device/lib/small/Makefile,
9709         * device/lib/large/Makefile,
9710         * device/lib/mcs51/crtpagesfr.asm,
9711         * device/lib/mcs51/crtstart.asm,
9712         * device/lib/mcs51/crtxclear.asm,
9713         * device/lib/mcs51/crtxinit.asm,
9714         * device/lib/mcs51/crtclear.asm,
9715         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9716         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9717         and into user configurable files.
9718         * device/lib/clean.mk: clean mcs51 directory too
9719         * support/regression/tests/longlit.c: added static to T1 declaration
9720         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9721         accesses in the initialization code
9722
9723 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9724
9725         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9726         OSCTRIMVAL as noted in bug #916008
9727
9728 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9729
9730         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9731         in loops with multiple exits (reported as incorrect registers
9732         used by Martin Helmling in Sdcc-user list)
9733
9734 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9735
9736         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9737         made ds390 register extensions look less like error messages
9738
9739 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9740
9741         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9742         reported by Adam Wozniak in Sdcc-user list
9743
9744 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9745
9746         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9747         arithmetic optimizations, added debug output
9748
9749 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9750
9751         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9752         * sdcc.spec: updated and split sdcc into 3 rpms
9753         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9754         needed for literals of LEFT_OP and '+'
9755         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9756         introduced RESULT_TYPE_NOPROM
9757         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9758         left shift
9759         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9760         limited promotion to int only for '*'
9761         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9762
9763 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9764
9765         * src/pic16/gen.c (genSkip),
9766         (genc16bit2lit), (gencjneshort): commented out
9767         (is_LitOp): new helper function, checks operand type
9768         (genCmpEq): rewritten
9769
9770 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9771
9772         * support/regression/tests/bug-908454.c: added
9773
9774 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9775
9776         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9777         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9778         (geniCodeCast): cosmetic, don't preserve bit storage class
9779         (geniCodeLeftShift): added promotion
9780         (geniCodeLogic): fixed regression
9781         * src/SDCCsymt.c (computeTypeOr): accept bits too
9782         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9783
9784 2004-03-07  Borut Razem <borut.razem AT siol.net>
9785
9786         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9787
9788 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9789
9790         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9791         version of pic16_genPackRegisters which does not check if ic is a
9792         CAST operator,
9793         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9794         function cause string1.c regression test fails
9795
9796 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9797
9798         * sim/ucsim/configure.in,
9799         * sim/ucsim/configure,
9800         * sim/ucsim/doc/Makefile.in: use docdir
9801         * src/SDCC.y: fixed sbit atrributes
9802         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9803         * src/SDCCast.c (decorateType): |^& need special promotion handling
9804         * src/SDCCast.h,
9805         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9806         * src/SDCCsymt.h (computeType),
9807         * src/SDCCicode.c: computeType() needs op
9808         * src/SDCCsymt.c (checkTypeSanity),
9809         * doc/sddman.lyx: "plain" bitfields are unsigned
9810         * src/SDCCsymt.c (computeTypeOr): added
9811         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9812         |^& ops
9813         * src/SDCCval.c (val*): computeType() needs op
9814         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9815         * support/regression/tests/onebyte.c: added tests for |^&
9816
9817 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9818
9819         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9820         for writing icode into asm output.
9821
9822 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9823
9824         * src/pic16/device.c: added some debug lines enabled
9825         with macro DEBUG_CHECK,
9826         * src/pic16/genarith.c: more debug in genPlus,
9827         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9828         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9829         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9830         * (aopForSym): onStack symbols are re-placed in data memspace,
9831         and onStack flag is cleared,
9832         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9833         copy temporary pcodeop,
9834         * (genPcall): added warning for not updating PCLATU,
9835         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9836         always true for pic16 port,
9837         * (genMultOneWord): NEW, supports integer multiplication,
9838         * (genMult): modified to call genMultOneWord,
9839         * (ifxForOp): added warning when return NULL,
9840         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9841         flag is set before call to operandFromSymbol for implicit
9842         added structures,
9843         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9844         options.intlong_rent are set by default,
9845         * (_hasNativeMulFor): modified to allow port generation of integer
9846         multiplication,
9847         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9848         set regtype to REG_SFR for all registers, restricting seting the
9849         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9850
9851 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9852
9853         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9854         more than 500 times in the regression tests
9855
9856 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9857
9858         * support/Util/SDCCerr.h,
9859         * support/Util/SDCCerr.c,
9860         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9861         enumerator_list),
9862         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9863         for symbol conflicts.
9864         * support/valdiags/tests/enum.c,
9865         * support/valdiags/tests/tentdecl.c,
9866         * support/valdiags/tests/struct.c: expect possible error messages
9867         referring to original symbol definitions.
9868         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9869         * src/SDCCsymt.h,
9870         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9871
9872 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9873
9874         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9875
9876 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9877
9878         * src/pic16/ralloc.c (newReg): fixed bug #908929
9879
9880 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9881
9882         * src/ds390/gen.c: added missing #include "main.h"
9883
9884 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9885
9886         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9887         checking if symbol is already in set,
9888         * src/pic16/device.h: prototype for checkAddSym,
9889         * src/pic16/gen.c: (_G): added entry interruptvector,
9890         * (assignResultValue): removed some commented out lines,
9891         * (genFunction): check for ISR via sym->type, absolute section for
9892         interrupt code is created via a new pBlock, the goto instruction is
9893         placed now correctly at the interrupt vector position, changed all
9894         references from ivec to _G.interruptvector,
9895         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9896         is the interrupt is a high priority one, same for return from ISR,
9897         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9898         externs to calls of checkAddSym,
9899         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9900         pic16_pcode_verbose flag is set,
9901         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9902         * src/pic16/pcoderegs.c: message about how many registers are saved
9903         will only be emitted if pic16_pcode_verbose flag is set,
9904
9905 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9906
9907         * src/ds390/ralloc.h,
9908         * src/ds390/ralloc.c (ds390_regWithIdx),
9909         * src/ds390/gen.c (emitcode),
9910         * src/ds390/main.h,
9911         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9912         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9913         ds390operandCompare, getRegsRead, getRegsWritten,
9914         initializeAsmLineNode): customized instruction size calculation for
9915         ds390, started basis for some register optimizations
9916         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9917         corresponding assembly output
9918         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9919         missing push/pop of r0/r1. Optimized push/pops
9920
9921 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9922
9923         * src/mcs51/main.c (instructionSize): fixed ACALL size
9924         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9925
9926 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9927
9928         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9929         the sorting of rlist with NULL elements
9930         * (print_idataType, print_idata): NEW to create idata sections
9931         * src/pic16/device.h: idataSymSet new variable
9932         * src/pic16/gen.c (genFunction): fixed some bugs in string
9933         comparing, improved the absolute section creation for ISRs,
9934         added FSR0L/FSR0H in registers that are saved in an ISR,
9935         * (genInline): fixed the processing of inline snippets,
9936         now they undergo no process by the peephole optimizer
9937         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9938         are placed in idataSymSet,
9939         * (pic16emitStaticSeg): extern symbols are added in externs,
9940         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9941         switching when aboslute variables are placed in access bank memory
9942         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9943         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9944         commented out with #if,
9945         * (pic16_packRegisters): reintroduce the check for CAST because some
9946         symbols are not correctly handled,
9947         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9948         pCodeInstruction instead of pCode,
9949         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9950         pCodeAsmDir definition,
9951         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9952         directive, then the argument directive is emitted without the leading
9953         tab, hack for inline labels which must be in the first column,
9954         * (compareLabel,pic16_findNextInstruction),
9955         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9956         * (insertBankSwitch): modified for the new pCodeAsmDir,
9957
9958 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9959         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9960
9961         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9962         instance,
9963         * (pushSide): commented out with #if,
9964         * (assignResultValue): fixed some typos in saving
9965         registers,
9966         * (genPcall): FIXED and sync'ed with genCall,
9967         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9968         * (genNearPointerGet): fixed to handle some more cases,
9969         implementation scheme via table reads,
9970         * (genConstPointerGet): modified to access code memory correct,
9971         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9972         and improved to handle some cases
9973         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9974         instead of "RETLW" for init data
9975         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9976         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9977         variables are placed in access bank memory (<0x80 and >=0xf80),
9978         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9979         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9980         TBLWT_POSTDEC,TBLWT_PREINC
9981         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9982         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9983         directives
9984         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9985         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9986         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9987         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9988
9989 2004-02-29  Borut Razem <borut.razem AT siol.net>
9990
9991         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9992         support/Util/findme.h, support/Util/system.h: enhance binary relative
9993         search for lib and include by using findProgramPath()
9994
9995 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9996
9997         * src/SDCCpeeph.h,
9998         * src/SDCCpeeph.c (pcDistance),
9999         * src/port.h,
10000         * src/mcs51/ralloc.h,
10001         * src/mcs51/ralloc.c (mcs51_regWithIdx),
10002         * src/mcs51/main.h,
10003         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
10004         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10005         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10006         size calculation port specific, started basis for some register
10007         optimizations
10008         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10009         missing push/pop of r0/r1. Optimized push/pops
10010         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10011         * device/lib/_modsint.c (_modsint),
10012         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10013         and stack version so regression tests pass
10014
10015 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10016
10017         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10018         * src/SDCCast.c (decorateType): catch another small optimization
10019         with '?' operator
10020         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10021         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10022         modified to finally use computeType() all over SDCC,
10023         see Feature Request #877103
10024         * src/SDCCval.h: cosmetic
10025         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10026         valCompare(); regression tested in muldiv.c
10027         * support/regression/tests/muldiv.c (testMod): mod sign follows
10028         dividend only
10029
10030 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10031
10032         * src/SDCCast.c (decorateType): fixed bug #902362
10033         * doc/INSTALL.txt: fixed install instructions for win32
10034
10035 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10036
10037         * device/include/Makefile.in (install): fixed by replacing spaces
10038         by tabs
10039         * doc/README.txt,
10040         * doc/INSTALL.txt: updated for release
10041         * doc/sdccman.lyx: added warning for --xstack being buggy
10042
10043 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10044
10045         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10046         to eliminate build warnings.
10047         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10048
10049 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10050            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10051
10052         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10053         removed -penable-stack, added comment for stack pragma, added
10054         warning for not initializing the stack/frame registers, removed
10055         comment at interrupts section
10056
10057         Stack is made permanent, there is no ability to disable stack usage.
10058         * src/pic16/device.h,
10059         * src/pic16/device.c: removed all references to USE_STACK macro,
10060         * src/pic16/device.c (pic16_dump_section): when no elements in
10061         rlist, free rlist before return,
10062         * (pic16_dump_int_registers): NEW, internal registers are a new set
10063         of general purpose registers reused by each function,
10064         * (checkAddReg): returns 1 if registers is added to set,
10065         * (pic16_groupRegistersInSection): when a registers is of type
10066         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10067         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10068         SRCASECMP macro is moved here from device.c
10069         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10070         PO_PCLATU, PO_PRODL, PO_PRODH,
10071         * (pic16_pCodeOpType, genMinus,
10072         changed compares to "a" register, with AOP_ACC,
10073         * (pic16_genPlus): fixed some bugs and indented properly,
10074         * (pic16_addSign): changed size to size+offset in the MOVWF
10075         instruction,
10076         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10077         multiply 8-bit operand by literal, result is 8-bit,
10078         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10079         multiply 2 8-bit operand, result is 8-bit,
10080         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10081         genUMult8X*_16,
10082         * src/pic16/gen.c: changed accUse to contain WREG only,
10083         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10084         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10085         true, do not use immediate addressing any more unless sym is a
10086         pointer in codespace,
10087         * (aopForRemat): do not use immediate addressing when symbol not in
10088         codespace and when symbol's address is requested,
10089         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10090         accUse size (= 1),
10091         * (aopGet): added case for AOP_ACC and don't return "accumulator
10092         bug" but WREG instead,
10093         * (popGetTempReg): pushes contents of temporary register in stack,
10094         * (popReleaseTempReg): pops contents of temporary register from
10095         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10096         * (pic16_popGet): separated case AOP_ACC to return register WREG
10097         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10098         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10099         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10100         the use of immediate pointers to certain cases only.
10101
10102         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10103         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10104         * (assignResultValue, genCall, genRet): modified to use the new
10105         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10106         genPcall is still broken,
10107         * (genFunction): added code to create 'A' type pBlocks when
10108         interrupt functions are generated, code not extensively tested yet,
10109         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10110         * (genEndFunction): modified so ISRs pop stored registers from stack,
10111         * (genMultOneByte): cleanup,
10112         * (AccRsh): added flag andmask, to and result with appropriate mask,
10113         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10114         * (genDataPointerGet): fixed and reenabled its use,
10115         * (genNearDataPointerGet): bugs fixed,
10116         * (genDataPointerSet): bugs fixed,
10117         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10118         pic16_DumpSymbol, pic16_DumpOp,
10119         * src/pic16/genutils.h: function prototypes for the above functions,
10120         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10121         pointers,
10122         * (pic16emitRegularMap): many many many improvements, but needs a
10123         major cleanup,
10124         * src/pic16/main.c: enable_stack in pic16_options is removed,
10125         * (_pic16_parseOptions): removed command line options -penable-stack,
10126         * (_process_pragma): emit stack symbol only when stack pragma is
10127         processed,
10128         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10129         redirected to FSR0L/FSR0H pair,
10130         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10131         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10132         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10133         for immediates,
10134         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10135         * (dumpPicOptype): NEW,
10136         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10137         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10138         with movff instruction,
10139         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10140         added pic16_int_regs, some packRegsFor* functions are commented out,
10141         because produce errors,
10142         * src/pic16/NOTES: minor modifications
10143
10144 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10145
10146         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10147         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10148         --pack-iram.
10149         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10150         * as/mcs51/lkaomf51.c: fixed bug #895763
10151
10152 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10153
10154         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10155
10156 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10157
10158         * doc/sdccman.lyx: added details about the HC08 storage classes and
10159         interrupts, fixed the register usage info for z80 & gbz80
10160
10161 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10162
10163         * doc/sdccman.lyx: added more pic16 port documentation
10164         * device/include/pic16/: added header pic18fregs.h
10165
10166 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10167
10168         * doc/sdccman.lyx: added Vangelis' contribution
10169
10170 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10171
10172         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10173         extend to the next CALL or PCALL, not just to the next CALL.
10174
10175 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10176
10177         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10178
10179 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10180
10181         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10182         bug #895752 and a better fix for bug #716790
10183
10184 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10185
10186         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10187
10188 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10189
10190         * doc/sdccman.lyx: minor changes, minor changed
10191
10192 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10193
10194         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10195         which can't handle SDCC_NEWONEBYTEOPS,
10196         (geniCodeMultiply): removed conversion from mult to shift for pic14
10197         and pic16
10198
10199 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10200
10201         * src/hc08/gen.h,
10202         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10203         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10204         thus fixing bug #895406
10205
10206 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10207
10208         * device/lib/_modsint.c,
10209         * device/lib/_modslong.c: sign follows divisor only
10210         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10211         signs or signedness can be ignored
10212         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10213         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10214         added optimization for IFX,
10215         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10216         arguments;
10217         reenabled optimization for IFX, which was removed on 2004-01-11
10218         * src/SDCCast.h: added return type IFX
10219         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10220         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10221         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10222         SDCC_OLDONEBYTEOPS selects the old behaviour
10223         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10224         changed again and commented promotion rule
10225         * src/SDCCval.c (valDiv): promotion no longer necessary
10226         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10227         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10228         rewritten
10229         * support/regression/tests/onebyte.c: added
10230
10231 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10232
10233         * gen.c (genInline): reverted to old code for assemnling inline
10234         code because of bug reported James Chadd
10235
10236 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10237
10238         * ralloc.h: missing declarations from previous patch,
10239         seems that patch for ralloc.h was never applied, fixed
10240
10241 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10242            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10243
10244         * pcode.c,
10245         * pcode.h,
10246         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10247         indirect addressing. Marked FSR0 as deprecated
10248         * gen.c (pointerCode): commented out, not needed now
10249         (pic16_popGet2p): new MOVFF helper function
10250         (genGenPointerGet),
10251         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10252         (shiftRLong): removed duplicate debugging info
10253
10254 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10255
10256         * src/ds390/gen.c (genNearPointerGet),
10257         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10258         optimization with bits, but not bitfields.
10259         * src/ds390/ralloc.c (packRegisters),
10260         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10261
10262 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10263
10264         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10265
10266 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10267
10268         * src/SDCCsymt.h,
10269         * src/SDCCicode.c (operandFromSymbol),
10270         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10271         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10272         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10273         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10274         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10275         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10276         bug #892038
10277         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10278         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10279         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10280         * src/SDCCsymt.c (newSymbol),
10281         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10282         enumerator_list),
10283         * src/SDCCval.h,
10284         * src/SDCCval.c (newiList): fixed bug #885705
10285
10286 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10287
10288         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10289         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10290
10291 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10292
10293         * device/include/c8051f120.h,
10294         * device/include/c8051f300.h,
10295         * device/include/c8051f310.h: added/updated header files for Silicon
10296         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10297         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10298         in new section Submitting patches
10299
10300 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10301
10302         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10303         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10304         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10305         genGenPointerSet),
10306         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10307         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10308         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10309         genGenPointerSet),
10310         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10311         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10312         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10313         genGenPointerSet),
10314         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10315         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10316         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10317         genGenPointerSet): fixed bug #892400
10318         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10319         to eliminate build warnings.
10320         * src/SDCCast.c (processParms),
10321         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10322         fixed bug 751859
10323         * support/valdiag/valdiag.py: added GCC to the list of defines active
10324         when compiling with gcc
10325
10326 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10327
10328         * support/Util/SDCCerr.h,
10329         * support/Util/SDCCerr.c,
10330         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10331         with an incomplete type (fixed bug #883734)
10332         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10333
10334 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10335
10336         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10337
10338 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10339
10340         * src/SDCCast.c (decorateType),
10341         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10342         function pointer implementation
10343         * support/regression/tests/funptrs.c: added tests to verify both forms
10344         of function pointers work correctly. Added tests to verify parameters
10345         are passed in the correct order.
10346
10347 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10348
10349         * device.c (regCompare): registers are sorted by ascending
10350         address and increasing size,
10351         * main.c (_pic16_finaliseOptions): removed the declaration
10352         of compiler macro MCU. Now a macro of the format pic18fxxxx
10353         will be defined from the command line
10354
10355 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10356             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10357
10358         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10359         PCOP_RLCF was overwritten!
10360         * gen.c (genSkip): commented out calls to pic16_emitcode,
10361         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10362         * (genlshTwo),
10363         * (genRRC): added debugging info,
10364         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10365         overwritten while shifting,
10366         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10367         overwritten while shifting,
10368         * (AccLsh),
10369         * (AccRsh),
10370         * (shiftLLeftOrResult),
10371         * (shiftRLeftOrResult),
10372         * (shiftRLong),
10373         * (shiftLLong): Implemented with pic16_emitpcode
10374         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10375         * (genLeftShift): Fixed bug, operand for shift by variable always
10376         was "and"ed with 0x0f,
10377         * (genLeftShiftLiteral),
10378         * (genrshTwo),
10379         * (genRightShiftLiteral): added debugging info,
10380         * (genrshFour): added comment,
10381         * (genRightShift): determined signedness from operand "left"
10382         instead of "result"
10383
10384 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10385
10386         * src/SDCCicode.c (geniCodeParms),
10387         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10388         function pointers, fixed function pointer bugs #861242 and #861896
10389
10390 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10391
10392         * device/include/c8051f000.h,
10393         * device/include/c8051f120.h,
10394         * device/include/c8051f300.h: added header files for Silicon
10395         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10396
10397 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10398
10399         * src/SDCCast.c (processParams): added new type flow and restructured
10400         (gatherAutoInit): added new type flow
10401         (addCast): cosmetic changes
10402         (getLeftResultType): added new type flow for array indices, patch
10403         provided by Stas, see FR #877103
10404         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10405         array index patch by Stas
10406         * src/SDCCast.h: added prototype getResultTypeFromType()
10407         * src/SDCCval.h,
10408         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10409         * src/pic/glue.c (pic14emitStaticSeg),
10410         * src/pic16/glue.c (pic16emitStaticSeg),
10411         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10412         for initialization of symbols
10413         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10414         * support/Util/SDCCerr.h:
10415         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10416         * .version: bumped version number to 2.3.8
10417         * device/include/Makefile.in (install),
10418         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10419         avoid warnings
10420
10421 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10422
10423         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10424         Slade Rich fixed an optimization bug
10425         * src/pic/pcodepeep.c,
10426         * src/pic/pcoderegs.c
10427         * doc/Makefile (install): added test for directory
10428
10429 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10430
10431         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10432         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10433         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10434         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10435         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10436         * as/mcs51/asexpr.c (term),
10437         * as/hc08/asexpr.c (term): fixed bug #887146
10438
10439 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10440
10441         * src/z80/gen.c (genMult): handle single byte result product
10442         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10443         DUMMY_READ_VOLATILE (fixed bug #886367)
10444
10445 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10446
10447         * support/regression/tests/libmullong.c: fixed logic, on little endian
10448         hosts we ended without a mullong_wrapper()
10449
10450 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10451
10452         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10453         virus/worm forged address usage.
10454
10455 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10456
10457         Fixed promotion, it should be done on AST level:
10458         * src/SDCCast.c (addCast): added promotion to int
10459         (decorateType): updated call to upCast()
10460         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10461         usualUnaryConversions()
10462
10463 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10464
10465         * support/regression/tests/literalop.c (mulWrapper): Added a
10466         wrapper to remove integer overflow warnings.
10467
10468         * support/regression/tests/float_trans.c: Made work on host.
10469
10470         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10471         location of sz80.
10472
10473         * support/regression/generate-cases.py (main): Changed from inline
10474         to a main method.
10475
10476         * doc/Makefile (install): Changed to depth first to get rid of
10477         missing directory install warning.
10478
10479         * as/Makefile (install-doc): Made work on Mac.
10480
10481 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10482
10483         * src/SDCCast.c: added an additional type flow in decorateType() of
10484         opposite direction, see feature request #860006; it's enabled at runtime
10485         by setting the environment variable SDCC_NEWTYPEFLOW
10486         * src/SDCCast.h: changed prototype of decorateType()
10487         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10488         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10489         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10490         see feature request #877103
10491         * src/SDCCval.c: updated call of decorateType()
10492         (valBitwise): fixed bug #882876
10493         (valMinus): added promotion
10494         (valLogicAndOr): result is unsigned
10495         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10496         * src/SDCCsymt.c (computeType),
10497         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10498         must not cause an unsigned operation
10499         * src/pic/glue (pic14emitRegularMap),
10500         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10501
10502 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10503
10504         * src/pic/pcode.c (PCodeID): commented out left over debug code
10505
10506 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10507
10508         * support/valdiag/tests/overflow.c: added shift tests
10509         * src/pic/device.c,
10510         * src/pic/gen.c,
10511         * src/pic/gen.h,
10512         * src/pic/glue.c,
10513         * src/pic/main.c,
10514         * src/pic/pcode.c,
10515         * src/pic/pcode.h,
10516         * src/pic/pcodepeep.c,
10517         * src/pic/pcoderegs.c,
10518         * src/pic/ralloc.c,
10519         * src/pic/ralloc.h: applied patch from Slade Rich;
10520         added support for multiple code pages and multiple RAM banks on the
10521         PIC 14 port. The ASM files now no longer simply assume all the
10522         code / RAM are in the same page / bank. This means the linker can
10523         safely allocate code/RAM of separate ASM files to different pages/banks.
10524         * doc/sdccman.lyx: added Slade's tips
10525         * src/mcs51/peeph.def: fixed bug #880768
10526
10527 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10528
10529         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10530         * src/SDCCast.c (decorateType): fixed bug #880197
10531
10532 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10533
10534         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10535         getopt.h.
10536
10537         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10538         strtof is not part of C89 and isn't included with Mac OS X.
10539
10540 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10541
10542         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10543         shiftL2Left2Result): fixed bug #879326
10544         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10545         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10546         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10547         address fetch for clr instruction
10548         * device/lib/hc08/_mulint.c: created optimized assembly version
10549         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10550
10551 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10552
10553         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10554         proposed in FR #877103
10555
10556 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10557
10558         * src/SDCCval.c (cheapestVal): added missing checks
10559         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10560         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10561
10562 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10563
10564         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10565         equal operands
10566
10567 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10568
10569         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10570         loaded with the linker search paths (-L arguments) and the libraries
10571         to be linked with the current source (-l arguments). Changes
10572         currently will affect only the pic16 port.
10573         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10574         include path the port specific paths and port specific libraries,
10575         * gplink command now contains the $3 argument,
10576         * src/pic16/device.h,
10577         * src/pic16/device.c,: structure PIC_device is made public and
10578         renamed to PIC16_device, the same for variable Pics which is renamed
10579         to Pics16. Updated all references to them.
10580         * src/pic16/glue.c (pic16glue): corrected bug with code
10581         initialization which bypassed the variable initializations block.
10582
10583         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10584         COMPILE_FLAGS and added the --nostdinc option
10585
10586 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10587
10588         * device/include/mc68hc908jb8.h: Register defs for another member
10589         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10590
10591 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10592
10593         Documenting changes from previous commits.
10594         * configure.in (version 1.56),
10595         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10596         when generating output files to configure the pic16 library,
10597         but now I've commented it out, since gputils aren't installed in the
10598         SF compile farm, so library won't compile
10599
10600         * device/lib/Makefile.in (version 1.56): initially I've added in
10601         target 'all' the prerequestive 'model-pic16' so it compiled the
10602         pic16 library, but now I've commented it out for the same reasons
10603         above,
10604         * added targets 'model-pic16' and 'objects-pic16' to compile the
10605         library
10606         * added target 'port-specific-objects-pic16' to handle the
10607         generated libraries and copy them into the build/ directory
10608         * added target 'clean-intermediate-pic16' to clean intermediate
10609         files into pic16 directory
10610         * in target 'installdirs' added line to create directory pic16 in
10611         the installation path
10612
10613         * device/include/Makefile.in (version 1.11): in target 'install'
10614         added lines to copy all header files to installation path,
10615         * in target 'installdirs' added line create directory for pic16
10616         headers in the installation path
10617
10618 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10619
10620         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10621          a function call
10622
10623 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10624
10625         * configure,
10626         * device/lib/configure.in,
10627         * device/lib/configure: fixed for autoconf 2.57
10628
10629 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10630
10631         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10632         option so that it actually works. Made it specific to the z80, since
10633         the gbz80 doesn't have these kinds of I/O ports.
10634
10635 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10636
10637         * device/include/z180.h,
10638         * device/lib/_memcpy.c,
10639         * device/lib/_memmove.c,
10640         * device/lib/_mulint.c,
10641         * device/lib/ser_ir.c,
10642         * device/lib/ser_ir_cts_rts.c,
10643         * device/lib/_strcmp.c,
10644         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10645         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10646         portmode; added deprecation warning for bank= and protmode= forms.
10647         Also, guard against buffer overflow.
10648         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10649
10650 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10651
10652         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10653         changed interrupt vector table generation to only emit declared vectors.
10654         * device/include/Makefile.in: added missing backslash
10655         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10656
10657 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10658
10659         Mainly changes to support compilation of the device libraries
10660         * src/pic16/device.c: stack is allocated via symbol and not
10661         via literal number. The symbol is placed in the corresponding
10662         position of the data ram
10663         * (pic16_dump_section): relocatable and absolute uninitialized
10664         data are now emitted in sorted order to reduce section naming,
10665         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10666         weren't marked as being in the access bank,
10667
10668 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10669
10670         Added portion of GNU PIC Library under the directory
10671         device/include/pic16 and device/lib/pic16. These files
10672         contain the declarations of SFRs for the PIC18Fxx2 devices.
10673         The directory is initialized via configure from toplevel.
10674
10675 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10676
10677         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10678         the spilllocations to be compared correctly
10679
10680 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10681
10682         * src/SDCCast.c (decorateType): fixed bug introduced today
10683
10684 2004-01-12  Borut Razem <borut.razem AT siol.net>
10685
10686         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10687         doc/sdccman.lyx: upper case pragmas are deprecated
10688
10689 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10690
10691         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10692         in simpler and even better code
10693
10694 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10695
10696         * src/SDCCicode.c (operandOperation): fixed bug #874819
10697         * src/SDCCast.c (decorateType): fixed
10698         char foo (unsigned long ul) { return ul > 0; }
10699
10700 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10701
10702         * doc/sdccman.lyx: Moved and added some sections, small changes
10703         all over. Telling LaTeX to be less strict with word spacing
10704         to better keep the right margin. Changed some notes about
10705         maintainance of the ports in section 3.2.1 - is it OK like this?
10706
10707 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10708
10709         SDCC source changes:
10710         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10711         convilong): modified to inform the pic16 port that builtin functions
10712         are external
10713
10714         PIC16 PORT specific changes:
10715         * src/pic16/device.c pic16_dump_equates() added,
10716         processor registers declared internally by the port are emitted in
10717         the translation as equates,
10718         * src/pic16/gen.c: inline code is passed unprocessed to the
10719         translation,
10720         * (pic16_popGetLit2): fnuction modified to take second operand as
10721         pCodeOp pointer and not as literal,
10722         * (popRegFromIdx): prefixed with pic16_,
10723         * (pic16_popCombine2): modified to receive already allocated pCode
10724         operands,
10725         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10726         * (genFunction): initializes local stack frame and pushes on stack
10727         all the registers used by this function,
10728         * (genEndFunction): restores all registers from stack and restores
10729         stack frame,
10730         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10731         improvements,
10732         * (pic16glue): changed the program startup sequence,
10733         * added new dbName code 'A' for functions placed in absolute section
10734         * src/pic16/main.c: added function attribute _naked,
10735         * added pragma 'code' to place a fnuction at an absolute address,
10736         * added command line arguments --debug-ralloc and --pcode-verbose,
10737         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10738         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10739         * (pic16_newpCodeOpLit2): modified to take the second operand as
10740         pCodeOp pointer,
10741         * (pic16_printpBlock): modified to emit each function in a separate
10742         section,
10743         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10744         UPPER for immediate operands,
10745         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10746         instruction,
10747         * src/pic16/peeph.def: all peepholes with movff are commented out,
10748         because there is a problem in the pcode peep optimizer,
10749         * src/pic16/ralloc.c: the register allocator can now reuse local
10750         function symbols for another function. This saves register usage.
10751         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10752
10753         Added file src/pic16/NOTES with information about program writing on
10754         the current port version.
10755
10756 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10757
10758         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10759         and peephole 252 (array access)
10760
10761 2004-01-09  Borut Razem <borut.razem AT siol.net>
10762
10763         * src/SDCCmain.c : fixed #872250: -l command line defined library
10764           files are scanned before standard library files
10765
10766 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10767
10768         * src/SDCCast.c (decorateType): fixed bug #874046
10769
10770 2004-01-09  Borut Razem <borut.razem AT siol.net>
10771
10772         * support/scripts/sdcc.nsi: remove previous installation
10773
10774 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10775
10776         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10777         bytes for last interrupt vector (mcs51)
10778         * sdcc.spec: fixed typo
10779
10780 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10781
10782         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10783         gen51Code): more efficient parameter receive for --model-large
10784         ("bug" #845294)
10785
10786 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10787
10788         * src/ds390/main.c,
10789         * src/z80/main.c: added missed needLinkerScript flags (more than
10790         one port structure defined in these file)
10791         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10792         bug #795325
10793
10794 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10795
10796         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10797         * src/port.h: added flag needLinkerScript in port->linker
10798         structure to inform whether to create a .lnk file or not,
10799         * src/avr/main.c,
10800         * src/ds390/main.c,
10801         * src/hc08/main.c,
10802         * src/mcs51/main.c,
10803         * src/pic/main.c,
10804         * src/pic16/main.c,
10805         * src/xa51/main.c,
10806         * src/z80/main.c: changed appropriately to configure
10807         needLinkerScript flag
10808         * src/pic/gen.c,
10809         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10810         * src/pic/glue.c: added variable udata_section_name to
10811         override default uninitialized data segment definition for
10812         devices only with SHAREBANK memory (reported from Erik Epetrich)
10813         * (pic14emitOverlay): modified to emit a commented overlay segment
10814         directive when no overlay data exist
10815         * (picglue): modified to emit uninitialized data segment
10816         according to udata_section_name
10817         * src/pic/main.c (_pic14_parseOptions): added command line
10818         options --udata-section-name=[name] to override default
10819         udata definition name
10820         * modified _linkCmd and _asmCmd to include compiler passed
10821         arguments via -W option
10822         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10823         object file from '.rel' to '.o' in port->linker structure,
10824         changed size of fptr from 2 to 3 in port structure
10825
10826 2004-01-07  Borut Razem <borut.razem AT siol.net>
10827
10828         * support/scripts/sdcc.nsi: update PATH
10829         * support/scripts/sdcc.ico: craeted
10830
10831 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10832
10833         * device/include/Makefile.in: fix install
10834         * doc/Makefile: fix install
10835
10836 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10837
10838         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10839         in bug #860505
10840         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10841         how the function variable allocation summary is displayed; also
10842         include information about variables allocated to the overlay
10843         segment
10844
10845 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10846
10847         * as/mcs51/lkmain.c: Help about -Y option
10848         * as/mcs51/lkarea.c: Fixed gcc warnings
10849
10850 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10851
10852         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10853         fixed warning
10854         * support/valdiag/tests/overflow.c: added
10855         * src/SDCCast.c (decorateType),
10856         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10857         LEFT_OP (left shift)
10858
10859 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10860
10861         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10862         (default behaviour).
10863
10864 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10865
10866         A python script to validate compiler diagnostic messages. It can be
10867         used to verify that sdcc complains about bad c source code and
10868         gives a good location of the error.
10869         * support/valdiag/Makefile,
10870         * support/valdiag/valdiag.py,
10871         * support/valdiag/tests/*
10872
10873 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10874
10875         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10876         * src/SDCCsymt.c (newEnumType),
10877         * src/SDCCsymt.h
10878         * support/Util/SDCCerr.c,
10879         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10880         enum related bugs.
10881         * support/regression/tests/enum.c: added test for enum values that
10882         require at least 2 bytes of storage.
10883
10884 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10885
10886         * src/common.h: added ifndef/define/endif macros
10887         around the header file.
10888         Bug reported from Jesus Calvino-Fraga
10889
10890 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10891
10892         * sdcc.spec: updated
10893         * device/include/Makefile.in: don't install CVS directories
10894         * device/lib/Makefile.in: added removal of CVS directories after install
10895         * doc/Makefile: fixed install, added local_icons
10896         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10897         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10898         * src/ds390/gen.c (genRightShift): fixed bug #870788
10899         * src/SDCCast.c (decorateType): fixed bug #870781
10900
10901 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10902
10903         PIC16 port related changes:
10904         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10905         added variable stackPos,
10906
10907         * gen.c: genCall, assignResultValue: added support for
10908         pushing/retrieving function parameters to/from stack,
10909         genFunction,genEndFunction: setup stack frame for the
10910         generated function,
10911         genAddrOf: will be changed according to bug 863624
10912
10913         * added files genutils.c and genutils.h which contain gen*
10914         debugged and optimised functions extracted from gen.c
10915
10916         * glue.c: added variable 'externs' which holds extern symbols,
10917         pic16emitRegularMap: is modified to properly handle relocatable
10918          symbols under the new scheme,
10919         pic16createInterruptVect: is modified
10920         pic16printPublics: is modified to emit 'global' assembler directives,
10921         added pic16_printExterns to print extern symbols,
10922         pic16glue: initializes stack/frame pointer in the beginning of
10923         the assembly output. Temporary hack, will be corrected later,
10924         because gplink yet does not support stack and SDCC does not
10925         yet support a type of crt0.o object to create the final binary.
10926
10927         * Removed many lines that contain 8051 legacy code.
10928         * The code is finally placed under a 'code' directive.
10929         * Added port specific options.
10930
10931         * _process_pragma: simplified since now we do not need *special*
10932         include file to define SFR registers. But a separate header
10933         will be needed. This will be developed later.
10934         * _pic16_parseOptions: added, parses port specific options:
10935         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10936         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10937         --preplace-udata-with=
10938
10939         * _pic16_setDefaultOptions: modified to initialize section names,
10940         but hack is temporarly out of order since it needs improvement.
10941         * _pic16_genAssemblerPreamble: configuration words are emitted by
10942         their address instead of their name. This part is incomplete and
10943         supports only the 18Fxx2 devices. Other devices will emit an error
10944         during assembly since they do not contain the same set of config
10945         registers
10946         * _pic16_genIVT: is modified,
10947
10948         * pcode.c: added definitions for some hardware registers that are needed
10949         for stack support
10950         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10951         All PCI entries are updated. Now LFSR is supported.
10952         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10953         * added pic16_newpCodeOpLit2 to support instructions with
10954         two literal arguments
10955         * pic16_pCode2str: corrected code that emits assembler instructions
10956         with two literal operands and those that have an access bit modifier
10957         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10958         this fixes a bug which caused some labels to be lost, when an
10959         assembler directive was added, i.e. banksel,
10960         * pic16_FixRegisterBanking: improved logic that causes the insertion
10961         of bank switching,
10962         * InlineFunction: functions that are called once, are not any more
10963         inlined. This can be a port option in the future,
10964
10965         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10966
10967         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10968         hold the corresponding uninitialized symbols,
10969         * pic16_allocProcessorRegister: registers have explicit marked the
10970         accessBank field,
10971         * pic16_allocInternalRegister: registers are explicit marked as
10972         not used,
10973         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10974         processing list, so bit registers were lost,
10975         *
10976
10977         * ralloc.h: added field 'accessBank' and original symbol operand
10978         in register definition,
10979         * removed the field isMapped from register definition,
10980
10981         ** Several functions have been removed from various sources:
10982         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10983         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10984         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10985         pic16_assignRelocatableRegisters
10986
10987         ** others have been introduced:
10988         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10989         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10990
10991 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10992
10993         * support/scripts/inc2h.pl: changed definition of BIT_AT
10994         to emit 'sbit at' instead of 'bit at'. This was a request.
10995
10996         PIC16 port related preliminary changes:
10997         * gen.c: prefixed function popRegFromString with
10998         pic16_ and all references to it corrected
10999         * pcode.c: all pic16_pc_* hardware registers prefixed
11000         with underscore (_),
11001         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
11002         * ralloc.c: newReg(): when register is REG_SFR then
11003         set address to rIdx,
11004         pic16_allocProcessorRegister(): marks register wasUsed=0
11005         pic16_writeUsedRegs(): added a call to assign processor
11006         registers via pic16_assignFixedRegisters
11007
11008 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11009
11010         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11011         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11012         variables in unused register banks.  Also the SSEG is placed
11013         wherever there is enough space for it, and IDATA can be anywhere
11014         in internal RAM.  For now compile using -Wl-Y[stack_size].
11015         The mem file is different for this option as well, since it
11016         makes no sense of talking about DSEG lenght.
11017
11018 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11019
11020         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11021         in certain cases, e.g. when ROM assignment, patch provided
11022         from Albert den Haan.
11023
11024 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11025
11026         Many signedness and type propagation fixes:
11027         * src/SDCCicode.c: made geniCodeCast() static
11028         replaced SPEC_ by IS_ (cosmetic)
11029         (operandOperation): fixed div and mod operation
11030         (usualBinaryConversions): added support for promotion of char
11031         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11032         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11033         (geniCodeAdd): an array index will stay unsigned, even if promoted
11034         from char to int
11035         (geniCodeArray): ditto
11036         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11037         * src/SDCCsymt.c (computeType): added more support for char;
11038         promotion of char is selectable by promoteCharToInt, fixed signedness
11039         for all cases
11040         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11041         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11042         * src/SDCCval (val*): replaced signedness calculation by
11043         computeType()
11044         rearranged if-branches (cosmetic)
11045         (valShift): added warning W_SHIFT_CHANGED
11046         (valCompare): fixed problem with different types
11047         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11048         * support/regression/tests/literalop.c: added many cases
11049         * support/regression/tests/ast_constant_folding.c: changed finally to
11050         'unsigned int'
11051         * .version: new year, new version: 2.3.7
11052         * src/SDCCmain.c (main): applied patch #866468
11053         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11054         provided by Scott Bronson
11055         * doc/sdccman.lyx: updated documentation for sdcdb
11056         updated and added chapter tips
11057
11058 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11059
11060         * src/SDCCsymt.h: missing from yesterday's commits
11061
11062 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11063
11064         * src/SDCC.y (struct_or_union_specifier),
11065         * support/Util/SDCCerr.c,
11066         * support/Util/SDCCerr.h: verify that struct & union tags are used
11067         as declared.
11068
11069 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11070
11071         * src/SDCCglobl.h: missing from yesterday's commits
11072
11073 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11074
11075         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11076         sft_attributes, struct_declaration, parameter_declaration,
11077         type_name, start_block, declaration_list),
11078         * src/SDCC.lex (check_type): support redefinition of typedef names
11079
11080 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11081
11082         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11083         aligned xdata arrays. Erik helped me with the if clause.
11084
11085 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11086
11087         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11088         warning
11089
11090 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11091
11092         * src/SDCCast.h,
11093         * src/SDCCast.c (newAst_),
11094         * src/SDCCicode.h,
11095         * src/SDCCicode.c (ast2iCode, newiCode),
11096         * src/SDCCglobl.h,
11097         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11098         expr, statement, expression_statement, selection_statement,
11099         iteration_statement, expr_opt, jump_statement): foundation for tracking
11100         sequence points
11101         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11102         point code too)
11103
11104 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11105
11106         * support/Util/SDCCerr.c,
11107         * src/SDCCast.h,
11108         * src/SDCCast.c (createCase, createDefault, decorateType),
11109         * src/SDCClabel.c (labelUnreach),
11110         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11111         to error messages.
11112         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11113         (with thanks to Stas Sergeev)
11114         * device/include/time.h,
11115         * device/lib/time.c (CheckTime): suppress unreachable code warning
11116
11117 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11118
11119         * src/SDCCast.c (createIvalCharPtr),
11120         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11121         bug #753752)
11122         * support/regression/tests/nullstring.c: tests for these two bugs
11123
11124 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11125
11126         * support/Util/SDCCerr.h,
11127         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11128         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11129         about storage class and 'at' used inside struct or union
11130         * src/SDCCBBlock.c (iCodeFromeBBlock),
11131         * src/SDCCcse.c (ifxOptimize),
11132         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11133         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11134         printIval, emitStaticSeg, emitOverlay),
11135         * src/SDCClabel.c (deleteIfx),
11136         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11137         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11138         gatherAutoInit, processParms),
11139         * support/Util/SDCCerr.h,
11140         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11141         reporting for post-parse errors.
11142
11143 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11144
11145         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11146         implicit casts via union; they don't work on big endian systems
11147         (possible fix for bug #861138)
11148
11149 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11150
11151         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11152         * src/mcs51/main.c: fixed the fix for bug #737001
11153
11154 2003-12-15  Borut Razem <borut.razem AT siol.net>
11155
11156         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11157
11158 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11159
11160         * support/makebin/makebin.c: put output in binary mode
11161
11162 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11163
11164         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11165         xdata and data memory on startup. Set the environment variable
11166         SDCC_NOGENRAMCLEAR to disable this.
11167         * src/mcs51/peephole.def,
11168         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11169         (allows non-interrupt and interrupt code to safely compete for a resource
11170         without the non-interrupt code having to disable interrupts)
11171
11172 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11173
11174         * src/SDCCicode.c (geniCodeAdd),
11175         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11176         with valFromType if type might be a pointer and host is big endian).
11177         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11178         types, not just integer types.
11179         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11180         multiply defined with mismatching "at" address.
11181
11182 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11183
11184         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11185         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11186         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11187         with embedded nulls (fixed bug #753752)
11188
11189 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11190
11191         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11192         Apparently this did not see much testing (endless loop)
11193
11194 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11195
11196         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11197
11198 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11199
11200         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11201         gracefully handle NULL memmap pointers
11202
11203 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11204
11205         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11206         instead of deleting the iCode when an operand is volatile
11207         * src/z80/gen.c (genDummyRead),
11208         * src/mcs51/gen.c (genDummyRead),
11209         * src/ds390/gen.c (genDummyRead),
11210         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11211         not just IC_RIGHT
11212         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11213         * src/SDCC.y: fixed bug #850420
11214
11215 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11216
11217         Applied z80 i/o port patch from Peter Townson and fixed some operators
11218         to better handle operands in A register.
11219         * device/include/z180.h
11220         * src/SDCC.y
11221         * src/SDCCglue.c
11222         * src/z80/gen.c
11223         * src/z80/gen.h
11224         * src/z80/main.c
11225         * src/z80/peeph-z80.def
11226         * src/z80/peeph.def
11227         * src/z80/z80.h
11228
11229 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11230
11231         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11232
11233 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11234
11235         * device/lib/hc08/_mullong.c: Removed extra #endif
11236
11237 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11238
11239         * sim/ucsim/hc08.src/inst.cc,
11240         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11241         carries from x to h
11242         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11243         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11244         * device/include/stdarg.h: fixed varargs for hc08
11245         * device/lib/Makefile.in,
11246         * device/lib/hc08/Makefile,
11247         * device/lib/hc08/_mulint.c,
11248         * device/lib/hc08/_mullong.c: fixed some endian problems
11249
11250 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11251
11252         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11253         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11254         * device/lib/_gptrget.c,
11255         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11256
11257 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11258
11259         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11260         * src/SDCCast.c (astErrors): fixed bug #846007
11261         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11262
11263 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11264
11265         * src/SDCCast.c (decorateType): disabled a transformation I added in
11266         revision 1.188 (access to fields of a structure at an absolute address);
11267         it breaks with bitfields, extern declarations, and gcse analysis.
11268         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11269         could be assigned through a pointer, so don't complain.
11270         * src/SDCCast.c (astErrors),
11271         * src/SDCCast.h,
11272         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11273
11274 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11275
11276         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11277         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11278         output of __config directives, since gpasm now supports them
11279         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11280         pre-processor macro, i.e. -DMCU=p18f452
11281         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11282         and modified to handle 'cast' icode similarly to '=' icode
11283         * src/pic16/device.h (typedef struct PIC_device): added field
11284         'extMIface' to indicate that chip has external memory interface
11285         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11286         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11287         18F8720
11288
11289 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11290
11291         * src/SDCC.y (pointer): fixed bug #846006
11292         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11293         * src/SDCCast.c (decorateType): fixed bug #846009
11294         * src/ds390/peeph.def,
11295         * src/ds390/gen.c (genAnd, genOr),
11296         * src/mcs51/peeph.def,
11297         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11298
11299 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11300
11301         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11302         * src/SDCCdflow.c
11303         * src/SDCCcse.c
11304         * src/SDCCcse.h
11305         * src/SDCCBBlock.h
11306         * src/SDCCBBlock.c
11307
11308 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11309
11310         fixed bug #845089
11311         * src/SDCCbitv.h,
11312         * src/SDCCbitv.c: added function to free a bitvector
11313         * src/SDCClrange.h,
11314         * src/SDCClrange.c: added function to recompute the liveranges
11315         * src/avr/ralloc.c,
11316         * src/ds390/ralloc.c,
11317         * src/hc08/ralloc.c,
11318         * src/mcs51/ralloc.c,
11319         * src/pic/ralloc.c,
11320         * src/pic16/ralloc.c,
11321         * src/xa51/ralloc.c,
11322         * src/z80/ralloc.c: recompute the liveranges after register packing
11323
11324 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11325
11326         * src/SDCCloop.c (newInduction): fixed bug #845630
11327
11328 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11329
11330         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11331         inadvertantly left behind from my 2003-11-12 change
11332
11333 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11334
11335         Updated headers I neglected to commit yesterday.
11336         * src/SDCClrange.h,
11337         * src/SDCCicode.h
11338
11339 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11340
11341         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11342         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11343         * src/SDCCopt.c (eBBlockFromiCode),
11344         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11345         the creation of the key hash table from the sequencing so it can be used
11346         earlier (for some GCSE bug fixes still pending)
11347
11348 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11349
11350         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11351         * support/regression/tests/addsub.c: testing genPlus shortcut
11352
11353 2003-11-15  Borut Razem <borut.razem AT siol.net>
11354
11355         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11356
11357 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11358
11359         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11360         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11361         ordering is immaterial.
11362         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11363
11364 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11365
11366         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11367         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11368         (SIGSEV) of bug #840381
11369         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11370         unlink new file before rename if new and old filenames are the same)
11371
11372 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11373
11374         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11375         uninitialized variables) for the mcs51. Set environment variable
11376         SDCC_GENRAMCLEAR to test.
11377         xdata initialization slightly shorter
11378
11379 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11380
11381         * src/SDCCsymt.h,
11382         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11383         #838241 & 780691 (basicly the same bug)
11384         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11385         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11386
11387 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11388
11389         * src/SDCCmain.c (linkEdit): "fix" #834252
11390
11391 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11392
11393         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11394         * src/SDCCast.h,
11395         * src/SDCC.y: fixed bug #819403
11396
11397 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11398
11399         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11400         the reentrant attribute.
11401         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11402         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11403         simulation
11404         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11405         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11406         erroneously reduced to a literal.
11407         * src/hc08/ralloc.c (packRegisters, rematStr),
11408         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11409         some cases
11410
11411 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11412
11413         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11414         * doc/sdccman.lyx: changed from 'article' to 'book'
11415         * doc/Makefile: readded test_suite_spec and cdbfileformat
11416
11417 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11418
11419         * device/include/stdlib.h: include malloc.h to comply with ANSI
11420         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11421
11422 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11423
11424         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11425         * doc/clean.mk: also remove *.out files
11426         * doc/sdccman.lyx: some additions, larger top/bottom margins
11427
11428 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11429
11430         * src/SDCC.y: fixed bug #837365
11431         * support/regression/tests/bitopcse.c
11432         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11433         a symbol (might be valop instead)
11434         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11435         * device/lib/clean.mk: added hc08 to the cleaning list
11436
11437 2003-11-04  Borut Razem <borut.razem AT siol.net>
11438
11439         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11440           made 2003-11-04
11441         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11442           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11443           malloc is declared in standard stdlib.h
11444
11445 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11446
11447         * device/lib/hc08/Makefile: need to clean .rel not .o files
11448         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11449
11450 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11451
11452         * src/port.h,
11453         * src/hc08/main.c,
11454         * src/mcs51/main.c,
11455         * src/ds390/main.c,
11456         * src/z80/main.c,
11457         * src/avr/main.c,
11458         * src/pic/main.c,
11459         * src/pic16/main.c,
11460         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11461         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11462         tests (which uses the port's oclsExpense function)
11463         * src/SDCC.y,
11464         * src/SDCCast.c,
11465         * src/SDCCicode.c,
11466         * src/hc08/gen.c,
11467         * src/ds390/gen.c,
11468         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11469
11470 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11471
11472         * src/SDCCcse.c (ifxOptimize),
11473         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11474         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11475         deleting the IFX iCode.
11476         * src/hc08/ralloc.c: reduced unneeded slocs
11477         * src/hc08/gen.c: fixed bug in asmopToBoolean
11478
11479 2003-11-04  Borut Razem <borut.razem AT siol.net>
11480
11481         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11482           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11483           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11484           transferred to configure
11485
11486 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11487
11488         Use headers defined in the C[++] standards:
11489         * sim/ucsim/gui.src/serio.src/fileio.cc
11490         * sim/ucsim/gui.src/serio.src/frontend.cc
11491         * sim/ucsim/gui.src/serio.src/main.cc
11492         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11493         * support/Util/NewAlloc.c
11494         * as/hc08/lklibr.c
11495         * as/mcs51/lklibr.c
11496         * as/z80/aslist.c
11497         * as/z80/assym.c
11498
11499 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11500
11501         * Added MSVC projects for hc08 assembler and linker:
11502         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11503         /as/hc08/link_hc08.dsp
11504
11505 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11506
11507         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11508
11509 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11510
11511         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11512
11513 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11514
11515         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11516
11517 2003-10-31  Borut Razem <borut.razem AT siol.net>
11518
11519         * support/cpp2/cpplib.h,
11520           support/cpp2/cpplib.c,
11521           support/cpp2/cpplex.c,
11522           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11523           to switch _asm block preprocessing on / off. Default is
11524           #pragma preproc_asm +
11525
11526 2003-10-31  Borut Razem <borut.razem AT siol.net>
11527
11528         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11529           when outputting comment blocks (when executed with -C option) and
11530           _asm (SDCPP specific) blocks
11531
11532 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11533
11534         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11535
11536 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11537
11538         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11539
11540 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11541
11542         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11543         * src/SDCCast.c (decorateType): fixed bug #832664
11544
11545 2003-10-31  Borut Razem <borut.razem AT siol.net>
11546
11547         * support/cpp2/cpplex.c: fixed for SDCPP:
11548           comments(when executed with -C option) and _asm blocks
11549           were included even if they where in skipped #if block.
11550           Applied solution from GCC cpp 3.3.2
11551
11552 2003-10-31  Borut Razem <borut.razem AT siol.net>
11553
11554         * src/SDCC.lex: sdcc now understands both formats:
11555           '# <line_number> <file_name>' and
11556           '#line <line_number> <file_name>'
11557         * support/cpp2/cppmain.c: sdcpp now generates the standard
11558           '# <line_number> <file_name>' instead of former
11559           '#line <line_number> <file_name>'
11560
11561 2003-10-30  Borut Razem <borut.razem AT siol.net>
11562
11563         * support/cpp2/cpphash.h,
11564         * support/cpp2/cpplib.h
11565         * support/cpp2/cpplex.c,
11566         * support/cpp2/cppmain.c,
11567         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11568
11569 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11570
11571         Fixed a number of problems revealed by bug #827883.
11572         * src/SDCCloop.c (loopInvariants): Spill location of the
11573         result operand should be recomputed if extracted from
11574         a loop. Also, don't extract assignments of an iTemp
11575         from a literal.
11576         * src/SDCCast.c (isConformingBody): loop reversal should
11577         not occur if the control variable is involved with a
11578         relational operator.
11579
11580 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11581
11582         * .version: bumped to 2.3.6 to reflect the big improvements
11583         made by Erik and Klaus. Thanks!
11584
11585 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11586
11587         Replaced the livrange code.
11588         * src/SDCClrange.c: added new LR code
11589         * src/SDCCloop.c,
11590         * src/SDCCBBlock.h: removed remainig parts from old LR code
11591         * src/ds390/ralloc.c,
11592         * src/ds390/gen.c: minor fixes to make it work with new code
11593
11594 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11595
11596         * as/hc08/asm.h,
11597         * as/hc08/lkrloc.c,
11598         * src/hc08/gen.c,
11599         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11600         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11601         (tweaked fix for bug #818696)
11602
11603 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11604
11605         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11606
11607 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11608
11609         * src/SDCCmain.c,
11610         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11611         * src/mcs51/gen.c (gencjneshort),
11612         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11613         more efficient (per Scott Bronson's suggestion)
11614
11615 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11616
11617         Extended the semantics of the critical keyword to include
11618         individual statements. See RFE #827755 and #799831
11619         * src/SDCC.y
11620         * src/SDCCicode.c
11621         * src/SDCCopt.c
11622         * src/SDCCast.c
11623         * support/Util/SDCCerr.c
11624         * support/Util/SDCCerr.h
11625         * src/mcs51/gen.c
11626         * src/ds390/gen.c
11627         * src/hc08/gen.c
11628
11629 2003-10-19  Borut Razem <borut.razem AT siol.net>
11630
11631         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11632
11633 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11634
11635         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11636         Fixed bug #818696
11637         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11638         and predecrement operand is displayed
11639
11640 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11641
11642         * src/SDCCval.c (valMinus): fixed bug #826041
11643
11644 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11645
11646         Some hc08 related updates that I missed earlier
11647         * sim/ucsim/stypes.h
11648         * support/regression/ports/hc08/spec.mk
11649
11650 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11651
11652         New target "hc08" for the Motorola 68hc08 family of micros
11653
11654         * configure
11655         * configure.in
11656         * Makefile
11657         * src/hc08/*
11658         * src/SDCCmain.c
11659         * src/port.h
11660         * sim/ucsim/hc08.src/*
11661         * sim/ucsim/configure.in
11662         * src/ucsim/configure
11663         * sim/ucsim/packages_in.mk
11664         * as/hc08/*
11665         * as/Makefile
11666         * device/include/mc68hc908qy.h
11667         * device/lib/hc08/*
11668         * device/lib/Makefile.in
11669         * support/regression/ports/hc08/*
11670         * support/regression/Makefile
11671
11672 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11673
11674         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11675         regression test
11676         * src/ds390/gen.c (genCast): fixed bug #821957
11677
11678 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11679
11680         * device/lib/logf.c: "fixed" overlay bug
11681         * support/regression/ports/host/spec.mk: added m library
11682         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11683         * support/regression/tests/float_trans: added (for Eric)
11684
11685 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11686
11687         * src/mcs51/gen.c (genCpl): fixed bug
11688         http://sf.net/mailarchive/message.php?msg_id=6263915
11689
11690 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11691
11692         * src/SDCCast.c (decorateType): added extended constant folding
11693         * src/SDCCsymt.c (computeType): cleanup
11694         * src/SDCCval.c (valShift): minor optimization
11695         * support/regression/tests/ast_constant_folding.c: added
11696
11697 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11698
11699         * src/SDCCmain.c: removed some unintended changes
11700
11701 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11702
11703         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11704         * src/z80/gen.c: fixed part of bug #817589
11705         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11706
11707 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11708
11709         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11710         * src/SDCCcflow.c
11711         * src/SDCCcse.c
11712         * src/SDCCdflow.c
11713         * src/SDCClabel.c
11714         * src/SDCClrange.c
11715         * src/SDCCmem.c
11716         * src/SDCCopt.c
11717         * src/SDCCpeeph.c
11718         * src/SDCCset.c
11719         * src/avr/ralloc.c
11720         * src/ds390/ralloc.c
11721         * src/izt/ralloc.c
11722         * src/mcs51/ralloc.c
11723         * src/pic/ralloc.c
11724         * src/pic16/ralloc.c
11725         * src/xa51/ralloc.c
11726         * src/z80/ralloc.c
11727         * src/z80/gen.c: removed unused label "release:"
11728
11729 2003-10-06  Borut Razem <borut.razem AT siol.net>
11730
11731         * src/SDCC.lex: removed definition of unused variables
11732           save_optimize and save_options
11733
11734 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11735
11736         * clean.mk: removed '=' in "-maxdepth=1"
11737         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11738         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11739
11740 2003-10-06  Borut Razem <borut.razem AT siol.net>
11741
11742         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11743           my_unput() replaced by unput()
11744
11745 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11746
11747         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11748         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11749         type-punned pointer will break strict-aliasing rules"
11750         Old LR behaviour is again default; Klaus' LR can be choosen by
11751         defining the environment variable LRKLAUS
11752         * src/SDCCBBlock.h
11753         * src/SDCCloop.c
11754         * src/SDCClrange.c
11755         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11756         * clean.mk: fixed removal of files in bin/CVS/
11757         * device/lib/clean.mk: fixed removal of directories small and large
11758         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11759         * src/SDCCicode.c,
11760         * src/SDCCval.c: removed superflous test for pedantic
11761
11762 2003-10-05  Borut Razem <borut.razem AT siol.net>
11763
11764         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11765           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11766           message "unmatched #pragma SAVE and #pragma RESTORE"
11767
11768 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11769
11770         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11771           assembly, critical functions, atomic, nojtbound)
11772
11773 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11774
11775         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11776         * src/SDCCBBlock.h
11777         * src/SDCCloop.c
11778         * src/SDCCloop.h
11779         * src/SDCClrange.c
11780
11781 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11782
11783         * src/z80/gen.h,
11784         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11785         * src/mcs51/gen.h
11786         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11787         * src/ds390/gen.h
11788         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11789         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11790         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11791
11792 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11793
11794         * src/z80/gen.c (genRet): fixed bug #524753
11795         * src/z80/gen.c (genCast): fixed internal error on cast from
11796         pointer to long
11797         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11798         fix for bug #477835 to the z80
11799         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11800         for tracking iCodes in the peephole optimizer for z80
11801
11802 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11803
11804         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11805         the other part of bug #814548
11806         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11807
11808 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11809
11810         * src/SDCCcse.c: fixed part of bug #814548
11811
11812 2003-09-28  Borut Razem <borut.razem AT siol.net>
11813
11814         * src/asm.c: rewrite of printILine() to use temporary file instead
11815           a pipe
11816         * src/xa51/main.c: commented out declaration of int rewinds
11817
11818 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11819
11820         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11821
11822 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11823
11824         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11825         * src/asm.c (printILine): Fixed bug #811015
11826
11827 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11828
11829         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11830         freeing.
11831
11832 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11833
11834         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11835         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11836         to correctly handle general case of AOP_PAIRPTR
11837         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11838
11839 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11840
11841         * src/mcs51/ralloc.c (fillGaps),
11842         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11843         register positioning bug)
11844
11845 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11846
11847         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11848
11849 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11850
11851         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11852         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11853         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11854         (ralloc doesn't intentionally do this now, but perhaps later)
11855         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11856         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11857         register positioning bugs (Fixed bug #762602 and #795325)
11858         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11859         (Fixed bug #808779)
11860         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11861         lines that --i-code-in-asm generates
11862
11863 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11864
11865         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11866         trying to fclose a FILE* that was already closed.
11867
11868 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11869
11870         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11871         of const struct should be treated as if const themselves)
11872
11873 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11874
11875         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11876
11877 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11878
11879         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11880         Unix (/n) and DOS (/r/n) line terminations.
11881
11882 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11883
11884         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11885         bug #613775
11886
11887 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11888
11889         * src/mcs51/gen.c (genFunction, genEndFunction),
11890         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11891         and restore of EA so that stack offsets to parameters are
11892         correct when using both critical and reentrant/stack-auto.
11893         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11894         size (can be triggered in error if sloc is shared between
11895         different sized objects)
11896         * device/include/float.h: fixed macros to explicitly use
11897         unsigned long where needed
11898
11899 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11900
11901         Feature req. 799831: added code to allow nesting of critical functions
11902         * src/mcs51/gen.c (genFunction, genEndFunction)
11903         * src/ds390/gen.c (genFunction, genEndFunction)
11904
11905 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11906
11907         * src/SDCCsymt.c (sclsFromPtr),
11908         * src/SDCCsymt.h,
11909         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11910         support for standard C idiom of memory mapped variables; for
11911         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11912         to xdata int at 0x1234 tempvar = 1.
11913         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11914         provided by Akiya ISHIDA
11915
11916 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11917
11918         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11919         * src/SDCCval.c (constVal): added reduction from int to char
11920         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11921         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11922         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11923         to ignore the sign
11924         * support/regression/tests/shifts.c: fixed
11925
11926 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11927
11928         * src/z80/gen.c (genXor): Fixed bug #805445
11929
11930 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11931
11932         Fixed bug #621531 (const & volatile confusion in the type chain).
11933         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11934         refer to the const or volatile state of the pointer itself.
11935
11936         * src/SDCCast.c
11937         * src/SDCCglue.c
11938         * src/SDCCicode.c
11939         * src/SDCCsymt.c
11940         * src/SDCCval.c
11941         * src/SDCC.y
11942         * src/SDCCsymt.h
11943         * src/pic/gen.c
11944         * src/pic/ralloc.c
11945         * src/pic16/gen.c
11946         * src/pic16/ralloc.c
11947         * support/regression/tests/const.c
11948
11949 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11950
11951         When checking for duplicated modules, use absolute paths
11952         instead of relative paths.  Files changed:
11953
11954         * as/mcs51/lklib.c
11955         * link/z80/lklib.c
11956
11957 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11958
11959         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11960
11961 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11962
11963         * device/include/string.h: added size_t typedef, changed
11964         prototypes to use size_t, eliminated separate reentrant and
11965         non-reentrant declarations, added _memmove declaration
11966         * device/lib/_memcpy.c: changed to use size_t instead of int,
11967         changed /4 to >>2 to avoid division library call
11968         * device/lib/_memcmp.c,
11969         * device/lib/_memset.c,
11970         * device/lib/_strncat.c,
11971         * device/lib/_strncpy.c,
11972         * device/lib/_strncmp.c: changed to use size_t instead of int
11973         * device/lib/_memmove.c: new file (fixed bug #772294)
11974         * device/lib/Makefile.in: added _memmove.c
11975         * device/lib/z80/asm_strings.s: fixed bug #772290
11976         * support/regression/tests/bitfields.c: attempt to fix host assertion
11977         failure on amd64-unknown-linux2.2
11978
11979 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11980
11981         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11982         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11983         * as/z80/asmain.c (main): fixed bug #801766
11984
11985 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11986
11987         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11988         compilers
11989
11990 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11991
11992         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11993         reported in bug #800609
11994
11995 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11996
11997         * Top header beautifications in src/pic16 directory:
11998           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11999           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
12000           pcoderegs.h, ralloc.c, ralloc.h
12001         * main.c: added top header and GPL license notice
12002         * pcode.c: fixed the if-conditional warning
12003
12004 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12005
12006         * device/lib/_mullong.c: replaced int by short for gcc
12007
12008 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12009
12010         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12011         and JUMPTABLE iCodes properly now (worked by accident before)
12012         * src/mcs51/gen.c (leftRightUseAcc),
12013         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12014         iCode properly now. Use getSize instead of nRegs since a & b
12015         aren't part of the nRegs tally.
12016
12017 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12018
12019         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12020         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12021           before instructions that use the _STATUS register
12022
12023 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12024
12025         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12026         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12027         fetching of the pointer
12028         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12029         copied from genNearPointerSet()
12030         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12031         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12032         If they pop r0/r1 they must be called in the opposite order than aopOp().
12033         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12034         (resp. --stack-auto), prepared for --xstack
12035
12036 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12037
12038         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12039
12040 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12041
12042         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12043         these ports have their own __sdcc_external_start()
12044
12045 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12046
12047         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12048         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12049         type for bits was changed. It resulted in bit variables becoming
12050         global, which is not permitted in PIC 14 assembly output.
12051
12052 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12053
12054         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12055
12056 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12057
12058         Z80 and MCS51 linkers complaint if a public symbol is defined
12059         in more than one library module:
12060
12061         * as/mcs51/lklib.c
12062         * link/z80/lklib.c
12063         * as/mcs51/Makefile.in
12064
12065 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12066
12067         A few small changes that speed up the peephole optimizer.
12068
12069         * src/SDCCpeeph.c
12070
12071 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12072
12073         Try to make the peephole optimizer smarter by maintaining
12074         an association between the assembly source code and the
12075         iCodes that originated them. Put this information to use
12076         with a new peephole rule condition "notVolatile" so that
12077         the rules can be aggressive yet still safe.
12078
12079         * src/SDCCpeeph.c
12080         * src/SDCCpeeph.h
12081         * src/mcs51/gen.c
12082         * src/mcs51/peeph.def
12083
12084 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12085
12086         Fixed bug #741761
12087
12088         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12089         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12090         if the left or right operand symbols have the accuse flag set.
12091
12092 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12093
12094         Changed the type of the result of the ! (NOT) operator to char;
12095         previously it returned the same type as the source. This allows
12096         us to eliminate all the genFloatNot functions (all of its target
12097         implementations were very buggy) since !float can use the same
12098         code as !long now.
12099
12100         * src/SDCCicode.c (ast2iCode): ! returns char
12101         * src/mcs51/gen.c (genNot, genNotFloat),
12102         * src/ds390/gen.c (genNot, genNotFloat),
12103         * src/z80/gen.c (genNot, genNotFloat),
12104         * src/pic/gen.c (genNot, genNotFloat),
12105         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12106
12107 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12108
12109         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12110         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12111            during interrupts. Ensure WSAVE is located at a shared bank address.
12112         2. Fixed page selection in some places
12113         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12114            the registers name strings.
12115         4. Fixed "signed / unsigned compare" compiler warnings.
12116         5. The PIC port manages its own allocation of the general purpose
12117            registers, but makes no attempt to reuse them. As a result when
12118            compiling it soon runs out of general purpose registers. Some
12119            additional code was added to the files pcode.c and device.c to walk
12120            through the function call tree and rename the registers so that they
12121            get reused.
12122
12123         * src/pic/device.c
12124         * src/pic/gen.c
12125         * src/pic/glue.c
12126         * src/pic/pcode.c
12127         * src/pic/pcode.h
12128         * src/pic/ralloc.c
12129         * src/pic/ralloc.h
12130         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12131         genPlus() & genMinus() when the result is the same as left or right
12132
12133 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12134
12135         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12136
12137 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12138
12139         Made bitfield a distinct type from bit so that bitfields
12140         convert as per ANSI C and bits retain their traditional
12141         boolean style behaviour. Implemented bitfield support in
12142         the z80 port.
12143
12144         * src/SDCCsymt.h,
12145         * src/SDCCsymt.c,
12146         * src/SDCCast.c,
12147         * src/cdbFile.c,
12148         * src/mcs51/gen.c,
12149         * src/ds390/gen.c: bit v bitfield split
12150         * src/z80/gen.c: New support for bitfields
12151         * support/regression/tests/bitfields.c: reenabled z80,
12152         added more tests
12153
12154 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12155
12156         Rules 246.x, 247.x relate to bitfields, the others speed up
12157         access to xdata mapped I/O devices.
12158
12159         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12160
12161 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12162
12163         Cleaned up genPackBits and genUnpackBits and added two helper
12164         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12165         for literal assignments in genPackBits (thanks to Frieder for
12166         reminding me).
12167
12168         * src/mcs51/gen.c
12169         * src/ds390/gen.c
12170
12171 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12172
12173         Fixed bug #748310 (pointer to function type mishandled when the
12174         function name is omitted). Also fixed a SIGSEGV when a function
12175         attribute (reentrant, etc) is used on a non-function or on a
12176         function but misplaced before the parameter list.
12177
12178         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12179         bug #748310
12180         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12181         * support/Util/SDCCerr.h,
12182         * support/Util/SDCCerr.c: Added func attr misuse error msg
12183
12184 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12185
12186         Fixed bug #787649 by anonymous
12187         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12188         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12189
12190 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12191
12192         Fixed numerous bitfield problems.
12193
12194         * src/SDCC.y: More bitfield related error checking
12195         * src/SDCCsymt.h,
12196         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12197         * support/Util/SDCCerr.h,
12198         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12199         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12200         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12201         * support/regression/tests/bitfields.c: tests added
12202
12203 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12204
12205         Made the constant following the "interrupt" keyword optional. If
12206         omitted, the function will not automatically be given an entry
12207         in the interrupt vector table (similar to #pragma NOIV, but
12208         less syntacticly kludgy). The interrupt number is also now
12209         range checked. Also fixed a bug in the high order bit example
12210         in the manual.
12211
12212         * src/SDCC.y
12213         * src/SDCCmem.c
12214         * src/SDCCglue.c
12215         * src/SDCCsymt.h
12216         * support/Util/SDCCerr.c
12217         * support/Util/SDCCerr.h
12218         * doc/sdccman.lyx
12219
12220 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12221
12222         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12223         * src/SDCCicode.c (operandOperation): rewritten some ops
12224         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12225         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12226         other type
12227         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12228         be re-activated by defining REDUCE_LITERALS)
12229         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12230         unsigned, but are signed by default
12231         * src/SDCCval.c (constVal): rearranged
12232         * src/SDCCval.c (valMod): preliminary fix
12233         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12234         * support/regression/literalop.c: added, work in progress
12235
12236 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12237
12238         Generate warnings for useless declarations like "char data;"
12239         that don't do what new users expect.
12240
12241         * src/SDCC.y
12242         * support/Util/SDCCerr.h
12243         * support/Util/SDCCerr.c
12244
12245 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12246
12247         * src/SDCCval.c (valMult): fix overflow detection of negative int
12248
12249 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12250
12251         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12252
12253         Changes to support big endian targets:
12254
12255         * src/ports.h
12256         * src/SDCCglue.c
12257         * src/avr/main.c
12258         * src/ds390/main.c
12259         * src/izt/i186.c
12260         * src/mcs51/main.c
12261         * src/pic/main.c
12262         * src/pic16/main.c
12263         * src/xa51/main.c
12264         * src/z80/main.c
12265
12266 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12267
12268         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12269         * device/lib/time.c: fixed warning "integer overflow in expression"
12270
12271 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12272
12273         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12274         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12275         constants are unsigned; added recognition of "u" flag for unsigned
12276         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12277         * src/SDCCval.c (valDiv, valMod): fixed signdness
12278         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12279         signedness of modulo, left and right shift
12280         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12281         * support/Util/SDCCerr.h: added warning W_INT_OVL
12282         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12283         * src/SDCCast.c (ast_print): improved output of constants
12284
12285 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12286
12287         Fixed some warnings when building with MSVC:
12288
12289         * as/mcs51/asdata.c
12290         * as/z80/asdata.c
12291         * as/mcs51/asm.h
12292         * as/z80/asm.h
12293         * link/z80/aslink.h
12294         * link/z80/lkdata.c
12295         * link/z80/lkeval.c
12296         * link/z80/lkgb.c
12297         * link/z80/lkihx.c
12298         * link/z80/lks19.c
12299         * link/z80/lksym.c
12300         * support/cpp2/cpplib.c
12301         * src/ds390/gen.c
12302         * src/mcs51/gen.c
12303
12304 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12305
12306         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12307
12308 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12309
12310         * support/librarian/clean.mk: Do not remove Makefile.
12311         * support/librarian/Makefile: added.
12312
12313 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12314
12315         Added librarian to MSVC build:
12316         * all.dsp
12317         * sdcc.dsw
12318         * support/librarian/librarian.dsp
12319
12320         'configure' not needed for librarian, removed:
12321         * support/librarian/configure
12322         * support/librarian/configure.in
12323         * support/librarian/config_in.h
12324         * support/librarian/Makefile.in
12325
12326         Hopefully these ones built the librarian and the rest of sdcc properly:
12327         * Makefile
12328         * Makefile.common.in
12329
12330         Messed up 'configure', so revert to previous version:
12331         * configure
12332         * configure.in
12333
12334 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12335
12336         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12337         there, while the mantissa of a double is "only" 53 bits wide.
12338
12339 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12340
12341         Adding sdcclib to the build.  MSVC project coming soon.
12342         Files added/changed:
12343
12344         * support/librarian/clean.mk
12345         * support/librarian/configure
12346         * support/librarian/configure.in
12347         * support/librarian/config_in.h
12348         * support/librarian/Makefile.bcc
12349         * support/librarian/Makefile.in
12350         * support/librarian/sdcclib.c
12351         * Makefile.bcc
12352         * Makefile
12353         * Makefile.common.in
12354         * configure
12355         * configure.in
12356
12357 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12358
12359         Linker now complaints if linked modules have conflicting options, for
12360         example, one compiled using --model-large and another one compiled with
12361         --model-small.  The following files were modified:
12362
12363         * as/mcs51/asdata.c
12364         * as/mcs51/aslink.h
12365         * as/mcs51/asm.h
12366         * as/mcs51/asmain.c
12367         * as/mcs51/asout.c
12368         * as/mcs51/i51pst.c
12369         * as/mcs51/lkdata.c
12370         * as/mcs51/lklibr.c
12371         * as/mcs51/lkmain.c
12372         * as/z80/asdata.c
12373         * as/z80/asm.h
12374         * as/z80/asmain.c
12375         * as/z80/asout.c
12376         * as/z80/z80pst.c
12377         * link/z80/aslink.h
12378         * link/z80/lkdata.c
12379         * link/z80/lklibr.c
12380         * link/z80/lkmain.c
12381         * src/SDCCglue.c
12382
12383 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12384
12385         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12386         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12387
12388 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12389
12390         * src/z80/mappings.i: fix _mul[us][int,long] entries
12391
12392 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12393
12394         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12395
12396 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12397
12398         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12399         * support/regression/tests/bitopcse.c: added
12400         fixed warning:
12401         * src/avr/gen.c:
12402         * src/pic/gen.c:
12403         * src/pic16/gen.c:
12404         * src/z80/gen.c:
12405         * src/xa51/gen.c:
12406
12407 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12408
12409         added support for new library format to z80, gbz80 linkers:
12410         *link/z80/aslink.h
12411         *link/z80/lklex.c
12412         *link/z80/lklib.c
12413         *link/z80/lklist.c
12414
12415 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12416
12417         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12418         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12419
12420 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12421
12422         added DUMMY_READ_VOLATILE:
12423         * src/SDCC.y:
12424         * src/avr/gen.c:
12425         * src/xa51/gen.c:
12426         * src/z80/gen.c:
12427         * src/pic/gen.c:
12428         * src/pic16/gen.c:
12429         * src/mcs51/gen.c:
12430         * src/ds390/gen.c:
12431         * src/SDCCcse.c (algebraicOpts): many improvements
12432         * src/SDCCcse.h: removed algebraicOpts()
12433         * src/SDCCicode.c (picDummyRead): added
12434
12435 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12436
12437         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12438         "Insufficient space in data memory".
12439
12440 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12441
12442         * src/mcs51/gen.c: fixed bug #771358
12443         * src/z80/gen.c: fixed bug #759087
12444
12445 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12446
12447         * src/pic16/glue.c: minor cleanup by Vangelis
12448
12449 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12450
12451         * device/include/regc515c.h: fixed #758477
12452         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12453         * device/lib/_gptrput.c: saved a few bytes
12454         * my tab spacing is 8, yours too?)
12455         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12456         * device/lib/serial.c: process RX bytes earlier than TX bytes
12457         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12458
12459 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12460
12461         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12462
12463 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12464
12465     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12466
12467 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12468
12469         * device/lib/Makefile.in: bad fix, reverted to 1.43
12470
12471 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12472
12473         * device/lib/Makefile.in: added missing z80 object files
12474
12475 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12476
12477         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12478         pic16 progress by Vangelis:
12479         * src/SDCCglobl.h:
12480         * src/SDCCmain.c:
12481         * src/pic/Makefile:
12482         * src/pic:
12483         * pic/Makefile:
12484         * pic16/device.c:
12485         * pic16/device.h:
12486         * pic16/gen.c:
12487         * pic16/gen.h:
12488         * pic16/genarith.c:
12489         * pic16/glue.c:
12490         * pic16/main.c:
12491         * pic16/pcode.c:
12492         * pic16/pcode.h:
12493         * pic16/pcodepeep.c:
12494         * pic16/peeph.def:
12495
12496 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12497
12498     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12499
12500 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12501
12502     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12503     added gbz80 build to MSVC project.
12504     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12505     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12506     from 8051 stuff and setup so it links using a .lnk file.
12507
12508 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12509
12510     * support/librarian/sdcclib.c: sdcc librarian.
12511     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12512     with sdcclib.
12513
12514 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12515
12516     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12517
12518 2003-07-02  Borut Razem <borut.razem AT siol.net>
12519
12520         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12521         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12522         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12523         src/xa51/main.c, src/z80/main.c:
12524         virtualization of glue() function: each port has it's own glue function,
12525         which is accessed by do_glue function pointer in PORT.general structure
12526
12527 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12528
12529         * DS800C400 fun, improved ROM interface and tinibios.
12530
12531 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12532
12533         * More support for DS80C400. Now includes beginning of interface to ROM.
12534
12535 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12536
12537         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12538
12539 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12540
12541         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12542
12543 2003-06-19  Borut Razem <borut.razem AT siol.net>
12544
12545         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12546
12547 2003-06-19  Borut Razem <borut.razem AT siol.net>
12548
12549         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12550         fixed Z80 port - crt0.o: cannot open.
12551
12552 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12553
12554         * support/Util/MySystem.c (merge_command): revert bad fix
12555
12556 2003-06-18  Borut Razem <borut.razem AT siol.net>
12557
12558         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12559
12560 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12561
12562         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12563         option --use-stdout sends errors to stdout instead of stderr.
12564
12565 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12566
12567         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12568
12569 2003-06-15  Borut Razem <borut.razem AT siol.net>
12570
12571         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12572         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12573         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12574         fixed width array of pointers replaced with sets;
12575         multiple include and lib paths ared transferred to preprocessor and linker
12576         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12577         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12578         fixed width array of pointers
12579         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12580         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12581         fixupPath(), getPathDifference()
12582         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12583         fixed width array of pointers
12584
12585 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12586
12587         * src/pic16/ralloc.c: fix warnings
12588         * src/pic16/pcode.c: fix warning
12589
12590 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12591
12592          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12593         know all the details, but essentially this set of changes enable
12594         the pic16 port to generate movff instructions and generate assembler
12595         directives,
12596         * src/SDCCmain.c:
12597         * src/pic16/gen.c:
12598         * src/pic16/glue.c:
12599         * src/pic16/pcode.c:
12600         * src/pic16/device.c:
12601         * src/pic16/main.c:
12602         * src/pic16/pcode.h:
12603         * src/pic16/pcoderegs.c:
12604         * src/pic16/ralloc.c:
12605         * src/pic16/ralloc.h:
12606
12607 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12608
12609         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12610         added option --vc, so sdcc errors and warnings are compatible with
12611         Microsoft Visual Studio.
12612
12613 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12614
12615         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12616           device/lib/libfloat.lib: added atof function.
12617
12618 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12619
12620         * doc/sdccman.lyx: updated to Lyx 1.3
12621         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12622         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12623         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12624
12625 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12626
12627         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12628
12629 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12630
12631         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12632           additions to the "related tools/documentation" section
12633
12634 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12635
12636         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12637
12638 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12639
12640         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12641         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12642
12643 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12644
12645         * doc/sdccman.lyx: fix double dash and other minor things
12646         * doc/Makefile: fix double dash
12647
12648 2003-05-28  Karl Bongers(patches from Martin Helmling)
12649         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12650           condition and ignore commands.
12651
12652 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12653
12654         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12655           is in parts still quite out of date, I did changes as far as I felt makes sense
12656           for a non-native english speaker.
12657           Please feel free to add to the manual or to correct my changes.
12658         * doc/Makefile: undid touching the date of intermediate tex files.
12659
12660 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12661
12662         * doc/sdccman.lyx: Manual has an index now
12663
12664 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12665
12666         Finalize muluint/mulsint and mululong/mulslong merging:
12667         * device/lib/_mulint.c
12668         * device/lib/_mullong.c
12669         * device/lib/gbz80/mul.s
12670         * device/lib/gbz80/stubs.s
12671         * device/lib/z80/mul.s
12672         * device/lib/z80/stubs.s
12673         * src/SDCCsymt.c (initCSupport)
12674
12675 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12676
12677         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12678         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12679           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12680           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12681           instead of /Zm500.
12682
12683 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12684
12685         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12686           the regression tests I'm not brave enough to enable 245.b, 245.c
12687         * doc/sdccman.lyx: added latex preamble for hyperref package.
12688           Using pdflatex this will give you a hyperlinked pdf file with
12689           bookmarks. (prepend '%' before /usepackage if this breaks something)
12690
12691 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12692
12693          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12694
12695 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12696
12697         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12698
12699 2003-05-21    <johan AT balder>
12700
12701         * src/SDCCglue.c (printIval): fixed bug #739934
12702
12703 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12704
12705         Applied patch from bug 737905 (renamed yylineo to mylineno):
12706         * src/altlex.c
12707         * src/SDCCast.c
12708         * src/SDCglobl.h
12709         * src/SDCC.lex
12710         * src/SDCCsymt.c
12711         * src/SDCCval.c
12712         * src/pic16/pcode.c: Cleaned warnings
12713         * src/pic16/pcodeflow.c: Cleaned warnings
12714         * src/pic16/pcoderegs.c: Cleaned warnings
12715
12716 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12717
12718         * src/pic16/pcode.c: Cleaned warnings
12719         * src/pic16/pcodepeep.c: Cleaned warnings
12720         * src/pic16/ralloc.c: Cleaned warnings
12721
12722 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12723
12724         * doc/sdccman.lyx: fixed bug 739745
12725         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12726
12727 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12728
12729         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12730         it can be defined with CFLAGS when running configure
12731         * src/SDCCmain.c: fixed compiling + linking with object files
12732
12733 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12734
12735         * configure.in: configure for pic16 port,
12736             added --disable-pic16-port
12737         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12738         * src/SDCCmain.c: linkOptions is changed to set *,
12739             added if/endif conditional macros to remove options help
12740             messages from optionsTable when a port is not configured, added
12741             support for the PIc16 port in the ports table, when executing
12742             the compiler with no port specified on command line, a default
12743             port is selected with the new macro DEFAULT_PORT which is
12744             defined in port.h, in setDefaultOptions() linkOptions is removed
12745             from initialization assignment, since now it is a set,
12746             parseCmdLine uses setParseWithComma for linkOptions, in
12747             linkEdit() linkOptions are accessed with new function indexSet()
12748             which returns the i'th item of a set variable. See SDCCset.c, in
12749             linkEdit() when calling buildCmdLine(), added linkOptions as
12750             last argument. Now users can pass arguments to gplink via the
12751             -Wl option, main() uses pic16glue() to glue up pic16 programs
12752         * src/SDCCpeeph.c: various changes to support pic16
12753         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12754             return the i'th item of the set
12755         * src/SDCCset.h: added function prototype for indexSet()
12756         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12757         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12758         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12759             added macro DEFAULT_PORT
12760         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12761         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12762             generated
12763         * src/pic16/glue.c: commented out some error producing lines
12764         * src/pic16/main.c: __config directives are commented out to stop
12765             gpasm complaining and test the linkage with gplink, _linkCmd and
12766             _asmCmd changed to be more gplink and gpasm friendly
12767         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12768             produced an error when parsed, peep rule 12 is added to utilize
12769             movff, but it is commented out since the pCode does not support
12770             yet a command with 2 address arguments
12771
12772 2003-05-18    <johan AT balder>
12773
12774         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12775         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12776 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12777
12778         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12779   Added feature to script commands from file.
12780
12781 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12782
12783         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12784         * src/SDCCutil.c: include ctype.h for win32
12785
12786 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12787
12788         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12789
12790 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12791
12792         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12793   Fixed so you can set breakpoints prior to run, run does not stop
12794   on entry now.  Add tbreak.  Other enhancements and fixes for use
12795   with ddd.
12796
12797 2003-05-12  Borut Razem <borut.razem AT siol.net>
12798
12799         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12800
12801 2003-05-11  Borut Razem <borut.razem AT siol.net>
12802
12803         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12804         the path of bin directory, so that PATH is the only env. variable, which has to be set
12805         in case of standard installation.
12806         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12807         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12808         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12809
12810 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12811
12812         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12813         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12814         temp files are in the port dir; clean the gen/test directory when
12815         generating new test.c
12816         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12817         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12818         * support/regression/tests/zeropad.c: added
12819
12820 2003-05-09    <johan AT balder>
12821
12822         * src/SDCCglue.c: fixed bug #597940
12823
12824 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12825
12826         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12827   cache sfr, optimize next,step, fix off by one sourceline,
12828   support ddd list function.
12829         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12830
12831 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12832
12833         * support/regression/HTMLgen.py: added compare_s2f()
12834         * support/regression/Makefile: redo 1.27
12835         * support/regression/generate-cases.py: redo 1.5
12836
12837 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12838
12839         * support/regression/tests/float.c: workaround 33 bit hex constant
12840         * support/regression/tests/simplefloat.c: fix division for host
12841
12842 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12843
12844         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12845         that tame's the PIC's over-aggressive optimizer.
12846
12847 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12848
12849          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12850          support for MSVC.
12851
12852 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12853
12854         Initial support for DS80C400. "Hello world" runs on TINIm400
12855         (with polled I/O).
12856
12857 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12858
12859          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12860          * Some notes on ddd usage added in debugger/README
12861          Martin Helmling adding more features and fixes for ddd GUI debugger.
12862          Code added for nexti, stepi, up, down, and other adjustments.
12863
12864 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12865
12866         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12867         * src/pic/peeph.def Added two rules to optimize carry manipulation
12868         * src/pic/* removed debug printfs
12869
12870 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12871
12872         * debugger/mcs51/cmd.c: added header newalloc.h
12873
12874 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12875
12876         * as/Makefile: new EXEEXT
12877         * as/z80/Makefile: remove trailing slash of BUILDIR
12878         * as/z80/clean.mk: new EXEEXT
12879         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12880         * support/cpp2/Makefile.in: new EXEEXT
12881         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12882
12883 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12884
12885         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12886         EXEEXT was introduced to fix all related problems with targets
12887         "clean", "install" and "uninstall"; a couple of further flaws
12888         especially with "clean" have been fixed too
12889         * as/mcs51/Makefile.in
12890         * as/mcs51/clean.mk
12891         * as/z80/Makefile
12892         * Makefile
12893         * clean.mk
12894         * debugger/mcs51/Makefile.in
12895         * debugger/mcs51/clean.mk
12896         * link/z80/Makefile
12897         * link/z80/Makefile.in
12898         * link/z80/clean.mk
12899         * link/Makefile
12900         * packihx/Makefile.in
12901         * packihx/clean.mk
12902         * sim/ucsim/Makefile
12903         * sim/ucsim/clean.mk
12904         * sim/ucsim/avr.src/Makefile.in
12905         * sim/ucsim/avr.src/clean.mk
12906         * sim/ucsim/s51.src/Makefile.in
12907         * sim/ucsim/s51.src/clean.mk
12908         * sim/ucsim/xa.src/Makefile.in
12909         * sim/ucsim/xa.src/clean.mk
12910         * sim/ucsim/z80.src/Makefile.in
12911         * sim/ucsim/z80.src/clean.mk
12912         * sim/ucsim/main_in.mk
12913         * sim/ucsim/packages_in.mk
12914         * sim/ucsim/gui.src/Makefile.in
12915         * sim/ucsim/gui.src/serio.src/Makefile.in
12916         * sim/ucsim/gui.src/serio.src/clean.mk
12917         * src/Makefile.in
12918         * src/clean.mk
12919         * support/cpp2/Makefile.in
12920         * support/cpp2/clean.mk
12921         * support/makebin/Makefile
12922         * support/makebin/clean.mk
12923         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12924         * doc/sdccman.lyx: --program-suffix no longer needed
12925
12926 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12927
12928          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12929          Martin Helmling added support for ddd GUI debugger.
12930          Code added to display assembly, set variables, and other commands
12931          to interface to ddd.
12932
12933 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12934
12935         * as/Makefile: fix target clean
12936         * as/clean.mk: fix target clean
12937         * as/z80/clean.mk: fix target clean
12938
12939 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12940
12941         * Makefile.common.in: added  AT EXEEXT AT
12942         * configure.in: removed all mingw32 stuff
12943         * configure: rebuilt from configure.in
12944         * doc/sdccman.lyx: updated section "installation"
12945         * support/scripts/sdcc_mingw32: adapted to configure
12946         * support/scripts/sdcc_cygwin_mingw32: added
12947
12948 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12949
12950         * src/pic Added object file support for the PIC port
12951         * src/pic Applied patch from Craig Franklin (this started the object file support)
12952         * src/regression Updated the PIC regression tests for object files
12953
12954 2003-04-20  Borut Razem <borut.razem AT siol.net>
12955
12956         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12957           lklex.c: In function `getfid':
12958           lklex.c:203: warning: array subscript has type `char'
12959         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12960           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12961         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12962           stack handling macros
12963
12964 2003-04-19  Borut Razem <borut.razem AT siol.net>
12965
12966         * "handling space characters in file path" task:
12967         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12968         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12969         * support/Util/MySystem.h: make it self-sufficient
12970         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12971           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12972           handling space characters in file path
12973         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12974           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12975         * support/Util/MySystem.c: handling space characters in executable's path
12976
12977 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12978
12979         * as/z80/Makefile: fix permanent rebuild of z80
12980         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12981         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12982
12983 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12984
12985         * src/SDCCopt.c: add special case optimization to replace modulo by
12986           a power of two with a bitwise AND.
12987
12988 2003-04-18    <johan AT balder>
12989
12990         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12991
12992 2003-04-17    <johan AT balder>
12993
12994         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12995         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12996
12997 2003-04-13  Borut Razem <borut.razem AT siol.net>
12998
12999         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
13000         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
13001           fixed mingw problem in adl_NORMALIZE_PATH
13002
13003 2003-04-12  Borut Razem <borut.razem AT siol.net>
13004
13005         * fixed "#pragma SAVE/RESTORE can not be nested":
13006         * src/SDCC.lex: reworked pragma handling functions
13007         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13008         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13009
13010 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13011
13012         * src/SDCCutil.c (pathEquivalent): defined but not used
13013         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13014         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13015         * configure: rebuilt from configure.in
13016         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13017         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13018         * device/include/Makefile.in: replace sdcc_datadir
13019         * device/lib/Makefile.in: replace sdcc_datadir
13020         * Makefile.common.in: add LDFLAGS from configure
13021         * packihx/Makefile.in: use LDFLAGS
13022         * src/Makefile.in: use LDFLAGS
13023         * support/cpp2/Makefile.in: add LDFLAGS from configure
13024         * support/makebin/Makefile: use LDFLAGS
13025         * .version: bumped version number to 2.3.5
13026
13027 2003-04-12  Borut Razem <borut.razem AT siol.net>
13028
13029         * completed "different paths" task:
13030         * src/SDCCmacro.c: fixed bug in handling quotes
13031         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13032         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13033
13034 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13035
13036         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13037
13038 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13039
13040         * ds390/gen.c ds390/peeph.def: fix bug 706781
13041
13042 2003-04-11  Borut Razem <borut.razem AT siol.net>
13043
13044         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13045
13046 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13047
13048         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13049         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13050          set - this bit used to not be set...).
13051         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13052           bad code in PIC Port
13053         * src/regression/and2.c added to test bug 609268
13054         * src/regression/Makefile added and2.c to regression test
13055
13056
13057 2003-04-08    <johan AT CP255758-A>
13058
13059         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13060         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13061         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13062
13063 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13064
13065         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13066         fix bug #487815
13067         * support/cpp2/Makefile.in: fix bug #487815
13068         * configure: rebuilt from configure.in
13069         * Makefile.common.in: docdir changed, new path suffixes
13070         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13071         * sdcc_vc_in.h: reflect changes from sdccconf.h
13072         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13073         * src/SDCCutil.h: remove BINDIR hack
13074         * doc/sdccman.lyx: update new path hierarchy
13075
13076 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13077
13078         * src/SDCCpeeph.c: added okToRemoveSLOC test
13079
13080 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13081
13082         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13083
13084 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13085
13086         * src/SDCCpeeph.c: added labelIsReturnOnly test
13087         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13088
13089 2003-04-05    <johan AT balder>
13090
13091         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13092         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13093         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13094         * src/SDCCast.c: fixed a warning
13095         * src/SDCCast.h: fixed a warning
13096         * src/SDCCicode.c (operandFromAst): fixed a warning
13097
13098 2003-04-04    <johan AT balder>
13099
13100         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13101         * src/SDCCast.c (decorateType): fixed bug #715076
13102         * src/SDCC.y: fixed bug #702907
13103
13104 2003-04-03    <johan AT balder>
13105
13106         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13107         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13108         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13109         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13110         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13111
13112 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13113
13114         * _decdptr.c: fix return values
13115         * _gptrget.c: fix return values
13116         * _gptrgetc.c: fix return values
13117         * _gptrput.c: fix return values
13118         * _mulint.c: fix return values
13119         * as/z80/Makefile: fix 'make -j' problem
13120
13121 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13122
13123         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13124         * configure.in: big cleanup, updated to autoconf 2.5x
13125         * configure: rebuilt from configure.in
13126         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13127         * sdcc_vc_in.h: reflect changes from sdccconf.h
13128         * doc/Makefile: fixed a flaw in "make install"
13129
13130 2003-04-02    <johan AT balder>
13131
13132         * src/ds390/gen.c (genCmp): no comments
13133         * src/mcs51/gen.c (genCmp): no comments
13134         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13135         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13136
13137 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13138
13139         * support/regression/generate-cases.py: place generated file in given sub directory
13140         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13141         * support/regression/Makefile: improvements for 'make -j';
13142         side effect: it's simpler and faster now
13143
13144 2003-03-31  Borut Razem <borut.razem AT siol.net>
13145
13146         * src/z80/main.c: link-{port} and as-{port} defined without path
13147         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13148
13149 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13150
13151         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13152
13153 2003-03-30  Borut Razem <borut.razem AT siol.net>
13154
13155         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13156           changed type of list parameter to set
13157         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13158         * src/port.h: changed type of do_assemble() parameter to set
13159         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13160           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13161           definition of "cppoutfilename" macro with NULL value in preProcess()
13162         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13163         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13164         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13165           replaced with set *binPathSet
13166         * shash_add() deallocates the item, if allready exsists, before adding the new one
13167         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13168
13169 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13170
13171         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13172           a nested for loop bug in the PIC port
13173         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13174           for loops
13175
13176 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13177
13178         * support/Util/dbuf.h: remove C++ stuff to make it portable
13179
13180 2003-03-28  Borut Razem <borut.razem AT siol.net>
13181
13182         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13183           literal strings in stringLiteral()
13184         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13185         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13186           to the project
13187
13188 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13189
13190         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13191
13192 2003-03-26    <johan AT balder>
13193
13194         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13195         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13196         * src/SDCCast.c (decorateType): fixed " -v < 3"
13197
13198 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13199
13200         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13201         Added Lenny Story's debug infrastructure changes:
13202         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13203         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13204         * src/cdbFile.c: added
13205         * src/SDCCdebug.c: added
13206         * src/SDCCdebug.h: added
13207         * src/SDCCast.c (createFunction)
13208         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13209         * src/SDCCmain.c (parseCmdLine, main)
13210         * src/SDCCmem.c (redoStackOffsets)
13211         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13212         * src/SDCCsymt.h
13213         * src/common.h
13214         * src/avr/gen.c (genAVRCode)
13215         * src/ds390/gen.c (gen390Code)
13216         * src/mcs51/gen.c (gen51Code)
13217         * src/pic/gen.c (genpic14Code)
13218         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13219         * src/xa51/gen.c (genXA51Code)
13220         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13221
13222 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13223
13224         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13225         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13226
13227 2003-03-22    <johan AT balder>
13228
13229         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13230
13231 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13232
13233         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13234         * doc/cdbfileformat.lyx: added, written by Lenny Story
13235         * doc/Makefile: added cdbfileformat.lyx
13236         * doc/clean.mk: added cdbfileformat.lyx
13237
13238 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13239
13240         * src/mcs51/peeph.def: fix bug #705773
13241
13242 2003-03-20    <johan AT balder>
13243
13244         An sfr/sbit can have an "at #" AND an initializer
13245         * src/SDCCsymt.c (checkSClass):
13246         * src/SDCCmem.c (allocGlobal):
13247         * src/SDCCmem.c (allocLocal):
13248         * src/SDCCast.c (createBlock):
13249
13250 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13251
13252         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13253
13254 2003-03-16    <johan AT balder>
13255
13256         Undid the hackup of const and volatile, the problem is much bigger
13257         * src/SDCC.y:1.65
13258         * src/SDCCast.c:1.171
13259         * src/SDCCglue.c:1.138
13260         * src/SDCCicode.c:1.146
13261         * src/SDCCsymt.c:1.150
13262         * src/SDCCval.c:1.65
13263
13264 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13265
13266         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13267         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13268
13269 2003-03-13    <johan AT balder>
13270
13271         Hackup const and volatile modifiers in type chains a bit:
13272         * src/SDCC.y:1.63
13273         * src/SDCCast.c:1.169
13274         * src/SDCCglue.c:1.136
13275         * src/SDCCicode.c:1.143
13276         * src/SDCCsymt.c1.146
13277         * src/SDCCsymt.h1.59
13278         * src/SDCCval.c:1.63
13279
13280 2003-03-12    <johan AT balder>
13281
13282         * src/SDCCBBlock.h: more LRH debugging junk
13283         * src/SDCCcflow.h: more LRH debugging junk
13284         * src/SDCCloop.c: more LRH debugging junk
13285         * src/SDCC.y (struct_declaration): fixed bug #697590
13286         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13287         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13288         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13289
13290 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13291         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13292         test function names must now match exactly).
13293         * src/SDCCcse.c: added special case in findCheaperOp to allow
13294         extending a short integer. Makes less awful code for bug 700121 test case.
13295
13296 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13297
13298         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13299         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13300
13301 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13302
13303         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13304         actually called (operandsNotEqual() was called for all
13305         operandsNotEqualX tests).
13306
13307 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13308
13309         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13310         with shorter literals. Fixes bug 700121.
13311
13312 2003-03-11    <johan AT balder>
13313
13314         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13315
13316 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13317
13318         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13319         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13320
13321 2003-03-10  Borut Razem <borut.razem AT siol.net>
13322
13323         * src/SDCCmain.c: pipe preprocessor's output
13324         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13325         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13326         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13327         which closes all pipes in pipeSet set
13328         * src/SDCCset.c: free deleted item in function deleteSetItem()
13329         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13330         moved from z80 to src subproject
13331         * .version: increased version number to 2.3.4
13332
13333 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13334
13335         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13336         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13337         * support/regression/ports/xa51/spec.mk: fix typo
13338
13339 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13340
13341         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13342
13343 2003-03-09  Borut Razem <borut.razem AT siol.net>
13344
13345         * src/SDCCmain.c: pipe preprocessor's output
13346         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13347         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13348         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13349         which closes all pipes in pipeSet set
13350         * src/SDCCset.c: free deleted item in function deleteSetItem()
13351         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13352         moved from z80 to src subproject
13353
13354 2003-03-09  Borut Razem <borut.razem AT siol.net>
13355
13356         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13357         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13358         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13359         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13360         * src/SDCCglobl.h: unification of WIN32 native definitions
13361
13362 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13363
13364         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13365
13366 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13367
13368         * src/configure.in:   check for endianess (even while cross-compiling)
13369         * src/configure:      check for endianess (even while cross-compiling)
13370         * src/configure_in.h: check for endianess (even while cross-compiling)
13371         * src/avr/gen.c:        remove old endianess stuff
13372         * src/mcs51/gen.c:      remove old endianess stuff
13373         * src/ds390/gen.c:      remove old endianess stuff
13374         * src/pic/gen.c:        remove old endianess stuff
13375         * src/pic/genarith.c:   remove old endianess stuff
13376         * src/pic/glue.c:       fix endianess check
13377         * src/pic16/gen.c:      remove old endianess stuff
13378         * src/pic16/genarith.c: remove old endianess stuff
13379         * src/pic16/glue.c:     fix endianess check
13380         * src/xa51/gen.c:       remove old endianess stuff
13381         * src/z80/gen.c:        fix endianess check
13382         * src/SDCCglue.c:       fix endianess check
13383         * src/ds390/peeph.def: fix bug 700036
13384
13385 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13386
13387         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13388         * src/configure: find appropriate data-types on host for SDCC's int and long
13389         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13390         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13391         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13392
13393 2003-03-07    <johan AT balder>
13394
13395         Just a big NOOP:
13396                 some minor cleanups before the big shot
13397                 OP_DEFS and OP_USES now use Kevin's protection
13398                 new option --nolabelopt
13399
13400         * src/SDCCBBlock.c:
13401         * src/SDCCast.c,:
13402         * src/SDCCcflow.c:
13403         * src/SDCCcse.c:
13404         * src/SDCCicode.c:
13405         * src/SDCCicode.h:
13406         * src/SDCClabel.c:
13407         * src/SDCCloop.c:
13408         * src/SDCCmain.c:
13409         * src/ds390/ralloc.c:
13410         * src/mcs51/ralloc.c:
13411         * src/pic/ralloc.c:
13412         * src/xa51/ralloc.c:
13413         * src/z80/ralloc.c:
13414
13415 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13416
13417         * src/pic/pcode.c (get_op): fix 64 bit warnings
13418         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13419         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13420         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13421         * support/regression/tests/malloc.c: fix 64 bit warnings
13422
13423 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13424
13425         * src/mcs51/gen.c (genMinus): fixed bug 696436
13426
13427 2003-03-02  Borut Razem <borut.razem AT siol.net>
13428
13429         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13430
13431 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13432
13433         * configure.in: test for mkstemp
13434         * sdccconf_in.h: add HAVE_MKSTEMP
13435
13436 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13437
13438         * device/include/ctype.h: removed warning while using --stack-auto
13439         * device/include/malloc.h: removed warning while using --stack-auto
13440         * device/include/string.h: removed warning while using --stack-auto
13441
13442 2003-02-23  Borut Razem <borut.razem AT siol.net>
13443
13444         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13445         because NDEBUG is defined (see man assert)
13446         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13447
13448 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13449
13450         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13451         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13452
13453 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13454
13455         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13456         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13457
13458 2003-02-18    <johan AT balder>
13459
13460         * as/mcs51/asmain.c (asmbl): module can start with a digit
13461         * as/z80/asmain.c (asmbl): module can start with a digit
13462
13463 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13464
13465         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13466         * src/asm.c: fix pipe() for Mingw32
13467
13468 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13469
13470         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13471         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13472         make -V work again; --c1mode reads now from stdin
13473         * doc/sdccman.lyx: added --c1mode
13474         * support/Util/SDCCerr.c: new messages for c1 mode
13475         * support/Util/SDCCerr.h: new messages for c1 mode
13476         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13477
13478 2003-02-15    <johan AT balder>
13479
13480         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13481
13482 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13483
13484         * doc/sdccman.lyx: Environment variables, -o and other minor things
13485
13486 2003-02-14    <johan AT balder>
13487
13488         * src/xa51/main.c: before anyone really tries to use it :)
13489
13490         * Install doc's in share/sdcc/doc
13491         * removed some obsolete files
13492         * Do a proper make distclean and uninstall
13493         M Makefile.common.in
13494         R sdccbuild.sh
13495         M as/Makefile
13496         M device/include/Makefile.in
13497         M device/lib/Makefile.in
13498         M doc/sdccman.lyx
13499         M link/Makefile
13500         M sim/ucsim/doc/Makefile.in
13501         M src/clean.mk
13502         R src/avr/peeph.rul
13503         R src/xa51/peeph.rul
13504         M support/cpp2/Makefile.in
13505         M support/makebin/Makefile
13506
13507
13508 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13509
13510         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13511
13512 2003-02-10  Borut Razem <borut.razem AT siol.net>
13513
13514         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13515         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13516         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13517         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13518         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13519         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13520         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13521         src/z80/Makefile.bcc: Borland Makefile cleanup
13522         * as/z80/Makefile.bcc: Added Borland Makefile
13523         * support/cpp2/borland.h: Removed
13524
13525 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13526
13527         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13528         * src/SDCC.lex: new pragma NOIV
13529         * src/SDCCglobl.h: new pragma NOIV
13530         * src/SDCCmem.c: new pragma NOIV
13531
13532 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13533
13534         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13535
13536 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13537
13538         * src/SDCCmain.c: signal handling is switched off by --debug
13539         * doc/Makefile: small fix for install; use clean.mk again
13540         * doc/clean.mk: clean *.pdf and *.html too
13541
13542 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13543
13544         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13545         * device/lib/printfl.c: fix a ds390 bug by making it portable
13546         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13547         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13548         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13549         * debugger/mcs51/cmd.c: converted multi-line string literals
13550         * sim/ucsim/globals.cc: converted multi-line string literals
13551         * src/SDCCmain.c: introduced signal handler to remove temp files
13552         * doc/Makefile: small tweaks, implement clean
13553         * doc: removed generated files
13554
13555 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13556
13557         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13558         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13559         Address Record is not correctly generated for DS390."
13560
13561 2003-02-02  Borut Razem <borut.razem AT siol.net>
13562
13563         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13564         * as/mcs51/asm.h: fixed compilation with Borland C
13565         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13566         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13567         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13568         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13569         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13570         src/z80/Makefile.bcc: delete $(LIB) only if exist
13571         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13572
13573 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13574
13575         * device/include/malloc.h: introduced NULL
13576         * device/include/string.h: introduced NULL
13577         * device/include/stdlib.h: introduced NULL
13578         * device/lib/_memcpy.c: removed NULL
13579         * device/lib/_strcat.c: removed NULL
13580         * device/lib/_strchr.c: removed NULL
13581         * device/lib/_strcmp.c: removed NULL
13582         * device/lib/_strcpy.c: removed NULL
13583         * device/lib/_strcspn.c: removed NULL
13584         * device/lib/_strlen.c: removed NULL
13585         * device/lib/_strncat.c: removed NULL
13586         * device/lib/_strncmp.c: removed NULL
13587         * device/lib/_strncpy.c: removed NULL
13588         * device/lib/_strpbrk.c: removed NULL
13589         * device/lib/_strrchr.c: removed NULL
13590         * device/lib/_strspn.c: removed NULL
13591         * device/lib/_strstr.c: removed NULL
13592         * device/lib/_strtok.c: removed NULL
13593         * device/lib/malloc.c: removed NULL, include own header
13594
13595 2003-02-02    <johan AT balder>
13596
13597         * 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
13598         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13599         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13600         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13601         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13602         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13603
13604 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13605
13606         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13607         area 'DATA'"
13608
13609 2003-02-01    <johan AT balder>
13610
13611         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13612
13613 2003-01-31    <johan AT CP255758-A>
13614
13615         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13616
13617 2003-01-30    <johan AT balder>
13618
13619         * src/SDCCBBlock.c: automatic bug detection
13620         * src/SDCCicode.c: automatic bug detection
13621
13622 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13623
13624         * src/SDCCglobl.h:   now --xram-size 0 works
13625         * src/SDCCmain.c:    now --xram-size 0 works
13626
13627 2003-01-29    <johan AT balder>
13628
13629         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13630
13631 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13632
13633         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13634         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13635         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13636         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13637         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13638         * src/SDCCmain.c:    Added options --xram-size and --code-size
13639
13640 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13641
13642         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13643         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13644
13645 2003-01-27    <johan AT balder>
13646
13647         * src/SDCC.y: fixed bug #613764
13648
13649 2003-01-26    <johan AT balder>
13650
13651         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13652         * src/SDCCsymt.h: fixed bug #673374
13653         * src/SDCCglue.c: fixed bug #661910
13654         * src/SDCCast.c: fixed bug #458099 and 673374
13655
13656 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13657
13658         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13659         * as/mcs51/strcmpi.h: added
13660         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13661         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13662         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13663         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13664         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13665         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13666         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13667         * as/mcs51/Makefile.aslink: new module strcmpi
13668         * as/mcs51/Makefile.asx8051: new module strcmpi
13669         * as/mcs51/Makefil.bcc: new module strcmpi
13670         * as/mcs51/Makefile.in: new module strcmpi
13671         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13672
13673 2003-01-26    <johan AT balder>
13674
13675         * src/SDCCglue.c: reverted back to 1.124
13676         * src/SDCCast.c: reverted back to 1.156
13677         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13678
13679 2003-01-25    <johan AT balder>
13680
13681         * src/SDCCglue.c: A better fix for bug #661910
13682         * src/SDCCast.c: A better fix for bug #661910
13683         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13684
13685 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13686
13687         * src/Makefile.in: remove spawn.o
13688         * src/SDCCmain.c: remove spawn.h
13689         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13690         * src/spawn.c: removed
13691         * src/spawn.h: removed
13692         * support/regression/ports/ds390/spec.mk: link with -r
13693
13694 2003-01-24    <johan AT CP255758-A>
13695
13696         * src/ds390/gen.c (aopOp): fixed bug #667458
13697         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13698         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13699         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13700
13701 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13702
13703         * src/mcs51/peeph.def: better assembler identation by Frieder
13704         * src/mcs51/gen.c: better assembler identation by Frieder
13705
13706 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13707
13708         * as/z80/string.h: removed for gcc 3.2
13709         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13710         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13711
13712 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13713
13714         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13715         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13716         * support/regression/Makefile: separate temp files for ports
13717         * support/regression/generate-cases.py: separate temp files for ports
13718         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13719         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13720
13721 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13722
13723         * moved tinitalk to device/examples/ds390
13724
13725 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13726
13727         * as/mcs51/lkmem.c: rflag is for DS390
13728         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13729         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13730                          (linkEdit): move mem- and map-files the same way as ihx-files
13731         * src/z80/main.c (_setDefaultOptions): removed --generic
13732         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13733         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13734         * src/pic/glue.c (picglue): --c1mode works again
13735         * src/pic16/glue.c (pic16glue): --c1mode works again
13736         * src/asm.c (printCLine): fix #660034
13737
13738 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13739
13740         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13741         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13742         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13743         * as/mcs51/lkmem (summary): better fix for sp problem
13744         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13745         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13746         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13747                                               remove --stack-after-data
13748
13749 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13750
13751         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13752         * src/SDCCutil.c (join): ugly bug: missing '\0'
13753         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13754
13755 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13756
13757         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13758         * src/port.h: typo
13759         * src/pic/main.c (_asmCmd): gpasm supports -o
13760         * src/z80/main.c: more general macros
13761         * device/lib/Makefile.in: remove intermediate files
13762
13763 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13764
13765         * .version: Bumped version number to 2.3.3
13766         * src/SDCCBBlock.c: new option -o
13767         * src/SDCCglobl.h: new option -o
13768         * src/SDCCglue.c: new option -o
13769         * src/SDCCmain.c: new option -o
13770         * src/asm.c: new option -o
13771         * src/ds390/main.c: new option -o
13772         * src/pic/glue.c: new option -o
13773         * src/pic/pcode.c: new option -o
13774         * src/pic/ralloc.c: new option -o
13775         * src/pic16/glue.c: new option -o
13776         * src/pic16/pcode.c: new option -o
13777         * src/pic16/ralloc.c: new option -o
13778         * src/z80/main.c: new option -o
13779         * device/lib/Makefile.in: use -o
13780         * support/regression/ports/ds390/spec.mk: use -o
13781         * support/regression/ports/gbz80/spec.mk: use -o
13782         * support/regression/ports/mcs51/spec.mk: use -o
13783         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13784         * support/regression/ports/z80/spec.mk: use -o
13785         * support/regression/ports/ucz80/spec.mk: use -o
13786         * support/regression/ports/xa51/spec.mk: use -o
13787         * support/regression/fwk/lib/timeout.c: fix usage string
13788
13789 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13790         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13791
13792 2003-01-07    <johan AT balder>
13793
13794         * src/SDCCast.c (decorateType): fixed bug #600035
13795
13796 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13797         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13798         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13799         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13800         * src/pic/pcode.c: outcommented unused variable to remove warnings
13801         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13802
13803 2003-01-06    <karl AT turbobit.com>
13804         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13805    regression tests.
13806
13807 2003-01-06    <johan AT balder>
13808
13809         * src/SDCCicode.c: fixed array add
13810
13811 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13812         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13813         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13814
13815 2003-01-04    <johan AT balder>
13816
13817         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13818
13819 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13820         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13821
13822 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13823         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13824         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13825
13826 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13827         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13828
13829 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13830         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13831
13832 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13833         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13834
13835 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13836
13837     * in /sdcc/as/mcs51/ changed these files in order to create an
13838     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13839     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13840     following files to include the previous two files: aslink.dsp,
13841     Makefile.aslink, Makefile.bcc, and Makefile.in.
13842
13843     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13844     .adb instead of .cdb
13845
13846 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13847
13848         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13849         value from option --iram-size.
13850
13851 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13852
13853         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13854         dram[] array.
13855
13856 2002-09-18    <wiml AT hhhh.org>
13857
13858         * SDCClrange.h: exposed setFromRange() and setToRange()
13859         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13860           packRegsForAccUse() (bug 542397)
13861         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13862           multiple times and emitting the fetch operations more than once
13863           added aopGetUsesAcc() function to allow binary operators to
13864           fetch their operands in the correct order; made genMinus() emit
13865           compact code for X = LITERAL - Y
13866
13867 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13868         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13869         sprintf() in line 1267.
13870
13871 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13872         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13873         like ports.
13874
13875 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13876         Changes to aslink (All the changes are marked with 'JCF'):
13877
13878         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13879         summary().
13880
13881         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13882         area BSEG.  Also moves, if possible, the DATA area down into the internal
13883         ram so more space is available.
13884
13885         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13886         sflag.
13887
13888         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13889         not bytes.  Function summary() which creates a memory usage summary
13890         file with extension .mem.  Reports of overlaping stack and small stack
13891         size.  If the space for the stack is less than 16 bytes aslink trows a
13892         warning.
13893
13894         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13895         the 8051.  Option 'y' for memory summary output file.
13896
13897         Changes to sdcc (All the changes are marked with 'JCF'):
13898
13899         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13900
13901         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13902         overlaying area for it (uses RegBankUsed[4]).
13903
13904         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13905         bank zero as used by default.  By default aslink locates the stack
13906         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13907         the creation of the .mem file.  Delegates the allocation of data area
13908         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13909         the begining of the stack area to aslink.
13910
13911         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13912         glue() in SDCCglue.c creates an area for it.
13913
13914 2002-09-03  Borut Razem <borut.razem AT siol.net>
13915         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13916         sdcc/src/pic/glue.c:
13917         introduced atexit() handler for teporay files removal in case of
13918         errors, assertions, ...
13919
13920 2002-08-29  Borut Razem <borut.razem AT siol.net>
13921         * sdcc/support/cpp2/auto-host_vc_in.h:
13922         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13923         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13924         Maybe there is a similar problem with BORLANDC? It should be checked!
13925
13926         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13927         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13928         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13929         was not executed, and the compiler (cl) launched a warning:
13930         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13931
13932 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13933         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13934
13935 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13936         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13937
13938         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13939           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13940           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13941           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13942           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13943           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13944           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13945         - added Release configuration in VS projects
13946         - review of compiler an linker options
13947         - VC .exe files are generated in bin_vc directory, not to interfere
13948           with binaries generated from other projects (cygwin, mingw, bcc ...)
13949
13950         * sdcc/src/yacc.dsp: added
13951
13952         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13953         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13954         and insert the version number definitions from .version
13955
13956         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13957
13958         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13959         added - genarate auto-host.h using auto-host_vc_in.h as template
13960
13961         * sdcc/sdcc_vc.h,
13962         removed from CVS, generated automatically
13963
13964 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13965         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13966
13967 2002-08-11  Borut Razem <borut.razem AT siol.net>
13968         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13969
13970 2002-08-10  Borut Razem <borut.razem AT siol.net>
13971         * src/SDCCmain.c (main):
13972         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13973         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13974         The consequence was that some temporary files were not removed.
13975
13976         * src/SDCCglue.c:
13977         unification of code in functions tempfilename() and tempfile():
13978         function tempnam() is defined in Visual Studio 6.0 and .NET
13979
13980         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13981
13982         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13983           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13984         - removed compiler command line option /WX: Treats all warnings as errors
13985         - update a list of source files, included into the project
13986
13987         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13988           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13989         changed project type to Generic Project so that can be correcly converted to VS.NET project
13990
13991         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13992
13993         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13994
13995         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13996
13997         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13998         added return 0 statements after assert() to make compiler happy
13999
14000         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
14001         added newline in the def file to keep MSC compiler satisfied
14002
14003         * sdcc/src/z80/gen.c:
14004         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14005           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14006         - solved MSC error in function aopDump()
14007
14008         * sdcc_vc.h: define PREFIX as "\\sdcc"
14009
14010 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14011         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14012
14013 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14014         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14015         - Rewrote the register banking algorithm.
14016         - Added pCode live-range analysis to registers (for now, only non-used and
14017         singly-used registers optimized away)
14018
14019         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14020
14021         * 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.
14022
14023 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14024         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14025
14026 2002-04-22  Michael Hope  <michaelh AT vroom>
14027
14028         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14029
14030         * configure.in (DD_COPT): Added include support required for gbdk.
14031
14032         * .version: Bumped version number just to increase it.
14033
14034         * src/SDCCmain.c: Added -nostdinc to the default options.
14035
14036 2002-04-15  Michael Hope  <michaelh AT vroom>
14037
14038         * device/lib/z80/printf.c (sprintf): Added.
14039
14040         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14041
14042         * src/z80/peeph.def: Added transpose redundent load rule.
14043
14044         * src/z80/main.c: Added force callee saves for jaune.
14045
14046         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14047
14048         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14049
14050 2002-03-28  Johan Knol  <johan AT balder>
14051
14052         * src/SDCCval.c: fixed bug #532436
14053
14054 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14055         * /src/port.h:
14056         Added "char *Processor" field to the port structure.
14057
14058         * /src/SDCCmain.c:
14059         Added -p option. Allows port dependent processor to be specified.
14060
14061         * all ports:
14062         Initialized the new field char *Processor field to NULL in all ports
14063
14064         * /src/pic/*:
14065         Compiler generated registers for interrupt context saving
14066         were not getting allocated.
14067
14068 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14069
14070         * /src/SDCCast.c:
14071         Fixed left shift. Will promote the left side of a left shift
14072         if a) left shifting more than size of operand or b) when assigned
14073         to something size > size of left side
14074
14075 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14076         * src/pic/*
14077         tons of changes. Register allocation has been
14078         rewritten. Added customization for the various PICs. Flow
14079         analysis is restructured. ...
14080
14081         * src/pic/device.h:
14082         Added
14083
14084         * src/pic/device.c:
14085         Added. device.c is a PIC port hack to accomodate variations
14086         in PIC devices.
14087
14088 2002-03-13  Michael Hope  <michaelh AT vroom>
14089
14090         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14091
14092 2002-03-04  johanknol  <johanknol AT manik>
14093
14094         * /src/SDCCval.c: fixed
14095
14096         const unsigned char arr[][2] = { { 0, 1 } };
14097         t18.c:1: error: Initializer element is not constant
14098
14099 2002-03-04  bela  <bela AT manik>
14100
14101         * /device/include/mcs51reg.h:
14102         ds89c420 register definition update
14103
14104 2002-03-03    <johan AT FRIJA>
14105
14106         * support/Util/SDCCerr.c: did something, but don't no why anymore
14107
14108         * support/regression/tests/bug-524691.c: made it a little less shy
14109
14110         * src/SDCCast.c (decorateType): fixed bug #524697
14111
14112         * src/SDCCast.c: made some lineno improvements
14113
14114         * src/SDCCval.c (getNelements): changed warning to error
14115
14116         * src/SDCCglue.c (printIvalArray): changed warning to error
14117
14118         * src/SDCCicode.c: fixed a warning for mingw
14119
14120         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14121
14122         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14123
14124 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14125
14126         * src/ds390/peeph.def:
14127         Added some more peephole rules
14128
14129         * src/ds390/gen.c: Various fixes & enhancements
14130
14131         * src/SDCClrange.c, src/SDCClrange.h:
14132         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14133
14134         * src/ds390/ralloc.c:
14135         various fixes & enhancements (ds390) specific
14136
14137         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14138         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14139         from rallocs.
14140
14141         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14142
14143 2002-03-02    <johan AT FRIJA>
14144
14145         * src/SDCCast.c (decorateType): fixed bug #524708
14146
14147         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14148
14149         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14150
14151 2002-03-01  Michael Hope  <michaelh AT vroom>
14152
14153         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14154
14155         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14156
14157 2002-03-01    <johan AT FRIJA>
14158
14159         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14160
14161         * src/SDCCast.c (decorateType): fixed bug #524209
14162
14163         * src/SDCCval.c (valNot): fixed bug #524195
14164
14165 2002-02-26    <johan AT balder>
14166
14167         * src/xa51/gen.c: fixed a warning
14168
14169         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14170
14171         * src/SDCCast.c (decorateType): fixed bug #522534
14172
14173 2002-02-23    <johan AT balder>
14174
14175         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14176
14177 2002-02-22    <johan AT balder>
14178
14179         * src/SDCCast.c: fixed bug #514865
14180
14181         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14182
14183 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14184
14185         * sdcc/src/SDCCloop.c:
14186         Previous fix was not good. basic blocks that have "break" or "return" are
14187         not really partof a loop , but live ranges used in these blocks should
14188         be live thru the entire loop, so set partOfLoop but don't add them to
14189         loop region
14190
14191 2002-02-21    <johan AT FRIJA>
14192
14193         * src/SDCCcse.c: fixed bug #514308
14194
14195 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14196
14197         * src/SDCCloop.c:
14198         Fixed BUG #519583. If a conditional block ended in a return/break
14199         statement inside a loop, it was not being considered part of the loop.
14200
14201         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14202
14203 2002-02-10  Karl Bongers <karl AT turbobit.com>
14204
14205         * debugger/*:
14206         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14207         with lots of comments and notes.
14208
14209         * device/examples/test2.c:
14210         Fix bug, "red" variable not being initialized(compiler complained).
14211
14212         * device/examples/Makefile, examples/test3.c:
14213         Add Makefile in device/examples folder, compiles test3.c
14214         for use as a multiple module SDCDB test case.
14215
14216         * sim/ucsim/cmd.src/cmdset.cc:
14217         Took out debug printfs in ucsim "next" command.
14218
14219         * sim/ucsim/xa.src:
14220         Karl and Johan start ucsim XA support.  Most dissassembly working,
14221         about 75% emulation done(plenty of work remaining).
14222
14223         * sim/ucsim/z80.src:
14224         Add Z80 support to ucsim, add test-ucz80 regression test,
14225         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14226         Notice z80 compiler fails on examples/test3.c/crc code.
14227
14228 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14229
14230         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14231         Added support for --parms-in-bank1
14232
14233         * src/ds390/peeph.def:
14234         added a few more peephole optimzations
14235
14236         * src/ds390/main.c:
14237         1) added __builtin_inp & __builtin_outp used to read in data of given length
14238            from a memory mapped port
14239         2) added __builtin_memcmp
14240         3) added __builtin_swapw swap bytes of a short
14241
14242         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14243         1) handle multiple send & receives from register bank1
14244         2) ralloc can now allocate DPTR1 to some liveRanges
14245
14246         * src/SDCCsymt.c, src/SDCCsymt.h:
14247         changes to handle multiple sends & receives
14248
14249         * src/SDCCptropt.h:
14250         added some pointer arithmetic optimization
14251
14252         * src/SDCCptropt.c:
14253         added some pointer arithmetic optimizations but not stable yet so not
14254         called from anywhere (will get this working shortly)
14255
14256         * src/SDCCopt.c: fixed for multiple sends & receives
14257
14258         * src/SDCCmain.c:
14259         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14260         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14261            set preprocessor defines (depending on options)
14262
14263         * src/SDCCicode.c, src/SDCCicode.h:
14264         changes made to handle multiple sends & receives
14265
14266         * src/SDCCglobl.h:
14267         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14268
14269         * src/SDCCcse.c, src/SDCCcse.h:
14270         added function findbackward def (to be used in upcoming optimization)
14271
14272         * src/SDCCcflow.c, src/SDCCcflow.h:
14273         added function returnAtEnd - to determine if a basic block terminates with
14274         a RETURN iCode
14275
14276         * src/SDCCast.c, src/SDCCast.h:
14277         added option parms-in-bank1
14278
14279         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14280         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14281         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14282         adjusted for --parms-in-bank1 option
14283
14284         * device/include/string.h:
14285         donot redefine "reentrant" keyword
14286
14287         * device/include/ds80c390.h: Added some more SFRs
14288
14289 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14290
14291         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14292
14293 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14294
14295         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14296
14297 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14298
14299         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14300
14301 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14302
14303         * Added --xram-movc option
14304
14305 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14306
14307         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14308
14309 2002-01-11  Johan Knol
14310
14311         * Added math lib of Jesus Calvino-Fraga
14312
14313 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14314
14315         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14316         * support/regression/Makefile: new target test-mcs51-stack-auto
14317         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14318
14319 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14320
14321         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14322
14323 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14324
14325         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14326
14327 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14328
14329         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14330
14331         * src/SDCCglue.h: add definition for printIvalChar()
14332
14333 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14334
14335         * src/SDCCast.c: fix #498138 by Johan
14336
14337         * src/SDCCglue.c: fix #498138 by Johan
14338
14339 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14340
14341         * support/regression/Makefile: fix clean
14342
14343         * support/regression/ports/ds390/support.c: fix transmission of last character
14344
14345 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14346
14347         * /sdcc/src/ds390/gen.c:
14348         a) improved computing address of stack variable
14349         b) took out some #if 0 code
14350         c) improved parmBytes adjustment
14351         d) improved genPlusIncr & genMinusIncr
14352         e) genCmp could generate bad code (when left assigned to DPTR)
14353         f) Fixed bug in hasInc
14354
14355         * /sdcc/src/ds390/ralloc.c:
14356         a) packRegsForSupport could mess up live information (Fixed)
14357         b) packRegsDPTRuse could be incorrect for left & right shift
14358
14359         * /sdcc/src/mcs51/ralloc.c:
14360         packRegsForSupport could mess up the live information (Fixed)
14361
14362         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14363
14364         * /sdcc/src/SDCCast.c:
14365         can reverse a loop even if function call is present as long
14366         as the loop control variable is local & is not passed as parameter
14367
14368 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14369
14370         * /sdcc/ChangeLog: *** empty log message ***
14371
14372         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14373         More builtin function additions for TININative
14374
14375         * /sdcc/src/ds390/ralloc.c:
14376         Had broken the regression testsuite
14377
14378         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14379
14380         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14381         Added funcattr hasStackParms will be set for reentrant functions when there
14382         are paramteres on the stack, this helps in minimizing frame pointer generation
14383         typeFromStr can handle function pointers now
14384
14385         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14386         *** empty log message ***
14387
14388 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14389
14390         * /src/ds390/gen.c, /src/ds390/main.c:
14391         More builtin function additions for TININative
14392
14393         * /src/ds390/ralloc.c:
14394         Had broken the regression testsuite
14395
14396         * /src/SDCCast.c: Fixed a bug in dumptree
14397
14398         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14399         Added funcattr hasStackParms will be set for reentrant functions when there
14400         are paramteres on the stack, this helps in minimizing frame pointer generation
14401         typeFromStr can handle function pointers now
14402
14403         * /doc/builtins.txt, /doc/TININative.txt:
14404         *** empty log message ***
14405
14406
14407 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14408
14409         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14410         ALPHA version for -mTININative
14411
14412         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14413         updated to reflect changes in the port structure
14414
14415         * /src/port.h:
14416         added function do_assemble (similar to do_link) if non-null this function
14417         will be called to do assembly (-mTININative) requires a multi command
14418         assembly
14419         added function genAssemblerEnd will be called to generate assembler Epilogue
14420
14421         * /src/SDCCsymt.c:
14422         added _JavaNative to debug info printing
14423
14424         * /src/SDCCmain.c: added option --tini-libid
14425         added port->do_assemble function (-mTININative) has a multi command assemble
14426
14427         * /src/SDCCglue.c: Disabled "constExpr" check
14428         added port->genAssemblerEnd function
14429
14430         * /src/SDCCglobl.h: Added option --tini-libid value
14431
14432         * /src/SDCCast.h:
14433         tookout optimizeCompare from the header (has no external references)
14434
14435         * /src/SDCCast.c: made one more function "static"
14436
14437 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14438
14439         * src/z80/mappings.i: Added z80asm support.
14440
14441         * src/z80/main.c: Added z80asm support on --asm=z80asm
14442
14443         * src/z80/gen.c: Fixed asm portability issues.
14444
14445         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14446
14447         * src/SDCCglue.c (printExterns): Added global/extern split.
14448
14449 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14450
14451         * support/regression/Makefile: added test for mcs51 model large
14452
14453         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14454
14455         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14456
14457 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14458
14459         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14460
14461 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14462
14463         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14464
14465         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14466
14467 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14468
14469         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14470
14471         * support/regression/tests/simplefloat.c: Port to mcs51.
14472
14473 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14474         * support/regression/tests/bug-485362.c: Added.
14475
14476         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14477
14478         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14479
14480         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14481
14482         * src/z80/gen.c (aopDump): Added a dump function.
14483
14484 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14485         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14486
14487         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14488
14489         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14490
14491         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14492
14493         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14494
14495         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14496
14497         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14498
14499         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14500
14501         * support/regression/ports/ds390/support.c: Use tinibios.
14502
14503         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14504
14505 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14506
14507         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14508         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14509
14510         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14511
14512         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14513
14514 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14515
14516         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14517
14518         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14519         (packRegsForIYUse): Created and optimised.
14520
14521 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14522
14523         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14524 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14525
14526         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14527
14528         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14529
14530         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14531
14532 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14533
14534         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14535
14536         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14537
14538 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14539
14540         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14541
14542         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14543
14544         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14545
14546 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14547
14548         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14549         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14550         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14551
14552         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14553
14554         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14555         (genNotFloat): Added.
14556         (genUminusFloat): Added.
14557
14558         * device/lib/z80/Makefile: Added floating pt stubs.
14559
14560         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14561
14562         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14563
14564         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14565
14566 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14567
14568         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14569
14570         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14571
14572         * sdcc/support/regression/Makefile: Add port ds390.
14573
14574         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14575
14576         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14577
14578         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14579
14580         * sdcc/support/regression/ports/ds390/support.c: Added.
14581
14582         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14583
14584         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14585
14586         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14587
14588 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14589
14590         * device/include/malloc.h: Added z80 and gbz80 support.
14591
14592         * device/lib/gbz80/heap.s: Added.
14593
14594         * device/lib/z80/heap.s: Added.
14595
14596         * device/lib/malloc.c: Added z80 and gbz80 support.
14597
14598         * support/regression/tests/malloc.c (testMalloc): Added.
14599
14600         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14601
14602         * support/regression/tests/bug-478094.c: Added.
14603
14604         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14605
14606 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14607
14608         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14609
14610         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14611
14612         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14613
14614         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14615
14616         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14617
14618 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14619
14620         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14621
14622 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14623
14624         * support/regression/tests/bug-477927.c: Added.
14625
14626         * src/z80/peeph.def: Added minor rules.
14627
14628         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14629
14630         * src/z80/peeph.def: Added jump optimisation modification.
14631
14632 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14633
14634         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14635
14636 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14637
14638         * support/regression/tests/funptrs.c: Added.
14639
14640 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14641
14642         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14643
14644 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14645
14646         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14647
14648         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14649
14650         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14651         (movLeft2ResultLong): Created.
14652
14653         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14654         (joinPushes): Added.  Joins two char pushes into a word push.
14655
14656 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14657
14658         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14659
14660         * support/makebin/Makefile (install): Added creation of dest dir.
14661
14662 2001-10-24 Karl Bongers <karl AT turbobit.com>
14663
14664         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14665
14666 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14667
14668         * src/z80/ralloc.c: Turned off faulty pack for one use.
14669
14670         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14671
14672         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14673
14674 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14675
14676         * support/regression/Makefile: Improved clean
14677
14678         * support/regression/ports/gbz80/spec.mk: Added clean
14679
14680         * support/regression/ports/host/spec.mk: Added clean
14681
14682         * support/regression/ports/z80/spec.mk: Added clean
14683
14684         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14685
14686         * support/regression/ports/mcs51/timeout.c: little improvements
14687
14688 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14689
14690         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14691
14692         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14693
14694         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14695
14696 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14697
14698         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14699
14700         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14701
14702 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14703         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14704
14705         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14706
14707         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14708
14709         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14710
14711         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14712
14713         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14714
14715         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14716
14717         * support/regression/tests/longor.c: Added.
14718
14719 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14720
14721         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14722
14723         * as/mcs51/aslink.h: define PATH_MAX
14724
14725         * as/mcs51/asm.h: define PATH_MAX
14726
14727         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14728
14729         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14730
14731         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14732
14733         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14734
14735         * src/SDCCglobl.h: define PATH_MAX
14736
14737         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14738
14739         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14740
14741 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14742
14743         * src/z80/gen.c (gencjneshort): Fixed
14744
14745         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14746
14747 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14748
14749         * support/regression/tests/bug-469671.c: Added.
14750
14751         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14752
14753 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14754
14755         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14756
14757         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14758
14759 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14760
14761         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14762
14763         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14764
14765         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14766
14767         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14768
14769         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14770
14771         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14772
14773         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14774
14775 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14776
14777         * 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.
14778
14779         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14780
14781         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14782
14783 2001-10-07    <johan AT FRIJA>
14784
14785         * device/lib/gets.c (gets): fixed the return value.
14786
14787 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14788         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14789
14790         * 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.
14791
14792         * 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.
14793
14794         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14795
14796         * src/pic/gen.c: Removed Safe_strdup.
14797
14798         * configure.in: Added option to enable libgc support.
14799
14800         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14801         (bitVectUnion): Optimised.
14802         (bitVectIntersect): Optimised.
14803         (bitVectBitsInCommon): Optimised.
14804         (bitVectCplAnd): Optimised.
14805
14806         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14807
14808 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14809
14810         * src/SDCCmain.c: distinguish between assembler debug and plain options
14811
14812         * src/avr/main.c:   remove standard assembler options
14813
14814         * src/ds390/main.c: remove standard assembler options
14815
14816         * src/mcs51/main.c: remove standard assembler options
14817
14818         * src/port.h: removed "PENDING" comment
14819
14820 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14821
14822         * src/device/lib/_mulint.c  : new, with assember functions
14823
14824         * src/device/lib/_mullong.c : new, with assember functions
14825
14826         * src/device/lib/_divuint.c : with assember functions
14827
14828         * src/device/lib/_divsint.c : with assember functions
14829
14830         * src/device/lib/_divulong.c: with assember functions
14831
14832         * src/device/lib/_divslong.c: with assember functions
14833
14834         * src/device/lib/_moduint.c : with assember functions
14835
14836         * src/device/lib/_modsint.c : with assember functions
14837
14838         * src/device/lib/_modulong.c: with assember functions
14839
14840         * src/device/lib/_modslong.c: with assember functions
14841
14842         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14843
14844         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14845
14846         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14847                                       replaced _mululong.c and _mulslong.c by _mullong.c
14848
14849 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14850
14851         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14852
14853 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14854
14855         * src/SDCCglue.c: test, if win32api is available for MINGW
14856
14857 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14858
14859         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14860         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14861         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14862         * support/regression/ports/host/spec.mk: removed GENERIC
14863         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14864         * support/regression/ports/z80/spec.mk: removed GENERIC
14865
14866 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14867
14868         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14869
14870         * support/regression/tests/bug-467035.c: Created.
14871
14872 2001-10-01    <johan AT FRIJA>
14873
14874         * src/SDCC.y: fixed bug #466586 part 1
14875
14876 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14877
14878         * SDCCicode.c: z80 has no generic pointers
14879         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14880
14881 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14882
14883         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14884
14885 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14886
14887         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14888
14889         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14890
14891 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14892
14893         * configure.in: Fixed up so that ucsim is only configured once.
14894
14895         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14896
14897         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14898         (getPathDifference): As above.
14899
14900         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14901
14902         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14903
14904 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14905         * .version: Updated to 2.3.1
14906
14907         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14908         Added copyright header.
14909
14910         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14911         (assemble): Added support for macro based assembler commands.
14912         (linkEdit): Added support for macro based linker commands.
14913         (preProcess): Changed the pre-processor to use macros.
14914         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14915         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14916
14917         * device/lib/z80/crt0.s: Added module name for debugging.
14918
14919 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14920
14921         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14922
14923         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14924
14925         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14926
14927         * src/Makefile.in: Added SDCCmacro and SDCCutil
14928
14929 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14930
14931         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14932
14933 2001-09-16    <johan AT FRIJA>
14934
14935         * 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.
14936
14937 2001-09-15    <johan AT FRIJA>
14938
14939         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14940         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14941
14942 2001-09-11    <johan AT FRIJA>
14943
14944         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14945
14946 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14947
14948         * support/regression/tests/bug-460444.c: Added test case.
14949
14950         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14951         (genCast): Added justification for all of the asserts.
14952
14953 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14954
14955         * support/regression/support.c: _xdata replaced by xdata
14956
14957         * support/regression/spec.mk: removed _generic
14958
14959 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14960
14961         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14962
14963         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14964         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14965
14966         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14967
14968         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14969
14970         * support/regression/tests/bug-460010.c: Added test case.
14971
14972         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14973
14974 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14975
14976         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14977
14978         * support/regression/testfwk.c: removed workaround for bug #436344
14979
14980         * support/regression/tests/bp.c: use less memory with mcs51
14981
14982         * support/regression/tests/bug-441448.c: use less memory
14983
14984         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14985
14986         * support/regression/collate-results.py: typo
14987
14988 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14989
14990         * support/regression/tests/fetchoverlap.c: Added new test case.
14991
14992         * support/regression/tests/bp.c: Added new test case.
14993
14994         * support/regression/tests/bug-448984.c: Added new test case.
14995
14996         * support/regression/tests/pow2shifts.c: Added new test case.
14997
14998         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14999         (genlshTwo): Fixed right shift for count > 8.
15000
15001         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
15002
15003 2001-09-08    <johan AT FRIJA>
15004
15005         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15006
15007 2001-09-07    <johan AT FRIJA>
15008
15009         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15010
15011         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15012
15013 2001-09-06    <johan AT FRIJA>
15014
15015         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15016         * bernhard noted me at this: "() equals to (void)" (1.38)
15017
15018 2001-09-05    <johan AT FRIJA>
15019
15020         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15021
15022 2001-09-04    <johan AT FRIJA>
15023
15024         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15025
15026
15027 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15028
15029         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15030
15031 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15032
15033         * link/z80/aslink.h: Fixed path for PATH_MAX
15034
15035 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15036
15037         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15038
15039         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15040
15041         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15042
15043         * 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.
15044
15045 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15046
15047         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15048         (genCmp): Fixed up genCmp for the GB with longs.
15049
15050         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15051
15052         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15053
15054         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15055
15056         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15057
15058 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15059
15060         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15061
15062 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15063
15064         * 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.
15065
15066         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15067
15068 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15069
15070         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15071
15072         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15073
15074 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15075
15076   * sim/ucsim/configure:    little improvement of Cygwin-detection
15077   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15078   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15079   * support/regression/tests/bug-221100.c: small changes for mcs51
15080   * support/regression/tests/bug-221168.c: small changes for mcs51
15081   * support/regression/tests/bug-227710.c: small changes for mcs51
15082   * support/regression/tests/staticinit.c: small changes for mcs51
15083   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15084   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15085   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15086
15087 $Revision$