* device/include/hc08/mc68hc908apxx.h: new header contributed by
[fw/sdcc] / ChangeLog
1 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2
3         * device/include/hc08/mc68hc908apxx.h: new header contributed by
4           Lucas Loizaga, with minor modifications. Thanks!
5
6 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
7
8         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
9           in sdcclib.
10
11 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
12
13         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
14           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
15           with acall/ajmp.
16
17 2007-07-22 Borut Razem <borut.razem AT siol.net>
18
19         * configure.in, configure: re-introduced .version
20         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
21           the version reverted to 2.7.0
22
23 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
24
25         * configure.in,
26         * doc/sdccman.lyx: bumped version to 2.7.3
27         * device/include/mcs51/compiler.h: fixed elif->else
28         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
29         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
30           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
31            enable accuse for bit operands
32         * src/SDCCmain.c (printVersionInfo),
33         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
34           environment descriptor
35         * src/SDCCutil.h: added getBuildEnvironment
36         * src/SDCCglue.c (initialComments): use getBuildEnvironment
37         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
38         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
39         * support/regression/tests/bug1348008.c,
40         * support/regression/tests/bug1496419.c,
41         * support/regression/tests/bug1503067.c,
42         * support/regression/tests/preproc.c: added empty tests
43
44 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
45
46         * support/regression/tests/bug1678803.c: new, added
47
48 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
49
50         * as/link/aslink.h,
51         * as/link/hc08/lkihx.c,
52         * as/link/hc08/lkrloc.c,
53         * as/link/mcs51/lkihx.c,
54         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
55           ihxExtendedLinearAddress
56         * as/link/mcs51/lkrloc.c (relr),
57         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
58           acall/ajmp, see bug 830513
59
60 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
61
62         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
63           (cseBBlock): remember aggr2ptr has been used
64         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
65           (geniCodeAssign): fixed bug 868103
66         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
67           added operandSize prototype
68         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
69           (genDataPointerSet): use max of size of right and result,
70           (gencjne): added parameter useCarry for optimization,
71           (genCmpEq): use carry if appropriate,
72           (genXor): check if operand already in carry
73         * support/regression/tests/bug-868103.c: enabled test
74
75 2007-07-12 Raphael Neider <rneider AT web.de>
76
77         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
78
79 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
80
81         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
82           from Robert Larice, thanks
83         * support/regression/tests/bitopcse.c,
84         * support/regression/tests/bitvars.c,
85         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
86         * support/regression/tests/bug-927659.c: enabled test for z80
87         * support/regression/tests/bug1738367.c: added extra tests by Frieder
88         * support/regression/tests/bug1745717.c: new, added
89         * support/regression/tests/literalop.c,
90         * support/regression/tests/nullstring.c: removed storage definitions that
91           are now in testfwk.h
92
93 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
94
95         * device/include/stdbool.h: do not define __bool_true_false_are_defined
96           and bool for targets that do not fully support it.
97         * support/regression/tests/bug1546986.c,
98         * support/regression/tests/bug1723128.c,
99         * support/regression/tests/bug1734654.c,
100         * support/regression/tests/bug1738367.c,
101         * support/regression/tests/constantRange.c: only use bool if allowed
102
103 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
104
105         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
106           Larice, also handle function pointers
107         * support/regression/tests/bug1749275.c: new, added
108
109 2007-07-03 Borut Razem <borut.razem AT siol.net>
110
111         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
112           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
113           #1746528: SDCC should ignore ':' in inline assembler comments
114         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
115
116 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
117
118         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
119         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
120
121 2007-06-29 Borut Razem <borut.razem AT siol.net>
122
123         * src/SDCCmain.c: fixed bug
124           #1744746: SDCC #4867: broken option --xram-size
125
126 2007-06-28 Borut Razem <borut.razem AT siol.net>
127
128         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
129           find out the endianess of host machine for ucsim
130
131 2007-06-27 Borut Razem <borut.razem AT siol.net>
132
133         * support/regression/generate-cases.py: corrected the file name
134           in warning
135         * configure.in, configure, sdccconf_in.h: find out the endianess of
136           host machine
137         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
138           negative size
139
140 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
141
142         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
143
144 2007-06-26 Borut Razem <borut.razem AT siol.net>
145
146         * support/regression/generate-cases.py: display warning if function
147           list is empty; implemented more flexible rule for detection of
148           testing functions, allowing return type 'void' in the same line as
149           the function name in the function definition
150         * support/regression/tests/bug-1654060.c: corrected test
151         * support/librarian/sdcclib.c: fixed warning:
152           format '%s' expects type 'char *', but argument 2 has type 'int'
153
154 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
155
156         * support/librarian/sdcclib.c: Added feature Requests [1510635]
157           Multiple infiles for sdcclib.
158
159 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
160
161         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
162           bug 1731741
163
164 2007-06-18 Borut Razem <borut.razem AT siol.net>
165
166         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
167           how to handle comments, so they have to be removed by the
168           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
169         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
170           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
171           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
172           table driven option hadling
173
174 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
175
176         * src/SDCCast.c (decorateType),
177         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
178           iCode to ast level to fix bug 1738367
179         * support/regression/tests/bug1738367.c: new, added
180
181 2007-06-15 Raphael Neider <rneider AT web.de>
182
183         * src/pic16/devices.inc,
184         * device/lib/pic16/pics.all,
185         * device/include/pic16/pic18fregs.h,
186         * device/include/pic16/pic18f[24][45]20.h,
187         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
188           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
189         * device/lib/pic16/Makefile.in: faster cleanup
190
191 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
192
193         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
194
195 2007-06-13 Raphael Neider <rneider AT web.de>
196
197         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
198
199 2007-06-12 Raphael Neider <rneider AT web.de>
200
201         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
202           suppress bit defines if NO_BIT_DEFINES is #define'd
203         * device/include/pic/pic*.h: recreated all headers to include
204           conditional bit defines
205         * device/include/pic/pic16f886.h,
206         * device/include/pic/pic16f887.h: fixed based on newer .inc file
207         * device/include/pic/recreate.sh: script to recreate the complete
208           device library files based on the currently supported devices
209
210 2007-06-12 Borut Razem <borut.razem AT siol.net>
211
212         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
213           support/regression/Makefile.in, support/scripts/build.mak,
214           support/scripts/Makefile.snapshot:
215           use new svn URL scheme
216         * doc/sdccman.lyx: SDCC Wiki moved to
217           http://sdcc.wiki.sourceforge.net/
218
219 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
220
221         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
222         * support/regression/tests/bug1734654.c: added
223
224 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
225
226         * src/SDCCast.c (decorateType): optimized '?' for equal operands
227         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
228           with literal operands
229
230 2007-06-10 Borut Razem <borut.razem AT siol.net>
231
232         * as/link/z80/lklibr.c: fixed mingw build warning
233           lklibr.c:575: warning: implicit declaration of function 'tolower'
234         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
235           src/z80/main.c: move target specific options from src/SDCCmain.c
236           to src/<target>/main.c
237
238 2007-06-09 Borut Razem <borut.razem AT siol.net>
239
240         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
241           removed unused swap_sense; removed outBitCLong, replaced with outBitC
242         * support/regression/tests/bug-1294691.c: added
243
244 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
245
246         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
247           can also be static, fixes bug 1733438
248         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
249           have absolute address too
250           (computeType): added optimization for 'cond ? true : false'
251         * support/regression/tests/absolute.c: added test for static absolute var
252
253 2007-06-08 Raphael Neider <rneider AT web.de>
254
255         * src/regression/Makefile: suppress parallel builds, allow easy
256           switching between pic14/pic16 ports
257         * src/regression/picregs.h: added pic14/16 header file switch
258         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
259           inline.c,nestfor.c,string1.c}: include "picregs.h"
260
261 2007-06-07 Borut Razem <borut.razem AT siol.net>
262
263         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
264           permanent solution to suppress GCC 4.2.0 c++ warning:
265           deprecated conversion from string constant to `char *'
266           use 'const char *' where ever required
267         * support/regression/generate-cases.py: implemented more flexible rule
268           for detection of testing functions, allowing white-spaces surrounding
269           the function name and the 'void' parameter.
270         * support/regression/tests/constantRange.c,
271           support/regression/tests/scott-compare3.c: fixed failing regression
272           tests, uncovered by implementation of more flexible rule for detection
273           of testing functions
274
275 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
276
277         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
278
279 2007-06-04 Borut Razem <borut.razem AT siol.net>
280
281         * configure.in, configure, config_vc.awk: sdcc version number is now
282           stored in configure.in; removed .version
283         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
284           doc/INSTALL.txt: version bumped to 2.7.2
285         * sim/ucsim/configure.in, sim/ucsim/configure:
286           use "read" to read from .version
287
288 2007-06-03 Borut Razem <borut.razem AT siol.net>
289
290         * */Makefile.in: removed annoying warning:
291           Makefile:xx: Makefile.dep: No such file or directory
292
293 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
294
295         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
296           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
297         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
298         * src/SDCCast.c (resultTypePropagate): propagate for '!',
299           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
300           bugfix: only use newBoolLink for bit result type
301         * src/SDCCicode.c (geniCodeLogic): added param tree,
302           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
303           (geniCodeLogicAndOr): use IS_BIT,
304           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
305           (ast2iCode): added tree param to geniCodeLogic for comparisons
306         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
307         * support/regression/tests/bug1723128.c: added test NotZero
308
309 2007-06-01 Borut Razem <borut.razem AT siol.net>
310
311         * SDCPP synchronized with GCC CPP release version 4.2.0,
312           currently the latest release:
313         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
314           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
315           support/cpp2/cppdefault.h, support/cpp2/except.h,
316           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
317           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
318           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
319           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
320           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
321           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
322           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
323           support/cpp2/opts.h, support/cpp2/output.h,
324           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
325           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
326           support/cpp2/system.h, support/cpp2/version.c,
327           support/cpp2/Makefile.in: modified
328         * support/cpp2/opts-common.c: added
329         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
330         * device/lib/pic16/libdev/pic18f[24]5j10.c:
331           search for included source file in local directory
332         * sim/ucsim/configure, sim/ucsim/configure.in:
333           temporary solution to suppress GCC 4.2.0 c++ warning:
334           deprecated conversion from string constant to `char *'
335
336 2007-06-01 Raphael Neider <rneider AT web.de>
337
338         * device/lib/pic/libdev/pic12f683.c,
339         * device/include/pic/pic12f683.h: added GPIO bits
340
341 2007-06-01 Raphael Neider <rneider AT web.de>
342
343         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
344           quotation marks, clarified role of PIC14 vs. PIC16 ports
345         * src/pic16/devices.inc,
346         * device/include/pic16/pic18fregs.h,
347         * device/include/pic16/pic18f[24][45]j10.h,
348         * device/lib/pic16/pics.all,
349         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
350           18f24j10, 18f25j10, 18f44j10, and 18f45j10
351         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
352           for new devices as they are not yet supported by gputils
353
354 2007-05-31 Borut Razem <borut.razem AT siol.net>
355
356         * Small Device C Compiler 2.7.0 released
357         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
358           changed sdcc version to 2.7.1
359         * support/scripts/sdcc.nsi: added How to create WIN32 release
360           setup.exe package
361
362 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
363
364         * doc/sdccman.lyx: documented initialization and allocation of absolute
365           variables, bit parameter passing, the need for function pointers to be
366           reentrant and alpha quality support of inline and retrict
367
368 2007-05-26 Borut Razem <borut.razem AT siol.net>
369
370         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
371           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
372         * docs/knownbugs.html: updated
373
374 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
375
376         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
377           thanks Jan Waclawek
378         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
379           AOP_CRY and ruonly
380           (gencjneshort): optimized when left is AOP_DIR
381         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
382           initializing unions in a struct/array
383         * support/regression/fwk/include/testfwk.h: added defines for data, near
384           and far for host and z80
385         * support/regression/tests/bug1723128.c: new, added
386
387 2007-05-22 Borut Razem <borut.razem AT siol.net>
388
389         * doc/knownbugs.html: updated
390
391 2007-05-21 Raphael Neider <rneider AT web.de>
392
393         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
394           error message instead
395         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
396
397 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
398
399         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
400
401 2007-05-21 Raphael Neider <rneider AT web.de>
402
403         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
404           closes #1722392
405         * src/regression/gpsim_assert.h,
406         * src/regression/Makefile,
407         * src/regression/pcodeopt.c: regression test for the above fix
408
409 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
410
411         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
412           jumps to self, fixed bug 1717281
413
414 2007-05-10 Borut Razem <borut.razem AT siol.net>
415
416         * support/scripts/gen_known_bugs.pl: cosmetic fix
417         * doc/knownbugs.html: generated by gen_known_bugs.pl
418
419 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
420
421         * src/SDCCast.c (createFunction): also generate non-inlined version of
422           function for functions declared as "static inline"
423         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
424           function can be inlined after non-inlined version generated.
425
426 2007-05-10 Borut Razem <borut.razem AT siol.net>
427
428         * support/scripts/gen_known_bugs.pl: added script
429           which generates knownbugs.html
430
431 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
432
433         * doc/knownbugs.html: updated for release 2.7.0
434
435 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
436
437         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
438
439 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
440
441         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
442           (throughout): updated generating comments
443         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
444           (throughout): updated generating comments
445         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
446           rule instead of at the second, or it might skip lines when removing the
447           complete match
448         * support/regression/tests/bug1714204.c: changed test to foo
449
450 2007-05-08 Borut Razem <borut.razem AT siol.net>
451
452         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
453           thanks to SDCC Distributed Compile Farm members,
454           added Z80 and GBZ80 command line options
455         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
456
457 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
458
459         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
460         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
461         * support/regression/tests/longlit.c: modified to be tested at all and
462           to pass the actual test
463
464 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
465
466         * device/include/mcs51/uPSD33xx.h: Added.
467
468 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
469
470         * device/lib/_gptrput.c,
471         * device/lib/_gptrget.c: removed old code,
472          (_gptrgetWord),
473         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
474         * support/regression/tests/bug1714204.c: new, added
475
476 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
477
478         * support/regression/tests/regtrack.c: test was never executed
479           because of the regression test being picky about white spaces.
480         * device/lib/mcs51/crtclear.asm: added comment
481
482 2007-05-06 Raphael Neider <rneider AT web.de>
483
484         * device/lib/pic/Makefile.rules,
485         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
486           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
487
488 2007-05-06 Raphael Neider <rneider AT web.de>
489
490         * src/pic16/device.h,
491         * src/pic16/main.h,
492         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
493           _pic16_setDefaultOptions): removed/reordered command-line args
494         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
495           devices, regrouped command line args, environment variables),
496           clarified sone points, added sections on how to add devices to the
497           PIC14/PIC16 ports
498
499 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
500
501         * src/z80/peeph.def: fixed bug in rule 2
502
503 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
504
505         * src/port.h: added TARGET_MCS51_LIKE
506         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
507           take advantage of it too
508         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
509           (shiftR2Left2Result): Optimized: don't check shifting by 0
510         * src/z80/peeph-z80.def,
511         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
512           modifications, see patch 1700823
513         * src/mcs51/peep.c (): fixed bug 1712928
514         * support/regression/tests/bug1712928.c: new, added
515
516 2007-05-05 Borut Razem <borut.razem AT siol.net>
517
518         * device/lib/pic16/Makefile.common.in,
519           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
520           removed bash dependencies
521
522 2007-05-01 Borut Razem <borut.razem AT siol.net>
523
524         * src/SDCCicode.c:
525           fixed bug #1710507: --i-code-in-asm makes compile fail
526           all iCode comments are now one liners
527         * src/mcs51/gen.c: fixed memory leak
528
529 2007-05-01 Raphael Neider <rneider AT web.de>
530
531         * device/lib/pic/libdev/*.c
532         * device/include/pic/*.h: regenerated all device libs from updated
533           .inc files
534         * support/scripts/inc2h.pl: documented usage, now uses strict to
535           catch more bugs
536
537 2007-04-30 Borut Razem <borut.razem AT siol.net>
538
539         * doc/sdccman.lyx:
540           fixed bug #1669175: Problem with space in output paths
541           documented how to use paths with spaces for Windows users
542
543 2007-04-29 Borut Razem <borut.razem AT siol.net>
544
545         * Fixed svn:eol-style and svn:keywords properties
546         * src/SDCCval.c: fixed bug
547           #1592871: Segfault with "large" const arrays of characters
548           replaced recursion with iteration
549         * Removed svn:executable property from non-executable files
550
551 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
552
553         * src/mcs51/gen.c (genRet): fixed bug 1707003
554
555 2007-04-27 Raphael Neider <rneider AT web.de>
556
557         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
558           createReachingDefinitions,assignValnums,pic16_destructDF,
559           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
560           prevent NULL pointer dereferences
561         * device/lib/pic/libdev/pic16f886.c,
562         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
563           prevent building them, gputils do not really support them yet
564
565 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
566
567         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
568           helps printf_small. 32 bytes more __idata mem.
569
570 2007-04-27 Raphael Neider <rneider AT web.de>
571
572         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
573           return early when pb or pb->pcHead is NULL (patch #1708427)
574         * src/regression/empty.c,
575         * src/regression/Makefile: added test with empty functions
576         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
577
578 2007-04-27 Borut Razem <borut.razem AT siol.net>
579
580         * src/SDCCast.c: fixed feature request
581           #1547512: Redundant strings linked when using sizeof("abc")
582
583 2007-04-23 Borut Razem <borut.razem AT siol.net>
584
585         * doc/sdccman.lyx, src/SDCCmain.c:
586           peep-hole comments are generated only if --fverbose-asm option is
587           specified and --no-peep-comments is not, as proposed by Frieder.
588         * support/regression/Makefile.in: compile regression tests with
589           --fverbose-asm option so one can "grep" whether a new (or an old)
590           peephole is (still) applied; requested by Frieder.
591
592 2007-04-23 Kevin Buettner <kevin AT buettner.to>
593
594         * device/include/pic/pic16f886.h,
595         * device/include/pic/pic16f887.h,
596         * device/lib/pic/libdev/pic16f886.c,
597         * device/lib/pic/libdev/pic16f887.c,
598         * device/include/pic/pic14devices.txt,
599         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
600
601 2007-04-23 Kevin Buettner <kevin AT buettner.to>
602
603         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
604           fixes #1704666
605
606 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
607
608         * device/lib/_memset.c: assembler version for mcs51
609
610 2007-04-22 Borut Razem <borut.razem AT siol.net>
611
612         * support/scripts/listerr.c: program to create the list of errors and
613           warnings list from - added
614         * doc/sdccman.lyx: removed the note
615           "For list of warnings and corresponding codes, see err_warn.txt"
616         * src/SDCCsymt.c: fixed bug #1699804:
617           Bug with some uses of sizeof(static local array) (MCS51)
618         * support/regression/tests/bug-1699804.c: added
619
620 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
621
622         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
623           (main): added option -i,
624           (asmbl, case S_INCL): use search_path_fopen,
625           mostly from patch 1579668 by Peter Miller, thanks
626         * src/z80/main.c: fixed typo --callee-saves-bc
627         * device/include/mcs51/compiler.h: added sfrword for Tasking
628
629 2007-04-20 Borut Razem <borut.razem AT siol.net>
630
631         * src/z80/main.c: replaced reserved keyword asm with asmblr
632
633 2007-04-19 Borut Razem <borut.razem AT siol.net>
634
635         * src/port.h: use const pointers to strings
636         * src/SDCCargs.h: declared getStringArg() and getIntArg()
637         * src/pic16/main.c: include SDCCargs.h
638         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
639           const char, since the strings are dynamically allocated
640         * src/SDCCmain.c: options.code_seg and options.const_seg are
641           dynamically allocated; check port specific command line options
642           before the general ones
643         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
644
645 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
646
647         * device/include/ds400rom.h,
648         * device/lib/ds390/lcd390.c,
649         * device/lib/ds390/memcpyx.c,
650         * device/lib/ds390/rtc390.c,
651         * device/lib/ds400/ds400rom.c,
652         * device/lib/ds400/memcpyx.c,
653         * device/lib/hc08/_ret.c: more replacements of keywords with their
654           double underscore equivalents
655         * device/lib/ds390/Makefile.in,
656         * device/lib/ds400/Makefile.in,
657         * device/lib/gbz80/Makefile.in,
658         * device/lib/hc08/Makefile.in,
659         * device/lib/mcs51/Makefile.in,
660         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
661
662 2007-04-17 Borut Razem <borut.razem AT siol.net>
663
664         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
665           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
666           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
667           to --fverbose-asm, to be gcc'ish
668
669 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
670
671         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
672
673 2007-04-17 Borut Razem <borut.razem AT siol.net>
674
675         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
676         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
677           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
678           with their double underscore equivalent
679
680 2007-04-14 Borut Razem <borut.razem AT siol.net>
681
682         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
683           source"
684
685 2007-04-13 Borut Razem <borut.razem AT siol.net>
686
687         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
688           C99 standard
689         * device/examples/serialcomm/windows/serial.[ch],
690           device/examples/serialcomm/windows/test_serialcomm.cpp:
691           updated by Bela Torok
692         * device/examples/serialcomm/windows/serialcomm.dsw,
693           device/examples/serialcomm/windows/serialcomm.dsp: added
694
695 2007-04-13 Jan Waclawek <wek AT efton.sk>
696
697         * doc/sdccman.lyx: additions and changes at various places
698           (submitted as #1697136).
699           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
700
701 2007-04-10 Borut Razem <borut.razem AT siol.net>
702
703         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
704           LyX file format changed to 245
705         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
706           "FreeWare" replaced with "free open source"
707
708 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
709
710         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
711
712 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
713
714         * device/include/pic16/pic18fregs.h,
715         * device/lib/_bp.c,
716         * device/lib/_decdptr.c,
717         * device/lib/_divsint.c,
718         * device/lib/_divslong.c,
719         * device/lib/_divuint.c,
720         * device/lib/_divulong.c,
721         * device/lib/_fs2schar.c,
722         * device/lib/_fs2sint.c,
723         * device/lib/_fs2slong.c,
724         * device/lib/_fs2uchar.c,
725         * device/lib/_fs2uint.c,
726         * device/lib/_fs2ulong.c,
727         * device/lib/_fsadd.c,
728         * device/lib/_fscmp.c,
729         * device/lib/_fsdiv.c,
730         * device/lib/_fseq.c,
731         * device/lib/_fsget1arg.c,
732         * device/lib/_fsget2args.c,
733         * device/lib/_fsgt.c,
734         * device/lib/_fslt.c,
735         * device/lib/_fsmul.c,
736         * device/lib/_fsneq.c,
737         * device/lib/_fsnormalize.c,
738         * device/lib/_fsreturnval.c,
739         * device/lib/_fsrshift.c,
740         * device/lib/_fssub.c,
741         * device/lib/_fsswapargs.c,
742         * device/lib/_gptrget.c,
743         * device/lib/_gptrgetc.c,
744         * device/lib/_gptrput.c,
745         * device/lib/_logexpf.c,
746         * device/lib/_modsint.c,
747         * device/lib/_modslong.c,
748         * device/lib/_moduint.c,
749         * device/lib/_modulong.c,
750         * device/lib/_mulint.c,
751         * device/lib/_mullong.c,
752         * device/lib/_schar2fs.c,
753         * device/lib/_ser.c,
754         * device/lib/_setjmp.c,
755         * device/lib/_sint2fs.c,
756         * device/lib/_slong2fs.c,
757         * device/lib/_spx.c,
758         * device/lib/_uchar2fs.c,
759         * device/lib/_uint2fs.c,
760         * device/lib/_ulong2fs.c,
761         * device/lib/asincosf.c,
762         * device/lib/atanf.c,
763         * device/lib/calloc.c,
764         * device/lib/ds390/tinibios.c,
765         * device/lib/ds400/tinibios.c,
766         * device/lib/expf.c,
767         * device/lib/free.c,
768         * device/lib/hc08/_mulint.c,
769         * device/lib/logf.c,
770         * device/lib/malloc.c,
771         * device/lib/printf_fast.c,
772         * device/lib/printf_tiny.c,
773         * device/lib/printfl.c,
774         * device/lib/realloc.c,
775         * device/lib/ser_ir.c,
776         * device/lib/serial.c,
777         * support/regression/tests/libmullong.c: replaced all special keywords
778           with their double underscore equivalent
779         * support/regression/ports/mcs51-xstack-auto/spec.mk,
780         * device/lib/Makefile.in: compile libs with --std-c99 instead of
781           --std-sdcc99
782         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
783           (genRet): if the bit-symbol is ruonly it already is in the carry
784         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
785         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
786         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
787           type UCHAR if dest is not bit
788
789 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
790
791         * device/include/math.h,
792         * device/lib/cotf.c,
793         * device/lib/expf.c,
794         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
795
796 2007-04-01 Borut Razem <borut.razem AT siol.net>
797
798         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
799           fixed bug #1692042: input buffer overflow...scanner uses REJECT
800         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
801           gcc_unreachable() called internal_error()...
802
803 2007-03-30 Raphael Neider <rneider AT web.de>
804
805         * src/pic/ralloc.c (isData): suppress garbage debug output
806
807 2007-03-28 Borut Razem <borut.razem AT siol.net>
808
809         * doc/sdccman.lyx:
810           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
811           is developed, built and used worldwide, and the word "night" doesn't
812           make any sense.
813
814 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
815
816         * device/include/mcs51/C8051F360.h: new, added
817         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
818
819 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
820
821         * src/SDCC.y (declaration_specifiers, function_specifier),
822         * support/Util/SDCCerr.c,
823         * support/Util/SDCCerr.h,
824         * src/SDCCsymt.h,
825         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
826           inline keyword
827         * src/SDCCmem.c (deallocParms),
828         * src/SDCCast.c: support for function inlining, not quite complete
829         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
830           'restrict' qualifier
831
832 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
833
834         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
835           (saveRBank, unsaveRBank): don't save bits,
836           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
837         * support/regression/tests/bug1535242.c: new, added
838         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
839           thanks Alexey Shamrin <shamrin AT gmail.com>,
840           made assert.h header ANSI compliant (added a check for NDEBUG macro,
841           removed header guard)
842         * .version,
843         * sdcc.spec: bumped version to 2.6.5
844         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
845
846 2007-03-22 Borut Razem <borut.razem AT siol.net>
847
848         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
849           fixed bug #1653671: sdcdb integration into ddd is broken
850
851 2007-03-22 Raphael Neider <rneider AT web.de>
852
853         * src/pic/gen.c (popGetExternal): augmented to also create references
854           to external variables (not only labels),
855           (genCall): comment on plan to reduce PAGESEL overhead,
856           (genFunction, genEndFunction): also save/restore FSR around interrupt
857           handling code, removed lots of unused code
858           (genDivOneByte): release acquired temp register
859         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
860           of popGetExternal
861         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
862           for registers that need to be saved during interrupts (FSR, STATUS,
863           PCLATH; W needs special handling), currently only FSR is used
864
865 2007-03-22 Raphael Neider <rneider AT web.de>
866
867         * device/include/pic/pic14devices.txt: 16f688 has only one config word
868
869 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
870
871         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
872
873 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
874
875         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
876
877 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
878
879         * as/link/aslink.h: added LKOBJEXT
880         * as/link/hc08/link_hc08.dsp,
881         * as/link/hc08/Makefile.bcc,
882         * as/link/hc08/Makefile.in,
883         * as/link/mcs51/aslink.dsp,
884         * as/link/mcs51/Makefile.bcc,
885         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
886         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
887         * as/link/lkaomf51.c: merged and moved
888         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
889         * as/link/z80/lkdata.c,
890         * as/link/lkdata.c: merged and moved
891         * as/link/hc08/lkmain.c,
892         * as/link/mcs51/lkmain.c: cosmetic changes
893         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
894         * as/link/lklex.c: use LKOBJEXT
895         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
896           ANSI-fied functions, removed bubble-sorts
897         * as/link/z80/lksym.c           as/link/lksym.c: merged,
898           ANSI-fied functions
899         * as/link/z80/linkgbz80.dsp,
900         * as/link/z80/linkz80.dsp,
901         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
902           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
903         * as/link/z80/lkhead.c,
904         * as/link/z80/lklex.c: deleted
905         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
906         * as/link/z80/lkmain.c: added copyfile()
907
908 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
909
910         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
911
912 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
913
914         * device/lib/_strlen.c: assembler version for mcs51
915
916 2007-03-13 Raphael Neider <rneider AT web.de>
917
918         * device/include/pic16/pic18f2221.h,
919         * device/include/pic16/pic18f2321.h,
920         * device/include/pic16/pic18f2331.h,
921         * device/include/pic16/pic18f4221.h,
922         * device/include/pic16/pic18f4321.h,
923         * device/include/pic16/pic18f4331.h: fixed config byte location names
924         * support/scripts/inc2h-pic16.pl: removed debug output, emit
925           consistently named config byte locations
926
927 2007-03-13 Borut Razem <borut.razem AT siol.net>
928
929         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
930           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
931           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
932           as/link/z80/Makefile.in, as/z80/Makefile.in:
933           introduced LDFLAGS
934
935 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
936
937         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
938         * device/lib/printf_large.c: pointer was converted to generic
939         pointer for mcs51 models other than model-small (Maarten noticed)
940
941 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
942
943         * device/include/mcs51/ADuC84x.h: Added.
944
945 2007-03-10 Borut Razem <borut.razem AT siol.net>
946
947         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
948           fixed RFE #1624219: double backslashes in filenames;
949           functions hexEscape(), octalEscape() and copyStr() moved from
950           SDCCval.c to SDCCutil.c and made them glovbally available
951
952 2007-03-09 Borut Razem <borut.razem AT siol.net>
953
954         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
955           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
956           1673361: Missaligned comments in output files
957
958 2007-03-09 Raphael Neider <rneider AT web.de>
959
960         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
961
962 2007-03-09 Raphael Neider <rneider AT web.de>
963
964         * src/pic/gen.c,
965         * src/pic/glue.c,
966         * src/pic/ralloc.c: suppress undesired debug output
967         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
968
969 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
970
971         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
972
973 2007-03-07 Borut Razem <borut.razem AT siol.net>
974
975         * device/lib/pic16/libdev/pic18f[24][34]31.c:
976           search include files in the current directory
977
978 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
979
980         * src/SDCCglue.c (emitMaps, glue),
981         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
982           absolute xdata
983         * support/regression/tests/absolute.c: added xdata test
984
985 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
986
987         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
988           added condition to macro, fixes bug 1666080
989
990 2007-03-02 Raphael Neider <rneider AT web.de>
991
992         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
993
994 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
995
996         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
997         be cleared. Unconditionally set __XPAGE
998         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
999
1000 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1001
1002         * src/SDCCglobl.h,
1003         * src/SDCCmain.c,
1004         * src/mcs51/gen.c,
1005         * src/mcs51/rtrack.c,
1006         * src/ds390/gen.c,
1007         * doc/sdccman.lyx: added --no-gen-comments
1008         * src/mcs51/peeph.def: added 192.b, disabled 185
1009
1010 2007-02-25 Raphael Neider <rneider AT web.de>
1011
1012         * src/pic16/gen.c (genCast): fixed typo
1013         * device/lib/pic16/Makefile.subdir: only install existing files
1014         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1015
1016 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1017
1018         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1019         * device/lib/mcs51/crtclear.asm,
1020         * device/lib/mcs51/crtxclear.asm: renumbered labels
1021         * device/lib/mcs51/Makefile.in: added crtcall.asm
1022         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1023         * src/mcs51/gen.c (movc): removed,
1024           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1025             acc.x or psw.x),
1026           (toCarry, genSend, genRet): added function toCarry,
1027           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1028           (assignBit, genAssign, genCast): added function assignBit
1029         * src/mcs51/Makefile.bcc: added rtrack.c
1030         * src/mcs51/ralloc.h: made valueKnown a bitfield
1031         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1032           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1033           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1034         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1035         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1036           (_pop): only pop valid pairs, see gencjneshort,
1037           (gencjneshort): return pair that still needs to be popped, restructured,
1038           (gencjne, genCmpEq): call _pop
1039
1040 2007-02-23 Raphael Neider <rneider AT web.de>
1041
1042         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1043
1044 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1045
1046         * device/include/mcs51/P89LPC925.h: Added.
1047
1048 2007-02-18 Raphael Neider <rneider AT web.de>
1049
1050         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1051
1052 2007-02-17 Borut Razem <borut.razem AT siol.net>
1053
1054         * support/cpp2/directives.c, support/cpp2/version.c:
1055           synchronized with GCC CPP 4.1.2
1056
1057 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1058
1059         * src/mcs51/rtrack.h,
1060         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
1061           by checking the strings passed by emitcode() to the assembler.
1062           Feel free to change. This in part addresses RFE #482179.
1063           Set environment variable SDCC_RTRACK to enable.
1064         * src/mcs51/gen.c: inserted hooks
1065         * src/mcs51/ralloc.h: added two members to struct regs
1066         * support/regression/tests/regtrack.c: added
1067
1068 2007-02-14 Borut Razem <borut.razem AT siol.net>
1069
1070         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
1071         * Makefile.in: applied patch from Makefile related part of
1072           #1469393: Compiler does not initialize static data
1073
1074 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1075
1076         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
1077           for better fix of bug 1273984, compiles pic16 rand.c
1078
1079 2007-02-12 Borut Razem <borut.razem AT siol.net>
1080
1081         * src/pic16/main.c: fixed pic16 standard library directory bug
1082
1083 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1084
1085         * src/hc08/gen.c (genSwap): fix swap regression test
1086
1087 2007-02-10 Borut Razem <borut.razem AT siol.net>
1088
1089         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
1090           with same scope
1091         * support/regression/tests/bug-1654060.c: added regression test for
1092           #1654060
1093
1094 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1095
1096         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
1097         bit moves in return statement
1098
1099 2007-02-09 Borut Razem <borut.razem AT siol.net>
1100
1101         * src/SDCC.y: fixed bug #1654060 typedef within function causes
1102           syntax error
1103
1104 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1105
1106         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
1107         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
1108
1109 2007-02-07 Raphael Neider <rneider AT web.de>
1110
1111         * src/pic16/devices.inc,
1112         * device/include/pic16/pic18fregs.h,
1113         * device/include/pic16/pic18f[24][34]31.h,
1114         * device/lib/pic16/libdev/pic18f[24][34]31.c,
1115         * device/lib/pic16/pics.all: added 18f[24][34]31 family
1116         * device/lib/pic16/libio/i2c.ignore: do not build i2c
1117
1118 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
1119
1120         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
1121           can this have lived here for so many years?
1122         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
1123           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
1124         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
1125
1126 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
1127
1128         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
1129         appended by loop induction must be at the very end of the eBBlock
1130
1131 2007-02-05 Kevin Vigor
1132
1133         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
1134
1135 2007-02-05 Borut Razem <borut.razem AT siol.net>
1136
1137         * support/regression/fwk/lib/timeout.c: native WIN32 port,
1138           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
1139
1140 2007-02-03 Borut Razem <borut.razem AT siol.net>
1141
1142         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
1143           applied patch #1646602 option to set default signedness of char to
1144           unsigned, added -funsigned-char command line option,
1145           thanks to Gunther Jehle
1146         * device/lib/Makefile.in: added the -f option to rm so it doesn't
1147           prompt for file deletion a few hundred times (especially the
1148           subversion files, which have ro permissions so it asks for
1149           confirmation), thanks to Simon McAuliffe;
1150           added {} + option to find in order to remove multiple files from a
1151           single rm commad
1152
1153 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1154
1155         * device/include/mcs51/SST89x5xRDx.h: Added.
1156
1157 2007-02-02 Raphael Neider <rneider AT web.de>
1158
1159         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
1160         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
1161
1162 2007-02-01 Raphael Neider <rneider AT web.de>
1163
1164         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
1165           config words again
1166
1167 2007-01-31 Borut Razem <borut.razem AT siol.net>
1168
1169         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
1170           if compiled with GCC. Thanks to Raphael Neider
1171
1172 2007-01-31 Raphael Neider <rneider AT web.de>
1173
1174         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
1175             operand names, handles name and (name + n) for all n,
1176           (sameBank): restructured, also check bank allocation policy,
1177         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
1178           (pic14_operandsAllocatedInSameBank): check whether to operands
1179             will be allocated into the same bank (i.e., section) to reduce
1180             BANKSEL overhead, queried from pcode.c:sameBank,
1181           (pic14printLocals): reintroduced clustering registers into a single
1182             section: all compiler generated symbols will now reside in one
1183             bank (per file), reducing BANKSEL overhead and code size,
1184           (showAllMemmaps): use local dbuf where possible
1185
1186 2007-01-29 Raphael Neider <rneider AT web.de>
1187
1188         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
1189           (call_libraryfunc): retrieve/create symbol and mark as used,
1190           (genFunction): mark defined functions as non-extern and add again
1191            to code memmap for later output
1192         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
1193           (pic14printLocals): reworked for new symbol emission,
1194           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
1195           showAllMemmaps): reworked symbol output using dbufs, added handling
1196             of string literals (still incomplete),
1197           (picglue): removed symbol emission, moved into showAllMemmaps,
1198           (emitSymbolSet): new workhorse for symbol output,
1199           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
1200
1201 2007-01-29 Borut Razem <borut.razem AT siol.net>
1202
1203         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
1204           component contains the extension separator.
1205
1206 2007-01-28 Borut Razem <borut.razem AT siol.net>
1207
1208         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
1209           on WIN32
1210         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
1211           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
1212           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
1213           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
1214           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
1215           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
1216           src/z80/gen.c, support/Util/MySystem.c:
1217           accept slash and backslash as directory separator on WIN32 and
1218           Cygwin ports
1219
1220 2007-01-28 Raphael Neider <rneider AT web.de>
1221
1222         * src/pic16/devices.inc,
1223         * device/include/pic16/pic18f[24][23]21.h,
1224         * device/include/pic16/pic18fregs.h,
1225         * device/lib/pic16/libdev/pic18f[24][23]21.c,
1226         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1227         * device/lib/pic16/libio/adc.ignore,
1228         * device/lib/pic16/libio/i2c.ignore,
1229         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1230           family, as gputils do not yet support the devices
1231         * device/lib/pic16/Makefile.subdir: ignore errors on install
1232         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1233           headers and libraries from gputils .inc files
1234
1235 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1236
1237         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1238
1239 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1240
1241         * doc/sdccman.lyx: add printf benchmarks
1242
1243 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1244
1245         * device/lib/printf_fast.c: fix %c, char promoted to int
1246         * device/lib/printf_tiny.c: fix %c, char promoted to int
1247
1248 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1249
1250         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1251
1252 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1253
1254         * support/regression/tests/swap.c: 64 bit hosts failed
1255         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1256
1257 2007-01-25 Raphael Neider <rneider AT web.de>
1258
1259         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1260           based on absolute register address, patch by Alex Blond
1261
1262 2007-01-22 Raphael Neider <rneider AT web.de>
1263
1264         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1265           emitted, do not emit them again...
1266
1267 2007-01-22 Raphael Neider <rneider AT web.de>
1268
1269         * src/regression/bank1.c, src/regression/compare6.c,
1270           src/regression/add.c: cosmetic changes
1271         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1272         * src/pic/gen.c: fixed global zero and one,
1273           (aopForSym): removed unued code,
1274           (aopGet): assert aop is defined, check and use `index' of
1275             pCodeImmd operands (fixes #1630908),
1276         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1277           (register_reassign): prevent accidental register unification,
1278           (ReuseReg): cosmetic changes (also above)
1279         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1280           pic14emitStaticSeg): do not emit initialized data,
1281           (printIval*): replaced with working versions,
1282           (pic14createInterruptVect,picglue): use idata for initialized data,
1283             now init data should work in all modules (not only main()),
1284         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1285
1286 2007-01-21 Borut Razem <borut.razem AT siol.net>
1287
1288         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1289           use -fPIC or -fpic if they are supported and not ignored
1290         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1291         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1292
1293 2007-01-20 Borut Razem <borut.razem AT siol.net>
1294
1295         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1296           implemented RFE #1470316: allow "$" in variable names
1297
1298 2007-01-20 Raphael Neider <rneider AT web.de>
1299
1300         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1301
1302 2007-01-20 Raphael Neider <rneider AT web.de>
1303
1304         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1305         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1306         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1307         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1308           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1309         * device/lib/pic/libdev/pic*.c,
1310         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1311         * device/lib/pic/libdev/Makefile.in: show progress
1312
1313 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1314
1315         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1316         * support/scripts/sdcc_cygwin_mingw32,
1317         * support/scripts/sdcc_mingw32,
1318         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1319         conformance with autoconf 2.6
1320
1321 2007-01-19 Raphael Neider <rneider AT web.de>
1322
1323         * src/pic/device.c (register_map): fixed list construction
1324         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1325           (genMod): removed case for genModbits,
1326           (genModbits): removed as now unused/unimplemented
1327         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1328
1329 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1330
1331         * support/regression/tests/swap.c: added in response to #1638622
1332         * doc/sdccman.lyx: synced version, minor changes
1333
1334 2007-01-18 Borut Razem <borut.razem AT siol.net>
1335
1336         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1337           thanks to Gunther Jehle
1338         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1339         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1340           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1341           use filename in lineno instead.
1342         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1343           print the file name in ast_print()
1344
1345 2007-01-18 Borut Razem <borut.razem AT siol.net>
1346
1347         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1348           defined in MSVC
1349         * src/SDCC.lex: stringLiteral() returns const char pointer,
1350           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1351           fixed column counting
1352         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1353           accept const char pointer as parameter
1354         * src/SDCCdwarf2.c: corrected buffer size
1355
1356 2007-01-17 Borut Razem <borut.razem AT siol.net>
1357
1358         * support/Util/dbuf_string.c: fixed for amd64
1359
1360 2007-01-15 Borut Razem <borut.razem AT siol.net>
1361
1362         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1363           removed terminal symbol ELIPSIS, since it was never generated by the
1364           lexer and it was wrongly used in parameter_identifier_list rule
1365
1366 2007-01-15 Raphael Neider <rneider AT web.de>
1367
1368         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1369             code page and data banking description
1370         * src/pic/genarith.c,
1371         * src/pic/gen.h: removed bit arithmetic functions,
1372             updated exit(1) to exit(EXIT_FAILURE)
1373         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1374         * device/include/pic16/pic18f2455.h,
1375         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1376             TRISD and TRISE, fixed/added some bit names
1377         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1378         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1379             updated pic18f2455.{c,h} instead of duplicating them
1380
1381 2007-01-14 Borut Razem <borut.razem AT siol.net>
1382
1383         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1384           Cannot debug files that contain spaces in the path name
1385           by converting spaces in asm file name to underscores
1386
1387 2007-01-13 Borut Razem <borut.razem AT siol.net>
1388
1389         * doc/sdccman.lyx: fixed format errors
1390
1391 2007-01-10 Borut Razem <borut.razem AT siol.net>
1392
1393         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1394           codeseg/constseg #pragma fail
1395         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1396         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1397           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1398           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1399
1400 2007-01-09 Borut Razem <borut.razem AT siol.net>
1401
1402         * get rid of diagnistic.[ch], pretty-print.[ch],
1403           c-pretty-print.[ch], ... used just for error, warning, ...
1404           message formatting
1405         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1406           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1407           suppoprt/cpp2/pretty-print.[ch]:
1408           removed
1409         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1410           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1411           suppoprt/cpp2/sdcpp.dsp:
1412           changed
1413
1414 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1415
1416         * device/lib/printf_large.c (output_float): removed recursion,
1417           use smaller buffer on stack for mcs51,
1418           fixed bug printing 1.96
1419         * support/regression/tests/snprintf.c: added test
1420
1421 2007-01-07 Borut Razem <borut.razem AT siol.net>
1422
1423         * use dynamic memory buffers instead temporary files
1424         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1425           added
1426         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1427           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1428           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1429           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1430           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1431           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1432           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1433           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1434           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1435           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1436           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1437           support/Util/dbuf.c, support/Util/dbuf.h:
1438           modified
1439         * .version, sdcc.spec: bumped version to 2.6.4
1440
1441 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1442
1443         * src/port.h: added TARGET_Z80_LIKE macro
1444         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1445           output PSEG location if --xram-loc or --xstack-loc was used
1446         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1447
1448 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1449
1450         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1451         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1452         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1453         * sdcc.dsw: moved project files into subdir
1454         * as/hc08/as_hc08.dsp,
1455         * as/hc08/Makefile.bcc,
1456         * as/hc08/Makefile.in,
1457         * as/mcs51/Makefile.bcc,
1458         * as/mcs51/Makefile.in,
1459         * as/z80/Makefile.bcc,
1460         * as/z80/Makefile.in,
1461         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1462         * as/hc08/asm.h,
1463         * as/mcs51/asm.h,
1464         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1465         * as/hc08/asmain.c,
1466         * as/hc08/assym.c,
1467         * as/mcs51/asmain.c,
1468         * as/mcs51/assym.c,
1469         * as/z80/assym.c: removed include "strcmpi.h"
1470         * as/hc08/strcmpi.c,
1471         * as/hc08/strcmpi.h,
1472         * as/mcs51/strcmpi.c,
1473         * as/mcs51/strcmpi.h,
1474         * support/Util/strcmpi.c,
1475         * support/Util/strcmpi.h: removed files
1476         * as/strcmpi.c: added as_strncmpi()
1477
1478 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1479
1480         * sdcc.dsw: Added some dependencies on project config.dsp
1481
1482 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1483
1484         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1485           with [di]ram_start to fix a regresion
1486
1487 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1488
1489         * configure.in: added missing mcs51 in status output
1490         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1491         directory
1492         * debugger/mcs51/clean.mk (distclean): remove config.h
1493         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1494         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1495         options.h, s-options-h and options.c
1496         * support/cpp2/clean.mk: unused, removed
1497         * Makefile.common.in,
1498         * main_in.mk,
1499         * as/Makefile.in,
1500         * as/hc08/Makefile.in,
1501         * as/hc08/clean.mk,
1502         * as/mcs51/Makefile.in,
1503         * as/mcs51/clean.mk,
1504         * as/z80/clean.mk,
1505         * as/z80/conf.mk,
1506         * as/z80/Makefile.in,
1507         * as/z80/clean.mk,
1508         * as/link/Makefile.in,
1509         * as/link/hc08/Makefile.in,
1510         * as/link/hc08/clean.mk,
1511         * as/link/mcs51/Makefile.in,
1512         * as/link/mcs51/clean.mk,
1513         * as/link/z80/Makefile.in,
1514         * as/link/z80/clean.mk,
1515         * as/link/z80/conf.mk,
1516         * debugger/mcs51/Makefile.in,
1517         * debugger/mcs51/clean.mk,
1518         * device/include/Makefile.in,
1519         * device/lib/Makefile.in,
1520         * device/lib/mcs51/Makefile.in,
1521         * device/lib/pic/Makefile.in,
1522         * device/lib/pic/Makefile.common.in,
1523         * device/lib/pic/Makefile.subdir,
1524         * device/lib/pic/Makefile.rules,
1525         * device/lib/pic16/libio/Makefile.in,
1526         * device/lib/pic16/Makefile.subdir,
1527         * device/lib/pic16/libdev/Makefile.in,
1528         * device/lib/pic16/Makefile.rules,
1529         * device/lib/pic16/Makefile.common.in,
1530         * sim/ucsim/avr.src/Makefile.in,
1531         * sim/ucsim/main_in.mk,
1532         * sim/ucsim/cmd.src/Makefile.in,
1533         * sim/ucsim/doc/Makefile.in,
1534         * sim/ucsim/gui.src/Makefile.in,
1535         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1536         * sim/ucsim/gui.src/serio.src/Makefile.in,
1537         * sim/ucsim/hc08.src/Makefile.in,
1538         * sim/ucsim/libltdl/Makefile.in,
1539         * sim/ucsim/s51.src/Makefile.in,
1540         * sim/ucsim/sim.src/Makefile.in,
1541         * sim/ucsim/sim.src/conf.mk,
1542         * sim/ucsim/xa.src/Makefile.in,
1543         * sim/ucsim/z80.src/Makefile.in,
1544         * src/Makefile.in,
1545         * src/clean.mk,
1546         * src/port.mk,
1547         * support/cpp2/Makefile.in,
1548         * support/librarian/Makefile.in,
1549         * support/librarian/clean.mk,
1550         * support/makebin/Makefile.in,
1551         * support/makebin/clean.mk,
1552         * support/packihx/Makefile.in,
1553         * support/regression/Makefile.in,
1554         * support/regression/ports/ds390/spec.mk,
1555         * support/regression/ports/gbz80/spec.mk,
1556         * support/regression/ports/hc08/spec.mk,
1557         * support/regression/ports/mcs51/spec.mk,
1558         * support/regression/ports/mcs51-large/spec.mk,
1559         * support/regression/ports/mcs51-medium/spec.mk,
1560         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1561         * support/regression/ports/pic14/spec.mk,
1562         * support/regression/ports/pic16/spec.mk,
1563         * support/regression/ports/mcs51-stack-auto/spec.mk,
1564         * support/regression/ports/ucz80/spec.mk,
1565         * support/regression/ports/xa51/spec.mk,
1566         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1567         adding a slash after $(top_builddir) and/or adding @datarootdir@
1568         * configure.in,
1569         * debugger/mcs51/configure.in,
1570         * device/lib/pic/configure.in,
1571         * device/lib/pic16/configure.in,
1572         * sim/ucsim/configure.in,
1573         * support/cpp2/configure.in,
1574         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1575         * configure,
1576         * debugger/mcs51/configure,
1577         * device/lib/pic/configure,
1578         * device/lib/pic16/configure,
1579         * sim/ucsim/configure,
1580         * support/cpp2/configure,
1581         * support/packihx/configure: generated with autoconf 2.60
1582
1583 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1584
1585         * as/link/hc08/lkihx.c (newArea),
1586         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1587
1588 2007-01-02 Borut Razem <borut.razem AT siol.net>
1589
1590         * doc/sdccman.lyx: documented #pragma sdcc_hash
1591         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1592           initialized to 0
1593         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1594
1595 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1596
1597         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1598         empty 'while'-loop to work correctly, see regression test 'while.c'
1599         * support/regression/tests/while.c: added
1600
1601 2007-01-01 Borut Razem <borut.razem AT siol.net>
1602
1603         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1604           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1605           support/cpp2/libcpp/sdcpp.c:
1606           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1607         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1608         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1609
1610 2006-12-31 Borut Razem <borut.razem AT siol.net>
1611
1612         * SDCPP synchronized with GCC CPP release version 4.1.1,
1613           currently the latest release:
1614         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1615           support/cpp2/libcpp/include/cpp-id-data.h
1616           support/cpp2/libiberty/fopen_unlocked.c
1617           support/cpp2/libiberty/md5.c
1618           support/cpp2/md5.h
1619           support/cpp2/opt-functions.awk
1620           support/cpp2/opt-gather.awk
1621           support/cpp2/optc-gen.awk
1622           support/cpp2/opth-gen.awk:
1623           added
1624         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1625           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1626           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1627           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1628           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1629           support/cpp2/diagnostic.h, support/cpp2/except.h,
1630           support/cpp2/hwint.h, support/cpp2/input.h,
1631           support/cpp2/intl.h, support/cpp2/move-if-change,
1632           support/cpp2/opts.c, support/cpp2/opts.h,
1633           support/cpp2/output.h, support/cpp2/prefix.c,
1634           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1635           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1636           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1637           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1638           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1639           support/cpp2/version.c:
1640           modified
1641         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1642           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1643           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1644           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1645           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1646           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1647           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1648           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1649           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1650           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1651           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1652           moved
1653         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1654           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1655           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1656           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1657           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1658           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1659           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1660           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1661           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1662           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1663           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1664           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1665           support/cpp2/system.h:
1666           deleted / moved
1667
1668 2006-12-31 Borut Razem <borut.razem AT siol.net>
1669
1670         * configure.in, configure: fixed bug #1538756: configure dies if bison
1671           and flex are not installed, 2nd try
1672
1673 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1674
1675         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1676         400.x for better code in RFE 899102
1677
1678 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1679
1680         * src/SDCCpeeph.c (deadMove),
1681         * src/port.h,
1682         * src/mcs51/peep.h: renamed 'op' by 'reg'
1683         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1684         (scan4op): small change for removeDeadMove(), added support for
1685         'callee saves' and/or PACLL function calls,
1686         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1687         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1688         left in new dispatcher mcs51DeadMove()
1689         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1690         removeDeadMove()
1691         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1692
1693 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1694
1695         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1696           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1697
1698 2006-12-30 Borut Razem <borut.razem AT siol.net>
1699
1700         * support/cpp2/spacs.h: deleted from svn
1701         * configure.in, configure: fixed bug #1538756: configure dies if bison
1702           and flex are not installed
1703
1704 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1705
1706         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1707           with this z80 passes printf float test when enabled
1708         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1709
1710 2006-12-28 Borut Razem <borut.razem AT siol.net>
1711
1712         * support/cpp2/config.in, support/cpp2/configure.in,
1713           support/cpp2/configure, support/cpp2/Makefile.in:
1714           fix for the solaris build
1715
1716 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1717
1718         * src/SDCC.y (type_specifier2, pointer),
1719         * src/SDCCsymt.h,
1720         * src/SDCCsymt.c (mergeSpec, checkSClass),
1721         * support/Util/SDCCerr.c,
1722         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1723         * support/valdiag/valdiag.py: Allow test cases to specify
1724           required language standard
1725         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1726         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1727
1728 2006-12-27 Borut Razem <borut.razem AT siol.net>
1729
1730         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1731         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1732           mbchar removed
1733         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1734           fixed for borland C
1735         * support/cpp2/libiberty/Makefile.bcc: updated
1736         * src/pic16/main.c: fixed #pragma udata handling
1737         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1738
1739 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1740
1741         * src/SDCCpeeph.c: made labelHashEntry global,
1742         made pcDistance, FBYNAME static,
1743         (pcDistance): made static, use isComment and isLabel,
1744         (deadMove): added,
1745         (getLabelRef): added, extracted from labelRefCount(),
1746         (labelRefCount): use new getLabelRef(),
1747         (callFuncByName): made static, added deadMove,
1748         use isComment and isLabel,
1749         (newPeepRule): made static, set isLabel,
1750         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1751         labels from peephole rules,
1752         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1753         when isComment or isLabel is set
1754         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1755         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1756         to make them global
1757         * src/mcs51/peep.h: added
1758         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1759         * src/port.h: added peep->deadMove to port structure
1760         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1761         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1762         deadMove, finally removed no. 1 and 2
1763         * src/mcs51/gen.c,
1764         * src/pic/gen.c,
1765         * src/z80/gen.c,
1766         * src/z80/ralloc.c,
1767         * src/pic16/gen.c,
1768         * src/ds390/gen.c,
1769         * src/hc08/gen.c: mark lines with isComment or isLabel
1770         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1771         * .version,
1772         * sdcc.spec: bumped version to 2.6.3
1773
1774 2006-12-26 Borut Razem <borut.razem AT siol.net>
1775
1776         * support/cpp2/Makefile.in: added dependency on options.h
1777         * configure: regenerated
1778         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1779         * support/cpp2/Makefile.in: added vasprintf.c
1780
1781 2006-12-25 Borut Razem <borut.razem AT siol.net>
1782
1783         * SDCPP synchronized with GCC CPP release version 3.4.6,
1784           the latest release before 4.x:
1785         * support/cpp2/Makefile.in, support/cpp2/config.h,
1786           support/cpp2/configure, support/cpp2/configure.in,
1787           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1788           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1789           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1790           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1791           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1792           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1793           support/cpp2/cpptrad.c, support/cpp2/except.h,
1794           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1795           support/cpp2/hwint.h, support/cpp2/intl.h,
1796           support/cpp2/line-map.c, support/cpp2/line-map.h,
1797           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1798           support/cpp2/output.h, support/cpp2/prefix.c,
1799           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1800           support/cpp2/system.h, support/cpp2/version.c:
1801           modified
1802         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1803           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1804           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1805           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1806           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1807           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1808           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1809           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1810           support/cpp2/move-if-change, support/cpp2/opts.c,
1811           support/cpp2/opts.h, support/cpp2/opts.sh,
1812           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1813           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1814           support/cpp2/win32, support/cpp2/win32/dirent.c,
1815           support/cpp2/win32/dirent.h:
1816           added
1817         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1818         * support/cpp2/sdcpp.h: renamed from sdcc.h
1819         * sdcppinit.c: deleted
1820
1821 2006-12-23 Borut Razem <borut.razem AT siol.net>
1822
1823         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1824           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1825           preproc.c: an other try to fix bug #982435: introduced
1826           -pedantic-parse-number command line option and pedantic_parse_number
1827           pragma
1828
1829 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1830
1831         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1832            BSEG handling,
1833           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1834            corrected overlayed areax addresses, warn about memory overlaps
1835         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1836         * src/avr/main.c,
1837         * src/ds390/main.c,
1838         * src/hc08/main.c,
1839         * src/mcs51/main.c,
1840         * src/pic16/main.c,
1841         * src/pic/main.c,
1842         * src/xa51/main.c,
1843         * src/z80/main.c,
1844         * src/port.h: added xabs_name and iabs_name
1845         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1846           (glue, emitMaps): create and emit maps d_abs and i_abs
1847         * src/SDCCglue.h: cosmetic changes
1848         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1849         * src/SDCCmem.h,
1850         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1851           (allocDefault): put absolute, initialized globals in them
1852         * support/regression/tests/absolute.c: added absolute bdata test
1853         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1854
1855 2006-12-20 Borut Razem <borut.razem AT siol.net>
1856
1857         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1858         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1859           added regression test for bug #982435
1860
1861 2006-12-18 Borut Razem <borut.razem AT siol.net>
1862
1863         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1864         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1865           small cosmetic changes
1866         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1867         * support/regression/tests/bug-1351710.c: added regression test
1868
1869 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1870
1871         * doc/sdccman.lyx: added the long missed iCode table
1872           "<where is figure II?>", added links to wiki
1873
1874 2006-12-17 Borut Razem <borut.razem AT siol.net>
1875
1876         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1877           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1878           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1879           unified table driven pragma handling, pragma argument type checking
1880         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1881           current one - version 1.1.3
1882         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1883
1884 2006-12-13 Raphael Neider <rneider AT web.de>
1885
1886         * src/pic/device.h: removed AssignedMemory structure and macros
1887         * src/pic/device.c: removed global finalMapping (linker assigns
1888             memory locations),
1889           (register_map): add SFRs to remembered memRanges
1890           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1891           assignFixedRegisters,assignRelocatableRegisters): removed,
1892           (setMaxRAM,validAddress): adapted accordingly,
1893           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1894             reasonably sized sharebanks,
1895         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1896           (allDefsOutOfRange): removed unused code,
1897         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1898             handling
1899         * src/pic/pcode.c (register_reassign): removed recursion warning,
1900             fired far too often,
1901         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1902             to use existing pic14_stringInSet() to avoid duplicate symbols,
1903             tidied up the code a bit,
1904           (pic14printLocals): added in symmetry to printExterns, replaces
1905             writeUsedRegs more or less,
1906           (picglue): call new pic14_printLocals(),
1907         * device/include/pic/pic*.h: removed #pragma memmap directives,
1908             information gathered from include/pic/pic14devices.txt
1909         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1910
1911 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1912
1913         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1914
1915 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1916
1917         * device/include/mcs51/cc2430.h: fixed missing ';'
1918
1919 2006-12-10 Raphael Neider <rneider AT web.de>
1920
1921         * device/lib/pic16/libc/stdio/vfprintf.c,
1922         * device/lib/pic16/libc/stdio/printf_small.c,
1923         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1924           char arguments, as char varargs are cast to int by the caller,
1925           hopefully fixes #1604915 (other device libraries are still affected)
1926
1927 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1928
1929         * src/mcs51/ralloc.c (packRegsForAssign),
1930         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1931
1932 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1933
1934         * device/include/malloc.h: removed init_dynamic_memory
1935         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1936           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1937         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1938         * device/lib/libsdcc.lib,
1939         * device/lib/Makefile.in,
1940         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1941         * doc/sdccman.lyx: documented use of new _heap.c
1942         * support/regression/tests/malloc.c: removed init_dynamic_memory
1943         * src/cdbFile.c(spacesToUnderscores): new function,
1944           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1945           1068030
1946         * device/include/tinibios.h: removed defines for putchar and getchar
1947         * device/lib/ds390/Makefile.in: added putchar.c
1948         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1949
1950 2006-12-09 Borut Razem <borut.razem AT siol.net>
1951
1952         * support/cpp2/sdcc.h: prevent multiple inclusion
1953         * support/cpp2/options.h: deleted
1954
1955 2006-12-08 Borut Razem <borut.razem AT siol.net>
1956
1957         * support/cpp2/sdcc.h: removed x*alloc() macros
1958         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1959         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1960           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1961         * support/cpp2/system.h: moved #include "sdcc.h"
1962         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1963           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1964           added
1965         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1966           -funsigned-char options
1967         * support/cpp2/sdcppmain.c: fixed bug 1611411
1968
1969 2006-12-07 Borut Razem <borut.razem AT siol.net>
1970
1971         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1972           directive
1973
1974 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1975
1976         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1977         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1978         * doc/sdccman.lyx,
1979         * .version: bumped to 2.6.2 because a) it's been a while
1980           b) the linker sources have moved c) the preprocessor is upgraded
1981
1982 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1983
1984         * support/regression/tests/snprintf.c: some checks
1985         * lib/src/printf_large.c: %bc: read char instead of int from stack
1986
1987 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1988
1989         * device/include/mcs51/cc2430.h: inserted _XPAGE
1990
1991 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1992
1993         * device/include/mcs51/cc2430.h: added
1994
1995 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1996
1997         * device/include/asm/default/features.h,
1998         * device/include/asm/ds390/features.h,
1999         * device/include/mcs51/at89s53.h,
2000         * device/include/ser.h,
2001         * device/include/ser_ir.h,
2002         * device/include/serial.h: changed keywords to double underscore variants,
2003           fixes bug 1590261 some more, thanks Steven Borley
2004
2005 2006-12-01 Raphael Neider <rneider AT web.de>
2006
2007         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2008           but emit warning (recursion is not supported for pic14)
2009
2010 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2011
2012         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2013         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2014
2015 2006-11-30 Raphael Neider <rneider AT web.de>
2016
2017         * src/pic/device.c (dump_sfr): always emit symbols
2018         * src/pic/glue.c (pic14printPublics): fixed typo
2019
2020 2006-11-30 Raphael Neider <rneider AT web.de>
2021
2022         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2023           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2024           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2025            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2026            a sharebank, use a non-shared bank for the stack if none available
2027         * src/pic/device.h (struct memRange): added linked list next field,
2028           added prototypes for above functions
2029         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2030           (typeRegWithIdx): accept fixed and unfixed stack registers
2031         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2032           the stack, handle shared and banked stack (except for WSAVE),
2033           (insertBankSel): removed useless optimization (will never fire),
2034           (FixRegisterBanking): added optimization for devices with only one
2035           possibly aliased bank of memory, like 16f84
2036         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2037           devices have no SHAREBANK in the linker script
2038         * device/include/pic/pic14devices.txt: documented memmap
2039         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2040
2041 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2042
2043         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2044           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2045           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2046           genhc08Code): switched most of the D (debug) macros to DD (detailed
2047           debug) macros to better control clutter in the generated .asm file.
2048         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2049           genRightShift): fixed bug with non-constant bit shift stored to
2050           a volatile result (SF Open Discussion forum thread #1616749).
2051           Single byte case is not yet optimized.
2052
2053 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2054
2055         * device/include/asm/mcs51/features.h,
2056         * device/include/malloc.h,
2057         * device/include/stdio.h: changed keywords to double underscore variants,
2058           fixes bug 1590261
2059
2060 2006-11-27 Borut Razem <borut.razem AT siol.net>
2061
2062         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2063           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
2064           support/cpp2/output.h, support/cpp2/cppinit.c,
2065           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2066           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2067           support/cpp2/cppdefault.c, support/cpp2/system.h,
2068           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2069           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
2070           support/cpp2/prefix.c, support/cpp2/except.h,
2071           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
2072           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
2073           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2074           support/cpp2/version.c, support/cpp2/cppmain.c,
2075           support/cpp2/version.h, support/cpp2/hashtable.c,
2076           support/cpp2/cpperror.c:
2077           synchronized with GCC CPP release version 3.3.6,
2078           the latest where cppmain.c still exists.
2079         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
2080           support/cpp2/sdcppinit.c: added
2081
2082 2006-11-27 Borut Razem <borut.razem AT siol.net>
2083
2084         * support/cpp2/cpplex.c:
2085           fixed _asm ... _endasm handling bug, introduce with GCC CPP
2086           synchronization
2087         * support/cpp2/cpplib.c: removed definitions of unused variables
2088
2089 2006-11-26 Borut Razem <borut.razem AT siol.net>
2090
2091         * support/cpp2/libiberty.h: commented out x*alloc() declarations
2092           since they are redefined by macros in support/cpp2/sdcc.h
2093         * support/cpp2/sdcc.h: x*alloc macro redefinition
2094
2095 2006-11-25 Borut Razem <borut.razem AT siol.net>
2096
2097         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
2098           support/cpp2/configure, support/cpp2/Makefile.in,
2099           support/cpp2/cppfiles.c, support/cpp2/output.h,
2100           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
2101           support/cpp2/config.h, support/cpp2/cpplib.h,
2102           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
2103           support/cpp2/cppdefault.c, support/cpp2/config.in,
2104           support/cpp2/system.h, support/cpp2/cpplex.c,
2105           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
2106           support/cpp2/cppdefault.h, support/cpp2/prefix.c
2107           support/cpp2/hwint.h, support/cpp2/mbchar.h,
2108           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
2109           support/cpp2/configure.in, support/cpp2/intl.h,
2110           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
2111           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
2112           support/cpp2/version.c, support/cpp2/cppmain.c,
2113           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
2114           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
2115           support/cpp2/cpperror.c,
2116           support/cpp2/libiberty/safe-ctype.c,
2117           support/cpp2/libiberty/safe-ctype.h,
2118           support/cpp2/libiberty/splay-tree.c,
2119           support/cpp2/libiberty/obstack.c,
2120           support/cpp2/libiberty/lbasename.c,
2121           support/cpp2/libiberty/splay-tree.h,
2122           support/cpp2/libiberty/obstack.h:
2123           synchronized with GCC CPP release version 3.2.3,
2124           the latest before integration of cpp into gcc
2125         * support/cpp2/except.h, support/cpp2/line-map.c,
2126           support/cpp2/line-map.h,
2127           support/cpp2/libiberty/hex.c,
2128           support/cpp2/libiberty/concat.c,
2129           support/cpp2/libiberty/filenames.h: added
2130         * support/cpp2/intl.c: deleted
2131
2132 2006-11-24 Borut Razem <borut.razem AT siol.net>
2133
2134         * src/SDCC.y: enabled compilation of empty source file
2135         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
2136           "ISO C forbids an empty source file"
2137         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
2138           if all the code is ifdefed out.
2139
2140 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2141
2142         * src/hc08/gen.c (genPcall): fix for bug #1601032
2143
2144 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2145
2146         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
2147         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
2148         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
2149         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
2150         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
2151         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
2152         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
2153         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
2154         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
2155         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
2156         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
2157         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
2158         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
2159         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
2160         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
2161           Renamed to all upper case as per the standard set by SiLabs
2162
2163 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
2164
2165         * device/include/mcs51/C8051F520.h: new, added
2166         * device/include/mcs51/compiler.h: added link about predefined macros
2167
2168 2006-11-23 Raphael Neider <rneider AT web.de>
2169
2170         * src/regression/Makefile: add -L path to fresh library
2171         * src/regression/simulate: emphasize FAILED output
2172         * src/regression/create_stc: output _failures from gpsim
2173         * src/regression/compare4.c,
2174         * src/regression/rotate6.c: fixed char literals,
2175           all compile, all run =8-D
2176
2177         * src/pic/pcode.h: added isPCASMDIR macro
2178         * src/pic/gen.c (genAnd): fixed bit offset
2179         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
2180           packBits): unified register numbering schemes,
2181           (newReg): do not insert stack registers into hash table,
2182           (initStack): unpinned pseudo stack, simplified,
2183           (typeRegWithIdx): fixed retrieval of stack registers,
2184         * src/pic/pcode.c (addpCodeComment,sameBank): added,
2185           (pCodeReplace): removed invalid assertion,
2186           (insertPCodeInstruction): fixed newly added labels,
2187           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
2188           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
2189           DumpFlow): removed unsed (broken?) code,
2190           (insertBankSel): prevent STATUS from being BANKSELed,
2191           (FixRegisterBanking): rewritten from scratch, implemented generic
2192             optimizations (suppress BANKSELs to same register and to registers
2193             present in all banks),
2194           (AnalyzeBanking): update flow after BANKSELection
2195
2196         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
2197             sharebank, let linker place it, mark STKxx symbols as emitted
2198
2199 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2200
2201         * src/regression/arrays.c,
2202         * src/regression/bank1.c,
2203         * src/regression/bool2.c,
2204         * src/regression/compare7.c,
2205         * src/regression/compare8.c,
2206         * src/regression/compare9.c,
2207         * src/regression/compare10.c,
2208         * src/regression/configword.c,
2209         * src/regression/for.c,
2210         * src/regression/mult1.c,
2211         * src/regression/pointer1.c,
2212         * src/regression/rotate6.c,
2213         * src/regression/string1.c,
2214         * src/regression/struct1.c,
2215         * src/regression/Makefile: make PIC14 regression tests run again
2216           (3 fail, 6 won't compile)
2217
2218 2006-11-21 Raphael Neider <rneider AT web.de>
2219
2220         * device/include/pic16/pic18f4550.h,
2221         * device/include/pic16/pic18f4455.h,
2222         * device/lib/pic16/libdev/pic18f4550.c,
2223         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2224         * configure.in: removed superfluous closing bracket
2225
2226 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2227
2228         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2229           always positive.
2230
2231 2006-11-21 Raphael Neider <rneider AT web.de>
2232
2233         * src/pic/device.{c,h}: added pic14_getPIC()
2234         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2235           (genAnd): added PIC code for one case, fixes #1597044
2236         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2237           SFRs that are present in all banks (e.g., STATUS)
2238
2239 2006-11-20 Raphael Neider <rneider AT web.de>
2240
2241         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2242           INCFSZ/INCFSZW and declared them as changing Z bit,
2243           (insertPCodeInstruction): correctly invert the above instructions,
2244           fixes #1599333,
2245           (DoBankSelect): don't panic on po_immediates
2246
2247 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2248
2249         * as/link/aslink.h,
2250         * as/link/mcs51/lkihx.c (newArea),
2251         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2252         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2253
2254 2006-11-11 Raphael Neider <rneider AT web.de>
2255
2256         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2257           bitfield symbols, fixes #1579535 (once more...).
2258
2259 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2260
2261         * support/regression/generate-cases.py,
2262         * support/regression/fwk/include/testfwk.h,
2263         * support/regression/fwk/lib/testfwk.c: used code pointers,
2264           (about 50kByte less code generated for mcs51)
2265
2266 2006-11-06 Borut Razem <borut.razem AT siol.net>
2267
2268         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2269           debugger/mcs51/configure: fixed failed check because the function
2270           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2271           who submitted the patch for gpsim.
2272         * debugger/mcs51/configure.in: removed the result message
2273         * debugger/mcs51/Makefile.in: fixed the config.status warning
2274           "... seems to ignore the --datarootdir setting"
2275
2276 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2277
2278         * device/include/mcs51/c8051f020.h,
2279         * device/include/mcs51/c8051f040.h,
2280         * device/include/mcs51/c8051f060.h,
2281         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2282         * src/z80/gen.c (gencjneshort),
2283         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2284
2285 2006-10-31 Borut Razem <borut.razem AT siol.net>
2286
2287         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2288           debugger/mcs51/configure: get readline version
2289
2290 2006-10-30 Borut Razem <borut.razem AT siol.net>
2291
2292         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2293         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2294           debugger/mcs51/configure: locate readline even when cross compiling
2295         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2296
2297 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2298
2299         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2300           serial port.
2301
2302 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2303
2304         * device/include/malloc.h,
2305         * device/lib/calloc.c,
2306         * device/lib/free.c,
2307         * device/lib/malloc.c,
2308         * device/lib/realloc.c: moved definition of struct into sources
2309         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2310
2311 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2312
2313         * as/asx8051.dsp: corrected output directories
2314         * as/link/hc08: new directory for hc08 linker
2315         * as/hc08/aslink.h,             as/link/aslink.h,
2316         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2317         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2318         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2319         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2320         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2321         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2322         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2323         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2324         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2325         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2326         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2327         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2328         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2329         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2330         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2331         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2332         * as/link/hc08/conf.mk,
2333         * configure,
2334         * configure.in,
2335         * Makefile.in,
2336         * sdcc.dsw: moved hc08 linker to as/link/hc08
2337         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2338         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2339         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2340         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2341         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2342         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2343         * as/link/mcs51/aslink.dsp,
2344         * as/link/mcs51/Makefile.in: factored out the common files
2345         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2346         * as/clean.mk: extra cleaning common files
2347         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2348         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2349         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2350
2351 2006-10-29 Raphael Neider <rneider AT web.de>
2352
2353         * src/pic/ralloc.c (newReg): create aliases for registers with
2354           multiple names to fix #1579535 and #1584001,
2355           (regWithIdx,dirregWithName): resolve aliases on lookup
2356         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2357           bankselect
2358         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2359           to prevent build errors on small devices
2360
2361 2006-10-28 Raphael Neider <rneider AT web.de>
2362
2363         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2364           assumption within interrupt handlers, fixes #1584940
2365         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2366           "emitted" to avoid emitting them again in udata
2367
2368 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2369
2370         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2371         Removed.
2372
2373 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2374
2375         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2376         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2377         on/off CR to CRLF conversion.
2378
2379 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2380
2381         * doc/sdccman.lyx: updated IRQ section
2382
2383 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2384
2385         * device/lib/serial_io.c: removed
2386         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2387         replacements for serial_io.c
2388
2389 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2390
2391         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2392
2393 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2394
2395         * device/lib/serial_io.c: Default putchar() and getchar() for
2396           mcs51 uses serial port.
2397
2398 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2399
2400         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2401
2402 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2403
2404         * support/regression/ports/mcs51/support.c: smaller
2405         _sdcc_external_startup()
2406         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2407
2408 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2409
2410         * device/lib/gbz80/crt0.s,
2411         * device/lib/gbz80/crt0_rle.s,
2412         * device/lib/gbz80/div.s,
2413         * device/lib/gbz80/fstubs.s,
2414         * device/lib/gbz80/heap.s,
2415         * device/lib/gbz80/mul.s,
2416         * device/lib/gbz80/putchar.s,
2417         * device/lib/gbz80/stubs.s,
2418         * device/lib/z80/crt0.s,
2419         * device/lib/z80/crt0_rle.s,
2420         * device/lib/z80/div.s,
2421         * device/lib/z80/fstubs.s,
2422         * device/lib/z80/heap.s,
2423         * device/lib/z80/mul.s,
2424         * device/lib/z80/putchar.s,
2425         * device/lib/z80/stubs.s: reverted, I was mistaken
2426
2427 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2428
2429         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2430         * support/regression/ports/mcs51/support.c: removed race
2431         condition on TI in _putchar allowing to use serial port mode 0
2432
2433 2006-10-20 Borut Razem <borut.razem AT siol.net>
2434
2435         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2436
2437 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2438
2439         * device/lib/gbz80/crt0.s,
2440         * device/lib/gbz80/crt0_rle.s,
2441         * device/lib/gbz80/div.s,
2442         * device/lib/gbz80/fstubs.s,
2443         * device/lib/gbz80/heap.s,
2444         * device/lib/gbz80/mul.s,
2445         * device/lib/gbz80/putchar.s,
2446         * device/lib/gbz80/stubs.s,
2447         * device/lib/z80/crt0.s,
2448         * device/lib/z80/crt0_rle.s,
2449         * device/lib/z80/div.s,
2450         * device/lib/z80/fstubs.s,
2451         * device/lib/z80/heap.s,
2452         * device/lib/z80/mul.s,
2453         * device/lib/z80/putchar.s,
2454         * device/lib/z80/stubs.s: removed all leading underscores from area names
2455
2456 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2457
2458         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2459           regression tests are not waiting in the simulator for simulated
2460           transmission of debug output
2461
2462 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2463
2464         * device/lib/printf_large.c: slightly smaller
2465         * doc/sdccman.lyx: do not use spaces within html links
2466
2467 2006-10-16 Borut Razem <borut.razem AT siol.net>
2468
2469         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2470           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2471           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2472           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2473           debugger/mcs51/configure:
2474           [ 1185668 ] add gnu readline support to sdcdb - enabled
2475
2476 2006-10-16 Raphael Neider <rneider AT web.de>
2477
2478         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2479           fixes #1577882, removes close to all banking optimizations
2480
2481 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2482
2483         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2484           variables in code memory
2485         * support/regression/tests/absolute.c: added test for this
2486
2487 2006-10-15 Raphael Neider <rneider AT web.de>
2488
2489         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2490           devices,
2491           (BankSelect): emit BANKSEL before touching linker-placed regs,
2492           fixes #1570934
2493
2494 2006-10-10 Raphael Neider <rneider AT web.de>
2495
2496         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2497         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2498         * src/pic/main.c (_pic14_parseOptions),
2499         * src/pic/main.h: mostly reverted to previous state, now use results
2500             from SDCCmain.c's argument parsing
2501
2502 2006-10-10 Borut Razem <borut.razem AT siol.net>
2503
2504         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2505           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2506           [ 1185668 ] add gnu readline support to sdcdb -
2507           prepared for READLINE, not enabled yet,
2508           thanks to <tal.bav AT gmail.com>
2509
2510 2006-10-10 Raphael Neider <rneider AT web.de>
2511
2512         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2513         * src/pic16/devices.inc,
2514         * device/include/pic16 (pic18f[24]620.h),
2515         * device/include/pic18fregs.h,
2516         * device/lib/pic16/pics.all,
2517         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2518             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2519             Gary Plumbridge and Anton Strobl
2520
2521 2006-10-10 Raphael Neider <rneider AT web.de>
2522
2523         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2524           --stack-siz=NUM options to configure the argument passing stack
2525         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2526         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2527           (pic14_getSharebankSize): obey --stack-siz=NUM,
2528           (pic14_getSharebankAddress): obey --stack-loc=NUM
2529
2530 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2531
2532         * doc/sdccman.lyx: added to the manual
2533         * doc/figures/ddd_example.png: added (neither pdflatex nor
2534         most browsers seem to like the .eps file)
2535
2536 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2537
2538         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2539         to /tmp and /var/tmp acc. LSB
2540         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2541         RESULT_TYPE_IFX
2542         * support/regression/tests/onebyte.c: added test
2543
2544 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2545
2546         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2547
2548 2006-10-05 Borut Razem <borut.razem AT siol.net>
2549
2550         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2551           thanks to dfulab:
2552           - sdcc.dsw: changed property eol-style to CRLF
2553           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2554
2555 2006-10-04 Raphael Neider <rneider AT web.de>
2556
2557         * device/include/pic/{pic16f84.h,pic16f84a.h},
2558         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2559           from patch #1522504, thanks to Robas Teodor
2560
2561 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2562
2563         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2564           fixes bug 1566015
2565
2566 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2567
2568         * src/pic16/glue.c (pic16emitMaps),
2569         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2570         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2571         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2572         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2573           Philipp Krause
2574         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2575         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2576
2577 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2578
2579         * support/librarian/sdcclib.c: Added option -l.
2580         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2581           usage totals.
2582         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2583           using Windows command prompt.
2584
2585 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2586
2587         * device/lib/libsdcc.lib: added module rand
2588         * src/ds390/ralloc.c (rematStr),
2589         * src/hc08/ralloc.c (rematStr),
2590         * src/mcs51/ralloc.c (rematStr),
2591         * src/z80/ralloc.c (rematStr): made output more consistent
2592         * src/mcs51/gen.c: cosmetic changes
2593
2594 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2595
2596         * src/port.h: added mem.cabs_name to PORT
2597         * src/ds390/main.c,
2598         * src/hc08/main.c,
2599         * src/mcs51/main.c,
2600         * src/pic16/main.c,
2601         * src/pic/main.c,
2602         * src/xa51/main.c,
2603         * src/z80/main.c: added cabs_name initializers
2604         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2605           constants
2606           (emitMaps): emit absolutes in code memory into cabs_name
2607         * src/SDCCmem.c,
2608         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2609         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2610         * support/regression/fwk/include/testfwk.h: added define for at
2611         * support/regression/tests/absolute.c: added, new
2612
2613 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2614
2615         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2616           optimizations, see also patch 887161 by Stas Sergeev
2617         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2618           to be necessary anymore,
2619           (102, 103, 104, 127): renamed all occurances of bp to _bp
2620
2621 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2622
2623         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2624           thanks Weston T. Schmidt for patch 1555221
2625         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2626         * src/SDCCicode.c(geniCodeMultiply): small optimization
2627
2628 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2629
2630         * device/include/stdlib.h: added rand prototypes
2631         * device/lib/rand.c: new, added
2632         * device/lib/Makefile.in: added rand.c
2633         * src/z80/peeph.def,
2634         * src/z80/peeph-gbz80.def,
2635         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2636
2637 2006-09-20 Raphael Neider <rneider AT web.de>
2638
2639         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2640
2641 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2642
2643         * as/link/aslink.h: cosmetic changes
2644         * as/link/mcs51/Makefile.in,
2645         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2646
2647 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2648
2649         * as/link/aslink.h,
2650         * as/link/mcs51/aslink.h,
2651         * as/link/z80/aslink.h: merged and moved to as/link/
2652         * as/link/lkstore.c,
2653         * as/link/mcs51/lkstore.c: moved to as/link/
2654         * as/link/clean.mk: remove *.o
2655         * as/link/mcs51/alloc.h: deleted
2656         * as/link/mcs51/lkarea.c: added lnksect prototype
2657         * as/link/mcs51/lkdata.c,
2658         * as/link/mcs51/lklex.c,
2659         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2660         * as/link/mcs51/lkmem.c,
2661         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2662         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2663         * as/link/mcs51/aslink.dsp,
2664         * as/link/mcs51/Makefile.aslink,
2665         * as/link/mcs51/Makefile.bcc,
2666         * as/link/mcs51/Makefile.in: updated for moved files
2667         * as/link/z80/lkarea.c,
2668         * as/link/z80/lkhead.c,
2669         * as/link/z80/lklex.c,
2670         * as/link/z80/lklibr.c,
2671         * as/link/z80/lklist.c,
2672         * as/link/z80/lkmain.c,
2673         * as/link/z80/lkrloc.c,
2674         * as/link/z80/lksym.c: synced with mcs51
2675         * as/link/z80/lkdata.c,
2676         * as/link/z80/lkeval.c,
2677         * as/link/z80/lkihx.c,
2678         * as/link/z80/lks19.c: cosmetic changes
2679         * as/link/z80/Makefile.in,
2680         * as/link/z80/linkgbz80.dsp,
2681         * as/link/z80/linkz80.dsp: updated for moved files
2682
2683 2006-09-16 Borut Razem <borut.razem AT siol.net>
2684
2685         * debugger/mcs51/sdcdb.c: partially fixed
2686           [ 1203664 ] sdcdb fails to open files w. two "." periods
2687         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2688           debugger/mcs51/symtab.h: fixed indenting
2689         * configure.in, configure: up to date with latest Maarten's changes
2690
2691 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2692
2693         as/link/mcs51
2694         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2695         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2696         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2697         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2698         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2699         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2700         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2701         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2702         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2703         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2704         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2705         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2706         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2707         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2708         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2709         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2710         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2711         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2712         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2713         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2714         as/link/mcs51/alloc.h,
2715         as/link/mcs51/clean.mk,
2716         as/link/mcs51/conf.mk,
2717         as/link/mcs51/Makefile.bcc,
2718         as/link/mcs51/Makefile.in,
2719         as/link/mcs51/readme.390,
2720         as/link/mcs51/strcmpi.c,
2721         as/link/mcs51/strcmpi.h,
2722         as/mcs51/clean.mk,
2723         as/mcs51/Makefile.bcc,
2724         as/mcs51/Makefile.in,
2725         configure,
2726         Makefile.in,
2727         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2728
2729 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2730
2731         * as/link,
2732         * as/link/Makefile.in,
2733         * as/link/z80/linkgbz80.dsp,
2734         * as/link/z80/linkz80.dsp,
2735         * configure,
2736         * link,
2737         * link/clean.mk,
2738         * link/Makefile.in,
2739         * link/README,
2740         * link/z80,
2741         * link/z80/aslink.h,
2742         * link/z80/clean.mk,
2743         * link/z80/conf.mk,
2744         * link/z80/linkgbz80.dsp,
2745         * link/z80/linkz80.dsp,
2746         * link/z80/lkarea.c,
2747         * link/z80/lkdata.c,
2748         * link/z80/lkeval.c,
2749         * link/z80/lkgb.c,
2750         * link/z80/lkgg.c,
2751         * link/z80/lkhead.c,
2752         * link/z80/lkihx.c,
2753         * link/z80/lklex.c,
2754         * link/z80/lklibr.c,
2755         * link/z80/lklist.c,
2756         * link/z80/lkmain.c,
2757         * link/z80/lkrloc.c,
2758         * link/z80/lks19.c,
2759         * link/z80/lksym.c,
2760         * link/z80/Makefile.in,
2761         * Makefile.in,
2762         * sdcc.dsw: moved link/ to as/link/
2763
2764 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2765
2766         * as/mcs51/i51mch.c (machine): fixed warning
2767
2768 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2769
2770         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2771
2772 2006-09-09 Borut Razem <borut.razem AT siol.net>
2773
2774         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2775           sdcdb WIN32 native port
2776         * src/clean.mk: fixed
2777
2778 2006-09-08 Borut Razem <borut.razem AT siol.net>
2779
2780         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2781
2782 2006-09-08 Raphael Neider <rneider AT web.de>
2783
2784         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2785         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2786             to gplink to disable processor mismatch warning and to allow
2787             the use of devices with only aliased (shared) memory banks,
2788           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2789
2790 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2791
2792         * doc/sdccman.lyx: Some re-formating plus example on using
2793           #pragma preproc_asm +/-
2794
2795 2006-09-07 Borut Razem <borut.razem AT siol.net>
2796
2797         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2798           section
2799
2800 2006-09-06 Borut Razem <borut.razem AT siol.net>
2801
2802         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2803           line at sdcc.nsi:153
2804         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2805
2806 2006-09-05 Borut Razem <borut.razem AT siol.net>
2807
2808         * configure.in, configure: support for winsock2
2809         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2810           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2811           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2812           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2813           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2814
2815 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2816
2817         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2818           and OP_DEFS
2819         * support/regression/tests/bug1551947.c: new, added
2820         * src/SDCCsymt.h: strings are char* not byte*
2821
2822 2006-09-05 Raphael Neider <rneider AT web.de>
2823
2824         * device/lib/pic16/libdev/pic18f4550.c,
2825           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2826             declarations/definitions from patch #1520949
2827
2828 2006-09-05 Raphael Neider <rneider AT web.de>
2829
2830         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2831           byte-aligned bitfields, fixes #1539278
2832
2833 2006-09-05 Raphael Neider <rneider AT web.de>
2834
2835         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2836           fixes #1544120
2837
2838 2006-09-04 Borut Razem <borut.razem AT siol.net>
2839
2840         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2841         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2842           -mno-cygwin is a part of the compiler name
2843         * support/scripts/sdcc_mingw32: don't disable ucsim
2844
2845 2006-09-03 Borut Razem <borut.razem AT siol.net>
2846
2847         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2848         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2849
2850 2006-09-03 Raphael Neider <rneider AT web.de>
2851
2852         * src/pic/ralloc.c,
2853         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2854           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2855           fixes #1550049
2856
2857 2006-09-01 Borut Razem <borut.razem AT siol.net>
2858
2859         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2860           to make ppc-osx happy
2861
2862 2006-08-31 Borut Razem <borut.razem AT siol.net>
2863
2864         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2865         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2866         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2867         * support/regression/ports/ds390/spec.mk,
2868           support/regression/ports/mcs51/spec.mk,
2869           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2870           To run regression tests in mingw environment:
2871           make DEV_NULL=NUL CC=gcc
2872
2873 2006-08-30 Borut Razem <borut.razem AT siol.net>
2874
2875         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2876           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2877           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2878           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2879           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2880           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2881           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2882           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2883           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2884           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2885           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2886           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2887           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2888           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2889           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2890           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2891           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2892           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2893           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2894           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2895           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2896           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2897           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2898           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2899           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2900           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2901           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2902           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2903           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2904           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2905           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2906           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2907           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2908           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2909           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2910           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2911           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2912           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2913           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2914           ucsim WIN32 native port
2915
2916 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2917
2918         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2919
2920 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2921
2922         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2923         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2924
2925 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2926
2927         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2928         * support/regression/tests/bug1546986.c: new, added
2929         * as/mcs51/.cvsignore,
2930         * debugger/mcs51/.cvsignore,
2931         * src/.cvsignore: deleted
2932
2933 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2934
2935         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2936           definitions)
2937
2938 2006-08-20 Borut Razem <borut.razem AT siol.net>
2939
2940         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2941           removed cl_listen_console::match(), cl_console::match(),
2942           restructured cl_commander::proc_input()
2943
2944 2006-08-16 Borut Razem <borut.razem AT siol.net>
2945
2946         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2947           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2948           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2949
2950 2006-08-14 Borut Razem <borut.razem AT siol.net>
2951
2952         * support/regression/Makefile.in,
2953           support/regression/ports/pic14/gpsim.cmd,
2954           support/regression/ports/pic14/spec.mk,
2955           support/regression/ports/pic14/support.c:
2956           added pic14 regression test
2957
2958 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2959
2960         * as/doc/asxhtm.html: documented changed ABS behaviour
2961         * as/doc/README: fixed some typos
2962
2963 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2964
2965         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2966           not defined on host
2967
2968 2006-08-12 Borut Razem <borut.razem AT siol.net>
2969
2970         * support/regression/fwk/include/testfwk.h,
2971           support/regression/fwk/lib/testfwk.c,
2972           support/regression/generate-cases.py,
2973           support/regression/Makefile.in:
2974           regression test framework does not depend on function pointers and
2975           variable arguments
2976
2977 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2978
2979         * device/include/stddef.h: c temporary hack to fix bug 1518273
2980
2981 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2982
2983         * device/include/mcs51/cc2510fx.h: added
2984         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2985           to projects.
2986
2987 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2988
2989         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2990         * as/z80/Makefile.in: added strcmpi.c
2991         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2992         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2993
2994 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2995
2996         * device/lib/gbz80/asm_strings.s,
2997         * device/lib/gbz80/crt0_rle.s,
2998         * device/lib/gbz80/div.s,
2999         * device/lib/gbz80/mul.s,
3000         * device/lib/gbz80/shift.s,
3001         * device/lib/z80/asm_strings.s,
3002         * device/lib/z80/crt0_rle.s,
3003         * device/lib/z80/div.s,
3004         * device/lib/z80/mul.s,
3005         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3006           flags which are all upper case
3007
3008 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3009
3010         * as/z80/asm.h: made CASE_SENSITIVE 1
3011         * link/z80/aslink.h: made CASE_SENSITIVE 1
3012         * src/z80/gen.c (throughout): made all conditionals upper case
3013         * support/regression/tests/bug1503067.c: new
3014
3015 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3016
3017         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3018           (shiftIntoPair): added case 2 for PAIR_IY,
3019           (setupToPreserveCarry): replaced parameters with iCode and check if
3020            PAIR_DE is in use to fix bug 1399290,
3021           (genPlus, genMinus): updated call to setupToPreserveCarry
3022         * support/regression/tests/bug1399290.c: new
3023
3024 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3025
3026         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3027         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3028         * src/ds390/gen.c (shiftRLong),
3029         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3030         * src/mcs51/gen.c (sameReg): changed to sameByte,
3031           (xch_a_aopGet): new,
3032           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3033            shiftRLong): fixed bug 1533966
3034         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3035           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3036         * support/regression/Makefile.in: disabled z80, enabled ucz80
3037         * support/regression/tests/float_trans.c: enabled test for z80 and host
3038         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3039
3040 2006-08-01 Borut Razem <borut.razem AT siol.net>
3041
3042         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3043           comparison is always false due to limited range of data type
3044           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3045
3046 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3047
3048         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3049         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3050         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3051         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3052
3053 2006-07-31 Borut Razem <borut.razem AT siol.net>
3054
3055         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
3056           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
3057           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
3058           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
3059           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
3060           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
3061           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
3062           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
3063           enable ucsim mingw compilation. Serial port is disabled,
3064           since it uses termios.h API, which is not available on native
3065           WIN32
3066
3067 2006-07-31 Borut Razem <borut.razem AT siol.net>
3068
3069         * Small Device C Compiler 2.6.0 released
3070         * support/scripts/sdcc.nsi: added FULL_DOC option
3071         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
3072
3073 2006-07-28 Borut Razem <borut.razem AT siol.net>
3074
3075         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
3076         * doc/INSTALL.txt: updated
3077
3078 2006-07-27 Borut Razem <borut.razem AT siol.net>
3079
3080         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
3081           device/lib/pic/libdev/Makefile.in: fixed bug
3082           [ 1438354 ] pic libsdcc: distclean doesn't work
3083         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
3084           device/lib/pic16/libio/Makefile.in: fixed bug
3085           [ 1438344 ] pic16 lib: clean doesn't work properly
3086         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
3087
3088 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
3089
3090         * device/lib/pic/libsdcc/fsdiv.c,
3091         * device/lib/pic/libsdcc/fsmul.c,
3092         * device/lib/pic16/libsdcc/float/fsdiv.c,
3093         * device/lib/pic16/libsdcc/float/fsmul.c,
3094         * device/lib/_fsdiv.c,
3095         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
3096         * support/regression/tests/bug1520966.c: added
3097         * doc/knownbugs.html: removed [ 1520966 ] from the list
3098
3099 2006-07-25 Borut Razem <borut.razem AT siol.net>
3100
3101         * configure.in, configure, sdccconf_in.h: fixed bug
3102           [ 1519095 ] regression test onebyte.c fails on ppc64 host
3103         * doc/knownbugs.html: removed [ 1519095 ] from the list
3104
3105 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
3106
3107         * doc/knownbugs.html: added, contains list of known bugs at release
3108         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
3109
3110 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3111
3112         * device/include/mcs51/compiler.h: added SFRX for xdata based special
3113           function registers and corrected defaults with additional warning
3114         * device/lib/malloc.c: cosmetic changes
3115         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
3116         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
3117           (fillGaps): and used it
3118
3119 2006-07-20 Raphael Neider <rneider AT web.de>
3120
3121         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
3122           output unless SDCCPICDEBUG is set
3123         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
3124           output if SILENT is set
3125
3126 2006-07-11 Borut Razem <borut.razem AT siol.net>
3127
3128         * doc/README.txt: updated
3129
3130 2006-07-10 Borut Razem <borut.razem AT siol.net>
3131
3132         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
3133           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
3134           in WIN32 installation
3135         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
3136           release candidate 1
3137
3138 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
3139
3140         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
3141         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
3142
3143 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
3144
3145         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
3146
3147 2006-07-06 Borut Razem <borut.razem AT siol.net>
3148
3149         * support/regression/tests/bitfields.c:
3150           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
3151         * support/regression/tests/constantRange.c:
3152           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
3153
3154 2006-07-04 Borut Razem <borut.razem AT siol.net>
3155
3156         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
3157           src/port.mk,
3158           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3159           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3160           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3161           reverted changes from 2006-07-03
3162         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
3163         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
3164           added CPPFLAGS, used by the host port
3165
3166 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
3167
3168         * support/regression/valdiag/tests/switch.c,
3169         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
3170         * support/regression/tests/libmullong.c: fixed for host
3171         * support/regression/ports/host/spec.mk: disable all warnings for host,
3172         SDCC runs with --less-pedantic too
3173
3174 2006-07-03 Borut Razem <borut.razem AT siol.net>
3175
3176         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
3177           defined CPPFLAGS
3178         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
3179         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
3180           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
3181           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
3182           include ../port.mk
3183         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
3184           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3185           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
3186           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
3187
3188 2006-07-02 Raphael Neider <rneider AT web.de>
3189
3190         * src/pic16/devices.inc,
3191         * device/include/pic16/pic18fregs.h,
3192         * device/include/pic16/pic18f4550.h,
3193         * device/lib/pic16/pics.all,
3194         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
3195
3196 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
3197
3198         * as/hc08/lkaomf51.c (OutputName),
3199         * as/mcs51/lkaomf51.c (OutputName),
3200         * as/z80/asmain.c (asmbl),
3201         * src/ds390/main.c (asmLineNodeFromLineNode),
3202         * src/hc08/ralloc.c (hc08_assignRegisters),
3203         * src/mcs51/main.c (asmLineNodeFromLineNode),
3204         * src/xa51/ralloc.c (checkRegMask),
3205         * src/xa51/gen.c (emitcode),
3206         * src/z80/gen.c (_emit2),
3207         * src/SDCCast.c (searchLitOp),
3208         * src/SDCCglobl.h,
3209         * support/packihx/packihx.c,
3210         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
3211         * src/ds390/gen.c (aopPutUsesAcc),
3212         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
3213         * support/regression/tests/libmullong.c (mullong_wrapper),
3214         * src/SDCCsymt.c (powof2),
3215         * src/SDCCast.c,
3216         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
3217         * src/SDCCsymt.h: added TYPE_TARGET_*
3218         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3219         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3220         SDCCast because 1) header problems 2) this is the right place
3221         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3222         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3223         prototype
3224
3225 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3226
3227         * src/SDCCicode.h: removed buggy semicolon in unused macro
3228         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3229         search for previous definiton of auto symbols too,
3230         (findPrevUse): fixed logic of emitWarnings
3231
3232 2006-06-26 Raphael Neider <rneider AT web.de>
3233
3234         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3235           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3236
3237 2006-06-25 Raphael Neider <rneider AT web.de>
3238
3239         * device/lib/pic/libm: NEW, added math library functions
3240         * device/lib/pic/libsdcc: NEW; added float support functions
3241         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3242         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3243           NEW, added math related headers
3244         * device/include/asm/pic/features.h: NEW
3245         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3246           (popGet): allow larger offsets for AOP_PCODE,
3247           (genDataPointerSet): handle literals explicitly, more debug output,
3248           (genAssign): fixed for float using aopLiteral ;-)
3249         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3250           GOTO initialisation routine
3251         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3252           flag on registers, fixes #1469043 (local variables do not work)
3253         * src/pic/main.c (_pic14_do_link),
3254         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3255           available
3256
3257 2006-06-25 Borut Razem <borut.razem AT siol.net>
3258
3259         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3260           characters printed (not including the trailing '\0' used to end
3261           output to strings). Problem detected in regression test bug-927659.c.
3262           NOTE: printf() family functions should return int instead
3263           unsigned int!
3264         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3265           specifier are printed as themselves
3266         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3267           support flags, width and precision specifiers
3268
3269 2006-06-24 Borut Razem <borut.razem AT siol.net>
3270
3271         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3272           to the list of sdcc tagrets not supporting bit type
3273         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3274           testfor pic16 due to bug:
3275           [ 1511794 ] pic16: regression test bug-895992.c fails
3276
3277 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3278
3279         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3280         * src/SDCCglue.c (initPointer), fixed bug 1496419
3281         * support/regression/tests/bug1496419.c: new, added
3282
3283 2006-06-22 Borut Razem <borut.razem AT siol.net>
3284
3285         * support/regression/ports/pic16/support.c: use gpsim usart module from
3286           libgpsim_modules library
3287
3288 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3289
3290         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3291         IP0H to IPH0.
3292
3293 2006-06-19 Raphael Neider <rneider AT web.de>
3294
3295         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3296         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3297           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3298           (pic14printExterns,pic14printPublics,pic16printPublics,
3299           pic16_printExterns): use new functions to emit symbols
3300           (picglue,pic16glue): emit publics before emitting externs
3301         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3302           locally defined functions to avoid bug #1443651
3303         * support/regression/tests/bug-716242.c: removed pic16 workaround
3304         * support/regression/ports/pic16/spec.mk: ignore errors during build
3305
3306 2006-06-19 Raphael Neider <rneider AT web.de>
3307
3308         * src/pic/glue.h: added pic14aopLiteral prototype
3309         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3310         * src/pic/gen.c: removed stdint.h dependency
3311           (aopGet): use Safe_strdup()
3312           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3313           (genDataPointerSet): use pic14aopLiteral()
3314         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3315           for pic16; thanks to Bernhard and Maarten
3316
3317 2006-06-18 Borut Razem <borut.razem AT siol.net>
3318
3319         * support/regression/tests/structflexarray.c: flexible array members
3320           not supported by gcc < 3
3321         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3322           GUI tool by default
3323         * src/pic/gen.c: don't include [p]strdin.h on solaris
3324         * support/Util/pstdint.h: addad svn attributes
3325         * support/regression/tests/constantRange.c,
3326           support/regression/tests/rotate.c: include inttypes.h instead
3327           stdint.h on solaris, addad svn attributes
3328
3329 2006-06-18 Raphael Neider <rneider AT web.de>
3330
3331         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3332           int for PIC16
3333         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3334           (pic16_genMinusBits): simplified sign-extension
3335           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3336             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3337             adjusted to correctly handle mixed-signed operands, disabled
3338             now unused multiplciation routines
3339         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3340           (assignResultValue): added argument denoting the size of the result
3341             as returned by the function (fixes upcasts in assigning from
3342             function calls: char foo(); int i = foo();)
3343           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3344             function result to assignResultValue
3345           (genMult): disabled inlined multiplication code
3346           (genDiv): augmented to also handle the modulus operator, fixed to
3347             handle mixed-signed operands correctly
3348           (genMod): simply call genDiv, disabled unused code
3349           (genAssign): fixed missing (sign-)extension on result
3350         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3351             valid char operands, allow signed operands for native code, added
3352             division and modulo operator handling
3353         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3354
3355         As a consequence, onebyte.c (if split into two files) and muldiv.c
3356         pass regression tests.
3357
3358 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3359
3360         * doc/Makefile.in: two runs of makeindex seem needed to get
3361         correct page references in the index of sdccman.pdf
3362         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3363
3364 2006-06-17 Borut Razem <borut.razem AT siol.net>
3365
3366         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3367
3368 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3369
3370         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3371         mentioned ec2drv and paulmon
3372
3373 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3374
3375         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3376           consecutive abs areas
3377           (find_empty_space, allocate_space): added map to handle codemap or
3378            xdatamap,
3379           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3380            absolute idata and xdata
3381         * as/mcs51/lkmem.c (summary2): updated legend
3382
3383 2006-06-16 Raphael Neider <rneider AT web.de>
3384
3385         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3386
3387 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3388
3389         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3390           1208515
3391         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3392
3393 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3394
3395         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3396         value of generic pointers,
3397         * src/avr/main.c,
3398           src/ds390/main.c,
3399           src/hc08/main.c,
3400           src/izt/i186.c,
3401           src/izt/tlcs900h.c,
3402           src/mcs51/main.c,
3403           src/pic/main.c,
3404           src/pic16/main.c,
3405           src/xa51/main.c,
3406           src/z80/main.c: PORT structure, added elements for gp_tags field,
3407         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3408         fields in the PORT structure of each port,
3409         * src/SDCCast.c (decorateType): allow processing of generic pointers
3410         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3411         S_FIXED symbols
3412
3413 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3414
3415         * link/z80/lkgb.c,
3416         * link/z80/lkgg.c,
3417         * src/pic16/gen.c,
3418         * src/pic16/main.c,
3419         * src/pic16/pcode.c,
3420         * src/pic/main.c,
3421         * src/pic/pcoderegs.c,
3422         * src/SDCCicode.c,
3423         * src/SDCCmain.c,
3424         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3425           bug 1504689 on minGW
3426
3427 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3428
3429         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3430
3431 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3432
3433         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3434
3435 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3436
3437         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3438           for optimization
3439
3440 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3441
3442         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3443         to a char variable. Fixed bug #1504211
3444         * device/include/pic16/adc.h,
3445         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3446         and fixed bug #1364390
3447
3448 2006-06-10 Borut Razem <borut.razem AT siol.net>
3449
3450         * CVSROOT: removed the CVS left-over
3451
3452 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3453
3454         * as/hc08/asmain.c (asexit),
3455         * as/hc08/lkmain.c (lkexit),
3456         * as/mcs51/asmain.c (asexit),
3457         * as/mcs51/lkmain.c (lkexit),
3458         * src/SDCCglue.c (DEFSETFUNC),
3459         * src/SDCCmain.c (linkEdit, assemble),
3460         * support/librarian/sdcclib.c (AddRel),
3461           replaced unlink() by standard C remove()
3462         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3463         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3464           gatherImplicitVariables): new, added to fix bug 608752,
3465           (createFunction): added gatherImplicitVariables()
3466         * src/SDCCast.h: added createRMW prototype
3467         * src/SDCCsymt.h (struct symbol): added infertype
3468         * support/regression/tests/bug608752.c: new, added
3469
3470 2006-06-10 Raphael Neider <rneider AT web.de>
3471
3472         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3473           multibyte dummy reads (fixes #1503234)
3474
3475 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3476
3477         * device/include/mcs51/compiler.h: new, added header file to enable
3478           creating common sfr definition header files for different compilers
3479
3480 2006-06-05 Raphael Neider <rneider AT web.de>
3481
3482         * src/pic16/{pcode.h,genarith.c}:
3483           introduced pCodeOp combining any two pCodeOps (previously only
3484           two register operands could be combined), removed pcop2 from
3485           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3486         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3487         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3488           rewritten to use new PO_TWO_OPS
3489         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3490         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3491           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3492           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3493           (pic16_get_op): embraced return arg to allow #define return(x),
3494             added new case for combined opcodes
3495           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3496           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3497            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3498
3499 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3500
3501         * src/SDCCval.c (checkConstantRange): added
3502         * src/SDCCval.h: added checkConstantRange
3503         * support/Util/SDCCerr.c,
3504         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3505         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3506         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3507         * src/SDCCast.c (decorateType): added checkConstantRange,
3508         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3509         can be emitted with the correct always true/false warning,
3510         added optimization for double '!';
3511         result of decorateType() must be assigned back to the tree, because
3512         decorateType() can change the tree
3513         * src/SDCCicode.c (geniCodeLogic),
3514         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3515         (checkConstantRange): removed, it was only a fragment which never
3516         emitted a warning
3517         * src/SDCCsymt.c (computeType): fixed promotion for
3518         "-1 < (unsigned bit) b"
3519         * src/pic/ralloc.c (packRegsForAssign),
3520         * src/pic16/ralloc.c (packRegsForAssign),
3521         * src/hc08/ralloc.c (packRegsForAssign),
3522         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3523         from mcs51
3524         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3525         * support/regression/tests/constantRange.c: added
3526         * support/valdiag/tests/constantRange.c: added
3527         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3528
3529 2006-06-02 Borut Razem <borut.razem AT siol.net>
3530
3531         * support/regression/ports/pic16/support.c: increase stack size
3532           to 255 bytes
3533         * support/regression/Makefile.in: sort tests by name so that the
3534           resutlts can be compared on different machines / platforms
3535
3536 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3537
3538         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3539         * src/ds390/gen.c (emitLabel): new, added,
3540           (genDjnz): fixed stack overflow bug,
3541           (throughout): cosmetic changes to sync with mcs51/gen.c,
3542           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3543         * src/mcs51/gen.c (genEndFunction): small optimization,
3544           (throughout): cosmetic changes to sync with ds390/gen.c
3545
3546 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3547
3548         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3549           (_print_format): fixed printing pointers
3550         * src/mcs51/gen.c (emitLabel, movb): new, added,
3551           (genAssign): small optimization,
3552           (genDjnz): fixed stack overflow bug,
3553           (throughout): replaced sprintf with SNPRINTF,
3554           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3555           replaced emitcode("mov", "b,...") with MOVB(...),
3556           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3557           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3558         * src/mcs51/peeph.def: added rules 140 and 264
3559         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3560           so they may get optimized into registers
3561
3562 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3563
3564         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3565           immediately when encountered,
3566           (printUsage): always use stderr even on windows
3567
3568 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3569
3570         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3571         (processParms): fixed bug #1247551
3572         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3573         parseCmdLine, main): print '--version' to stdout,
3574         print 'help' to stdout if --help is given,
3575         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3576         arguments are given; fixed --help
3577
3578 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3579
3580         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3581         * support/regression/tests/bug-1493710.c: added
3582
3583 2006-05-27 Borut Razem <borut.razem AT siol.net>
3584
3585         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3586           static instead auto
3587         * support/regression/ports/pic16/support.c: increase stack size
3588           from default 64 bytes to 128 bytes
3589         * support/regression/tests/staticinit.c,
3590           support/regression/tests/float.c: regression tests fully enabled
3591           for pic16 port by putting the initialized data arrays into the code
3592           section
3593         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3594           This was changed by mistake in the previous version.
3595
3596 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3597
3598         * src/pic16/gen.c (genFunction, genEndFunction): some
3599         beautifications, fixed bug with falsely restoring FSR2 in large
3600         stack model, thanks to Beau E. Cox for reporting the bug
3601
3602 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3603
3604         * debugger/mcs51/break.c,
3605         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3606           use %p to print pointers, made address variables unsigned
3607         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3608         * debugger/mcs51/symtab.c (parseSymbol): must return something
3609         * src/mcs51/gen.c (aopForSym): small optimization,
3610            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3611           (freeAsmop): added missing break,
3612           (aopPut): removed parameter bvolatile, determine it inside the function,
3613           (saveRegisters, unsaveRegisters): small optimization,
3614           (genIpush): removed pointless check,
3615           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3616           replaced sprintf with SNPRINTF,
3617           replaced strcpy with strncpyz,
3618           updated aopPut calls,
3619           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3620         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3621
3622 2006-05-24 Borut Razem <borut.razem AT siol.net>
3623
3624         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3625           modification of test for the pic16 port, put the array to the code
3626           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3627
3628 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3629
3630         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3631         * support/Util/pstdint.h: added
3632
3633 2006-05-22 Borut Razem <borut.razem AT siol.net>
3634
3635         * src/regression/Makefile: removed bool2.c test, added -q linker option
3636         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3637           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3638           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3639           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3640           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3641           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3642           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3643           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3644           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3645
3646 2006-05-22 Raphael Neider <rneider AT web.de>
3647
3648         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3649           bug #1492360 (problematic due to generic pointers, see code)
3650
3651 2006-05-22 Borut Razem <borut.razem AT siol.net>
3652
3653         * support/regression/ports/pic16/specs.mk: removed stack size linker
3654           directive
3655         * support/regression/tests/array.c,
3656           support/regression/tests/bitopcse.c,
3657           support/regression/tests/bug-908454.c,
3658           support/regression/tests/malloc.c: modified for pic16 regression test
3659         * support/regression/tests/bitfields.c:
3660           pic16 - excluded bitfileds of size > 8
3661         * support/regression/tests/bp.c: pic16 - reduced data size
3662         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3663         * support/regression/tests/bug-460010.c:
3664           pic16 - used the absolute address the fits in memory
3665         * support/regression/tests/bug-716242.c:
3666           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3667         * support/regression/tests/float.c:
3668           pic16 - excluded - data size too big
3669         * support/regression/tests/onebyte.c:
3670           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3671         * support/regression/tests/shifts.c:
3672           pic16 - function names probably have to differ in first X characters
3673           (gpasm limitation?)
3674         * support/regression/tests/staticinit.c:
3675           pic16 - excluded some tests due error: no target memory available for
3676           section ".idata"
3677
3678 2006-05-22 Borut Razem <borut.razem AT siol.net>
3679
3680         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3681           second try. Thanks Stas Sergeev once more.
3682
3683 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3684
3685         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3686           (genLeftShift, genRightShift): fixed bug 1491627
3687         * src/hc08/peeph.def (rules 7, 8.x): added
3688         * support/regression/tests/shifts.c (ShiftLeftByParam,
3689           ShiftRightByParam, testShiftByParam): added to test variable shifting
3690
3691 2006-05-20 Raphael Neider <rneider AT web.de>
3692
3693         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3694         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3695           (allocReg): add only new registers to dynAllocRegs,
3696           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3697             #1489055, #1445850, and probably #1483693
3698
3699 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3700
3701         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3702         bug in for-loop that didn't emit the last of CONFIG and ID registers
3703
3704 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3705
3706         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3707           with offset
3708         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3709           1489016, 1434401 and 1490124
3710         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3711           1489016, 1434401 and 1490124
3712
3713 2006-05-17 Borut Razem <borut.razem AT siol.net>
3714
3715         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3716           thanks Stas Sergeev
3717
3718 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3719
3720         * device/include/mcs51/P89c51RD2.h,
3721         * device/include/mcs51/P89LPC901.h,
3722         * device/include/mcs51/P89LPC922.h,
3723         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3724
3725 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3726
3727         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3728         to fix missing stack pragma in compiled binary object file,
3729
3730 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3731
3732         * support/packihx/configure.in,
3733         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3734         determine sizeof basic types even while cross compiling
3735
3736 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3737
3738         * src/avr/gen.c (aopop),
3739         * src/ds390/gen.c (aopOp),
3740         * src/hc08/gen.c (aopOp),
3741         * src/mcs51/gen.c (aopop),
3742         * src/pic16/gen.c (pic16_aopOp),
3743         * src/pic/gen.c (aopOp),
3744         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3745         if size of operand is smaller than spill location
3746
3747 2006-05-12 Borut Razem <borut.razem AT siol.net>
3748
3749         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3750           have to have CR/LF line endings even if they are checked out on *nix
3751           or on WIN32 in cygwin binmode
3752
3753 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3754
3755         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3756         * device/include/ds80c390.h: added sfr16 definitions
3757         * src/ds390/gen.c,
3758         * src/ds390/gen.h,
3759         * src/ds390/main.c,
3760         * src/ds390/ralloc.c,
3761         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3762           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3763           bit returning functions
3764         * support/regression/tests/sfr16.c: enabled test on ds390
3765
3766 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3767
3768         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3769         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3770
3771 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3772
3773         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3774         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3775           (cl_address_space constructor): removed expensive initialization,
3776           (cl_address_space::get_cell): extended for late initialization,
3777           (cl_address_space::*): use late initialization,
3778           (cl_address_decoder::activate): removed expensive initialization,
3779           This reduced regression test running time by 25%
3780
3781 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3782
3783         * packihx/,
3784         * configure.in,
3785         * configure,
3786         * sdcc.dsw,
3787         * Makefile.bcc,
3788         * Makefile.in,
3789         * support/packihx/Makefile.in,
3790         * support/packihx/clean.mk,
3791         * support/packihx/Makefile.bcc,
3792         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3793
3794 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3795
3796         * src/SDCCval.c (valNot): fix for regression test failure
3797           of not.c on big endian hosts
3798
3799 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3800
3801         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3802
3803 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3804
3805         * device/lib/mcs51/Makefile.in: changed string comparison operator
3806           to = for POSIX compliance; == is bash extension
3807
3808 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3809
3810         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3811           kosmonaut_pirx
3812
3813 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3814
3815         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3816         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3817         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3818         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3819         bug report #1478657,
3820
3821 2006-05-05 Borut Razem <borut.razem AT siol.net>
3822
3823         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3824           making the html
3825
3826 2006-05-02 Borut Razem <borut.razem AT siol.net>
3827
3828         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3829           create *.ind, which made make to fail if invoked with -j 2
3830
3831 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3832
3833         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3834           Hubert Sack for patch 1479782
3835
3836 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3837
3838         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3839
3840 2006-05-01 Raphael Neider <rneider AT web.de>
3841
3842         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3843           (create_pic): store only prefix-free device name,
3844           (init_pic): check for device names with "16" prefix,
3845           (list_valid_pics),
3846         * src/pic/device.h (struct PIC_device),
3847         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3848             stored device name,
3849         * device/include/pic/pic12f{635,675,629,683}.h,
3850         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3851         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3852         * device/include/pic/pic16f505.h,
3853         * device/lib/pic/libdev/pic16f505.c: removed
3854         * device/include/pic/pic14devices.txt: added support for pic12f
3855             devices, removed unsupported non 16-bit devices
3856             [above changes provided by patch from Zik Saleeba]
3857         * src/pic/*, src/pic16/*, device/include/pic16/*,
3858           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3859
3860 2006-05-01 Borut Razem <borut.razem AT siol.net>
3861
3862         * configure.in, configure, doc/Makefile.in:
3863           sync with nightly build makefile - latex, dvipdf and dvips
3864           not needed any more
3865
3866 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3867
3868         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3869         in the library source
3870
3871 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3872
3873         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3874
3875 2006-04-28 Raphael Neider <rneider AT web.de>
3876
3877         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3878         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3879           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3880         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3881
3882 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3883
3884         * device/lib/pic/libdev/Makefile.in,
3885         * device/lib/hc08/Makefile.in,
3886         * device/lib/gbz80/Makefile.in,
3887         * device/lib/z80/Makefile.in,
3888         * device/lib/ds390/Makefile.in,
3889         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3890         thanks to Borut for the bug report
3891         * configure.in,
3892         * configure: always create doc/Makefile independent from --enable-doc
3893         * Makefile.in: always install from directory doc independent from
3894         --enable-doc
3895         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3896         removed
3897         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3898         * doc/Makefile.in: install *.txt if present
3899         * device/include/Makefile.in (install): added installation of pic/*.inc
3900         and pic/*.txt files again, they were erroneously removed
3901
3902 2006-04-28 Raphael Neider <rneider AT web.de>
3903
3904         * src/pic/{gen.c,main.h,pcode.c},
3905         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3906             concerning signedness with casts
3907
3908 2006-04-28 Raphael Neider <rneider AT web.de>
3909
3910         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3911             definition of an interrupt handler,
3912         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3913             interrupt handler stuff from picglue() to separate routine,
3914           (picglue): enabled definition of intr handlers in files w/o main()
3915
3916 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3917
3918         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3919           compilation with MSVC 2005 Express Edition (VC8)
3920
3921 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3922
3923         * device/lib/Makefile: fixed build of gbz80 lib
3924
3925 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3926
3927         * support/regression/tests/bug-460010.c,
3928         * support/regression/tests/bug-524691.c,
3929         * support/regression/tests/bug-716242.c: removed conditional defines
3930           that are already in testfwk.h
3931
3932 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3933
3934         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3935           (AccAXRsh1): added, shift right by 1,
3936           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3937            AccAXLrl1
3938         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3939
3940 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3941
3942         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3943         remove cast to same type
3944         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3945         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3946         * as/z80/Makefile,
3947         * link/z80/Makefile: removed, they have moved to
3948         Makefile.in files
3949         * configure,
3950         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3951         * install-sh: fix bug #1204398 by setting umask 0022
3952         * device/lib/Makefile: separate build of z80 and gbz80 lib
3953
3954 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3955
3956         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3957         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3958
3959         One basic decision: e.g. src/clean.mk includes further files. In order
3960         to make this work there are two solutions:
3961         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3962           run configure on them. This way they can use
3963           'include $(srcdir)/port-clean.mk'
3964         - always include clean.mk by the Makefile at the same level. To avoid
3965           that `make clean` tries to include and build Makefile.dep the
3966           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3967           implemented, because now even `make uninstall` doesn't create
3968           Makefile.in. clean.mk could be eliminated by pasting it in
3969           Makefile.in.
3970
3971         * debugger/mcs51/Makefile.in: build own objects from library sources
3972         (SLIB, SDCC) in current directory
3973
3974         * configure, configure.in: renamed --disable-device-lib-build in
3975         --disable-device-lib; added --enable-doc, the required tools are
3976         searched by configure; added result message; the toolchain for the
3977         belonging ports are now only built, if the port is enabled.
3978
3979         * support/regression/*: all output is written in directory gen, because
3980         the fwk and ports directories don't livet in the build tree using vpath
3981
3982         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3983         --disable-device-lib, added --enable-doc, added section VPATH
3984
3985         * sim/ucsim/configure.in,
3986         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3987         z80 are enabled by default
3988
3989 2006-04-24 Raphael Neider <rneider AT web.de>
3990
3991         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3992             to config word, "pic14_"-prefixed some extern functions
3993           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3994             config word has been found
3995         * src/pic/device.h: added prototypes
3996         * src/pic/pcode.c: added "pic14_"-prefix where needed
3997         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3998             fixup
3999         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4000             words,
4001           (pic14emitRegularMap): ignore config words,
4002           (pic14createInterruptVect): moved generating __config directives away
4003           (picglue): have __config directives emitted
4004
4005 2006-04-24 Borut Razem <borut.razem AT siol.net>
4006
4007         * doc/Makefile: sync with nightly build makefile
4008
4009 2006-04-24 Raphael Neider <rneider AT web.de>
4010
4011         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4012             registers that have not been assigned proper liveranges,
4013             fixes #1469504 and #1474602,
4014           (pCodeRegOptimizeRegUsage): fixed typo in comment
4015
4016 2006-04-24 Borut Razem <borut.razem AT siol.net>
4017
4018         * device/examples/main8051.c: deleted - it was removed from CVS
4019           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4020           after the transition to Subversion
4021         * src/SDCCalloc.h: deleted - it was removed  from CVS
4022           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4023           after the transition to Subversion
4024         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4025           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4026           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4027           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4028
4029 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4030
4031         * as/asx8051.dsp: added mcs51/strcmpi.h
4032         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4033         * as/hc08/aslink.h: updated lnksect prototype
4034         * as/hc08/asm.h,
4035         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4036         * as/hc08/asmain.c,
4037         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4038           (newdot): handle A_ABS
4039         * as/hc08/asout.c,
4040         * as/mcs51/asout.c (outarea): output address
4041         * as/hc08/lkaomf51.c,
4042         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4043         * as/hc08/m08pst.c,
4044         * as/mcs51/i51pst.c,
4045         * as/z80/z80pst.c: "ABS" is not A_OVR
4046         * as/hc08/lkarea.c (newarea): read a_addr,
4047           (lnkarea): added codemap array, sort absolute areas to the front,
4048            combine all GSINITx/GSFINAL,
4049           (find_empty_space, allocate_space): new functions,
4050           (lnksect): return next address, handle absolute sections
4051         * as/mcs51/lkarea.c (newarea): read a_addr,
4052           lnksect2 prototype changed,
4053           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4054           (find_empty_space, allocate_space): new, factored out of lnksect2,
4055           (lnksect2): return next address, handle absolute sections
4056         * as/hc08/lkhead.c,
4057         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
4058         * as/hc08/lklibr.c (addfile, fndsym),
4059         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
4060           index out of range and detect both '\' and '/'
4061         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
4062         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
4063           regression tests (ds390 cannot return bool yet)
4064         * doc/sdccman.lyx: changed version number, document changed --no-peep,
4065           document critical interrupts on z80, document changed SDCC define
4066         * src/asm.c (_asxxxx_mapping): fixed .org directive,
4067           (_a390_mapping): added .org directive
4068         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
4069           (genMultOneByte): fixed warnings
4070         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
4071           ones
4072         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
4073         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
4074           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
4075         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
4076         * src/pic16/main.c: removed newReg prototype
4077         * src/pic16/pcode.c,
4078         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
4079           warnings
4080         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
4081           ones
4082         * src/pic16/ralloc.c
4083         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
4084           to fix warnings
4085         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
4086           from short to PIC_OPTYPE
4087         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
4088         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
4089           optype from short to PIC_OPTYPE
4090         * src/port.h: made int_size unsigned to fix warnings
4091         * src/SDCC.y: fixed warning on MSVC
4092         * src/SDCCicode.c (getArraySizePtr): return unsigned int
4093         * src/SDCCopt.c (convertToFcall): fixed warnings
4094         * src/SDCCsymt.h: removed double prototype for genSymName
4095         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
4096           offset int to fix warnings
4097
4098 2006-04-22 Borut Razem <borut.razem AT siol.net>
4099
4100         * doc/sdccman.lyx, */Makefile, */Makefile.in:
4101           references to CVS replaced with Subversion
4102
4103 2006-04-21 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-19 Borut Razem <borut.razem AT siol.net>
4109
4110         * src/version.awk: adapted for svn
4111         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
4112           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
4113           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
4114           /binutils-avr/etc/*.vi, *.jin: removed all properties
4115           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
4116
4117 2006-04-19 Borut Razem <borut.razem AT siol.net>
4118
4119         * CVS to Subversion migration completed
4120
4121 2006-04-18 Borut Razem <borut.razem AT siol.net>
4122
4123         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4124           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
4125
4126 2006-04-17 Borut Razem <borut.razem AT siol.net>
4127
4128         * device/include/Makefile.in: added pic/*.inc to the installation
4129
4130 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
4131
4132         * support/regression/collate-results.py: fixed output in case of
4133         a valdiag error
4134         * support/regression/generate-cases.py: fixed splitting of pathnames
4135         with dots
4136         * as/hc08/lklibr.c (addfile),
4137         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
4138
4139 2006-04-11 Raphael Neider <rneider AT web.de>
4140
4141         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
4142         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
4143         * src/pic16/pcode.c (assignValnums): fixed #1460578
4144
4145 2006-04-11 Raphael Neider <rneider AT web.de>
4146
4147         * device/lib/pic/libdev/*.c,
4148         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
4149           fixes #1468739, enables compilation in --std-c99 mode
4150         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
4151
4152 2006-04-11 Raphael Neider <rneider AT web.de>
4153
4154         * src/pic/device.c (find_device): removed debug output
4155           (list_valid_pics): enabled verbose listing of supported devices
4156         * device/include/stdbool.h: define bool as char for pic14/16 as well
4157
4158 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4159
4160         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4161
4162 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4163
4164         * .version: bumped version to 2.5.6
4165         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
4166
4167 2006-04-06 Raphael Neider <rneider AT web.de>
4168
4169         * .version: bumped version to 2.5.6 (pic14 ABI changed)
4170         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
4171         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
4172           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
4173             pic14_constructAbsMap
4174           (pic14printPublics): declare absolute global symbols as global
4175           (pic14createInterruptVect),
4176         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
4177           (newReg): assume new registers unused, use correct name in
4178             hashtable (reg->name instead of name), more debugLog output
4179         * src/pic/device.h (PIC_device): added fields for verbose output
4180         * src/pic/device.c: moved device definition to pic14devices.txt,
4181             added routines for runtime parsing of pic14devices.txt,
4182             added support for second config word
4183         * src/pic/main.c (_process_pragma): removed #pragma maxram,
4184           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
4185           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
4186           (_pic14_parseOptions): moved pCodeInitRegisters here
4187           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
4188         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
4189           (pCodeInitRegisters): rewrapped comments, perpared new approach to
4190             handling the pseudo stack
4191         * device/lib/Makefile.in: ignore failures in objects-pic16,
4192         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
4193         * device/lib/pic/NEWS: document new dependency on picXXX.lib
4194         * device/lib/pic/Makefile.subdir,
4195         * device/lib/pic16/Makefile.subdir: improved clean rules
4196         * device/lib/pic/libdev/: NEW, pic14 device libraries
4197         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
4198         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
4199         * device/include/Makefile.in: create subdir and install pic14 headers
4200         * device/include/pic/p16f_common.inc: removed unused declarations
4201         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
4202             PICs from inc2h.pl v1.6,
4203             replaced BIT_AT macros with struct declarations
4204         * device/include/pic/pic14devices.txt: definition of supported devices,
4205             all above improvements contributed by Zik Saleeba, thanks
4206         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
4207         * support/scripts/sdcc.nsi: also install pic14 device libraries and
4208             headers
4209
4210 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4211
4212         * device/include/mcs51/c8051f410.h: added interrupt numbers,
4213         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
4214           thanks to Charles Olds
4215
4216 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4217
4218         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4219
4220 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4221
4222         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4223         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4224         * support/regression/bug1464657.c: added, new test
4225
4226 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4227
4228         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4229           version number
4230
4231 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4234           --no-peep and --peep-file <file> are used don't use default rules but
4235           do use the <file>
4236
4237 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4238
4239         * src/mcs51/gen.c (genCall): fixed bug 1457608
4240
4241 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4242
4243         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4244         changes seem to cause (trigger?) problems with the build system.
4245
4246 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4247
4248         * src/SDCCpeeph.c (operandsLiteral): new, added,
4249           (callFuncByName): inserted operandsLiteral
4250         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4251
4252 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4253
4254         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4255         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4256
4257 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4258
4259         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4260           implemented patch 1120823 Thanks to Willy De la Court (normal
4261           interrupts need an interrupt number now if they are made critical),
4262           and enabled nesting of critical functions though not for gbz80
4263           (genCritical, genEndCritical): added functions
4264           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4265         * src/z80/mappings.i: added "ei" to all mappings
4266
4267 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4268
4269         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4270         submitted by the Debian SDCC maintainer Aurelien Jarno:
4271         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4272         archive with gcc 4.1 on mips and wrote the patch"
4273
4274 2006-03-16 Raphael Neider <rneider AT web.de>
4275
4276         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4277           the left operand is shorter than the result (c* = lit-c* + int),
4278           fixes bug #1450796
4279         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4280           OP_SYMBOL
4281
4282 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4283
4284         * src/.version: increased version number to 2.5.5
4285         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4286         linking is done manually in pic16 port's _linkEdit,
4287         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4288         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4289         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4290         allocate asmop as AOP_ACC,
4291         (aopForRemat): added parameter 'bool result' in function declaration,
4292         (pic16_aopGet): return AOP_ACC when accessing WREG,
4293         (pic16_popGetTempReg): minor modification,
4294         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4295         'pic16_allocWithIdx',
4296         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4297         calling function in absolute addresses,
4298         (genAssign): take into account AOP_ACC asmop,
4299         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4300         * src/pic16/pcoderegs.c: some debug functions and lines added,
4301         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4302         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4303         register too,
4304         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4305         call to allocReg, not by manually allocating a new one,
4306         (pic16_assignRegisters): now before going through the register
4307         allocating functions mark all registers as free. This eliminates some
4308         side effects resulting from peephole parser done earlier in the backbone
4309
4310 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4311
4312         * src/SDCCicode.c (geniCodeLogic),
4313         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4314
4315 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4316
4317         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4318           (genSend): bugfix, do not allocate and free twice,
4319           (shiftRLong): handle partially overlapping aops
4320         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4321
4322 2006-03-08 Borut Razem <borut.razem AT siol.net>
4323
4324         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4325           for pic16
4326
4327 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4328
4329         * support/regression/tests/bug1409955.c: new, added
4330         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4331         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4332           (aopForSym, aopOp): increment asmop.allocated if reused,
4333           (freeAsmop): decrement asmop.allocated and check for zero instead of
4334           using asmop.freed,
4335           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4336           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4337            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4338            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4339            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4340            genSignedRightShift, genRightShift, genDataPointerGet,
4341            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4342            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4343             in reverse order from allocation,
4344           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4345             added swappedLR to keep track
4346         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4347           pdata & code for GCC, z80, gbz80 & hc08
4348         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4349
4350 2006-03-08 Raphael Neider <rneider AT web.de>
4351
4352         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4353
4354 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4355
4356         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4357         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4358         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4359
4360 2006-03-06 Borut Razem <borut.razem AT siol.net>
4361
4362         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4363           made the linker quiet
4364
4365 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4366
4367         * src/pic16/gen.c (genPcall): fixed bug #1443644
4368         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4369         which dumps before the function entry point a data byte which represents
4370         the number of the local variables used by the specified function, added
4371         'xinst' for initial support for Extended Instruction Support,
4372         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4373         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4374         port->fun_prefix anymore (may change later),
4375         (genFunction, genEndFunction): do not store/restore local registers for
4376         _main (this should take care the --main-return command line option in
4377         the future),
4378         (genOr): removed some legacy pic-port instructions,
4379         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4380         performing operations with SFR's causes data to be written more than
4381         once to each SFR. Perhaps SFRs should be handled in special cases...
4382         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4383         pcode.h
4384         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4385         into account for stack starting position,
4386         (struct OPTIONS pic16_optionsTable): added command line argument
4387         --extended or -y for Extended Instruction Support,
4388         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4389         (deassignLRs): *** perhaps the most important change, old 'for' code
4390         (commented out for reference), didn't account for some registers which
4391         were left marked 'not free' after a pointer operation. The change
4392         reduces register usage a lot in some cases
4393
4394 2006-03-04 Borut Razem <borut.razem AT siol.net>
4395
4396         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4397           _clean
4398         * support/regression/tests/bug-524697.c: decreased array size for
4399           mcs51 to fit into the internal RAM
4400         * support/regression/Makefile.in: a little bit more verbose
4401
4402 2006-03-03 Borut Razem <borut.razem AT siol.net>
4403
4404         * support/regression/fwk/lib/testfwk.c,
4405           support/regression/fwk/include/testfwk.h: introduced function
4406           _prints(), nonrecursive _printn(), call _initEmu() from main()
4407         * support/regression/ports/gbz80/support.asm,
4408           support/regression/ports/ucz80/support.asm,
4409           support/regression/ports/z80/support.asm,
4410           support/regression/ports/ds390/support.c,
4411           support/regression/ports/hc08/support.c,
4412           support/regression/ports/host/support.c,
4413           support/regression/ports/mcs51/support.c,
4414           support/regression/ports/xa51/support.c: added empty _initEmu()
4415           function
4416         * support/regression/ports/pic16/gpsim.cmd,
4417           support/regression/ports/pic16/spec.mk,
4418           support/regression/ports/pic16/support.c,
4419           support/regression/Makefile.in: added pic16 regression test
4420
4421 2006-03-01 Raphael Neider <rneider AT web.de>
4422
4423         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4424           genConstPointerGet): use safe way of generating MOVFF to cover
4425             literals as well as registers, fixes bug #1440527
4426         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4427             dereference
4428           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4429             more correctly, fixes bug #1232186
4430           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4431         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4432             gplink guess the correct processor in more cases, applied patch
4433             from Till Riedel attached to and fixing bug #1436552
4434
4435 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4436
4437         * support/regression/tests/array.c: added, contains check for #1434401
4438         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4439
4440 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4441
4442         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4443         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4444         * device/include/mcs51/c8051f326.h,
4445         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4446         * device/include/mcs51/c8051f000.h,
4447         * device/include/mcs51/c8051f018.h,
4448         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4449           PCON_IDLE,PCON_STOP and added sfr16 definitions
4450
4451 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4452
4453         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4454           genGetWord): fixed bug 1409955
4455
4456 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4457
4458         * device/include/hc08/mc68hc908gp32.h,
4459         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4460
4461 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4462
4463         * src/SDCCast.c (constExprValue): return NULL if not a value
4464         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4465         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4466         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4467
4468 2006-02-13 Borut Razem <borut.razem AT siol.net>
4469
4470         * src/regression/ptrarg.c: added, fails due to bug #1430967
4471         * src/regression/Makefile: ptrarg.c added, ...
4472
4473 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4474
4475         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4476         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4477
4478 2006-02-11 Borut Razem <borut.razem AT siol.net>
4479
4480         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4481           print "Processor: xxx" message to stdout only if --verbose
4482
4483 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4484
4485         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4486         * support/regression/tests/bug1426356.c: added
4487         * support/regression/tests/bitfields.c: removed 2 tests
4488
4489 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4490
4491         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4492         * device/include/mcs51/c8051f330.h,
4493         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4494           PCON_IDLE,PCON_STOP and added sfr16 definitions
4495         * device/lib/_divsint.c,
4496         * device/lib/_divuint.c,
4497         * device/lib/_divulong.c,
4498         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4499           register bank bug for small stackauto
4500
4501 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4502
4503         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4504
4505 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4506
4507         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4508         * all.dsp: corrected several bin paths
4509         * device/include/mcs51/c8051f120.h,
4510         * device/include/mcs51/c8051f300.h,
4511         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4512           to PCON_IDLE,PCON_STOP
4513         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4514         * device/lib/printf_large.c (output_float): fixed bug 1388703
4515         * support/regression/tests/bug1057979.c: added test for bug 1388703
4516
4517 2006-02-08 Raphael Neider <rneider AT web.de>
4518
4519         * src/pic/pcode.c (pciTRIS): fixed typo,
4520           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4521           (LinkFlow): fixed handling of flows that end in a call,
4522           (ReuseReg): perform safety check earlier
4523         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4524             to work with flows at the beginning of a pBlock,
4525             fixes #1426557 (Symbol not previously defined),
4526           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4527             usage information
4528           (RemoveUnusedRegisters): update register usage info
4529         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4530             created, reuse existing ones instead
4531         * src/pic/gen.c (genPcall): fixed #1424719
4532
4533 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4534
4535         * link/z80/lkmain.c,
4536         * link/z80/lklex.c,
4537         * link/z80/lkdata.c,
4538         * link/z80/aslink.h: fixed build on current cygwin:
4539         replaced getline() by lk_getline()
4540
4541 2006-02-01 Borut Razem <borut.razem AT siol.net>
4542
4543         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4544           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4545           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4546           src/regression/bool1.c, src/regression/bool2.c,
4547           src/regression/bool3.c, src/regression/call1.c,
4548           src/regression/compare.c, src/regression/compare10.c,
4549           src/regression/compare2.c, src/regression/compare3.c,
4550           src/regression/compare4.c, src/regression/compare5.c,
4551           src/regression/compare6.c, src/regression/compare7.c,
4552           src/regression/compare8.c, src/regression/compare9.c,
4553           src/regression/configword.c, src/regression/for.c,
4554           src/regression/inline.c, src/regression/mult1.c,
4555           src/regression/nestfor.c, src/regression/or1.c,
4556           src/regression/pointer1.c, src/regression/ptrfunc.c,
4557           src/regression/rotate1.c, src/regression/rotate2.c,
4558           src/regression/rotate3.c, src/regression/rotate4.c,
4559           src/regression/rotate5.c, src/regression/rotate6.c,
4560           src/regression/rotate7.c, src/regression/string1.c,
4561           src/regression/struct1.c, src/regression/sub.c,
4562           src/regression/sub2.c, src/regression/switch1.c,
4563           src/regression/while.c, src/regression/xor.c,
4564           src/regression/create_stc, src/regression/simulate,
4565           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4566           regression tests
4567         * src/regression/gpsim_assert.h: added
4568
4569 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4570
4571         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4572         ((void (code *) (void)) 0) ();
4573         * as/hc08/aslex.c,
4574         * as/hc08/aslink.h,
4575         * as/hc08/asm.h,
4576         * as/hc08/asmain.c,
4577         * as/hc08/lkdata.c,
4578         * as/hc08/lklex.c,
4579         * as/hc08/lkmain.c,
4580         * as/mcs51/aslex.c,
4581         * as/mcs51/aslink.h,
4582         * as/mcs51/asm.h,
4583         * as/mcs51/asmain.c,
4584         * as/mcs51/lkdata.c,
4585         * as/mcs51/lklex.c,
4586         * as/mcs51/lkmain.c,
4587         * as/z80/aslex.c,
4588         * as/z80/asm.h,
4589         * as/z80/asmain.c: fixed build on current cygwin:
4590         replaced getline() by as_getline()
4591
4592 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4593
4594         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4595         declarator in the symbol chain
4596         * src/SDCCsymt.h,
4597         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4598         parameter list for function pointers
4599         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4600         * support/regression/tests/bug-716242.c: added
4601
4602 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4603
4604         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4605         offset if possible
4606         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4607
4608 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4609
4610         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4611         inifinitely recurseable, added static
4612         * support/regression/tests/bug-1408066.c: added
4613
4614 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4615
4616         * src/SDCCicode.h,
4617         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4618         renamed, added possibility to create "postLoopLbl"-labels
4619         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4620         newiTempLoopHeaderLabel
4621         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4622         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4623         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4624         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4625         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4626         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4627         (basicInduction): fixed bug #136564, made static,
4628         (loopInduction): changed parameter of basicInduction, made static,
4629         (addPostLoopBlock): added
4630         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4631         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4632         findLoopEndSeq
4633         * support/regression/tests/bug-136564.c: added
4634         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4635         --std-sdcc99 to LIBSDCCFLAGS
4636
4637 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4638
4639         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4640         while loop
4641         * support/regression/tests/bug-1406131.c: added
4642
4643 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4644
4645         * src/SDCCast.c (decorateType): fix promotion of unary minus
4646         * src/SDCCsymt.c (computeType): beautified
4647         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4648         (valUnaryPM, valComplement): fix sign and promotion,
4649         (valNot): ANSI: result type is int (SDCC: unsigned char)
4650         * support/regression/tests/uminus.c: speedup by removing superflous
4651         test case 'int'
4652         * support/regression/tests/onebyte.c: added promotion and signedness
4653         tests for unary minus
4654         * support/regressions/tests/bug-477927.c: disable warning about
4655         uninitialized variables
4656         * support/regression/tests/not.c: added
4657
4658 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4659
4660         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4661         * src/mcs51/gen.c (gen51Code): show final register usage after
4662         fillGaps in asm with --i-code-in-asm
4663         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4664         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4665         incUsed, rliveClear, adjustIChain): made static,
4666         (setFromRange): excluded because it's unused,
4667         (findPrevUseSym, markWholeLoop): added,
4668         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4669         through all branches of predecessors enables sdcc to emit the warning
4670         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4671         (rlivePoint): made static, added parameter emitWarnings which is only
4672         true during the first run out of two,
4673         (findRecursiveSucc, findRecursivePred): removed,
4674         (computeLiveRanges): made static, added parameter emitWarnings,
4675         (dumpIcRlive): added for debugging only
4676         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4677         removed prototype of setFromRange()
4678         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4679         in call of computeLiveRanges()
4680         * support/regression/tests/bug-895992.c: added
4681         * support/regression/tests/bug-971834.c: added
4682         * support/valdiag/tests/bug-895992.c: added
4683         * support/valdiag/tests/bug-971834.c: added
4684
4685 2005-12-18 Raphael Neider <rneider AT web.de>
4686
4687         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4688           (genUnpackBits): improved code for direct operands,
4689           (genPackBits): improved code for literal assignment to bitfields
4690             and for direct destination operands (no FSR indirection),
4691             prevented redundant AND, fixes #1362800,
4692           (AccLsh): added parameter to disable masking of the result
4693         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4694           skip instructions with side-effects (like incfsz),
4695           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4696         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4697         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4698           fixes #1375263
4699
4700 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4701
4702         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4703         volatile variables as spill location
4704
4705 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4706
4707         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4708         replacing literals
4709         * support/regression/tests/bug-1376320.c: added
4710
4711 2005-12-08 Raphael Neider <rneider AT web.de>
4712
4713         * src/pic/device.c: renamed is_shared to pic14_is_shared
4714         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4715         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4716           (is_valid_identifier): added for above workaround
4717
4718 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4719
4720         * device/lib/Makefile.in: fixed to enable port-specific-objects
4721         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4722           char, thanks Hubert Sack
4723         * doc/sdccman.lyx: documented --xstack-loc,
4724           elaborated a bit more on interrupts and pitfalls,
4725           removed "setjmp/longjmp unsupported",
4726           documented some unsupported C99 features
4727         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4728         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4729           if, thanks Hubert Sack
4730         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4731         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4732           make make_library
4733         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4734           regression tests can report resource usage (rfe 700441)
4735         * support/regression/collate-results.py: report resource usage
4736         * support/regression/ports/ds390/spec.mk,
4737         * support/regression/ports/hc08/spec.mk,
4738         * support/regression/ports/mcs51/spec.mk,
4739         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4740         * support/regression/ports/ds390/uCsim.cmd,
4741         * support/regression/ports/hc08/uCsim.cmd,
4742         * support/regression/ports/mcs51/uCsim.cmd,
4743         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4744         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4745           library, use the default one
4746         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4747           building the library
4748
4749 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4750
4751         * config.dsp: added dependency on .version and configure_vc.awk
4752         * device/include/setjmp.h: updated for --stack-auto and --xstack
4753         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4754         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4755         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4756         * device/lib/libsdcc.lib: added _setjmp
4757         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4758           (decorateType): fixed bug 1372851,
4759           (optimizeGetHbit): fixed warning
4760         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4761           array initialisation
4762         * support/regression/tests/bug1057979.c: added test for bug 1358192
4763         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4764
4765 2005-12-03 Borut Razem <borut.razem AT siol.net>
4766
4767         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4768           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4769
4770 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4771
4772         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4773         createIval): implement symbol independant "flexible array member",
4774         (createIvalCharPtr): implemented flexible array initialisation with a
4775         string
4776         * src/SDCCsymt.c (copyStruct): removed,
4777         (getSize): fixed misleading comment,
4778         (getAllocSize): removed, the additional allocation size is now in
4779         sym->flexArrayLength,
4780         (checkStructFlexArray): new, syntax checks for flexible array members,
4781         (compStructSize): added syntax checks for "flexible array members"
4782         (copyStruct): removed,
4783         (copyLinkChain): removed inefficient fix for bug 770487
4784         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4785         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4786         symbol->flexArrayLength
4787         * src/SDCCerr.c,
4788         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4789         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4790         * support/regression/tests/structflexarray.c: added
4791         * support/valdiag/tests/structflexiblearray.c: added
4792
4793 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4794
4795         * src/SDCCast.c (decorateType): fixed bug 1368489
4796         * support/Util/SDCCerr.c,
4797         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4798
4799 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4800
4801         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4802           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4803
4804 2005-11-27 Borut Razem <borut.razem AT siol.net>
4805
4806         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4807           support/cpp2/mkdeps.h: added command line option
4808           -obj-ext=<extension> to SDCPP to define object file externion, used
4809           for generation of make dependencies (-M)
4810         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4811
4812 2005-11-26 Borut Razem <borut.razem AT siol.net>
4813
4814         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4815           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4816           added pic and pic16 libraries
4817
4818 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4819
4820         * device/include/float.h: Corrected typo in prototype of __fsgt
4821
4822 2005-11-25 Borut Razem <borut.razem AT siol.net>
4823
4824         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4825           added creation of model-mcs51-stack-auto libraries
4826
4827 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4828
4829         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4830         and fields-list too
4831         * src/SDCCast.c (createIvalArray): removed obsolete comment
4832
4833 2005-11-24 Borut Razem <borut.razem AT siol.net>
4834
4835         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4836           added missing device/lib/mcs51/crt*.asm sources
4837
4838 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4839
4840         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4841
4842 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4843
4844         * device/lib/_fs2schar.c,
4845         * device/lib/_fs2sint.c,
4846         * device/lib/_fs2slong.c: optimized inline asm
4847
4848 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4849
4850         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4851           Better handling of floats between -1.0 and 0.0.
4852
4853 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4854
4855         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4856           (the missing "if"s prohibited removal of redundant labels)
4857
4858 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4859
4860         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4861           Properly convert floats between -1.0 and 0.0 to long, int, and char
4862           types (max integer value of negative floats tends to zero).
4863         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4864           Removed changes made so to work properly with floats between
4865           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4866           and _fs2char.c
4867
4868 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4869
4870         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4871         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4872         (genCast) cosmetic change
4873         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4874         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4875         from mcs51
4876         * support/regression/tests/bitfields (testSignedBitfields): added
4877
4878 2005-11-18 Borut Razem <borut.razem AT siol.net>
4879
4880         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4881         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4882           introduced SILENT option to make building of pic16 libraries less
4883
4884 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4885
4886         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4887           Now they work properly with floats between -1.0 and 0.0
4888         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4889
4890 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4891
4892         * src/SDCCicode.c (printOperand): added missing else
4893
4894 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4895
4896         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4897         reformatted for better readability
4898         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4899         signed bitfields
4900
4901 2005-11-17 Borut Razem <borut.razem AT siol.net>
4902
4903         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4904           introduced SILENT option to make building of pic16 libraries less
4905           verbose - used for nightly snapshot build
4906         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4907           available on Win32 platforms.
4908         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4909           medium, large, pic and pic16
4910
4911 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4912
4913         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4914           printf("%f"...) sets fraction to zero.
4915
4916 2005-11-16 Raphael Neider <rneider AT web.de>
4917
4918         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4919           fixes #1357221
4920         * src/pic/gen.c (genIfx): implemented for CARRY bit
4921         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4922           to generic pointers, fixes #1357332,
4923           (pic16_movLit2f): NEW,
4924           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4925
4926 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4927
4928         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4929
4930 2005-11-11 Raphael Neider <rneider AT web.de>
4931
4932         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4933         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4934           compute pointer's type from operand,
4935           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4936           improved single bit reads, fixes bug #1353379
4937
4938 2005-11-09 Borut Razem <borut.razem AT siol.net>
4939
4940         * support/scripts/sdcc.nsi: added lib/pic to the package
4941
4942 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4943
4944         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4945
4946 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4947
4948         * support/regression/tests/bug1348008.c: added
4949         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4950         * support/regression/tests/bug1337835.c: updated comment
4951
4952 2005-11-06 Borut Razem <borut.razem AT siol.net>
4953
4954         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4955           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4956           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4957           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4958           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4959           dynamic construction of cl_error_class and derivates - 2.nd try
4960
4961 2005-11-05 Borut Razem <borut.razem AT siol.net>
4962
4963         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4964           bug, which caused Bus Errors on sparc solaris
4965
4966 2005-11-04 Borut Razem <borut.razem AT siol.net>
4967
4968         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4969           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4970           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4971           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4972           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4973           and derivates to resolve the initialization problem on OSX
4974
4975 2005-11-02 Borut Razem <borut.razem AT siol.net>
4976
4977         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4978           corrected typo - #include <winsock2.h>
4979
4980 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4981
4982         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4983           (_asxxxx_mapping): added org directive for future enhancements
4984
4985 2005-11-01 Borut Razem <borut.razem AT siol.net>
4986
4987         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4988           enabled sockets on WIN32
4989         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4990
4991 2005-10-31 Borut Razem <borut.razem AT siol.net>
4992
4993         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4994           WIN32 backslash path delimiters should be escaped when used in C strings
4995         * support/regression/tests/bitfields.c: exclude failing assertions for
4996           __CYGWIN32__ and __MINGW32__ hosts
4997
4998 2005-10-30 Borut Razem <borut.razem AT siol.net>
4999
5000         * src/SDCCutil.c: corrected double comparison typo
5001
5002 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5003
5004         * device/lib/medium/Makefile: added for new memory model medium
5005         * device/include/asm/mcs51/features.h: updated for medium/pdata
5006         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5007           added Multiply & Accumulate sbit's and MAC0_PAGE define
5008         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5009         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5010         * device/lib/_mullong.c: update for medium model
5011         * device/lib/incl.mk: added medium model
5012         * doc/sdccman.lyx: documented medium model
5013         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5014         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5015         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5016         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5017           (allocParms): set SCLS and OCLS to pdata for medium model
5018         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5019           for pdata,
5020           (powof2): return <0 if not power of 2
5021         * src/avr/gen.c (genBitWise): use updated powof2
5022         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5023           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5024           (shiftLLeftOrResult): use B if necessary
5025         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5026         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5027         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5028         * support/regression/Makefile.in: added test-mcs51-medium
5029         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5030
5031 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5032
5033         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5034         specifier unsigned
5035         * device/lib/time.c (mktime): fixed bug 1334315
5036
5037 2005-10-28 Raphael Neider <rneider AT web.de>
5038
5039         * device/include/pic/p16f_common.inc: added common declarations
5040         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5041
5042 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5043
5044         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5045           (aopPutUsesAcc): added to predict accumulator use,
5046           (assignResultValue): save acc if necessary,
5047           (genMinusDec): store result if indirectly addressed,
5048           (genDivOneByte):  save acc if necessary,
5049           (movLeft2Result): bugfix if left already in acc,
5050           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5051             attention to accumulator use (esp. pdata),
5052           (genReceive): receive pdata correctly
5053         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5054         * src/SDCCicode.h: added isOperandInPagedSpace prototype
5055
5056 2005-10-27 Raphael Neider <rneider AT web.de>
5057
5058         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
5059
5060 2005-10-27 Raphael Neider <rneider AT web.de>
5061
5062         * .version: changed version to 2.5.4
5063         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
5064         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
5065           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
5066             arithmetics support routines
5067         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
5068         * device/lib/Makefile.in: also create installdir for pic
5069
5070         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
5071           pic14 port as well
5072         * src/pic/device.c (dump_sfr): rewritten to delegate register
5073           placement to the linker (use `extern sym' rather than sym EQU addr),
5074           (validAddress): fixed to check last specified address
5075         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
5076           (popGetLit): truncate literal value to 8 bit,
5077           (popGet): moved assert to more appropriate place
5078           (popGetExternal): create pCode operand from and mark the according
5079             symbol as being `extern'
5080           (popGetAddr): added sanity check on immediate's offset, provide
5081             GPOINTER tag on demand
5082           (aopPut): fixed for immediates,
5083           (mov2w_op): move operand's address or contents to WREG (depending on
5084             operand type), safer variant of mov2w,
5085           (movwf,call_libraryfunc): NEW, handy abbreviations,
5086           (get_argument_pcop,get_return_val_pcop,pass_argument,
5087           get_returnvalue): interface for accessing function parameters and
5088             return values,
5089           (assignResultValuei,genRet): use new parameter/return value interface
5090           (pic14_getDataSize): back to old version handling generic pointers,
5091           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
5092             provided implementation and/or fixed old one,
5093           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
5094             calls, removed legacy 8051 reference code
5095           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
5096           (loadSignToC): NEW, move the operands sign bit to CARRY,
5097           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
5098             genRightShiftSigned, accepts negative shift counts,
5099           (setup_fsr): load FSR and adjust IRP (indirect memory access),
5100           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
5101             generic pointers, __data pointers and __code pointers,
5102           (genUnpackBits,genPackBits): rewritten to work with generic pointers
5103             and signed bitfields, limit bitfields to 8 bit,
5104           (genDataPointerGet): fixed number of bytes read,
5105           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
5106           (genPointerGet,genPointerSet): fixed handling of __code pointers,
5107             pointers to constant data are no longer assumed to point to __code
5108             space, removed invalid pointer types,
5109           (bitpatternFromVal): retrieve the PICs representation of an integer
5110             or float literal,
5111           (genDataPointerSet): fixed assigning to po_immediate operands,
5112           (genGenPointerSet): implemented as library call,
5113           (genIfx): fixed incorrect condition,
5114           (genAddrOf): limit generic pointers' addresses to 2 bytes,
5115             provide GPOINTER tag according to destination's storage class,
5116           (genCast): added code to handle casting to generic pointers, added
5117             sign-/zero extension of the result
5118           (aop_isLitLike,op_isLitLike): fixed handling of immediates
5119         * src/pic/gen.h: added macros to access IRP bit in STATUS register
5120         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
5121           extend the result
5122         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
5123           address/register resides in the shared banks
5124           (emitSymbolToFile): improved to handle global and `pinned' symbols,
5125             put all variables into separate sections (have the linker arrange
5126             them)
5127           (picglue): put init code and interrupt handlers in separate sections
5128         * src/pic/main.c: added port specific options table, modified to PORT
5129           structure to make GPOINTERs 3 byte, added pic14_options
5130           (_pic14_do_link): private linking routine (update paths to libraries,
5131             add libsdcc.lib by default)
5132         * src/pic/main.h: declare pic14_options
5133         * src/pic/pcode.c: fixed instructions i/o relations,
5134           (RegCond): reverted to correct version,
5135           (newpCodeOpLit): truncate literals to 8 bit,
5136           (genericPrint): added debug output,
5137           (getRegFromInstruction): fixed for various operand types, simplified
5138           (BuildFlow): fixed broken handling of isntructions with labels
5139           (LinkFlow): start at last instruction in flow (skip trailing comments),
5140             pass the flow on to the next instruction after CALL
5141           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
5142           (insertPCodeInstruction): fixed inserting after a skip instruction,
5143           (DoBankSelect): fixed for labeled instructions
5144           (OptimizepBlock): honor --nopeep switch
5145           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
5146         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
5147         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
5148           (pCodeOptime2pCodes): allow disabling this optimization via
5149             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
5150             but is still buggy), started implementation of a dataflow based
5151             pCode optimization (CSE + dead code elimination)
5152           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
5153         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
5154           names are independant of the stack location and therefore portable across
5155           devices
5156
5157 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5158
5159         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
5160           (selectSpil): fixed bug 1337835 by not spilling bit variables
5161         * support/regression/tests/bug1337835.c: added test for this bug
5162         * src/mcs51/peeph.def: restart after rule 3.c,
5163           addded rules 263.x to optimize loading constants
5164
5165 2005-10-26 Raphael Neider <rneider AT web.de>
5166
5167         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
5168         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
5169           (genAssign): emit warning when casting literals to generic pointer
5170             type, also applies when taking the address of a fixed variable,
5171           (genCast): improved casting to generic pointers
5172         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
5173           extern variables, added verbose error message
5174         * device/include/pic16/{string.h,errno.h}: added #pragma library c
5175
5176 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
5177
5178         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
5179         carry must be complemented too
5180         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
5181         could be emitted by genMinus
5182         * src/SDCCval.c (constVal): fixed bug 1305065
5183
5184 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
5185
5186         * src/SDCCast.c (addCast): added promotion for bit variables
5187         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
5188         promotion casts + optimisation
5189         (optimizeGetWord): fix warning 'i' might be used uninitialized
5190         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
5191         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
5192
5193 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
5194
5195         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
5196         all chars are promoted to int; promotion should be handled in SDCCast.c
5197
5198 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5199
5200         * device/lib/_strcmp.c: Fixed bug 1326457
5201
5202 2005-10-11 Raphael Neider <rneider AT web.de>
5203
5204         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
5205         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
5206
5207 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5208
5209         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
5210         * support/regression/tests/sfr16.c: added test for the sfr32 bug
5211
5212 2005-10-04 Raphael Neider <rneider AT web.de>
5213
5214         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
5215           device/lib/pic16/pics.all: added pic18f1320
5216         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5217
5218 2005-09-30 Raphael Neider <rneider AT web.de>
5219
5220         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5221         * src/pic16/devices.inc: NEW, provides device descriptions
5222         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5223
5224 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5225
5226         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5227           GETHBIT
5228
5229 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5230
5231         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5232           documented Any Order Bit, Higher Order Byte and Higher Order Word
5233         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5234         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5235           (optimizeGetAbit): new, to get any bit, not only the high bit,
5236           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5237           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5238           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5239           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5240             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5241             GETABIT, GETBYTE, GETWORD: decorate them,
5242           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5243           (ast_print): added GETABIT, GETBYTE, GETWORD
5244         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5245         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5246           (geniCodeBinary): new generic binary icode,
5247           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5248         * src/port.h: updated comment for PORT.hasExtBitOp
5249         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5250           (genGetByte): new, to get a single byte,
5251           (genGetWord): new, to get a word from a long,
5252           (gen51Code): added GETABIT, GETBYTE, GETWORD
5253         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5254
5255 2005-09-23 Raphael Neider <rneider AT web.de>
5256
5257         * configure.in, configure: have device/lib/pic configured
5258         * device/lib/Makefile.in: added model-pic14
5259         * device/lib/clean.mk: added pic/ to clean rule
5260         * device/lib/pic: added rudimentary pic14 library providing support
5261           functions for multiplication/division/generic pointer access
5262         * src/SDCCopt.c (convilong): mark support functions as extern
5263           for pic14 port as well
5264         * src/pic/gen.c (genMult): added assertions,
5265           (genpic14Code): emit warning on unhandled iCodes
5266         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5267         * src/pic/pcode.c (pCodeOpCopy),
5268         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5269           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5270           SFR_REGISTER}), made safe for future extensions
5271         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5272           instructions even if preceeded by SKIP instructions (also remove
5273           them); removed unused code
5274         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5275           prevents leaving parts of the structure uninitialized after copying
5276
5277 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5278
5279         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5280           ago by me
5281         * support/regression/tests/addsub.c: added test for the bug
5282
5283 2005-09-21 Raphael Neider <rneider AT web.de>
5284
5285         * device/include/pic16/pic18f1220.h,
5286           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5287         * device/lib/pic16/Makefile.rules: added missing opening paren
5288         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5289           are provided in genutils.c,
5290           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5291           operand/result sizes,
5292           (genCmp): assert on NULL pointers first, then check deref'ed values
5293         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5294           result size
5295
5296 2005-09-18 Raphael Neider <rneider AT web.de>
5297
5298         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5299           as these are now unused,
5300           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5301         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5302           local, avoids uninitialized pointer dereference on r->name
5303         * src/pic16/ralloc.c (newReg): fixed indentation
5304
5305 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5306
5307         * src/SDCCval.c (constVal): fixed bug 730366
5308         * support/Util/SDCCerr.c,
5309         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5310
5311 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5312
5313         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5314
5315 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5316
5317         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5318
5319 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5320
5321         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5322           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5323         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5324           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5325         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5326         * packihx/packihx.c (hexDigit): made c unsigned char
5327         * as/mcs51/lklibr.c (fndsym),
5328         * link/z80/lkgb.c (gb),
5329         * link/z80/lklibr.c (fndsym),
5330         * link/z80/lkrloc.c (relr),
5331         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5332         * src/SDCC.lex (checkCurrFile, process_pragma),
5333         * src/SDCCglue.c (spacesToUnderscores),
5334         * src/SDCCmain.c (setParseWithComma, processFile),
5335         * src/asm.c (tvsprintf, printCLine),
5336         * src/avr/gen.c (emitcode, aopPut),
5337         * src/ds390/gen.c (emitcode),
5338         * src/hc08/gen.c (emitcode, emitinline),
5339         * src/mcs51/gen.c (emitcode, genInline),
5340         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5341           tokenizeLineNode),
5342         * src/pic/ralloc.c (debugLog),
5343         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5344           tokenizeLineNode),
5345         * src/pic16/ralloc.c (debugLog),
5346         * src/z80/main.c (_process_pragma):
5347            made all ctype.h function calls safe
5348         * src/SDCCopt.c: include math.h for fabs
5349         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5350           and used them throughout the code to make ctype.h function calls safe
5351         * src/ds390/main.c (asmLineNodeFromLineNode),
5352         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5353         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5354            unsigned char*
5355         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5356           (newpCodeAsmDir): made ctype.h function calls safe
5357         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5358           pic16_emitcode):  made lbp unsigned char*
5359         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5360           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5361         * src/xa51/gen.c (emitcode),
5362         * src/z80/gen.c (_emit2): made lbp unsigned char*
5363         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5364            char*
5365
5366 2005-09-05 Raphael Neider <rneider AT web.de>
5367
5368         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5369           access bank splitpoint
5370
5371 2005-09-05 Raphael Neider <rneider AT web.de>
5372
5373         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5374
5375 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5376
5377         * .version: changed to version 2.5.3
5378         * doc/sdccman.lyx: changed version to 2.5.3,
5379           documented --codeseg and --constseg and pragma codeseg and constseg,
5380           documented bit parameters (reentrant) and bit returning
5381         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5382            currFunc->recvSize, but is this ok for all ports?
5383           (ast2iCode): result of ~ on unsigned char must be cast to int for
5384            bool to work
5385         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5386           function pointers in bit space
5387         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5388           (processFuncArgs): call port.reg_parm() with reentrancy info
5389         * src/port.h,
5390         * src/avr/main.c,
5391         * src/ds390/main.c,
5392         * src/hc08/main.c,
5393         * src/pic/main.c,
5394         * src/pic16/main.c,
5395         * src/xa51/main.c,
5396         * src/z80/main.c: port.reg_parm prototype extended with
5397           "bool reentrant" parameter
5398         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5399           options.stackAuto for allocating bit register parameters
5400         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5401           (genSend): set BitBankUsed if it is,
5402           (selectRegBank): factored out of genCall for use in genPcall,
5403           (genCall): removed redundant dtype assignmen, use selectRegBank,
5404           (genPcall): handle returning in Carry properly, save in F0 if needed,
5405           (genReceive): handle bit register parameters
5406         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5407           (mcs51_assignRegisters): enable bit registers for all reentrant
5408            functions and don't set BitBankUsed unconditionally
5409         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5410         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5411         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5412
5413 2005-08-27 Borut Razem <borut.razem AT siol.net>
5414
5415         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5416         ppc-osx (Darwin) does not support -u option. It seems that it is
5417         supported only on Linux - GNU cp
5418
5419 2005-08-25 Borut Razem <borut.razem AT siol.net>
5420
5421         * sim/ucsim/gui.src/serio.src/Makefile.in,
5422           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5423           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5424           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5425           install and strip, since the strip at /usr/ccs/bin should be used
5426           on solaris
5427
5428 2005-08-24 Borut Razem <borut.razem AT siol.net>
5429
5430         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5431
5432 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5433
5434         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5435         ffffffffu
5436
5437 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5438
5439         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5440         * as/mcs51/lkmain.c (link_main): fixed warning
5441         * device/include/stdbool.h: ds390 has no advanced bit support yet
5442         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5443         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5444         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5445           and updated their macros
5446         * src/SDCCval.c (constVal): updated comment for renamed b_long
5447
5448 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5449
5450         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5451         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5452           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5453           (oprio): set priority for '['
5454         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5455            and adb_24_bit
5456         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5457         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5458         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5459         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5460           added overlayable BIT_BANK area
5461         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5462           (summary2): explain 'T' in legenda
5463         * as/mcs51/lkrloc.c: replaced old K&R style,
5464           (relr): added R_BIT processing,
5465           (errmsg): added "Bit-addressable relocation error",
5466           (adb_bit): added for converting from byte- to bit-addressable space,
5467           (adb_24_bit): added for converting from byte- to bit-addressable space
5468         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5469            used in reentrant functions now even as return value
5470         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5471         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5472           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5473         * src/SDCCglobl.h: added indicator BitBankUsed
5474         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5475            the bit registers b0-b7
5476         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5477           (geniCodeCast): fixed bug 1263853,
5478           (geniCodeLogicAndOr): put result in bool or char,
5479           (geniCodeReceive): added parameter func for accessing the return type,
5480           (geniCodeFunctionBody): pass func to geniCodeReceive
5481         * src/SDCCmain.c: added indicator BitBankUsed
5482         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5483         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5484           (checkSClass): don't put automatic bool/bit on stack,
5485           (checkFunction): removed check on function cannot return bit
5486         * src/SDCCsymt.h: added newBoolLink prototype
5487         * src/mcs51/gen.c (rb1regs): added bit registers,
5488           (movc): created for assigning to carry,
5489           (pushReg, popReg): created for pushing registers,
5490           (sameRegs): check both AOP_REG and AOP_CRY types,
5491           (aopOp): handle bit registers,
5492           (aopPut): optimization no self-assign,
5493           (saveRegisters): push reg->base (bits) only once for bit registers,
5494            and use pushReg,
5495           (unsaveRegisters): pop reg->base only once and use popReg,
5496           (assignResultValue): added parameter func and return in carry for bits,
5497           (genIpush): optimization no reload in A if not changed,
5498           (genSend): bit parameters in reentrant functions are passed in bit
5499            registers by first assigning to bits in B, then save registers and
5500            copy B to bits,
5501           (genCall): handle returning in Carry properly, save it in F0 if needed,
5502           (genPcall): updated assignResultValue call, this is not safe yet for bit
5503            returning function !!!
5504           (genFunction): don't generate equ's for bit registers and use pushReg,
5505           (genEndFunction): take care of bit returning functions and use popReg,
5506           (genRet): return bit in Carry,
5507           (genIfx): optimize bit registers and other directly addressable bits,
5508           (genReceive): updated assignResultValue call
5509         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5510           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5511            registers when using stack-auto
5512         * src/mcs51/ralloc.c (_G): added allBitregs,
5513           (regs8051): added the bit registers,
5514           (createStackSpil): use macro IS_BIT,
5515           (getRegBit): added to allocate a bit register, else spill,
5516           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5517           (updateRegUsage): factored out to ease stepping while debugging,
5518           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5519            also allocate bit registers,
5520           (fillGaps): handle bit registers,
5521           (findAllBitregs): added to create bit vector with all bit registers,
5522           (mcs51_allBitregs): returns this bit vector,
5523           (mcs51_assignRegisters): when using stack-auto use bit registers for
5524            passing parameters and creating local variables
5525         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5526
5527 2005-08-22 Borut Razem <borut.razem AT siol.net>
5528
5529         * device/lib/Makefile.in: replaced find option -or with -o
5530           to make it run on solaris
5531
5532 2005-08-22 Raphael Neider <rneider AT web.de>
5533
5534         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5535           fixes #1265442 (crash on Solaris)
5536
5537 2005-08-20 Borut Razem <borut.razem AT siol.net>
5538
5539         * configure, configure.in: added tests for libsocket and libnsl libraries,
5540           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5541           from support/regression/Makefile.in
5542         * support/regression/Makefile.in: added
5543         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5544         * sim/ucsim/libtool: regenerated on sparc-solaris
5545         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5546           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5547           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5548           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5549           sparc-solaris, which doesn't use GNU ld linker
5550         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5551         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5552
5553 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5554
5555         * src/mcs51/peeph.def: updated comments
5556
5557 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5558
5559         * device/lib/_gptrget.c,
5560         * device/lib/_gptrput.c: slightly shorter
5561         * doc/sdccman.lyx: incremented version
5562         * src/mcs51/peeph.def: moved peephole comments to the line of first
5563           change to better keep line correlation, reanimated 186.e
5564         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5565
5566 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5567
5568         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5569           David Saxton with quotes around file name.
5570
5571 2005-08-15 Borut Razem <borut.razem AT siol.net>
5572
5573         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5574           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5575           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5576           make tests run on x86_64 platform
5577
5578 2005-08-13 Raphael Neider <rneider AT web.de>
5579
5580         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5581           as it might be executed DURING a build (parallel make is wonderful)
5582
5583 2005-08-13 Raphael Neider <rneider AT web.de>
5584
5585         * device/lib/Makefile.in (port-specific-objects-pic16):
5586           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5587         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5588           dependency
5589         * device/lib/pic16/Makefile.rules: build subdirs before creating
5590           the library, removed builddir rule, create $(builddir) early in
5591           recurse rule, use empty recurse rule for leaf directories
5592         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5593           mkdir errors (race condition), removed duplicate suffix "hex"
5594           from clean rules
5595         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5596         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5597           prevents mkdir -p from aborting on Alpha
5598
5599 2005-08-12 Raphael Neider <rneider AT web.de>
5600
5601         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5602           db-statements in order to allow for arrays of pointers in code
5603           sections to be placed without interspersed 0-padding, fixes
5604           bug #1256215
5605         * (emitStatistics): fixed division by zero for pic18f1220
5606         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5607           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5608         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5609         * (pic16_pCodeConstString): keep track of already emitted string
5610           literals to prevent "duplicate definitions of symbol _str_NR"
5611         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5612           debug message
5613         * device/lib/Makefile.in: ignore failing PIC16 library builds
5614         * device/lib/pic16/Makefile: do not build if gputils are missing
5615         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5616
5617 2005-08-10 Raphael Neider <rneider AT web.de>
5618
5619         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5620           my last commit)
5621
5622 2005-08-10 Raphael Neider <rneider AT web.de>
5623
5624         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5625           Rokas' patch to add the new fixed point type "__fixed16x16"
5626         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5627           functions for __fixed16x16 arithmetics
5628         * device/lib/pic16: reimplemented the build system to support
5629           a separate build directory, better handling of libio (create
5630           the library in a separate subdir for each architecture) and
5631           easier configuration (centralized in Makefile.common)
5632
5633 2005-08-07 Raphael Neider <rneider AT web.de>
5634
5635         * src/pic16/gen.c (genrshTwo): fixed sign extension
5636         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5637         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5638           added T0CONbits
5639         * device/include/pic16/pic18f4220.h: NEW, header for
5640           pic18f4220 and pic18f4320
5641         * device/include/pic16/pic18fregs.h: added new devices,
5642           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5643         * device/include/pic16/signal.h: resolved name clashes
5644           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5645           to also allow testing for interrupt enable bits, added
5646           comments on how to use the macros
5647         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5648         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5649           register definitions for the devices
5650         * device/lib/pic16/pics.all: added new devices
5651         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5652           allocated memory
5653         * device/lib/pic16/libc/stdlib/memfree: do not count
5654           the block header as free memory
5655         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5656           simplified and added missing end-of-blocklist-marker
5657           (reported by Peter Onion, fixes #1252814)
5658         * (_mergeHeapBlock): fixed loop condition
5659         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5660           len==0, restructured code
5661         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5662           up a bit, reduced bitfield accesses, prevent endless loops
5663           in case of heap corruption
5664         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5665           "unreferenced arguments/must return a value" warnings
5666         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5667           replaced BAUDREG with SPBRG
5668         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5669           device/lib/pic16/debug/gstack/gstack.c: replaced
5670           _naked, _asm, _endasm with __naked, __asm, __endasm
5671
5672 2005-08-05 Raphael Neider <rneider AT web.de>
5673
5674         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5675           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5676
5677 2005-08-05 Borut Razem <borut.razem AT siol.net>
5678
5679         * device/lib/Makefile.in: added missing ';'
5680         * configure: removed ^M characters
5681
5682 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5683
5684         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5685           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5686           License
5687
5688 2005-08-04 Borut Razem <borut.razem AT siol.net>
5689
5690         * configure.in: pic16 libraries build 2nd try - enable running
5691           configure in device/lib/pic16
5692         * configure: regenerated from configure.in
5693         * device/lib/Makefile.in: create $(PORT)/bin directory
5694
5695 2005-08-03 Raphael Neider <rneider AT web.de>
5696
5697         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5698           to get/set values via pointers
5699         * (genUnpackBits,genPackBits): changed detection of
5700           ptr->bitfield vs. sym.bitfield, fixed access via generic
5701           pointers, removed dead (wrong) code for multibyte bitfields
5702         * (genNearPointerGet, genGenPointerGet): removed useless code,
5703           fixed bitfield detection, fixes #1250594
5704         * (genNearPointerSet): removed useless code
5705         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5706           and introduced macro pic16_emitpcode that conditionally emits
5707           the origin of the following pCode (useful for debugging SDCC)
5708         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5709         * (createDefmap): fixed handling of LFSR for --optimize-df
5710
5711 2005-08-02 Borut Razem <borut.razem AT siol.net>
5712
5713         * device/lib/Makefile.in: pic16 libraries build enabled since
5714           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5715
5716 2005-08-02 Raphael Neider <rneider AT web.de>
5717
5718         * src/pic16/gen.c (genPackBits): removed deprecated warning
5719         * (genGenPointerSet): fixed bitfield detection
5720
5721 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5722
5723         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5724
5725 2005-07-31 Raphael Neider <rneider AT web.de>
5726
5727         * device/lib/pic16/libdev/pic18f458.c,
5728           device/include/pic16/pic18f458.h: added missing T0CONbits
5729
5730 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5731
5732         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5733
5734 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5735
5736         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5737
5738 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5739
5740         * device/include/mcs51/at89c51ed2.h: added.
5741
5742 2005-07-23 Raphael Neider <rneider AT web.de>
5743
5744         * src/pic/gen.h: added emitpcode macro for debugging
5745         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5746           and replace by macro adding debug information on demand
5747         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5748         * (gencjne): tried to fix; replaced with correct (slower) code
5749         * (gen{Unp,P}ackBits): fixed single bit access
5750         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5751         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5752           previous instruction
5753         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5754           register has to be handled with care (forbidding movement
5755           of assignments/uses, removing assignments completely, ...)
5756         * (pCodeOptime2pCodes): make use of regIsSpecial
5757         * added lots of debugging output (commented out)
5758         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5759           from being reused as result UNLESS it is known to work
5760
5761 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5762
5763         * support/Util/dbuf.h: include <stddef.h> for size_t
5764         * .version: changed to version 2.5.2
5765
5766 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5767
5768         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5769
5770 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5771
5772         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5773           (genModOneByte): removed needless psha/pula
5774
5775 2005-07-22 Raphael Neider <rneider AT web.de>
5776
5777         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5778           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5779         * src/pic/gen.c (resolveIfx): do not "invent" labels
5780         * (genSkipc): changed to positive logic
5781         * (genSkipCond): removed as no longer needed
5782         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5783           backport from PIC16
5784         * (genLeftShift): check operands are in different registers
5785         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5786           INCF does not update CARRY...
5787         * src/pic/main.c: fixed _linkCmd
5788         * src/pic/pcode.c (unlinkpCode): added inactive code
5789         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5790           alive (do not assign result and operand overlapping registers)
5791
5792 2005-07-22 Raphael Neider <rneider AT web.de>
5793
5794         * src/pic/device.c (dump_sfr): replaced register declaration with
5795           call to emitSymbolToFile() to avoid duplicate symbols
5796         * (assignRelocatableRegisters): do not declare external symbols
5797         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5798           right (take size of type, not etype)
5799         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5800         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5801         * (packRegsForAccUse): disabled assignment of WREG as
5802           the result reg to prevent occurence of just fixed #1235003,
5803           fixes #1242954
5804         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5805           symbols (avoids duplicate symbols in .asm file)
5806         * (pic14emitRegularMap): use emitSymbolToFile()
5807         * src/pic/gen.c (aopOp): fixed spillLocation handling
5808         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5809         * (genDataPointerSet): removed unneccessary variables/output
5810
5811 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5812
5813         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5814         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5815
5816 2005-07-21 Raphael Neider <rneider AT web.de>
5817
5818         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5819           architecture cannot handle them efficiently, fixes bug #1235003
5820         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5821           check for empty sets before using them (fixes bug #1232190)
5822
5823 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5824
5825         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5826           (lnksect2): generate warnings for memory overlap
5827         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5828           constseg to set the name of these segments so you can instruct the linker
5829           to place them in banks
5830         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5831         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5832           added code_seg and const_seg to options
5833         * src/SDCCglue.c (emitMaps): use options.const_seg,
5834           (createInterruptVect): put interrupt vectors in segment HOME,
5835           (glue): put HOME before static segment and put the main glue in HOME,
5836           (glue): use options.code_seg
5837         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5838         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5839           these segments so you can instruct the linker to place them in banks
5840           (linkEdit): use code_loc for HOME segment which should be the first
5841           segment in code memory now
5842         * src/SDCCmem.c: fixed more stuff like bug 1238386
5843         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5844           (changePointer): don't change function pointers to code pointers for
5845           banked functions,
5846           (compareType): added exceptional check for banked function pointers
5847         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5848         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5849           after static in code memory
5850         * src/mcs51/gen.c: added aopLiteralLong prototype,
5851           (aopForSym): use getSize for functions,
5852           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5853           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5854           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5855           the segment,
5856           (genPcall): use call for literal function pointers and generate banked
5857           calls over the one trampoline so there's only one place for the user to
5858           modify according to his/hers hardware,
5859           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5860           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5861         * src/mcs51/main.c: added keyword banked,
5862           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5863         * support/Util/SDCCerr.c,
5864         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5865           needed for passing the bank and address to the trampoline
5866         * device/lib/mcs51/crtbank.asm: added for bankswitching
5867         * device/lib/mcs51/Makefile: added crtbank
5868
5869 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5870
5871         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5872           for fields at offset 0 of a struct or union as reported
5873           on 2005-07-07 in the developer mailing list.
5874
5875 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5876
5877         * src/SDCCmem.c: fixed bug 1238386
5878
5879 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5880
5881         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5882           (patch #1144962), added peephole 300, enabled 259.x
5883         * doc/sdccman.lyx: removed screenshot and provided link instead
5884
5885 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5886
5887         * doc/sdccman.lyx: added section about debugging with ddd
5888         * doc/figures/ddd_example.eps: screenshot of debugging session
5889
5890 2005-07-04 Raphael Neider <rneider AT web.de>
5891
5892         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5893           like CODE pointers, fixes #1115683
5894         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5895           call, fixes bugs #1232211, #1228110,
5896           fixed wrong casts to pCodeFlow from pCodeInstructions
5897
5898 2005-07-04 Raphael Neider <rneider AT web.de>
5899
5900         * src/pic/gen.c (popGet): changed assert to allow for
5901           bit operands
5902         * (popGetAddr): changed signature to provide
5903           an additional index, patched all call sites
5904         * (genCmpEq): handle literal-like operands correctly
5905         * (genAddrOf): added sanity checks on __code/__data pointers
5906         * (genAssign): added handling of symbols from __code section
5907         * (gencjne): do not generate code for comparisons whose result
5908           is neither stored nor used, fixes bug #1171114
5909         * (AccLsh, AccRsh): operate on operand instead of WREG
5910         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5911           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5912           by known count
5913         * rewrote complete shift-by-literal logic, commented unused
5914           functions out
5915         * (genConstPointerGet): get multiple bytes (if result size > 1),
5916           fixed handling of non-immediate addresses
5917         * (genPointerGet): handle CODE pointers like CONST pointers
5918         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5919         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5920           operand is to be treated as a literal or not
5921         * (mov2w,genPcall,genCmpEq),
5922           src/pic/genarith.c: use aop_isLitLike() to decide between
5923           literal/register contents
5924         * (addSign): added missing offset
5925         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5926           only emit comment in debug-mode,
5927           use {aop,op}_isLitLike throughout the file
5928         * src/pic/glue.c: fix initializers for pointers (work in progress)
5929         * src/pic/pcode.c (get_op): honor index on _const symbols
5930         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5931         * (dumppBlock): added pCode size estimation
5932         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5933           check for IS_SYMOP before OP_SYMBOL'ing
5934         * fixed indentation, compacted switch-statements
5935         * (allocReg): find free register and allocate it instead of
5936           allocating new registers all the time
5937         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5938           registers as its operands (necessary only for multibyte GETs)
5939
5940 2005-07-01 Raphael Neider <rneider AT web.de>
5941
5942         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5943           debugging .asm-output macros FENTRY + FEXIT
5944         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5945           way... I wonder...
5946         * (emitpComment): NEW, printf to pCode
5947         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5948           offset handling
5949         * (popGetAddr): NEW, variant of popGet to access an immediates
5950           high(er) bytes instead of the n'th byte of memory they reference,
5951           replaced popGet with popGetAddr where neccessary
5952         * (genDataPointerGet): reactivated and fixed implementation
5953         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5954           accesses
5955         * (genDataPointerSet): fixed multibyte assignments
5956         * (genpic14Code): fixed --i-code-in-asm handling
5957         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5958         * (genPlus): fixed index-out-of-bounds error
5959         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5960         * src/pic/ralloc.c: added debugging output macro FENTRY2
5961         * (spillThis): fixed indentation, enbraced for-body for clarity
5962         * (rematStr): commented out as now unused
5963         * (regTypeNum): commented out special spill case (overwrites
5964           arbitrary values)
5965         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5966
5967 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5968
5969         * doc/sdccman.lyx: documented sfr16/sfr32,
5970           added example for using storage class with function pointers
5971         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5972
5973 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5974
5975         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5976         * device/lib/_itoa.c,
5977         * device/lib/_ltoa.c: optimized codesize
5978         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5979           but don't know how to suppress the double warning.
5980         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5981         * support/Util/SDCCerr.c,
5982         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5983
5984 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5985
5986         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5987           fixed old K&R prototypes
5988         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5989         * device/lib/_gptrget.c,
5990         * device/lib/_gptrgetc.c,
5991         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5992           also new versions for small generic pointers and banked generic pointers
5993         * src/port.h: added const_name
5994         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5995         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5996         * src/SDCCcse.c (findPrevIc): check all associative operators
5997         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5998         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5999         * src/SDCCmem.c: updated comments,
6000           set far-space to 0 for pdata, results in optimized code
6001         * src/SDCCmem.h: added macro CONST_NAME
6002         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6003           moving the info into the highest bits, see also gptrget/gptrput
6004         * src/src.dsp: added sdcc.ico to project files
6005         * src/avr/gen.c (genCast): fixed bug 0x%d
6006         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6007         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6008           relation between ptr_type and DCL_TYPE,
6009           (genCast): fixed bug 0x%d
6010         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6011           (CODE)" for const_name
6012         * src/hc08/gen.c (genCast): fixed bug 0x%d
6013         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6014           (hc08_port): added "CONST (CODE)" for const_name
6015         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6016           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6017           between ptr_type and DCL_TYPE,
6018           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6019           operand* and took AOP() inside function so sfr-ness can be checked,
6020           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6021           new prototype,
6022           (genFunction, genEndFunction): optimized stack setup,
6023           (genMinus): optimized for literals with ending zeroes (in bytes),
6024           (genCast): fixed bug 0x%d
6025         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6026           (mcs51_port): added "CONST (CODE)" for const_name
6027         * src/mcs51/peeph.def: made rule 226 more generic
6028         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6029         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6030         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6031         * src/z80/main.c (z80_port): added NULL for const_name,
6032           (gbz80_port): added NULL for const_name
6033         * support/regression/tests/bug663539.c,
6034         * support/regression/tests/sfr16.c: new tests
6035
6036 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6037
6038         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6039
6040 2005-06-24 Raphael Neider <rneider AT web.de>
6041
6042         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6043           corrected typos...
6044         * device/include/pic16/signal.h: added USBIF
6045           and SIG_USB
6046
6047 2005-06-24 Raphael Neider <rneider AT web.de>
6048
6049         * device/lib/pic16/libdev/pic18f2455.c,
6050           device/include/pic16/pic18f2455.h: NEW
6051         * device/include/pic16/pic18fregs.h,
6052           device/lib/pic16/pics.all,
6053           src/pic16/device.c: added 18f2455
6054         * device/lib/pic16/libdev/pic18f[68][567]20.c,
6055           device/include/pic16/{pic18f[68][567].h,usart.h}:
6056           replaced MULTIPLE_USARTS define with more relaible
6057           compatibility sfrs (for USART access)
6058
6059 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
6060
6061         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
6062           and the output asm file line is printed on two lines.
6063
6064 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6065
6066         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
6067           BGT, BLE, BHI, and BLS instructions
6068         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
6069           genCmpEq): removed
6070         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
6071           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
6072           fixes bug #1216342
6073         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
6074
6075 2005-06-15 Raphael Neider <rneider AT web.de>
6076
6077         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
6078         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
6079         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
6080           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
6081           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
6082
6083 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6084
6085         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
6086           Marcel Telka in bug #1215704
6087
6088 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
6089
6090         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
6091           located in shared memory bank.
6092
6093 2005-05-31 Raphael Neider <rneider AT web.de>
6094
6095         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
6096           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
6097           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
6098
6099 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
6100
6101         * device/lib/_strncpy.c: fixed the fix
6102
6103 2005-05-26 Raphael Neider <rneider AT web.de>
6104
6105         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
6106           initializers with \0, bug #1208187
6107         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
6108           intializers with \0, bug #1208187
6109
6110 2005-05-26 Raphael Neider <rneider AT web.de>
6111
6112         * src/pic16/glue.c (pic16_printIvalChar): fixed string
6113           initializers with \0, bug #1208187
6114         * src/pic16/main.c (_process_pragma): added sanity checks
6115           for stack position and size, emit warnings when appropriate
6116
6117 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
6118
6119         * device/lib/_strncpy.c: fixed not filling with \0
6120
6121 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6122
6123         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
6124           createFunction),
6125         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
6126           compound_statement),
6127         * src/SDCCsymt.h,
6128         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
6129
6130 2005-05-24 Raphael Neider <rneider AT web.de>
6131
6132         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
6133
6134 2005-05-24 Raphael Neider <rneider AT web.de>
6135
6136         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
6137           TRISE definitions, closes bug #1162453
6138
6139 2005-05-22 Raphael Neider <rneider AT web.de>
6140
6141         * src/pic16/main.c (_process_pragma): check for missing
6142           arguments to pragmas code and udata
6143         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
6144           consistency fixes to match other headers (thanks to Jim Paris)
6145         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
6146
6147 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
6148
6149         * src/SDCCicode.c (isOperandEqual): fixed missing ;
6150
6151 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
6152
6153         * support/regression/tests/bug1198642.c: new test
6154         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
6155         * src/SDCCcse.c (findPrevIc): added comment, please have a look
6156         * support/scripts/resource.h,
6157         * support/scripts/resource.rc,
6158         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
6159         * support/scripts/sdcc.ico: added 32x32 icon
6160
6161 2005-05-18 Raphael Neider <rneider AT web.de>
6162
6163         * device/lib/pic16/libdev/pic18f*.c,
6164         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
6165           keywords to "__sfr" and "__at (X)"
6166         * device/include/pic16/pic18fregs.h: added pic18f4520
6167         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
6168           #1203088 (MPLAB compatibility)
6169
6170 2005-05-17 Raphael Neider <rneider AT web.de>
6171
6172         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
6173         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
6174         * device/lib/pic16/pics.all: added new devices
6175         * src/pic16/device.c: added support for pic18f4520
6176
6177 2005-05-16 Raphael Neider <rneider AT web.de>
6178         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
6179         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
6180         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
6181           convenience function for bit access
6182
6183 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6184
6185         * device/lib/printf_large.c: fixed bug 1193299
6186         * support/regression/tests/bug1057979.c: added test %3.3s
6187
6188 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6189
6190         * device/include/mcs51/8051.h,
6191         * device/include/mcs51/8052.h: made parseable with lint
6192         * device/include/mcs51/lint.h: added include file for (sp)lint
6193         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
6194         * doc/cdbfileformat.lyx,
6195         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
6196
6197 2005-05-14 Raphael Neider <rneider AT web.de>
6198
6199         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
6200         * device/lib/pic16/libc/stdlib/itoa.c (new)
6201         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
6202         * device/lib/pic16/libio/Makefile: exclude subdir according to
6203           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
6204         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
6205         * src/pic16/gen.c (genFunction): prevent annoying warning
6206         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
6207           nameclashes on BeOS
6208         * support/cpp2/cppmain.c (cpp_output_string): new
6209         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
6210           fixes bug 1116802
6211
6212 2005-05-13 Borut Razem <borut.razem AT siol.net>
6213
6214         * src/SDCCmain.c (linkEdit): fixed bug 1195202
6215
6216 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6217
6218         * .version: changed to version 2.5.1; back to bleeding edge development
6219
6220 2005-05-11 Borut Razem <borut.razem AT siol.net>
6221
6222         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6223           generate PDF version 1.3 documents
6224
6225 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6226
6227         * .version: changed to version 2.5.0
6228
6229 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6230
6231         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6232
6233 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6234
6235         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6236         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6237         well as many smaller updates.
6238         * .version: changed to version 2.5.0-pre1
6239
6240 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6241
6242         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6243
6244 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6245
6246         * support/regression/tests/bug1185672.c: added
6247         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6248           bug 1185672
6249         * src/mcs51/gen.c (genCall): added comments, made it look safer
6250         * src/mcs51/gen.c (genEndFunction): simplified
6251
6252 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6253
6254         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6255
6256 2005-04-14 Borut Razem <borut.razem AT siol.net>
6257
6258         * fixed bug 1045046 - SIGSEGV with really simple code?:
6259           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6260           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6261
6262 2005-04-14 Borut Razem <borut.razem AT siol.net>
6263
6264         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6265           src/pic16/device.h: temporarily disabled experimental #inline pragma
6266           for 2.5.0 release
6267
6268 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6269
6270         * device/include/z80/stdio.h,
6271         * device/include/z80/string.h: removed these highly incomplete files so
6272           SDCC can use the default ones in device/include/
6273
6274 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6275
6276         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6277         gcc warning.
6278         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6279         fix sdcpp warnings.
6280
6281 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6282
6283         * device/include/malloc.h: removed redundant __reentrant prototypes
6284         * device/lib/_mullong.c: added working xstack variant in asm (C version
6285           doesn't pass regression tests)
6286         * device/lib/bpx.c: used __data and made bpx char for mcs51
6287         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6288           (createFunction): fixed bug with xstackPtr
6289         * src/SDCCcse.c: corrected comments
6290         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6291           (killDeadCode, eBBlockFromiCode): removed unused code
6292         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6293           corrected comments
6294         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6295           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6296           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6297           (genModOneByte): fixed warning in MSVC
6298         * src/mcs51/main.c (): added comments
6299         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6300
6301 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6302
6303         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6304
6305 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6306
6307         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6308
6309 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6310
6311         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6312         characters arrays of larger size than the declared one.
6313
6314 2005-04-10 Borut Razem <borut.razem AT siol.net>
6315
6316         * src/pic/gen.c (genInline),
6317           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6318           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6319           (findNextInstruction), (findPrevInstruction),
6320           (findInstructionUsingLabel),
6321           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6322         * src/pic/pcode.c (findLabel): added missing '\n'
6323         * src/src.dsp: added SDCCdwarf2.c to the project
6324
6325 2005-04-09 Borut Razem <borut.razem AT siol.net>
6326
6327         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6328
6329 2005-04-08 Raphael Neider <rneider AT web.de>
6330
6331         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6332           into the chain after a given one) and mergeDefmapSymbols (combine
6333           defmap entries for each symbol per pcode)
6334         * (createDefmap): have defmap entries merged in the end
6335         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6336           a symbol before replacing one access type's symbol, merge symbols in
6337           the end (replacement symbol might already have an entry)
6338         * (assignValnums): keep reference to written WREG intact
6339
6340 2005-04-08 Raphael Neider <rneider AT web.de>
6341
6342         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6343           Alpha)
6344
6345 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6346
6347         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6348         bytes
6349
6350 2005-04-07 Raphael Neider <rneider AT web.de>
6351
6352         * device/include/pic16/usart.h: added compatibility defines for
6353           devices with more than one USART
6354         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6355
6356 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6357
6358         * device/lib/Makefile.in: updated for port specific include
6359
6360 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6361
6362         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6363
6364 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6365
6366         * device/include/8051.h,
6367         * device/include/8052.h,
6368         * device/include/at89S8252.h,
6369         * device/include/at89c55.h,
6370         * device/include/at89x051.h,
6371         * device/include/at89x51.h,
6372         * device/include/at89x52.h,
6373         * device/include/mcs51reg.h,
6374         * device/include/reg51.h,
6375         * device/include/reg764.h,
6376         * device/include/regc515c.h,
6377         * device/include/sab80515.h: (re)moved these 12 files
6378         * device/include/mcs51/8051.h,
6379         * device/include/mcs51/8052.h,
6380         * device/include/mcs51/at89S8252.h,
6381         * device/include/mcs51/at89c55.h,
6382         * device/include/mcs51/at89x051.h,
6383         * device/include/mcs51/at89x51.h,
6384         * device/include/mcs51/at89x52.h,
6385         * device/include/mcs51/mcs51reg.h,
6386         * device/include/mcs51/reg51.h,
6387         * device/include/mcs51/reg764.h,
6388         * device/include/mcs51/regc515c.h,
6389         * device/include/mcs51/sab80515.h: and added them here
6390
6391 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6392
6393         * device/include/stdarg.h: changed SDCC specific keywords to double
6394           underlined form.
6395         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6396           mcs51 and ds390.
6397         * device/include/hc08/mc68hc908gp32.h,
6398         * device/include/hc08/mc68hc908jb8.h,
6399         * device/include/hc08/mc68hc908jkjl.h,
6400         * device/include/hc08/mc68hc908qy.h: fixed comments
6401         * device/include/mcs51/README: updated
6402         * device/include/mcs51/c8051f120.h: added PINRSF
6403         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6404         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6405           amidst code. Also inline is not supported.
6406
6407 2005-04-06 Raphael Neider <rneider AT web.de>
6408
6409         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6410         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6411           callers stack/frame pointers
6412
6413 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6414
6415         * device/include/pic16/usart.h: added, missing in previous commit,
6416         * device/include/pic16/adc.h: fixed typo,
6417         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6418         commit,
6419         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6420         <p18fxxx.inc>
6421         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6422         uninitialized because a bug appears with gplink
6423         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6424         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6425         complains for unrecognised option
6426
6427 2005-04-05 Raphael Neider <rneider AT web.de>
6428
6429         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6430           structs as well (using memcpy)
6431         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6432           on ISRs (GOTO has no label)
6433         * src/pic16/device.h: added OF_OPTIMIZE_DF
6434         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6435           new data flow analysis/optimization
6436         * src/pic16/pcode.c: added (prototypes for and implementation of)
6437           dataflow analysis functions, fixed pCodeInstructions' inCond and
6438           outCond values, made RCALL a branch instruction
6439         * (pic16_unlinkpCode): keep C line if possible
6440         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6441           C line moved if possible
6442         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6443         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6444           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6445         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6446           new flow)
6447         * (pic16_getJumptabpCode): NEW, needed in...
6448         * (LinkFlow): fixed handling of jumptables, calls and conditional
6449           branches
6450         * (pic16_InsertCommentAfter): NEW
6451         * (pic16_pCodeReplace): made verbose and flow preserving
6452         * (AnalyzeFlow): added call to data flow analysis
6453         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6454         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6455         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6456
6457 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6458
6459         * src/SDCCast.c (decorateType): fixed bug #1105626
6460
6461 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6462
6463         * device/include/asm/pic16/features.h,
6464         * pic18f*.h headers,
6465         * device/include/pic16/adc.h,
6466         * device/include/pic16/delay.h,
6467         * device/include/pic16/i2c.h,
6468         * device/include/pic16/malloc.h,
6469         * device/include/pic16/stdio.h,
6470         * device/include/pic16/stdlib.h,
6471         * device/include/pic16/string.h,
6472         * device/lib/pic16/libc/stdio/printf_tiny.c,
6473         * device/lib/pic16/libc/stdio/printf_small.c,
6474         * device/lib/pic16/libc/stdio/strmgpsim.c,
6475         * device/lib/pic16/libc/stdio/strmmssp.c,
6476         * device/lib/pic16/libc/stdio/strmusart.c,
6477         * device/lib/pic16/libc/stdio/vfprintf.c,
6478         * device/lib/pic16/libc/stdlib/ltoa.c,
6479         * device/lib/pic16/libc/stdlib/putchar.c,
6480         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6481         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6482         * device/lib/pic16/libc/stdlib/memchrram.c,
6483         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6484         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6485         * device/lib/pic16/libio/adc/adcbusy.c,
6486         * device/lib/pic16/libio/adc/adcread.c,
6487         * device/lib/pic16/libio/adc/adcsetch.c,
6488         * device/lib/pic16/libio/usart/ubaud.c,
6489         * device/lib/pic16/libio/usart/ubusy.c,
6490         * device/lib/pic16/libio/usart/udrdy.c,
6491         * device/lib/pic16/libio/usart/uopen.c,
6492         * device/lib/pic16/libio/usart/uputc.c,
6493         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6494         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6495         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6496         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6497         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6498         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6499         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6500         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6501         specific keywords to double underlined form,
6502         * device/lib/pic16/libc/Makefile.rules,
6503         * device/lib/pic16/libsdcc/Makefile.rules,
6504         * device/lib/pic16/libm/Makefile,
6505         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6506         to compile with C standard set in Makefile.common
6507         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6508         rand.c and crc.c in compilation process,
6509         * device/lib/pic16/libsdcc/int/divuint.c,
6510         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6511         `c' from signed to unsigned,
6512         * device/lib/pic16/startup/crt0.c,
6513         * device/lib/pic16/startup/crt0i.c,
6514         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6515         keywords to double underlined form, bug fixes in _do_cinit function
6516         which prevented the correct initialization of the .idata segment,
6517         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6518         core to enter a infinite loop
6519         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6520
6521 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6522
6523         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6524
6525 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6526
6527         * device/include/Makefile.in: add support for hc08 subdirectory
6528         * device/include/hc08/: new subdirectory
6529         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6530         Lucas Loizaga, thanks!
6531         * device/include/hc08/mc68hc908qy.h,
6532         * device/include/hc08/mc68hc908gp32.h,
6533         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6534         their own directory. Changed internal macro names to use the compiler
6535         reserved namespace. Changed SDCC specific keywords to double
6536         underlined form.
6537         * device/include/math.h,
6538         * device/include/malloc.h,
6539         * device/include/stdarg.h,
6540         * device/include/stdbool.h
6541         * device/include/string.h,
6542         * device/include/tinibios.h,
6543         * device/include/ds400rom.h,
6544         * device/include/8051.h,
6545         * device/include/8052.h,
6546         * device/include/80c51xa.h,
6547         * device/include/at89c55.h,
6548         * device/include/at89S8252.h,
6549         * device/include/at89x51.h,
6550         * device/include/at89x52.h,
6551         * device/include/ds80c390.h,
6552         * device/include/reg764.h,
6553         * device/include/regc515c.h,
6554         * device/include/sab80515.h,
6555         * device/include/mcs51/c8051f000.h,
6556         * device/include/mcs51/c8051f018.h,
6557         * device/include/mcs51/c8051f020.h,
6558         * device/include/mcs51/c8051f040.h,
6559         * device/include/mcs51/c8051f060.h,
6560         * device/include/mcs51/c8051f120.h,
6561         * device/include/mcs51/c8051f300.h,
6562         * device/include/mcs51/c8051f310.h,
6563         * device/include/mcs51/c8051f320.h,
6564         * device/include/mcs51/c8051f330.h,
6565         * device/include/mcs51/c8051f350.h,
6566         * device/include/z180.h: Changed SDCC specific keywords to double
6567         underlined form.
6568
6569 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6570
6571         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6572         18F4455,
6573         * (pic16_assignConfigWordValue): disable testing of configuration
6574         register value with config mask,
6575         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6576         function with port->fun_prefix,
6577         * (genFunction): when generating a naked interrupt function never
6578         create an absolute segment placed in interrupt vector address, place
6579         the actual interrupt function at IVA instead, when an interrupt
6580         function is generated with unspecified interrupt then do not create
6581         the absolute section,
6582         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6583         code for generating a call to generic pointer get/put function with
6584         a call to function pic16_callGenericPointer(),
6585         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6586         the call to the generic pointer get/put functions with prefixing the
6587         function name with port->fun_prefix,
6588         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6589         * src/pic16/main.c (_process_pragma): prefix function with
6590         port->fun_prefix,
6591         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6592         calling assembler, old 18Fxxxx macro is deprecated,
6593         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6594         PC_ASMDIR in while condition,
6595         * (findInstruction): add PC_ASMDIR in while condition,
6596         * (buildCallTree): prefix main with port->fun_prefix,
6597         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6598         identifier for variable with banked access in instructions BTFSS,
6599         BTFSC, BCF, BSF, BTG
6600         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6601         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6602         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6603         perform optimization when enviroment variable NO_REG_OPT is set,
6604         * (insideLRBlock): NEW, return 1 if register is inside an
6605         INF_LOCALREGS block,
6606         * (RemoveRegFromLRBlock): remove a register that is completely
6607         eliminated by register optimization, but it is still left in local
6608         register store/restore in/from stack block,
6609         * (Remove2pcodes): after removing register, check to see if it
6610         should be removed from local register store/restore in/from stack
6611         block,
6612         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6613         DUMMY_READ_VOLATILE,
6614
6615         * device/include/pic16/adc.h: minor prototype modifications and
6616         update,
6617         * device/include/pic16/malloc.h: added GPL notice various
6618         modifications,
6619         * device/include/pic16/stdint.h: NEW, standard header for ints
6620         * device/include/pic16/delay.h: NEW, header for delay functions,
6621         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6622         delay1mtcy,
6623         * device/include/pic16/signal.h: NEW, header providing helper macros
6624         for implementing signal handlers,
6625         * device/include/pic16/stdio.h: added prototypes for functions,
6626         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6627         prototypes for stdin and stdout, added macro PUTCHAR to
6628         automatically implement putchar function prototype,
6629         * device/include/pic16/usart.h: modified and updated USART library,
6630         * device/lib/pic16/libio/adc/,
6631         * device/lib/pic16/libio/i2c: some modifications to improve library
6632         performance,
6633         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6634         family of functions,
6635         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6636         family of functions and other sources,
6637         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6638         of the PIC18Fxx[28] devices,
6639         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6640         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6641         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6642         _do_cinit function, because the previous failed when local variables
6643         where not placed in the same memory bank,
6644         * device/lib/pic16/libsdcc/char/: various modifications to improve
6645         library performance,
6646         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6647         information on the new functions of the c library and more...
6648
6649 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6650
6651         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6652
6653 2005-03-26 Raphael Neider <rneider AT web.de>
6654
6655         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6656           if condition == CARRY)
6657         * (genCmp): adapted to new genSkipc semantics
6658         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6659           on rIfx (genCmp was broken)
6660
6661 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6662
6663         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6664         * src/z80/main.c (_keywords[]),
6665         * src/SDCCglobal.h (struct options),
6666         * src/SDCC.y,
6667         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6668         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6669         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6670         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6671         always available in leading double underscore form. The C99 support is
6672         mostly missing, but it's a start.
6673         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6674         reserved identifier "__data".
6675
6676 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6677
6678         * src/mcs51/peeph.def: fixed bug 1170013
6679
6680 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6681
6682         * device/include/mcs51reg.h: fixed bug 842007
6683
6684 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6685
6686         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6687         last time.
6688
6689 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6690
6691         * src/port.h (struct PORT),
6692         * src/avr/ralloc.c (avr_assignRegisters),
6693         * src/avr/main.c,
6694         * src/ds390/ralloc.c (ds390_assignRegisters),
6695         * src/ds390/main.c,
6696         * src/hc08/ralloc.c (hc08_assignRegisters),
6697         * src/hc08/main.c,
6698         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6699         * src/mcs51/main.c,
6700         * src/pic/ralloc.c (pic14_assignRegisters),
6701         * src/pic/main.c,
6702         * src/pic16/ralloc.c (pic16_assignRegisters),
6703         * src/pic16/main.c,
6704         * src/xa51/ralloc.c (xa51_assignRegisters),
6705         * src/xa51/main.c,
6706         * src/z80/ralloc.c (z80_assignRegisters),
6707         * src/z80/ralloc.h,
6708         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6709         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6710         * src/SDCCcse.h,
6711         * src/SDCCdflow.c (computeDataFlow),
6712         * src/SDCCdflow.h,
6713         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6714         * src/SDCCloop.h,
6715         * src/SDCCcflow.c (*),
6716         * src/SDCCcflow.h,
6717         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6718         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6719         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6720         immedDom() returning wrong block; probably fixes bug #1160833)
6721
6722 2005-03-20 Borut Razem <borut.razem AT siol.net>
6723
6724         * support/scripts/inc2h.pl: WIN32 port
6725
6726 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6727
6728         * device/lib/makefile.in: added abs.c and labs.c
6729
6730 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6731
6732         * device/include/stdint.h: added
6733         * device/lib/abs.c: added
6734         * device/lib/labs.c: added
6735         * device/include/stdlib.h: added abs() and labs() prototypes
6736         * device/lib/libsdcc.lib: added abs and labs
6737         * device/include/float.h,
6738         * device/lib/_fsmul.c,
6739         * device/lib/printf_fast.c,
6740         * device/lib/printf_tiny.c: updated comments
6741
6742 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6743
6744         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6745         bug #1164313
6746
6747 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6748
6749         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6750         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6751
6752 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6753
6754         * device/lib/printf_large.c: removed inline assembly for portability and
6755           readability. Use printf_fast if speed or size are more important.
6756         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6757         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6758
6759 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6760
6761         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6762         prevent compiler warning
6763
6764 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6765
6766         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6767         moved to level 0 and declared as static. Also they are explicit
6768         placed in access bank. This was necessery because some times they
6769         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6770         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6771         optimizations. Currently only compare to unsigned char is implemented,
6772         * src/pic16/gen.c: added fReturnIdx array,
6773         * (struct resolvedIfx) is moved to gen.h and made public,
6774         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6775         * (aopForSym): added an optimization to directly store in stack of
6776         the operand of a SEND iCode,
6777         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6778         but as registers instead (AOP_REG) using the fReturnIdx array,
6779         * (pic16_freeAsmop): remove the freed register from the
6780         _G.sregsAlloc field,
6781         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6782         a compare of 'WREG',
6783         * (pic16_popGetTempRegCond): changed function prototype, now
6784         function takes also a bitVector argument v which holds the current
6785         set of registers that are allocated for stack access by aopForSym,
6786         registers allocated in aopForSym for accessing stack symbols are not
6787         any more part of the functions usedRegs field,
6788         * (genCall): some times aopOp is called for a stack variable to be
6789         send, aopForSym might perform the push, if this is true make sure
6790         that genCall doesn't push the variable twice by testing _G.resDirect,
6791         * (genFunction): changed testing for unspecified interrupt number
6792         from 256 to INTNO_UNSPEC,
6793         * modified selection scheme of frame pointer generation. Previously
6794         if function did use local registers a frame pointer was generated,
6795         now a frame pointer is generated only if function has arguments
6796         (that need PLUSW2 register access), or has stack arguments, or the
6797         compiler is not instructed to omit the frame pointer,
6798         * (genEndFunction): before restoring local registers that were saved
6799         in the function preamble, also restore the registers that *might*
6800         have been allocated for stack access,
6801         * (genRet): removed some old comments,
6802         * (genCmp, the active (RN's) version): added a call to the
6803         pic16_genCmp_special function to perform the compare with a more
6804         robust and optimized way,
6805         * (genInline): a feature has been added in inline code generation,
6806         which allows a wildcard variable substitution when writing inline
6807         assembly. Code is incomplete and experimental therefore undocumented,
6808         * (genCast): changed order of aopOp for result and right to allow
6809         aopForSym to directly load the result if possible,
6810         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6811         perform an optimized compare on some selected special occasions,
6812         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6813         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6814         generate an IVT any more,
6815         * src/pic16/main.c (pic16_optionsTable): added command line option
6816         --optimize-cmp,
6817         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6818         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6819         macros,
6820         * src/pic16/NOTES: Raphael Neider added in list of active developers
6821         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6822         jumptable_end to prevent bug #,
6823         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6824         inCond and outCond fields,
6825         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6826         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6827         turn off register spilling,
6828         * (packRegsForOneUse): synced with other ports' versions although it
6829         is not used currently,
6830         * (pic16_packRegisters): added an optimization while reading
6831         structure bitfields, some registers may be saved (malloc code is
6832         decreased by 80 bytes)
6833
6834 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6835
6836         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6837         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6838         this can be optimized more?
6839
6840 2005-03-10 Raphael Neider <rneider AT web.de>
6841
6842         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6843           genNearPointerGet): (hopefully) fixed access to bitfields via
6844           pointers (p->bitN = x; and x = p->bitN; failed)
6845
6846 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6847
6848         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6849
6850 2005-03-09 Raphael Neider <rneider AT web.de>
6851
6852         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6853
6854 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6855
6856         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6857         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6858           (regTypeNum): set REG_BIT type if necessary
6859         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6860         * support/regression/tests/critical.c: check bug 1144613
6861
6862 2005-03-02 Raphael Neider <rneider AT web.de>
6863
6864         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6865
6866 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6867
6868         * src/avr/ralloc.c (serialRegAssign),
6869         * src/ds390/ralloc.c (serialRegAssign),
6870         * src/hc08/ralloc.c (serialRegAssign),
6871         * src/mcs51/ralloc.c (serialRegAssign),
6872         * src/pic/ralloc.c (serialRegAssign),
6873         * src/pic16/ralloc.c (serialRegAssign),
6874         * src/xa51/ralloc.c (serialRegAssign),
6875         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6876
6877 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6878
6879         * src/SDCCast.c (decorateType): fixed bug 1124787
6880
6881 2005-02-20 Hubert Sack <sack AT digiplan.de>
6882         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6883
6884         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6885         patch #1121755
6886
6887 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6888
6889         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6890         to keep the correct label reference count when adding/removing references
6891         to labels. A peephole file using this is appended to patch #1144962.
6892
6893 2005-02-14 Raphael Neider <rneider AT web.de>
6894
6895         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6896         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6897         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6898           retrievals of result operand's value on assignment
6899
6900 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6901
6902         * device/include/pic16/string.h: modified prototype for memccpy()
6903         to memccpy(void *, void *, char, size_t)
6904         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6905         check whether to omit frame pointer or not,
6906         * (genInline): convert all occurences of "\n" to LF in inline
6907         assembler blocks, this helps formatting the inline text,
6908         * (pic16_loadFSR0): modified prototype,
6909         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6910         removed some 8051 legacy code,
6911         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6912         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6913         before allocating temporary registers in functions,
6914
6915 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6916
6917         * support/regression/tests/bitvars.c: corrected the "fix"
6918
6919 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6920
6921         * support/regression/tests/bitvars.c,
6922         * support/regression/tests/bitwise.c,
6923         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6924
6925 2005-02-10 Raphael Neider <rneider AT web.de>
6926
6927         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6928           different size for Alpha
6929         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6930
6931 2005-02-09 Raphael Neider <rneider AT web.de>
6932
6933         * src/SDCC.lex(doPragma) : save and restore warning options as well
6934           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6935         * have #pragma less_pedantic set the errorlevel to WARNING
6936           (fixes #1117001)
6937         * (cloneOptimize) : fixed wrong malloc's size
6938         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6939           facilitate correct handling of #pragma (save|restore)
6940
6941 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6942
6943         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6944
6945 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6946
6947         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6948
6949 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6950
6951         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6952
6953 2005-02-02 Raphael Neider <rneider AT web.de>
6954
6955         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6956         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6957         * (pic16_storeForReturn): fixed to allow returning function pointers
6958         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6959         * device/include/pic16/{stddef.h,stdbool.h}: added
6960
6961 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6962
6963         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6964
6965 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6966
6967         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6968         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6969          appeared to be required
6970
6971 2005-01-31 Borut Razem <borut.razem AT siol.net>
6972
6973         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6974           include/mcs51 and include/z80 directories to the package
6975
6976 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6977
6978         * src/hc08/gen.c (genFunction): fixed bug #1112752
6979
6980 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6981
6982         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6983
6984 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6985
6986         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6987
6988 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6989
6990         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6991
6992 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6993
6994         * device/include/c8051fxxx.h: removed these 6 files
6995         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6996
6997 2005-01-26 Raphael Neider <rneider AT web.de>
6998
6999         * src/pic16/gen.c (genAssign): fixed assignment from longs
7000           in codespace (were cut to three bytes)
7001         * (genDummyRead): implemented (except for CODESPACE...),
7002           fixed bug #1108575
7003         * src/pic16/glue.c (emitStatistics): beautified
7004         * device/lib/pic16/libm/Makefile: added include path
7005
7006 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7007
7008         * src/z80/gen.c (aopPut): fixed bug #1103902
7009
7010 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7011
7012         * device/lib/expf.c: fixed bug #1095792
7013
7014 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7015
7016         * device/lib/pic16/libm: added Math library sources
7017
7018 2005-01-24 Raphael Neider <rneider AT web.de>
7019
7020         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7021           to enable upcast to pCodeOpReg2 (there is no type tag to
7022           differenciate the two and pic16_popGet2p cast into PCOR2)
7023         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7024           (sizeof(sectNames) changed to sizeof(sectName))
7025           Both patches fix segfaults under MinGW.
7026
7027 2005-01-23 Raphael Neider <rneider AT web.de>
7028
7029         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7030           Safe_[mc]?alloc()'ed variables
7031         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7032           of (byte sized) temporaries (assign them to WREG for now)
7033         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7034           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7035           this might fix SIGSEGVs on MinGW...
7036         * src/SDCCopt.c (killDeadCode): restored original behaviour
7037           (volatile operands might get thrown away though)
7038
7039 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7040
7041         * src/pic16/gen.c: fixed bug #1106975,
7042         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7043         pointer update, INTCON is saved, global interrupts are disabled and
7044         restored after updateing TOS.
7045         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7046         * added function attribute 'shadowregs' to take advantage of shadow
7047         registers,
7048         * added function attribute 'wparam' as an alternative to the wparam
7049         pragma,
7050         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7051         user declares a non-ISR function as 'shadowregs',
7052         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7053
7054 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
7055
7056         * .version: bumped version number to 2.4.8
7057         * device/lib/pic16/pics.all: list of PIC18F devices supported by
7058         pic16 port,
7059         * device/lib/pic16/libio/i2c/: I2C module support library,
7060         * device/include/pic16/i2c.h: I2C support library header,
7061         * device/lib/pic16/libc/stdio/: standard IO support sources,
7062         * (printf_small.c): printf_small() source, supports float print,
7063         * (printf_tiny.c): printf_tiny() source, does not support floats,
7064         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
7065         enable global optimizations for entire library source, other
7066         Makefiles in the source tree are also modified to reflect this,
7067         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
7068         function,
7069         * doc/sdccman.lyx: updated to reflect new changes,
7070         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
7071         sym->onStack if-case,
7072         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
7073         sbit, idata, _idata, xdata, _xdata,
7074         * added pragma library, to link an external library, (see doc),
7075         * removed command line options, --pomit-config-words, --pomit-ivt,
7076         --pleave-reset-vector,
7077         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
7078         when calling assembler to reflect memory model used, also define
7079         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
7080         reflect stack model used,
7081         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
7082         on stack return NULL,
7083
7084 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7085
7086         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
7087           of the operands is volatile. Fixes #1020220
7088
7089 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
7090
7091         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
7092         * (OptimizeRegUsage): make sure that there is really no other flow where
7093           the first pCode is used
7094
7095 2005-01-22 Raphael Neider <rneider AT web.de>
7096
7097         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
7098           to fix #1106967 (pCode->seq are not set up correctly)
7099
7100 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7101
7102         * src/SDCCglue.c (glue): make sure code area is declared before the
7103         static initialization area.
7104
7105 2005-01-21 Raphael Neider <rneider AT web.de>
7106
7107         * device/lib/Makefile.in: fixed test for pic16 install dir
7108         * device/lib/pic16/*/Makefile*: modified compile flags to enable
7109           optimizations
7110         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
7111           added --optimize-goto compiler switch and pragma wparam documentation
7112         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
7113         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
7114           and PRODH closing bug #1071770 (peephole optimizer)
7115
7116 2005-01-19 Raphael Neider <rneider AT web.de>
7117
7118         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
7119           cmdLine buffers (used when calling sdcpp...) are large enough
7120           (MAX_PATH=256 truncates arguments leading to system halts when
7121           used in MinGW...)
7122         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
7123         * (genUminus): rewritten to for efficiency
7124         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
7125           used uninitialized in some cases)
7126         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
7127           copy the third byte from the int -- now assumes 0x80 (data memory)
7128         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
7129           operands (genAddLit expects the iCode's operands to swapped as
7130           well), fixed leftover bytes (crashed for short left operands)
7131         * (pic16_genMinusDec): performance improvements, removed false
7132           PIC14 emitSKPNCs
7133         * (pic16_genMinus): fixed to cope with differently sized operands
7134         * src/pic16/glue.c (pic16_glue): added new banksel optimization
7135           for --obanksel > 1
7136         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
7137         * src/pic16/graph.[ch]: implementation of directed graphs, used by
7138           new banksel optimization
7139         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
7140           analysis for temporary registers (segfaults...)
7141         * src/pic16/peeph.def: added rule
7142
7143 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
7144
7145         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
7146         which converts a float number to its ASCII representation
7147         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
7148         functions to convert the fractional and integer part of a float to ASCII,
7149         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
7150         realloc.c): added _MALLOC_SPEC to explicit place variables in data
7151         ram
7152         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
7153         _STATMEM macros,
7154         * device/include/pic16/adc.h: added GPL info,
7155         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
7156         a pCodeOp as tested operand,
7157         * (genNearPointerGet): optimized bit testing, does not use
7158         intermediate register for bit value, test directly instead with
7159         BTFSS, BTFSC, works only for single bits,
7160         * (genpic16Code): dump the name of the iCode in the asm,
7161         * src/pic16/ralloc.c (decodeOp): removed static declaration and
7162         renamed to pic16_decodeOp,
7163         * (serialRegAssign): do not allocate a temporary register for iCode
7164         sequences that test a single bit for 1/0
7165
7166 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
7167
7168         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
7169         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
7170         access stack and frame pointers. They are initially assigned to
7171         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
7172         accessing SFRs. Updated all occurences of modification of stack or
7173         frame pointer in gen.c and pcode.c,
7174         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
7175         assigning of a literal value to pointers,
7176         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
7177         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
7178         selected
7179
7180 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7181
7182         * doc/sdccman.lyx: update documentation about stack pragma, added
7183         some info for stack memory models
7184
7185 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7186
7187         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
7188
7189 2005-01-08 Raphael Neider <rneider AT web.de>
7190
7191         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
7192           udata sections to fix bug #1097823
7193
7194 2005-01-05 Raphael Neider <rneider AT web.de>
7195
7196         * src/pic16/gen.c (genGenericShift): added handling of differently
7197           sized left operand and result
7198
7199 2005-01-04 Raphael Neider <rneider AT web.de>
7200
7201         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
7202         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
7203           to hold the condition bit)
7204         * added new version of genCmp (old code available via #define)
7205         * added new version of genShiftLeft/genShiftRight in a generic
7206           way, now supports shifting by negative values
7207         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
7208           shiftCount (expected by genGenericShift)
7209         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
7210         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
7211           dump
7212         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
7213           is an invalid literal too...)
7214
7215 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
7216
7217         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7218         from Raphael Neider,
7219         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7220         for 8-bit literals. This fixes some literal operands which are sign
7221         extended to 16-bits ints when instruction needs only 8-bits.
7222
7223 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7224
7225         * device/lib/logf.c: added mcs51 assembly version
7226         * device/lib/expf.c: added mcs51 assembly version
7227         * device/lib/_logexpf.c: new shared asm code for expf and logf
7228         * device/include/math.h: add defines for assembly math library
7229         * device/lib/Makefile.in: build new _logexpf.c
7230         * device/lib/libfloat.lib: use new _logexpf.c
7231
7232 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7233
7234         * src/pic/device.c
7235         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7236           device types which have less than 0x7f registers.
7237
7238 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7239
7240         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7241
7242 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7243
7244         * device/lib/printf_fast.c: only build on supported arch.
7245         * device/lib/printf_tiny.c: only build on supported arch.
7246         * device/lib/printf_fast_f.c: only build if asm float lib
7247         * device/lib/_fsget1arg.c: only build if asm float lib
7248         * device/lib/_fsget2args.c: only build if asm float lib
7249         * device/lib/_fsnormalize.c: only build if asm float lib
7250         * device/lib/_fsreturnval.c: only build if asm float lib
7251         * device/lib/_fsrshift.c: only build if asm float lib
7252         * device/lib/_fsswapargs.c: only build if asm float lib
7253         * device/include/stdio.h: don't provide print_fast,
7254           print_fast_f, print_tiny prototypes if --xstack used
7255
7256 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7257
7258         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7259         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7260           to the SOURCES
7261
7262 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7263
7264         * device/lib/printf_fast_f.c: same as printf_fast, but
7265           with floating point enabled
7266         * device/lib/printf_fast.c: minor tweaks
7267         * device/include/stdio.h: add printf_fast_f
7268
7269 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7270
7271         * src/SDCCmain.c: make --float-reent default for mcs51
7272         * device/lib/_fsadd.c: added mcs51 assembly version
7273         * device/lib/_fssub.c: added mcs51 assembly version
7274         * device/lib/_fsmul.c: added mcs51 assembly version
7275         * device/lib/_fsdiv.c: added mcs51 assembly version
7276         * device/lib/_fseq.c: added mcs51 assembly version
7277         * device/lib/_fsneq.c: added mcs51 assembly version
7278         * device/lib/_fsgt.c: added mcs51 assembly version
7279         * device/lib/_fslt.c: added mcs51 assembly version
7280         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7281         * device/lib/Makefile.in: add _fscmp to build
7282         * device/lib/libfloat.lib: add _fscmp to build
7283
7284 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7285
7286         * device/lib/_fs2slong.c: added mcs51 assembly version
7287         * device/lib/_fs2sint.c: added mcs51 assembly version
7288         * device/lib/_fs2schar.c: added mcs51 assembly version
7289         * device/lib/_fs2ulong.c: added mcs51 assembly version
7290         * device/lib/_fs2uint.c: added mcs51 assembly version
7291         * device/lib/_fs2uchar.c: added mcs51 assembly version
7292         * device/lib/_slong2fs.c: added mcs51 assembly version
7293         * device/lib/_sint2fs.c: added mcs51 assembly version
7294         * device/lib/_schar2fs.c: added mcs51 assembly version
7295         * device/lib/_ulong2fs.c: added mcs51 assembly version
7296         * device/lib/_uint2fs.c: added mcs51 assembly version
7297         * device/lib/_uchar2fs.c: added mcs51 assembly version
7298         * device/include/float.h: added #define to select asm vs c
7299
7300 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7301
7302         * device/lib/printf_fast.c: improvements to float output
7303         * device/include/float.h: add defines for assembly float library
7304         * device/lib/_fsget1arg.c: receive 1 float arg
7305         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7306         * device/lib/_fsnormalize.c: normalize a float
7307         * device/lib/_fsreturnval.c: return float, various helper routines
7308         * device/lib/_fsrshift.c: right shift a float's mantissa
7309         * device/lib/_fsswapargs.c: swap 2 floats
7310         * device/lib/Makefile.in: build these 6 new files for mcs51
7311         * device/lib/libfloat.lib: add these 6 files to the library
7312
7313 2004-12-26 Borut Razem <borut.razem AT siol.net>
7314
7315         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7316           built by gcc 3.4.2
7317
7318 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7319
7320         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7321           and fully reentrant and register bank neutral.
7322         * device/lib/printf_fast.c: added float (not enabled by default),
7323           added compact/slower integer (also not enabled by default),
7324           improved size/speed of fast integer code, other minor changes
7325         * device/include/stdio.h, device/lib/Makefile.in,
7326           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7327
7328 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7329
7330         * src/pic16/pcode.c: declaring variables other than at the start of a
7331           block is not supported in C by VC6.
7332
7333 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7334
7335         * applied a previous patch from Raphael Neider that wasn't included
7336         in the previous commits, which fixes infinite loops within jumptable
7337         improvements,
7338         * made some fixes that previous patches introduced
7339
7340 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7341
7342         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7343         that fixes an issue with AOP_PCODE asmop's offset,
7344         * (pic16_popCopyReg): update instance field too,
7345         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7346         function of pic port,
7347         * (genCmp, genAnd, genAssign),
7348         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7349
7350 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7351
7352         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7353         variables initial values to idata section,
7354         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7355         variables in some functions. This utilizes parmBytes field of iCode
7356         structure to hold the offset of the variable in stack. (might be
7357         able to use the stack field too?)
7358         * applied patch from Raphael Neider # ### , # ###
7359         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7360         variable initial values in idata section,
7361         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7362         for static variables with initial value
7363         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7364         applied fix in while loop from Raphael Neider.
7365
7366 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7367
7368         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7369         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7370         * src/ds390/ralloc.c (serialRegAssign): spill bits
7371         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7372         * support/Util/SDCCerr.c,
7373         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7374         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7375         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7376
7377 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7378
7379         * device/include/sdcc-lib.h: inserted LGPL, added includes
7380           asm/ds390/features.h and asm/mcs51/features.h
7381         * device/include/asm/default/features.h,
7382         * device/include/asm/gbz80/features.h,
7383         * device/include/asm/z80/features.h: added empty _AUTOMEM
7384           and _STATMEM
7385         * device/include/asm/ds390/features.h,
7386         * device/include/asm/mcs51/features.h: added files with defines for
7387           _AUTOMEM and _STATMEM indicating automatic and static storage class
7388         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7389         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7390         * src/SDCCicode.c (geniCodeCast),
7391         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7392         * src/SDCCloop.c (loopInduction): removed unused variable lr
7393         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7394           to convertToFcall to include char modulo (RFE 1065037), added check
7395           if left operand is unsigned and use abs of literal value
7396         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7397           as it doesn't work after conversion from peephole.def to peephole.rul
7398         * src/mcs51/gen.c (toBoolean): added check for size,
7399           (genModOneByte): optimized code for signed char modulo a literal
7400           power of 2 (thanks to Hubert Sack),
7401           (genRRC): removed unnecessary "clr c",
7402           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7403         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7404           jump optimization,
7405           swapped rules 256.c and 256.d,
7406           extended 256.d by using new multiple checks (thanks Erik),
7407           added rules 256.e and 256.f,
7408           updated rule 261.a and 261.b to new generated code
7409         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7410
7411 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7412
7413         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7414           induction related bugs, including first part of bug #1074377
7415
7416 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7417
7418         * applied patch from bug-report #1076292,
7419         * applied patches for genAnd and Goto-optimizations for Raphael
7420         Neider,
7421         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7422         dump a less iCode information,
7423         * src/pic16/device.h (pic16_options_t): added field debgen,
7424         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7425         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7426         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7427         puclic,
7428         * (various functions): added macros FENTRY and FENTRY2 to functions,
7429         to emit function prologue,
7430         * (various functions): fixed indentation,
7431         * (genNearPointerGet): fixed loading of FSR0,
7432         * (genPackBits): applied patch from Raphael Neider to fix updating
7433         of FSR0 and touching only the modified bits,
7434         * src/pic16/genarith.c (various functions): added macros FENTRY to
7435         emit function prologue in comments,
7436         * src/pic16/pcode.h: added functions debugf2, debugf3,
7437         * src/pic16/ralloc.c: partial fix for packForPush caused
7438         segmentation fault,
7439
7440 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7441
7442         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7443           <stsp AT users.sourceforge.net> with reversed byte order
7444         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7445
7446 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7447
7448         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7449           bug #1074377
7450         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7451         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7452
7453 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7454
7455         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7456
7457 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7458
7459         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7460           conditions,
7461           (setFromConditionArgs): friendly operand parser for peephole rules,
7462           (operandBaseName, operandsNotRelated): new peephole condition
7463           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7464           architecture specific register naming into account, handles n-way
7465           comparisons, and supports quoted literals
7466         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7467
7468 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7469
7470         * src/mcs51/peeph.def: fixed bug #1076940
7471
7472 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7473
7474         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7475
7476 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7477
7478         Adding support for replacing ljmps with sjmps in jumptables
7479         generated for switch statements. For now you need to set the
7480         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7481         Now 4 algorithms for mcs51 jumptable generation are used:
7482         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7483         addresses loaded pc-relative for up to 112 cases and stack-pushing
7484         target addresses loaded with offset from dptr for up to 256 cases.
7485
7486         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7487         * src/mcs51/main.c: adapted constants for switch table generation
7488         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7489
7490 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7491
7492         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7493         * support/regression/tests/bug1057979.c: added test for bug 1073386
7494
7495 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7496
7497         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7498         compilers
7499
7500 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7501
7502         * src/pic16/device.h,
7503         * src/pic16/genarith.c,
7504         * src/pic16/glue.c,
7505         * src/pic16/main.c,
7506         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7507
7508 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7509
7510         Large cummulative patch for pic16 port.
7511         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7512         to call when a stack overflow occurs,
7513         * (malloc.h): added CVS Id tag,
7514         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7515         variable,
7516         * added libc directory. The current version of LibC contains string
7517         functions, ctype functions and macros and some functions of the
7518         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7519         be extensively tested in the future. Standard disclaimer here.
7520         Library is not automatically build yet. But one can build it by
7521         invoking 'make' inside the libc directory.
7522         * added ADC library under libio. Preliminary version yet.
7523
7524         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7525         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7526         aopForRemat() now and not by pic16_aopOp(),
7527         * (pic16_popGetTempReg): removed warning messgae when allocating
7528         temporary registers, its a buggy feature and will be removed,
7529         * (pic16_popGet): set register instance field in AOP_CRY,
7530         * (pic16_outBitC): fixed for results in size greater than 1,
7531         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7532         * (pic16_storeForReturn): optimized return of 0,
7533         * (genCmp): experimental code for new genCmp which uses PIC18's
7534         special compare&skip instructions. Initial tests fail some times
7535         with variables grater than 1 byte in size, so new code is disabled,
7536         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7537         a single bit,
7538         * (genCast): began a fix to optimize the casting of a bit to another
7539         bit, now assigning a bitfield to another bitfield will fail, sorry,
7540         * src/pic16/main.c: disabled the use of lr-support feature,
7541         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7542         * added some function prototypes, added function _debugf prototype,
7543         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7544         bits with offset (case PO_GPR_BIT),
7545         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7546         command line,
7547         * (isBankInstruction): modified to return 0 for no banking instruction,
7548         and 1 for banking instruction,
7549         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7550         caused stop processing pCodes after a inline assembly block,
7551         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7552         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7553         registers when it shouldn't,
7554         * src/pic16/ralloc.c (allocReg): add preliminary support for
7555         supporting a limited set of temporary registers,
7556
7557 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7558
7559         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7560           genDataPointerSet): ensure assignments always copy in MSB to LSB
7561           order,
7562           (loadRegFromAop): recognize CLRH optimization,
7563           (genFunction): optimize RECEIVE iCodes in reentrant functions
7564
7565 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7566
7567         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7568           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7569           selected.
7570         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7571         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7572           contiguous with data
7573
7574 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7575
7576         * device/lib/_gptrget.c (_gptrget),
7577         * device/lib/_gptrgetc.c (_gptrgetc),
7578         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7579           instead of sjmp to ret
7580         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7581           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7582
7583 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7584
7585         * .version: bumped version to 2.4.7
7586         * device/lib/_gptrget.c (_gptrget): is now _naked
7587         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7588         * device/lib/_gptrput.c (_gptrput): is now _naked
7589         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7590           (createFunction): fixed xstack
7591         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7592         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7593           or bit either,
7594           (geniCodeCritical): store original interrupt state in an iTemp bit
7595           var unless stack-auto
7596         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7597         * src/SDCCmain.c (setIncludePath): added include/target to search path
7598         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7599         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7600           prototype,
7601           (processFuncArgs): put bit vars in bit area
7602         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7603           unsaveRBank): fixed xstack,
7604           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7605           (genFunction, genEndFunction): fixed xstack,
7606           (genAssign): optimization don't walk backwards through mem
7607         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7608         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7609         * support/regression/Makefile: also make library (for stack-auto) when
7610           making "all" and added "test-mcs51-xstack-auto"
7611         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7612         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7613         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7614         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7615         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7616           make-library by MAKE_LIBRARY
7617         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7618           regression tests for xstack
7619         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7620         * support/regression/tests/critical.c: test for critical on mcs51
7621
7622 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7623
7624         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7625           built version of sdcc instead of installed version
7626
7627 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7628
7629         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7630         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7631           vprintf.c now
7632         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7633         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7634           WARNING: remove device/lib/build/z80/printf.o by hand when
7635           updating from previous build!
7636         * device/lib/z80/printf.c: updated comment
7637         * support/regression/tests/bug1057979.c: test all ports now
7638         * support/regression/tests/bug1065458.c: file added
7639
7640 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7641
7642         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7643           *_start and *_end symbols for static functions
7644
7645 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7646
7647         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7648           and search crt0.o in all library paths,
7649           (setIncludePath): proper handling of --nostdinc,
7650           (setLibPath): proper handling of --nostdlib
7651         * support/regression/Makefile,
7652         * support/regression/ports/ds390/spec.mk,
7653         * support/regression/ports/gbz80/spec.mk,
7654         * support/regression/ports/hc08/spec.mk,
7655         * support/regression/ports/mcs51/spec.mk,
7656         * support/regression/ports/mcs51-large/spec.mk,
7657         * support/regression/ports/mcs51-stack-auto/spec.mk,
7658         * support/regression/ports/z80/spec.mk: use include and lib files from
7659           built version of sdcc instead of installed version
7660         * doc/sdccman.lyx: fixed typo in --nostdinc
7661
7662 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7663
7664         * src/pic/pcode.c,
7665         * src/pic/device.c,
7666         * src/pic/ralloc.c,
7667         * src/pic/gen.c : added support to generate code for struct bit fields.
7668
7669 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7670
7671         * as/xa51/xa_version.h,
7672         * device/include/errno.h,
7673         * device/include/regc515c.h,
7674         * device/lib/_itoa.c,
7675         * device/lib/_ltoa.c,
7676         * device/lib/ser_ir_cts_rts.c,
7677         * sim/ucsim/xa.src/glob.cc,
7678         * sim/ucsim/xa.src/inst_gen.cc,
7679         * sim/ucsim/xa.src/xa_bit.cc,
7680         * sim/ucsim/xa.src/xa_sfr.cc,
7681         * sim/ucsim/z80.src/inst_dd.cc,
7682         * sim/ucsim/z80.src/inst_fdcb.cc,
7683         * support/scripts/keil2sdcc.pl,
7684         * src/pic16/pic16.dsp,
7685         * src/pic16/pic16a.dsp: corrected cvs line endings
7686         * device/lib/printf_large.c: fixed bug 1057979
7687         * src/pic16/gen.c: fixed non-C standard code
7688         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7689         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7690         * support/regression/ports/mcs51/support.c: reload T1 asap
7691         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7692           pdata use and clear idata startup behaviour
7693         * support/regression/tests/bug1057979.c: added
7694
7695 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7696
7697         * device/examples/ds390/ow390/ad26.h,
7698         * device/examples/ds390/ow390/cnt1d.h,
7699         * device/examples/ds390/ow390/crcutil.c,
7700         * device/examples/ds390/ow390/ownet.h,
7701         * device/examples/ds390/ow390/owsesu.c,
7702         * device/examples/ds390/ow390/swt12.h,
7703         * device/examples/ds390/ow390/swtoper.c,
7704         * device/examples/ds390/ow390/temp10.h,
7705         * device/examples/ds390/ow390/thermodl.c,
7706         * device/examples/ds390/tinitalk/tinitalk.dsp,
7707         * device/examples/ds390/tinitalk/tinitalk.dsw,
7708         * device/examples/mcs51/clock/hw.h,
7709         * device/examples/mcs51/simple2/go.bat,
7710         * device/examples/serialcomm/windows/serial.h,
7711         * device/examples/xa51/dummy.c,
7712         * device/examples/xa51/hello.c,
7713         * device/include/80c51xa.h,
7714         * device/include/at89x051.h: corrected cvs line endings
7715
7716 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7717
7718         * src/pic16/main.c (options): added command line --gstack, to trace
7719         stack over/under flows,
7720         * added pragma 'wparam' to allow passing first byte of function
7721         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7722         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7723         call to __gstack_test function and sets up the symbol as extern,
7724         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7725         * popaop): added call to pic16_testStackOverflow,
7726         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7727         wparamList list,
7728         * (genCall, genPcall): now all parameters are passed via stack
7729         except in functions that are pass to wparam pragma in which WREG is
7730         used too,
7731         * (genPcall): REENTRANT flag is checked to see if variable prototype
7732         contains reentrant keyword, don't call a non-reentrant function, via
7733         a reentrant function pointer or vice versa, functions are never
7734         passed via WREG,
7735         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7736         D.Winkler,
7737         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7738         SIGSEGV when accessing a NULL register stucture,
7739         * (pic16_printGPointerType): modified to handle UPPER modifier for
7740         function initializers, changed prototype of function to simpler one,
7741         * (pic16_printIvalFuncPtr): check to see if function is already
7742         added in externs list,
7743         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7744         optimized a move from W to SFR with a move to the same register
7745         later after a CALL,
7746         * device/lib/pic16/debug: NEW directory, contains debug features
7747         which are enabled when linking with libdebug.lib, currently command
7748         line option --gstack enables stack pointer tracing for over/under
7749         flow, corresponding sources are in debug/gstack
7750
7751 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7752
7753         * doc/sdccman.lyx: updated SDCC version,
7754         * (PIC16 port): update list of command line options,
7755         * src/pic16/device.h (structure pic16_options_t): added field gstack
7756         to enable stack overflow tracing on push/pops,
7757         * src/pic16/device.c (statistics structure): added statistics
7758         structure,
7759         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7760         pic16_dump_int_registers): increase statistics counters for each
7761         * variable which is encountered
7762         * (pic16_dump_usection): emit each .udata variable to its own udata
7763         section,
7764         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7765         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7766         parameters via stack, otherwise use old scheme,
7767         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7768         assembler output file,
7769         * src/pic16/main.c: added command line options --gstack to enable
7770         push/pop tracing for stack overflow,
7771         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7772         instructions): added size of each instruction,
7773         * (pic16_countInstruction): estimate size of instructions in
7774         the_pFile list, inline assembly blocks are not counted,
7775         * (pic16_FixRegisterBanking): trace previous register usage, when
7776         banksel optimizations is greater than 0, don't emit a redudant
7777         banksel directive,
7778
7779 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7780
7781         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7782         * src/pic16/ralloc.c : applied same fix for pic16.
7783         * src/pic/gen.c : tidied it up a little.
7784
7785 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7786
7787         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7788         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7789
7790 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7791
7792         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7793
7794 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7795
7796         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7797         non-reentrant function __modsint in the interrupt function (thus
7798         corrupting math operations during serial I/O)
7799         * device/lib/ser_ir.c: as above, changed buffersize
7800         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7801         256.c,d for zeroing
7802         * doc/Makefile: added option -t for rsync
7803
7804 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7805
7806         * src/SDCCast.h (struct ast),
7807         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7808
7809 2004-10-20 Borut Razem <borut.razem AT siol.net>
7810
7811         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7812         package
7813
7814 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7815
7816         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7817         makefile targets,
7818         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7819         support functions to replace long sequences of MOVFF's from access
7820         bank registers to stack and vice versa,
7821         * src/pic16/device.h: added new field opt_flags, where optimization
7822         flags can be set to enable certain features,
7823         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7824         * pBlock, (genFunction, genEndFunction): surroung loop for
7825         saving/loading used registers in stack with PC_INFO pCodes,
7826         INF_LREGS. Code in between can then be optimized by pCode optimizer
7827         to support function calls,
7828         * (genDataPointerSet): fixed bug which loaded float fields in
7829         structures with corrupt data,
7830         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7831         in a standard way debug info on stderr. Feature used for developing
7832         and debugging only,
7833         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7834         obsolete chunks of code,
7835         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7836         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7837         * pic16/src/pcode.c (pic16_newpCodeInfo,
7838         * (pic16_newpCodeOpLocalRegs),
7839         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7840         feature,
7841         * (pic16_pCodeConstString): printing of the initial value of a
7842         symbol as a comment is inhibited since parsing was already done by
7843         copyStr and output is corrupt,
7844         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7845
7846 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7847
7848         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7849
7850 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7851
7852         * as/mcs51/lkarea.c: removed old K&R style,
7853           (lnksect): changed check on boundary error,
7854           (lnksect2): changed check on boundary error,
7855           (lnksect2): extend XSTK to end of page if size = 1
7856         * as/mcs51/lkmain.c: removed old K&R style,
7857           (Areas51): create l_IRAM symbol
7858         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7859         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7860           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7861         * device/lib/_mullong.c: added version to be compiled with xstack
7862         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7863         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7864         * device/lib/mcs51/crtxstack.asm: fixed comment
7865         * src/SDCCglue.c: maxInterrupts defaults to 0,
7866           (emitMaps): added pdata,
7867           (createInterruptVect): (re)moved default,
7868           (glue): added pdata,
7869           (glue): moved __start__xstack to XSTK with default size 1
7870         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7871           and options.float_rent when options.stackAuto is set,
7872           (linkEdit): only write XDATA_NAME if provided on command line
7873         * src/SDCCmem.h,
7874         * src/SDCCmem.c: added pdata
7875         * src/port.h: added pdata_name to PORT
7876         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7877           (saveRegisters, unsaveRegisters): removed usage of B,
7878           (genMinus): fixed accumulator clash,
7879           (genJumpTab): added comment, this needs another look
7880         * src/mcs51/gen.c: added check for "B in use" paranoia,
7881           added pushB() and popB()
7882         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7883           chance
7884         * src/avr/main.c,
7885         * src/ds390/main.c,
7886         * src/hc08/main.c,
7887         * src/mcs51/main.c,
7888         * src/pic/main.c,
7889         * src/pic16/main.c,
7890         * src/xa51/main.c,
7891         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7892           added PSEG (PAG,XDATA) or NULL to port specifier
7893         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7894         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7895           (_mcs51_genInitStartup): removed __start__xstack equ,
7896           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7897         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7898         * src/z80/gen.c (_rleAppend): fixed warnings
7899         * support/regression/tests/zeropad.c: added pdata test
7900         * .version: bumped to 2.4.6
7901
7902 2004-10-17 Borut Razem <borut.razem AT siol.net>
7903
7904         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7905         as a part of nightly build
7906
7907 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7908
7909         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7910         WREG holds the first byte function parameters,
7911         * (aopForSym): take special case for symbols which are in FARSPACE
7912         but in CODESPACE too,
7913         * (assignResultValue): modified to take into account _G.useWreg,
7914         * (genCall): don't use wreg for parameter passing when function is
7915         declared as reentrant, too, added optimization INCF to stack
7916         pointer when stack parameter count is 1,
7917         * (genFunction, genEndFunction): refurnished and fixed to not using
7918         wreg for passing parameters when function has varargs or is
7919         reentrant, fixed bug with symbol name compare for generating
7920         functions in absolute address,
7921         * (pic16_storeForReturn): refurnished,
7922         * (genCmp): began writing a new version of the function, not ready
7923         yet, therefore it is disabled,
7924         * (genAssign): do not read code memory when assigning a function to
7925         a pointer function,
7926         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7927         array of characters, not pointer,
7928         * (pic16initialComments): in debug mode emit an .ident directive for
7929         the assembler,
7930         * (_process_pragma): emit a new warning type (internal to pic16)
7931         when setting stack to default length, emit a similar warning when
7932         placing a function at absolute address and address is not word aligned
7933         * (_pic16_parseOptions): added 'return TRUE' statement,
7934         * (_pic16_linkEdit): if compiling a source, then add the source's
7935         file object, first in the list of objects to link,
7936
7937 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7938
7939         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7940         * src/pic/main.c : removed VC warning.
7941         * src/pic/gen.c : changed comment.
7942
7943 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7944
7945         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7946         reference to a deprecated symbol _GPTRREG was causing failure to
7947         link. Thanks G. M. Gallant for the info.
7948
7949 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7950
7951         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7952         comments for Bugs item #954788.
7953
7954 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7955
7956         * src/pic16/device.c (pic16_dump_gsection,
7957         * pic16_groupRegistersInSection): handle symbols declared to be in
7958         access bank differently,
7959         * src/pic16/gen.c (struct _G): added field resDirect,
7960         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7961         send values read from stack directly to result and don't allocate
7962         temporary values,
7963         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7964         same registers,
7965         * (pic16_sameRegsOfs): NEW,
7966         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7967         free because they were not allocated from temporary pool,
7968         * pic16_popRegFromString): workaround to fix a problem with
7969         allocating variables twice or never,
7970         * (genGenPointerGet): using PRODL instead of FSR0H,
7971         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7972         instead of FSR0H,
7973         * (genAssign): take advantage of the _G.resDirect flag,
7974         * (genCast): around line 11844, use mov2f instead of directly
7975         MOVFF'ing between operands to account for literal values,
7976         * src/pic16/genutils.c: some new debug functions for gpsim have been
7977         added,
7978         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7979         float with integer part only,
7980         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7981         place variables in access bank
7982         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7983         updated sources to reflect recent changes in gen.c
7984
7985 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7986
7987         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7988         sources that searched for headers in installation path, now the
7989         device/include/pic16 is used,
7990         * src/pic16/glue.c (pic16glue),
7991         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7992         .line directives if not in debug mode, this suppresses assembler's
7993         warnings for ignored directives
7994
7995 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7996
7997         * src/port.h: made reset_regparms prototype void parameter explicit.
7998         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7999         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8000         * doc/sdccman.lyx: documented warning disabling and how to use
8001           printf_large to make it print floats.
8002         * device/include/stdbool.h: NEW
8003         * device/lib/_atof.c,
8004         * device/lib/_divuint.c,
8005         * device/lib/_divulong.c,
8006         * device/lib/expf.c,
8007         * device/lib/printf_large.c,
8008         * device/lib/sincosf.c,
8009         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8010         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8011           a completely reentrant lib.
8012
8013 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8014
8015         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8016         * device/include/pic16/stdio.h: fixed bug with colon
8017
8018 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8019
8020         * device/include/pic16/stdio.h,
8021         * device/include/pic16/stdlib.h,
8022         * device/include/pic16/math.h: NEW
8023         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8024         declared as _naked to reduce overhead
8025         * device/lib/Makefile.in (target port-specific-objects-pic16):
8026         changed * to *.* so to ignore the CVS directory,
8027         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8028         stacked variables back in stack,
8029         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8030         corruption
8031
8032 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8033
8034         * .version: bumped version number to 2.4.5
8035         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8036         * support/Util/SDCCerr.c (messages structure): added entry for
8037         W_POSSBUG2
8038
8039         Large cumulative patch for pic16 port and libraries.
8040         * device/include/pic16/sdcc-lib.h,
8041         * device/include/pic16/stdarg.h,
8042         * device/include/asm/pic16/features.h,
8043         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8044         * device/include/pic16/float.h: changes reentrant keyword with
8045         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8046         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8047         updated target build-libraries to include objects from gptr,
8048         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8049         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8050         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8051         all function headings,
8052         * src/SDCCmain.c: added global parameter userIncDirsSet,
8053         * (parseCmdLine): when option -I is encountered add directory to
8054         userIncDirsSet too,
8055         * src/version.awk: added space between control and long,
8056         * src/pic16/NOTES: added some notes for the port,
8057         * src/pic16/gen.c: added prototype for mov2fp function,
8058         * (fReturnpic16[]): properly named return value registers,
8059         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
8060         * (aopForSym): added code to handle symbols with onStack flag set,
8061         symbols onStack are allocated PTRSIZE bytes,
8062         * (aopFreeAsmop): handles special case where asmops are stack objects,
8063         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
8064         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
8065         added argument lock to trace flaws in allocating temporary registers
8066         when developing port,
8067         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
8068         * (pic16_popRegFromString): reenabled allocating a direct register
8069         from string,
8070         * (assignResultValue): various beautifications,
8071         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
8072         referenced function argument,
8073         * (genIpush): reenabled to allow stacked arguments, handles only
8074         ic->parmPush iCodes,
8075         * (genCall, genPcall): major changes to allow for variable argument
8076         functions, fixed a bug with falsely restoring stack pointer after
8077         returning from call,
8078         * (genFunction): pending code for critical function,
8079         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
8080         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
8081         * (genNearPointerGet): fixed bug with indirect reading, was always
8082         reading from INDF0
8083         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
8084         pointers,
8085         * (genAddrOf): rewrote code to take address of a stacked function parameter
8086         * (genCast): fixed casting to generic pointer type,
8087         * src/pic16/gen.h: added AOP_STA,
8088         * (struct asmop): added field stk,
8089         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
8090         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
8091         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
8092         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
8093         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
8094         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
8095         generic pointers,
8096         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
8097         and library paths,
8098         * (pic16_port structure): generic pointer size is set to 3,
8099         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
8100         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
8101         compiler warning,
8102         * src/pic16/ralloc.c (allocReg): prevent allocating register when
8103         operand is an iTemp,
8104
8105 2004-09-24 Martin Helmling <mh AT octo-soft.de>
8106
8107         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
8108         * debugger/mcs51/simi.c: addapt new syntax of s51
8109
8110 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
8111
8112         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
8113         * src/pic16/pcode.c: commented out some calls to free() in order to
8114         fix bug #989576,
8115
8116 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8117
8118         * src/SDCCicode.h,
8119         * src/SDCCicode.c (isiCodeInFunctionCall),
8120         * src/avr/ralloc.c (selectSpil),
8121         * src/pic/ralloc.c (selectSpil),
8122         * src/pic16/ralloc.c (selectSpil),
8123         * src/ds390/ralloc.c (selectSpil),
8124         * src/hc08/ralloc.c (selectSpil),
8125         * src/xa51/ralloc.c (selectSpil),
8126         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
8127         stack in the middle of a function call sequence (fixes bug #1020268)
8128         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
8129         costs associated with the minimum switch case.
8130
8131 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8132
8133         * src/SDCC.lex: fixed bug #1030549
8134
8135 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8136
8137         * src/SDCCcse.h (struct cseDef),
8138         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
8139         over a function call if the CSE is derived from a symbol whose
8140         address has been taken (fixes bug #1029883)
8141         * support/regression/tests/bug-1029883: a new regression test for
8142         this bug
8143
8144 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8145
8146         * src/hc08/gen.c (emitinline): fixed bug #1029778
8147         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
8148         to a cast object is no longer a syntax error ("fixes" bug #1030006,
8149         and starts toward RFE #905167)
8150
8151 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
8152
8153         * src/pic16/gen.c (mov2f): New function to move an operand to
8154         another without considering if it is a literal or a register,
8155         * (pic16_sameRegs): don't check if they are both AOP_REG,
8156         * (AccRsh): removed andmask=0 lines,
8157         * (genLeftShift): duplicated to be improved in future versions,
8158         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
8159         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
8160         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
8161         * (pic16initMnemonics): added initialization for POC_INFSNZW,
8162         * (insertBankSwitch): fixed inserting banksel directives algorithm
8163         for instructions that follow a skip instruction, this fixes a report
8164         for broken subtraction code generation,
8165         * src/pic16/ralloc.c (deassignLRs): do not free register if current
8166         iCode is a left op, just in case result and right share the same
8167         registers
8168
8169 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8170
8171         * src/hc08/main.c,
8172         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
8173         preservation of HX
8174         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
8175         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
8176         on 2004-09-12; it was buggy
8177
8178 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
8179
8180         * src/SDCCsymt.h: removed RESULT_CHECK
8181         * src/SDCCast.c,
8182         * src/SDCCglue.c,
8183         * src/SDCCval.c,
8184         * src/pic/glue.c,
8185         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
8186
8187 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
8188
8189         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
8190         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
8191         configuration values no more rejected by compiler, they are assigned
8192         to configuration registers with a warning message instead,
8193         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
8194         the for-loop so last conf register is emitted too,
8195         * (_pic16_initPaths): link library libsdcc.lib by default,
8196         * (_hasNativeMulFor): modified test for multiplication according to
8197         Raphael Neider's remarks. Integer multiplication is also done with
8198         support functions,
8199         * device/include/pic16/pic18fregs.h: corrected type error in while
8200         testing and including 18f6720 header file
8201
8202 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
8203
8204         * src/pic16/device.h (pic16_options): removed field use_crt,
8205         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
8206         until an optimization to handle single bits is added,
8207         * (pic16_loadFSR0): moved before genUnpackBits,
8208         * (genAnd): some white lines removed,
8209         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
8210         leave_reset flags in pic16_options when using crt modules,
8211
8212 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
8213
8214         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
8215           for bugs 898889 & 979599. Also used some safer print instructions.
8216
8217 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8218
8219         * src/pic16/device.h (pic16_options_t): added field use_crt,
8220         crt_name, no_crt,
8221         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8222         catch a probable future bug,
8223         * src/pic16/gen.c: aopIdx function commented out,
8224         * (genAssign): commented out old code which used aopIdx,
8225         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8226         code, added if conditionals to take into account the --use-crt
8227         command line options,
8228         * src/pic16/main.c (pic16_optionsTable): added new command line
8229         options, --use-crt= and --no-crt,
8230         * (_pic16_linkEdit): now the proper crt object is added in the
8231         linker command line except than when --no-crt is specified,
8232         * src/pic16/pcode.c,
8233         * src/pic16/pcode.h: added some structures and functions for a new
8234         optimization scheme to compansate for instruction overhead between
8235         same iCodes, this scheme is currently under development and is not
8236         working in any way,
8237         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8238         to && operator,
8239         * device/lib/pic16/startup/crt0i.c,
8240         * device/lib/pic16/startup/crt0iz.c: added global char variable
8241         __uflags to force the generation of an idata section
8242
8243 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8244
8245         * doc/Makefile,
8246         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8247         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8248
8249 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8250
8251         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8252         Frieder) and clarified the default code optimization mode
8253
8254 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8255
8256         * src/SDCC.lex (doPragma, process_pragma),
8257         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8258         "opt_code_size", and "opt_code_balanced"
8259         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8260         regrouped options by category, added support for category headers
8261         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8262         and "--opt-code-size"
8263         * doc/sdccman.lyx: documented these new options and pragmas
8264         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8265         preference into account
8266
8267 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8268
8269         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8270           geniCodePreDec): Fixed bug 904237 by generating a warning
8271         * src/SDCCerr.h,
8272         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8273
8274 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8275
8276         * src/pic/device.c : When no max ram set validate full memory range.
8277         * src/pic/pcode.c,
8278         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8279
8280 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8281
8282         * device/lib/_gptrget.c,
8283         * device/lib/_gptrput.c: updated comment
8284         * device/lib/calloc.c,
8285         * device/lib/free.c,
8286         * device/lib/malloc.c,
8287         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8288         * src/SDCCcse.c (cseBBlock),
8289         * src/SDCCicode.c (printOperand, geniCodeArray),
8290         * src/SDCCicode.h (struct operand): fixed bug 868103
8291         * support/regression/tests/bug-868103.c: added
8292         * src/SDCCast.c (searchLitOp),
8293         * src/SDCCcse.h (struct cseDef),
8294         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8295         * src/SDCCicode.h (struct operand),
8296         * src/SDCCsymt.h (struct sym_link),
8297         * src/avr/gen.c (hasInc),
8298         * src/ds390/gen.c (hasInc),
8299         * src/hc08/gen.c (genPlusIncr, hasInc),
8300         * src/mcs51/gen.c (hasInc),
8301         * src/pic16/glue.c (pic16_printIvalChar),
8302         * src/pic16/ralloc.c (regWithIdx),
8303         * src/xa51/gen.c (hasInc) : removed warnings
8304         * src/SDCCast.c (createBlock): added comment ???
8305         * src/hc08/ralloc.c: updated comments
8306
8307 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8308
8309         * doc/sdccman.lyx: updated section on switch statements, added
8310         section about semaphore locking
8311         * doc/Makefile: added option -info for latex2html
8312         * device/lib/_gptrget.c,
8313         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8314
8315 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8316
8317         * src/pic/device.h,
8318         * src/pic/device.c,
8319         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8320          maxram is less than 0x100.
8321
8322 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8323
8324         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8325
8326 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8327
8328         * src/port.h,
8329         * src/mcs51/main.c,
8330         * src/ds390/main.c,
8331         * src/z80/main.c,
8332         * src/hc08/main.c,
8333         * src/pic/main.c,
8334         * src/pic16/main.c,
8335         * src/avr/main.c,
8336         * src/xa51/main.c
8337         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8338         a jump table is the best form for a switch statement, including
8339         automatic insertion of missing cases to make the case range
8340         continuous. Developed in collaboration with Frieder Ferlemann.
8341
8342 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8343
8344         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8345         accumulator result if it needs sign extension
8346
8347 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8348
8349         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8350
8351 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8352
8353         * device/lib/gbz80/printf.c,
8354         * device/lib/z80/printf.c: removed define for NULL
8355
8356 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8357
8358         * as/xa51/xa_link.c,
8359         * device/examples/ds390/ow390/ad26.c,
8360         * device/examples/ds390/ow390/cnt1d.c,
8361         * device/examples/ds390/ow390/counter.c,
8362         * device/examples/ds390/ow390/ds2480.h,
8363         * device/examples/ds390/ow390/ds2480ut.c,
8364         * device/examples/ds390/ow390/findtype.c,
8365         * device/examples/ds390/ow390/gethumd.c,
8366         * device/examples/ds390/ow390/owllu.c,
8367         * device/examples/ds390/ow390/ownetu.c,
8368         * device/examples/ds390/ow390/swt12.c,
8369         * device/examples/ds390/ow390/swtloop.c,
8370         * device/examples/ds390/ow390/temp.c,
8371         * device/examples/ds390/ow390/temp10.c,
8372         * device/examples/ds390/ow390/thermo21.c,
8373         * device/examples/ds390/ow390/tinilnk.c,
8374         * device/examples/ds390/ow390/tstfind.c,
8375         * device/examples/serialcomm/windows/serial.cpp,
8376         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8377         * device/include/reg51.h: fixed line endings for cvs
8378
8379 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8380
8381         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8382         packRegsForAccUse, packRegisters): new accumulator register
8383         packing algorithm
8384         * support/regression/ports/hc08/support.c (_putchar): suppress
8385         warning of unused variable
8386         * src/SDCCicode.c: added SWAP entry to codeTable
8387
8388 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8389
8390         * device/lib/sprintf.c: forgot to add this file before previous commit
8391
8392 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8393
8394         * src/pic16/gen.c (genPackBits): added operand right in function
8395         parameters, load result directly if p_type is POINTER (that is
8396         called by genNearPointerSet)
8397         * (genUnPackBits): added operand left in function parameters,
8398         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8399         FSR0 if accessing bitfields,
8400
8401 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8402
8403         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8404           _print_format; updated printf, sprintf, vsprintf
8405         * device/include/asm/default/features.h: corrected comment/define
8406         * device/lib/Makefile.in: added sprintf.c
8407         * device/lib/libsdcc.lib: added sprintf module
8408         * device/lib/printf_large.c,
8409         * device/lib/vprintf.c,
8410         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8411           into these 3 files
8412         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8413         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8414         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8415           hc08 test
8416         * support/regression/tests/zeropad.c: define idata as data for hc08
8417
8418 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8419
8420         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8421         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8422         labels are referenced at least once (even if a reference is not found)
8423         * src/hc08/gen.c (emitcode): set isComment flag for comments
8424         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8425         loads), rules 6a..6b (optimize jumps to return)
8426
8427 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8428
8429         * device/lib/acosf.c (acosf),
8430         * device/lib/asinf.c (asinf),
8431         * device/lib/atanf.c (atanf),
8432         * device/lib/ceilf.c (ceilf),
8433         * device/lib/cosf.c (cosf),
8434         * device/lib/coshf.c (coshf),
8435         * device/lib/cotf.c (cotf),
8436         * device/lib/fabsf.c (fabsf),
8437         * device/lib/floorf.c (floorf),
8438         * device/lib/log10f.c (log10f),
8439         * device/lib/logf.c (logf),
8440         * device/lib/sinf.c (sinf),
8441         * device/lib/sinhf.c (sinhf),
8442         * device/lib/sqrtf.c (sqrtf),
8443         * device/lib/tanf.c (tanf),
8444         * device/lib/tanhf.c (tanhf),
8445         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8446         replaced all instances of "reentrant" in the library functions
8447         defined in math.h with this macro.
8448         * support/regression/tests/float_trans.c: reenabled test for hc08
8449
8450 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8451
8452         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8453         erroneously deleted
8454
8455 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8456
8457         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8458         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8459         multi-byte volatile operands are used
8460         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8461         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8462         initialization to area GSINIT0 so that it would always precede
8463         any static initializers in GSINIT
8464         * support/regression/tests/zeropad.c: fixed idata define for hc08
8465         * support/regression/tests/bug-927659.c,
8466         * support/regression/tests/float_trans.c: disabled tests for hc08
8467         pending missing library routines
8468         * .version: increased version number to 2.4.4 - hc08 port now passes
8469         regression tests
8470
8471
8472 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8473
8474         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8475         * Makefile.common.in,
8476         * as/Makefile,
8477         * as/hc08/Makefile.in,
8478         * as/mcs51/Makefile.in,
8479         * as/z80/Makefile.in,
8480         * debugger/mcs51/Makefile.in,
8481         * device/include/Makefile.in,
8482         * device/lib/Makefile.in,
8483         * doc/Makefile,
8484         * link/Makefile,
8485         * link/z80/Makefile.in,
8486         * packihx/Makefile.in,
8487         * sim/ucsim/main_in.mk,
8488         * sim/ucsim/avr.src/Makefile.in,
8489         * sim/ucsim/doc/Makefile.in,
8490         * sim/ucsim/gui.src/serio.src/Makefile.in,
8491         * sim/ucsim/hc08.src/Makefile.in,
8492         * sim/ucsim/s51.src/Makefile.in,
8493         * sim/ucsim/xa.src/Makefile.in,
8494         * sim/ucsim/z80.src/Makefile.in,
8495         * src/Makefile.in,
8496         * support/cpp2/Makefile.in,
8497         * support/librarian/Makefile,
8498         * support/makebin/Makefile: added DESTDIR to the install path proposed
8499         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8500         * doc/sdccman.lyx: added DESTDIR documentation
8501
8502 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8503
8504         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8505         instruction for interrupt handlers, use fast returns when returning
8506         from high priority interrupts
8507
8508 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8509
8510         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8511         code generation
8512         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8513         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8514         bugs, ported much of Bernhard's code from mcs51
8515         * src/mcs51/gen.c (genSend),
8516         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8517         than one when calling a reentrant function
8518         * device/lib/_mullong.c: defined an alternate struct layout for big
8519         endian ports (hc08)
8520
8521 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8522
8523         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8524         test
8525
8526 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8527
8528         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8529         are sane and complete before asking the port its prefered parameter
8530         passing method (fixes bug #1017633)
8531         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8532         and _ret3
8533
8534 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8535
8536         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8537         problem in bitfields >= 8 bits.
8538
8539 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8540
8541         * src/SDCCsymt.c: undid changes that were not meant to be committed
8542
8543 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8544
8545         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8546
8547 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8548
8549         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8550           copied and wrong bit got inverted
8551
8552 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8553
8554         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8555         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8556         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8557         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8558         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8559         assignments to bitfields at known addresses
8560         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8561         reads from bitfields at known addresses
8562         * src/hc08/ralloc.c (packRegisters),
8563         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8564         genhc08Code): optimize pointer get values used as conditionals
8565         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8566         and branch
8567
8568 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8569
8570         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8571         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8572         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8573         as conditionals
8574
8575 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8576
8577         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8578
8579 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8580
8581         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8582         related problems
8583
8584 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8585
8586         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8587
8588 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8589
8590         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8591         mcs51 port
8592
8593 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8594
8595         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8596
8597 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8598
8599         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8600         cases use more compact code.
8601
8602 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8603
8604         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8605
8606 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8607
8608         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8609
8610 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8611
8612         * src/SDCCsymt.h,
8613         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8614         parameter of changePointer() from symbol* to sym_link*
8615         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8616         * src/SDCCsymt.c (compareType): void* type is castable to other
8617         pointers, but not necesarily an exact match.
8618         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8619         is no longer blindly treated as an exact match.
8620         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8621
8622 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8623
8624         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8625
8626 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8627
8628         * src/pic/gen.c,
8629         * src/pic/pcode.c,
8630         * src/pic/ralloc.h,
8631         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8632
8633 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8634
8635         * src/pic/device.c,
8636         * src/pic/device.h,
8637         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8638
8639 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8640
8641         * src/mcs51/gen.c (emitcode): fixed bug #992819
8642
8643 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8644
8645         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8646           there's no need to make it worse
8647
8648 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8649
8650         * src/mcs51/ralloc.c (deassignLR),
8651         * src/ds390/ralloc.c (deassignLR),
8652         * src/hc08/ralloc.c (deassignLR),
8653         * src/z80/ralloc.c (deassignLR),
8654         * src/pic/ralloc.c (deassignLR),
8655         * src/pic16/ralloc.c (deassignLR),
8656         * src/avr/ralloc.c (deassignLR),
8657         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8658         rlivePoint): fixed another part of bug #971834
8659
8660 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8661
8662         * src/z80/main.c: enabled "critical" keyword
8663         * src/z80/mappings.i,
8664         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8665         functions (fixes bug #979646)
8666         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8667
8668 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8669
8670         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8671           such as c:\mydir.
8672
8673 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8674
8675         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8676           doesn't disable too much optimizations
8677
8678 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8679
8680         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8681
8682 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8683
8684         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8685
8686 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8687
8688         * src/pic/gen.c tidied up tabs
8689         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8690         * src/pic/main.c tidied up tabs
8691         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8692         * src/pic/pcoderegs.c tidied up tabs
8693         * src/pic/ralloc.c tidied up tabs
8694
8695 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8696
8697         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8698         to S_FIXED for pic16 port and when symbol is not in level 0,
8699         allocate for S_REGISTER storage class and pic16 port, too,
8700         * src/pic16/device.h: prototype for checkSym,
8701         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8702         * (pic16_assignConfigWordValue): test the value and the mask to
8703         validate that the value is suitable for the configuration word,
8704         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8705         collect extern declared symbols, don't emit symbol twice, check
8706         first if symbol is in publics set first,
8707         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8708         * added command line '--fstack' which enables an experimental
8709         feature for stack access, too buggy to be used yet...
8710         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8711         * (pic16_allocDirReg): when register has storage class S_REGISTER
8712         allocate in pic16_dynAccessRegs,
8713         * device/include/pic16/pic18f????.h: modified configuration word
8714         naming convention, words started as CONFIG0H but should be CONFIG1H
8715
8716 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8717
8718         * device/include/mcs51reg.h: fixed bug 970993
8719
8720 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8721
8722         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8723         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8724         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8725         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8726         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8727         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8728           error/warning numbers,
8729           added function setWarningDisabled()
8730         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8731         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8732           _memcmp.c _memmove.c calloc.c realloc.c free.c
8733         * support/regression/tests/malloc.c: added tests for new functionality
8734         * support/regression/tests/zeropad.c: added tests for truncated initializers
8735           and initialized char arrays starting with '\x0'
8736         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8737
8738 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8739
8740         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8741
8742 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8743
8744         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8745         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8746         peephole 177.e. Thanks to anonymous
8747
8748 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8749
8750         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8751         function isn't used in the source but referenced as a
8752         variable initializer then declare it as extern in .asm file
8753
8754 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8755
8756         * .version: increased version number to 2.4.3
8757
8758         Adding version extension according to ChangeLog CVS revision
8759         * src/Makefile.in (target all): added dependency 'version.h'
8760         * (rule version.h): added rule to create version.h from ChangeLog,
8761         * (rule dep): added dependency version.h,
8762         * src/version.awk: AWK script to create version.h
8763         * src/SDCCdwarf2.c (dwWriteModule),
8764         * src/SDCCglue.c (initialComments),
8765         * src/SDCCmain.c (printVersionInfo): modified to write after
8766         version string the version extension number,
8767         * src/SDCCutil.c: included "version.h"
8768         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8769         number,
8770         * src/SDCCutil.h: added prototype for getBuildNumber
8771
8772         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8773         includeDirsSet, too,
8774         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8775         const char [] is found in function prototype...
8776
8777         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8778         moving to WREG with source is already in WREG,
8779         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8780         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8781         * (aopForSym): stack'ed symbols are partially supported, added
8782         if-clause to support symbols in FARSPACE,
8783         * (sameRegs): added test for AOP_ACC to see if registers are same,
8784         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8785         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8786         * (pic16_popRegFromString): will not allocate a new register if it
8787         doesn't find one by name, bug may have introduced...
8788         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8789         * (genIpush): revived to use pic16 port's stack,
8790         * (genAddrOf): added incomplete case for stack'ed operand,
8791         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8792         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8793         can handle multibyte operands,
8794         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8795         * (pic16initialComments): added message for MPLAB compatibility
8796         mode enabled,
8797         * src/pic16/main.h: prototype for pic16_mplab_comp,
8798         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8799         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8800         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8801         because of increased complexity of procedure,
8802         * (_process_pragma): stack pragma changed to format 'stack pos len',
8803         emit symbol '_stack_end' to conform with gplink,
8804         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8805         to search for register,
8806         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8807         PO_GPR_REGISTER,
8808         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8809         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8810         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8811         case for PO_GPR_REGISTER,
8812         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8813         dies, the new era is ahead !...
8814         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8815         pic16_dynInternalRegs,
8816         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8817         * (pic16_allocDirReg): minor optimizations and bug fixes,
8818         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8819
8820         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8821         load stack and frame pointer with address of 'stack_end' symbol
8822
8823 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8824
8825         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8826         without source code but only variable initializers
8827
8828 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8829
8830         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8831         external are not declared as extern to reduce overhead while linking
8832
8833 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8834
8835         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8836
8837 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8838
8839         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8840           Yee Keat for the patch
8841         * src/SDCCast.c (decorateType): fixed bug #979599
8842         * src/ds390/gen.h: removed local fReturnSizeDS390
8843         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8844         * src/ds390/gen.c (genAnd, genOr, genXor),
8845         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8846
8847 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8848
8849         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8850         add relFilesSet to $3, manipulate $2 to handle linking of object
8851         files without source files in command line,
8852         * device/include/pic16 (all headers): added ID location macros,
8853         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8854         entries for ID location bytes,
8855         * (pic16_assignIdByteValue): NEW,
8856         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8857         added field dumpcalltree to pic16_options_t,
8858         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8859         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8860         emitting rFalseIfx label after check_carry label,
8861         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8862         pic16_emitDIRegs), NEW
8863         * (pic16glue): dump .calltree file when option --calltree found,
8864         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8865         * (_pic16_genAssemblerPreamble): emit ID locations after
8866         configuration registers,
8867         * (pic16_linkCmd): modifications of the link command,
8868         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8869         * (pic16_pCodeInitRegisters): don't init stack registers,
8870         * (pic16_findPrevInstruction): fixed bug,
8871         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8872         bug with immediate registers,
8873         * (buildCallTree): traces stack push and pop,
8874         * (pct2): dump also stack usage for each function,
8875         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8876         * (pic16_allocDirReg): various modifications,
8877         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8878         fixed to 1,
8879
8880 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8881
8882         * src/pic16/pcode.c: removed buggy double colon
8883
8884 2004-07-01 Borut Razem <borut.razem AT siol.net>
8885
8886         * support/scripts/sdcc.nsi: added include/pic16 to setup
8887
8888 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8889
8890         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8891         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8892         target 'clean',
8893         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8894         specific command line arguments. Also added sample lkr script
8895         for placing a variable at a specific memory bank.
8896         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8897         at a specific memory bank,
8898         * (pic16_dump_isection): fixed bug which caused string literals to
8899         be omitted when dumping idata section,
8900         * (pic16_groupRegistersInSection): added code to handle registers
8901         in specific memory banks,
8902         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8903         public, all references are renamed too,
8904         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8905         AOP_DPTR2,
8906         * (pic16_storeForReturn): added case to handle when dest is WREG,
8907         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8908         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8909         pic16_rel_udata, check to see if that register is marked as being
8910         a member of a specific memory bank,
8911         * (pic16_printIvalCharPtr): added code to add string literals either
8912         to code or the idata sections,
8913         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8914         also accept the 'udata' pragma,
8915         * src/pic16/main.h: new structure types sectName and sectSym
8916         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8917         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8918         * (pic16_findPrevInstruction): fixed, it returned nothing,
8919         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8920         instruction combinations,
8921         * (pic16_FixRegisterBanking): heavily reorganised,
8922         * (pic16_AnalyzeBanking): if generating banksel directives is
8923         disabled, then don't call FixRegisterBanking at all,
8924         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8925         completely removed,
8926         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8927
8928 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8929
8930         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8931         Phuah Yee Keat <yk.phuah AT nestac.com>
8932
8933 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8934
8935         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8936         correctly the IVT even if it is relocated to some other location
8937
8938 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8939
8940         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8941         * device/include/pic16/pic18f2220.h: NEW,
8942         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8943         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8944         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8945         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8946         nodefaultlibs, ivt_loc is the location of the interrupt vector
8947         table, and nodefaultlibs signs that default libraries should not be
8948         linked in link stage,
8949         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8950         according to --ivt-loc argument,
8951         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8952         when pragma stack is found,
8953
8954 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8955
8956         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8957         256 (range check), 257 (do while), 258.a-f (bit banging
8958         f.e. on 3-wire SPI bus)
8959
8960 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8961
8962         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8963         variables used exclusively within a loop
8964
8965 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8966
8967         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8968
8969 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8970
8971         * src/SDCClrange.c (computeClash): fixed bug #971834
8972
8973 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8974
8975         * src/mcs51/gen.c (genCmp): fixed bug #975903
8976         * src/hc08/gen.c (operandsEqu),
8977         * src/ds390/gen.c (operandsEqu),
8978         * src/z80/gen.c (operandsEqu),
8979         * src/pic/gen.c (operandsEqu),
8980         * src/pic16/gen.c (operandsEqu),
8981         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8982         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8983
8984 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8985
8986         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8987
8988 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8989
8990         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8991         default case in switch statement,
8992         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8993         to eliminate problem with initialisation of pointers, but problem
8994         still exists,
8995         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8996         * (emitStaticSegment): removed various lines emitting debug info,
8997         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8998         added processor registers for utilizing EEPROM,
8999         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9000         configurable and set 8
9001
9002 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9003
9004         * .version: increased version number to 2.4.2,
9005
9006         Cumulative patch for pic16 port
9007         * src/pic16/device.c: changed scheme to dump initial values for
9008         variables in idata segment, all print_idata* functions were removed,
9009         now the pic16_printIval* will be called,
9010         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9011         * _pic16_printPointerType, pic16_printPointerType,
9012         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9013         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9014         NEW, similar to the respective functions in SDCCglue.c,
9015         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9016         way, emitting hex bytes,
9017         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9018
9019 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9020
9021         * src/avr/ralloc.c (serialRegAssign),
9022         * src/xa51/ralloc.c (serialRegAssign),
9023         * src/pic/ralloc.c (serialRegAssign),
9024         * src/pic16/ralloc.c (serialRegAssign),
9025         * src/hc08/ralloc.c (serialRegAssign),
9026         * src/z80/ralloc.c (serialRegAssign),
9027         * src/ds390/ralloc.c (serialRegAssign),
9028         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9029
9030 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9031
9032         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9033         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9034
9035 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9036
9037         Cumulative patch for pic16 port:
9038         * src/pic16/device.h (typedef PIC16_device) modified fields for
9039         defining microcontrollers,
9040         * src/pic16/device.c: added new info for all devices in Pics16 array,
9041         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9042         to be optimised out by the pCode optimiser,
9043         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9044         specially, bug reported by G.M. Gallant,
9045         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9046         as force'd so that cannot be optimised out by pCode optimiser,
9047         * src/pic16/pcode.c,
9048         * src/pic16/pcodepeeph.c,
9049         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9050         they are disabled by default, but can be enabled explicit with
9051         command argument --denable-peeps, for testing,
9052         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9053         --pomit-ivt in COMPILE_FLAGS
9054
9055 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9056
9057         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
9058           compilation on MSVC
9059
9060 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
9061
9062         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
9063
9064 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9065
9066         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
9067         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
9068
9069 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
9070
9071         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
9072         would only assign 0x300001 register.
9073
9074 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
9075
9076         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
9077         in COMPILE_FLAGS. Thanks to G. Gallant for report.
9078
9079 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9080
9081         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
9082         for ds80c400
9083         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
9084         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
9085         added peephole 254 (left shift), 255 (jump table)
9086
9087 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
9088
9089         * device/lib/Makefile.in: removed comment line with model-pic16,
9090         * (target port-specific-objects-pic16): the libraries and objects
9091         are copied to the build directory form the device/lib/pic16/bin
9092         directory
9093
9094         Cumulative patch concerning pic16 port:
9095         * library directory has been re-organized,
9096         * added support for PIC18F1220,
9097         * added headers and library sources for chips 18f1220,18f6520,
9098         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
9099
9100         * configuration registers setting has changed, now each supported
9101         device has a complete description of the registers it uses,
9102         * all initialisations are moved to idata sections, these section
9103         can be absolute or relocatable,
9104         * fixed initialisation of codespace variables,
9105         * fixed warning about PCLATU and gpsim,
9106         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
9107         * (genAssign): use table reads when assigning from variables in codespace,
9108         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
9109         char/int variables placed in codespace,
9110         * (pic16_emitConfigRegs): NEW, emits a list with configuration
9111         registers set in .asm file, no need for --pomit-config-words anymore,
9112         * (pic16glue): some 8051 legacy segments are commented out
9113         (to be removed completely),
9114         * added support for alternative assembler and linker with --asm=
9115         and --link= command line arguments,
9116         * peepholes are disabled automatically in the port, no need to
9117         specify on command line,
9118         * port supports natively char/int/long multiplication, but converts
9119         all divisions to support functions,
9120         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
9121         to the file set in variable $2,
9122         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
9123         strings in ASCII format and not in hex,
9124         * ralloc.c (serialRegAssign): added a triplet of conditional calls
9125         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
9126         allocate proper register if iCodes aren't temporary,
9127
9128 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
9129
9130         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
9131
9132 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
9133
9134         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
9135         is commented out
9136
9137 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9138
9139         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
9140         computed address is reused
9141         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
9142         multi-byte bitfields
9143
9144 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9145
9146         * src/z80/gen.c: (genArrayInit): must check for pointers too
9147
9148 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
9149
9150         * support/regression/tests/zeropad.c: never meant to commit the
9151           nestedstruct test: removed, added check for GCC version
9152
9153 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
9154
9155         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
9156         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
9157         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
9158           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
9159           bugs 928906 and 954082 half-empty initializers
9160         * src/SDCCsymt.h,
9161         * src/SDCCsymt.c (getAllocSize): added for above fix
9162         * src/z80/gen.c (genArrayInit): fixed bug 741044
9163         * support/regression/tests/zeropad.c: added tests
9164
9165 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
9166
9167         * src/pic16/device.c (pic16_dump_section): corrected bug which
9168         caused some symbols of the libraries to be misplaced
9169
9170 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9171
9172         * src/pic16/glue.c,
9173         * src/pic16/ralloc.h,
9174         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
9175         to fix conflict with pic port
9176
9177 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
9178
9179         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
9180         externs configuration variables,
9181         * src/pic16/ralloc.h,
9182         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
9183         prototype in header, commented out some debug messages
9184
9185 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
9186
9187         * src/pic16/glue.c,
9188         * src/pic16/main.c,
9189         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
9190         for gpasm COFF object generation. Thanks to D. Hawkins for
9191         his patch info
9192
9193 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9194
9195         * src/ds390/main.c,
9196         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
9197         Brock for spotting this)
9198         * src/ds390/gen.c (genEndFunction),
9199         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
9200         interrupt handler and critical. Disable push/pop optimizations when
9201         peephole optimizations disabled.
9202
9203 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9204
9205         Updated pic16 library sources and headers.
9206         * device/lib/pic16/pic18f*/ ,
9207         * device/include/pic16/*.h: modified to handle structured SFR
9208         definitions
9209
9210 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
9211
9212         * src/port.h (PORT structure): added hook initPaths, now each
9213         port can declare its own default search paths,
9214         which can been seen with the --print-search-dirs option,
9215         see pic16 port for example,
9216         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
9217         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9218         * (doPrintSearchDirs): NEW, replaces in a central manner the
9219         printing of search dirs which was split in set*Paths functions,
9220         * (main): added call to port->initPaths and doPrintSearchDirs,
9221         * src/avr/main.c,
9222         * src/ds390/main.c,
9223         * src/hc08/main.c,
9224         * src/izt/i186.c,
9225         * src/izt/tlcs900h.c,
9226         * src/mcs51/main.c,
9227         * src/pic/main.c,
9228         * src/pic16/main.c: modified port structures to reflect addition of
9229         initPaths hook,
9230
9231         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9232         * (pic16_dump_section): for registers in same address reserve memory once,
9233         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9234         to no_banksel,
9235         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9236         result is greater in size than right or left,
9237         * (pic16_genUMult8X8_8): there are some cases where the result can
9238         be 16 bits size, so handle these,
9239         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9240         * (pic16_outBitC): modified to emit pcodes,
9241         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9242         or not,
9243         * (genDivOneByte): implemented algorithm to divide 8-bits,
9244         * (genCmp): uncommented goto, but issues still exist,
9245         * (genAnd): fixed a bug with variables >8bits,
9246         * (genPackBits): optimization added that uses BCF/BSF to change a
9247         single bit,
9248         * (genAssign): fixed bug when assigning floating point literals,
9249         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9250         __sdcc_gsinit_startup label,
9251         * src/pic16/main.c (_pic16_init): removed search directory
9252         initialisations,
9253         * (_pic16_initPaths): NEW, used to initialise search directories,
9254         * (_hasNativeMulFor): support functions for all except char/int
9255         multiplication, and char division,
9256         * (PIC16_port struct): modified entry for native mul support,
9257         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9258         no_banksel option,
9259         * (buildCallTree): call to register_usage is ifdef'ed out,
9260
9261 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262
9263         * device/include/string.h: applied Stas Sergeev's patch to make this
9264         header file compatible with the preprocessor -Wundef option
9265         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9266         failure (fixes bug #941458)
9267
9268 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9269
9270         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9271         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9272         that the variable, not the function, should be static
9273         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9274         to be consistent with non-literal case
9275
9276 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9277
9278         * src/SDCCast.c (isConformingBody): fixed bug #949967
9279         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9280         convilong): fixed bug #952086
9281
9282 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9283
9284         * src/SDCCmem.c (allocVariables): fixed bug #955321
9285
9286 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9287
9288         * src/hc08/main.c (_hc08_genAssemblerEnd),
9289         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9290         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9291         completely eliminated the use of a temporary file
9292         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9293         when more than one file linked
9294         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9295
9296 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9297
9298         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9299         which fixes bug #543481
9300         * support/regression/tests/bug-751703.c: fixed comments left from a
9301         cut and paste error
9302         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9303         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9304         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9305         scopes
9306         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9307         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9308         are now changed to underscores in moduleName
9309
9310 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9311
9312         * as/mcs51/lkmem.c: better fix for bug #954173
9313
9314 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9315         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9316
9317         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9318         * device/include/c8051f000.h,
9319         * device/include/c8051f120.h,
9320         * device/include/c8051f300.h,
9321         * device/include/c8051f310.h,
9322         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9323         PWM16) and detab'ed
9324
9325 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9326
9327         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9328         and mailing lists, doc'ed --no-peep-comments, removed reference
9329         to knoppix (newest version has no LyX/LaTeX), other minor changes
9330         * src/SDCCglue.c (glue): save 2 bytes stack space with
9331         option --main-return. The ljmp could probably be avoided too
9332
9333 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9334
9335         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9336
9337 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9338
9339         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9340         * src/SDCCopt.c (isLocalWithoutDef),
9341         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9342         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9343         (credit to Maarten Brock for patch #949363, on which this is based)
9344         * support/regression/tests/bug-751703.c: some test cases of extern used
9345         within inner scopes.
9346
9347 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9348
9349         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9350         SPEC_STRUCT
9351         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9352         struct definitions
9353         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9354         dwWriteLabel): fix to create valid debugger symbols even when
9355         the module name has non-alphanumeric symbols in it
9356         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9357         when a variable's allocation has been optimized away
9358
9359
9360 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9361
9362         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9363         * src/hc08/main.c,
9364         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9365         * src/mcs51/main.c,
9366         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9367         * src/ds390/main.c,
9368         * src/z80/gen.c (z80_emitDebuggerSymbol),
9369         * src/z80/main.c,
9370         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9371         * src/pic/main.c,
9372         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9373         * src/pic16/main.c,
9374         * src/avr/gen.c (avr_emitDebuggerSymbol),
9375         * src/avr/main.c,
9376         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9377         * src/xa51/main.c,
9378         * src/SDCCdebug.c (emitDebuggerSymbol),
9379         * src/SDCCdebug.h,
9380         * src/port.h: added a debugger struct to the port struct. Added a
9381         callback for defining debugger symbols
9382
9383         * src/SDCCast.c (createLabel),
9384         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9385         with isitmp = 1
9386         * src/SDCCicode.h,
9387         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9388         iCode back to the ast for the function
9389
9390         * src/hc08/ralloc.c (hc08_assignRegisters),
9391         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9392         unneeded fields from the regs struct.
9393         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9394         pushReg() & pullReg() functions instead of emitcode()
9395
9396         * src/hc08/gen.c (genLabel, genhc08Code),
9397         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9398
9399         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9400         debugger hooks
9401
9402         * src/hc08/gen.c (genEndFunction, genhc08Code),
9403         * src/hc08/gen.h,
9404         * src/mcs51/gen.c (genEndFunction, gen51Code),
9405         * src/mcs51/gen.h,
9406         * src/ds390/gen.c (genEndFunction, gen390Code),
9407         * src/ds390/gen.h,
9408         * src/z80/gen.c (genEndFunction, genZ80Code),
9409         * src/z80/gen.h,
9410         * src/z80/z80.h,
9411         * src/pic/gen.c (genEndFunction, genpic14Code),
9412         * src/pic/gen.h,
9413         * src/pic16/gen.c (genEndFunction, genpic16Code),
9414         * src/pic16/gen.h,
9415         * src/avr/gen.c (genEndFunction, genAVRCode),
9416         * src/avr/gen.h,
9417         * src/xa51/gen.c (genEndFunction, genXA51Code),
9418         * src/xa51/gen.h,
9419         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9420         specific code to cdbFile.c and out of the backend code generators
9421
9422         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9423         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9424         starting address is now 0
9425
9426         * as/hc08/asm.h,
9427         * as/hc08/m08pst.c,
9428         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9429         assembler directive for DWARF support
9430         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9431
9432         * src/src.dsp,
9433         * src/Makefile.in,
9434         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9435
9436 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9437
9438         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9439         and inappropriate peephole optimization in jump tables
9440
9441 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9442
9443         * as/hc08/m08pst.c,
9444         * src/SDCCglue.c: sdccopt works for the hc08 port now
9445
9446 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9447
9448         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9449
9450 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9451
9452         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9453
9454 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9455
9456         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9457         rules
9458         * src/SDCCmain.c,
9459         * src/SDCCglobl.h,
9460         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9461         comments from the peephole optimizer replacement rules
9462         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9463         symbols
9464         * src/SDCCcse.c (updateSpillLocation),
9465         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9466         equivalents
9467         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9468         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9469         objects far pointers
9470
9471 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9472
9473         * src/SDCCsymt.h: a missing part of my last change
9474         * src/pic/ralloc.c (regTypeNum),
9475         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9476
9477 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9478
9479         * src/SDCCicode.h,
9480         * src/SDCCicode.c (aggrToPtrDclType),
9481         * src/SDCCptropt.h,
9482         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9483         ptrPseudoSymConvert),
9484         * src/pic/ralloc.c (regTypeNum),
9485         * src/pic16/ralloc.c (regTypeNum),
9486         * src/hc08/ralloc.c (regTypeNum),
9487         * src/ds390/ralloc.c (regTypeNum),
9488         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9489         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9490
9491 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9492
9493         * link/z80/lkmain.c (afile),
9494         * as/hc08/lkmain.c (afile),
9495         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9496         prevent a pointer problem when a filename has no directory and
9497         no extension specified.
9498
9499 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9500
9501         * link/z80/lkmain.c (afile): allow periods in directory names
9502         * link/z80/lkmain.c (afile),
9503         * as/mcs51/lkmain.c (afile),
9504         * as/hc08/lkmain.c (afile): allow linker script file to have an
9505         extension other than ".lnk"
9506         * link/z80/lklex.c (getfid),
9507         * link/z80/lkmain.c (parse),
9508         * as/mcs51/lklex.c (getfid),
9509         * as/mcs51/lkmain.c (parse),
9510         * as/hc08/lklex.c (getfid),
9511         * as/hc08/lkmain.c (parse): Support comments in the linker script
9512         file on lines by themselves and after filenames
9513
9514 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9515
9516         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9517
9518 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9519
9520         * src/z80/peeph-z80.def: removed some peephole rules that don't
9521         work with multibyte arithmetic (fixed bug #937126)
9522         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9523         to registers and not global variables
9524         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9525         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9526         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9527         checking for assignments not internally generated (fixed bug #931895)
9528         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9529         structure member (fixed bug #930072)
9530
9531 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9532
9533         * src/SDCCmain.c (linkEdit),
9534         * src/hc08/main.c (_hc08_parseOptions),
9535         * as/hc08/Makefile.in,
9536         * as/hc08/aslink.h,
9537         * as/hc08/asm.h,
9538         * as/hc08/m08pst.c,
9539         * as/hc08/lkrloc.c (relr, rele),
9540         * as/hc08/lkarea.c (lnkarea)
9541         * as/hc08/lkmain.c (afile, parse),
9542         * as/hc08/lkelf.c: support for ELF output
9543         * as/hc08/lks19.c (s19),
9544         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9545
9546 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9547
9548         * as/mcs51/lkihx.c: Fixed bug #899105.
9549
9550 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9551
9552         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9553         .dsp files from Unix to DOS.
9554
9555 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9556
9557         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9558         function pointers; we have been compliant for several months now.
9559         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9560         change that was accidently commented out
9561         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9562         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9563         bug #922319
9564
9565 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9566
9567         * src/hc08/gen.c: output of all of the internal debugging information
9568         is now controlled by the D() macro; it is disabled by default
9569
9570 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9571
9572         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9573         harder to keep the same registers during a CAST iCode
9574         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9575         long via int can be done in a single cast, if the signedness is
9576         correct.
9577         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9578         putchar() in tinibios.c in ds390's library
9579
9580 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9581
9582         * src/SDCCast.c (decorateType): fixed bug #898889,
9583         cast result of a literal complement too
9584         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9585         fixed check for bitfields
9586
9587 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9588
9589         * src/SDCCicode.c (geniCodeLogic): made it static,
9590         (geniCodeLogicAndOr): added in order to fix bug #905492,
9591         (ast2iCode): fixed bug #905492
9592         * support/regression/tests/bug-905492.c: added
9593         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9594         (processParms): fixed bug #927659: don't copy parms, this will clear
9595         decorated flag
9596         * support/regression/tests/bug-927659.c: added
9597
9598 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9599
9600         * src/SDCCast.c (addCast): don't cast float to char
9601         * device/lib/libsdcc.lib: added _memmove
9602
9603 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9604
9605         * device/lib/large/Makefile: fixed parallel execution by
9606         replacing `make` by `$(MAKE)`
9607
9608 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9609
9610         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9611         offsets (fixes bug #923936)
9612
9613 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9614
9615         * device/lib/small/Makefile: fixed parallel execution by
9616         replacing `make` by `$(MAKE)`
9617
9618 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9619
9620         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9621
9622 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9623
9624         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9625         * src/regression/Makefile: Regression test was not running.
9626
9627 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9628
9629         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9630         complement if possible
9631         * src/SDCCval.c (valComplement),
9632         * src/SDCCicode.c (operandOperation): fixed complement of literal
9633         * support/regression/tests/onebyte.c (testComplement): added
9634
9635 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9636
9637         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9638         return an optimized tree; actually replace actParm with the new tree
9639         * src/SDCCast.h: added some parantheses to remove side effects
9640         * support/regression/tests/bug-920866.c
9641
9642 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9643         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9644         Bit operands were not being handled properly in the pic14 port.
9645         (now src/regression/add.c passes again).
9646
9647 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9648
9649         * src/SDCC.y (labeled_statement): case and default no longer require
9650         a following statement (RFE #893037)
9651
9652 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9653
9654         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9655         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9656         disabled (fixes bug #916294)
9657         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9658         "mov a,acc"; patch provided by Lenny Story
9659         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9660
9661 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9662
9663         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9664         functions
9665         * src/ds390/gen.c (genFunction, genEndFunction),
9666         * src/ds390/ralloc.c (ds390_assignRegisters),
9667         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9668         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9669         pushed if there are parameters passed on the stack. Also, a cleaner
9670         way to decide if r0/r1 should be pushed/popped. (Together they fix
9671         bug #918693)
9672
9673 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9674
9675         * doc/sdccman.lyx,
9676         * device/lib/mcs51/crtpagesfr.asm,
9677         * device/lib/mcs51/crtxinit.asm,
9678         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9679         to avoid confusion with Si Lab's SFRPAGE register.
9680
9681 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9682
9683         * src/SDCCglue.c (emitMaps): allow public sfr variables
9684         * src/SDCCglue.c (initialComments): include compiler build date
9685         with compiler version and put the timestamp of the generated
9686         assembly file on a serperate line to be less confusing.
9687         * src/port.h: added genInitStartup hook
9688         * src/avr/main.c,
9689         * src/ds390/main.c,
9690         * src/hc08/main.c,
9691         * src/pic/main.c,
9692         * src/pic16/main.c,
9693         * src/xa51/main.c,
9694         * src/z80/main.c: genInitStartup initialize as NULL (default to
9695         historical behaviour)
9696         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9697         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9698         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9699         library instead of hard coding it into the compiler.
9700         * support/regression/ports/mcs51-stack-auto/spec.mk,
9701         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9702         * device/lib/mcs51/Makefile,
9703         * device/lib/small/Makefile,
9704         * device/lib/large/Makefile,
9705         * device/lib/mcs51/crtpagesfr.asm,
9706         * device/lib/mcs51/crtstart.asm,
9707         * device/lib/mcs51/crtxclear.asm,
9708         * device/lib/mcs51/crtxinit.asm,
9709         * device/lib/mcs51/crtclear.asm,
9710         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9711         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9712         and into user configurable files.
9713         * device/lib/clean.mk: clean mcs51 directory too
9714         * support/regression/tests/longlit.c: added static to T1 declaration
9715         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9716         accesses in the initialization code
9717
9718 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9719
9720         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9721         OSCTRIMVAL as noted in bug #916008
9722
9723 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9724
9725         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9726         in loops with multiple exits (reported as incorrect registers
9727         used by Martin Helmling in Sdcc-user list)
9728
9729 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9730
9731         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9732         made ds390 register extensions look less like error messages
9733
9734 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9735
9736         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9737         reported by Adam Wozniak in Sdcc-user list
9738
9739 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9740
9741         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9742         arithmetic optimizations, added debug output
9743
9744 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9745
9746         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9747         * sdcc.spec: updated and split sdcc into 3 rpms
9748         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9749         needed for literals of LEFT_OP and '+'
9750         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9751         introduced RESULT_TYPE_NOPROM
9752         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9753         left shift
9754         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9755         limited promotion to int only for '*'
9756         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9757
9758 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9759
9760         * src/pic16/gen.c (genSkip),
9761         (genc16bit2lit), (gencjneshort): commented out
9762         (is_LitOp): new helper function, checks operand type
9763         (genCmpEq): rewritten
9764
9765 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9766
9767         * support/regression/tests/bug-908454.c: added
9768
9769 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9770
9771         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9772         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9773         (geniCodeCast): cosmetic, don't preserve bit storage class
9774         (geniCodeLeftShift): added promotion
9775         (geniCodeLogic): fixed regression
9776         * src/SDCCsymt.c (computeTypeOr): accept bits too
9777         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9778
9779 2004-03-07  Borut Razem <borut.razem AT siol.net>
9780
9781         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9782
9783 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9784
9785         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9786         version of pic16_genPackRegisters which does not check if ic is a
9787         CAST operator,
9788         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9789         function cause string1.c regression test fails
9790
9791 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9792
9793         * sim/ucsim/configure.in,
9794         * sim/ucsim/configure,
9795         * sim/ucsim/doc/Makefile.in: use docdir
9796         * src/SDCC.y: fixed sbit atrributes
9797         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9798         * src/SDCCast.c (decorateType): |^& need special promotion handling
9799         * src/SDCCast.h,
9800         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9801         * src/SDCCsymt.h (computeType),
9802         * src/SDCCicode.c: computeType() needs op
9803         * src/SDCCsymt.c (checkTypeSanity),
9804         * doc/sddman.lyx: "plain" bitfields are unsigned
9805         * src/SDCCsymt.c (computeTypeOr): added
9806         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9807         |^& ops
9808         * src/SDCCval.c (val*): computeType() needs op
9809         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9810         * support/regression/tests/onebyte.c: added tests for |^&
9811
9812 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9813
9814         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9815         for writing icode into asm output.
9816
9817 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9818
9819         * src/pic16/device.c: added some debug lines enabled
9820         with macro DEBUG_CHECK,
9821         * src/pic16/genarith.c: more debug in genPlus,
9822         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9823         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9824         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9825         * (aopForSym): onStack symbols are re-placed in data memspace,
9826         and onStack flag is cleared,
9827         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9828         copy temporary pcodeop,
9829         * (genPcall): added warning for not updating PCLATU,
9830         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9831         always true for pic16 port,
9832         * (genMultOneWord): NEW, supports integer multiplication,
9833         * (genMult): modified to call genMultOneWord,
9834         * (ifxForOp): added warning when return NULL,
9835         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9836         flag is set before call to operandFromSymbol for implicit
9837         added structures,
9838         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9839         options.intlong_rent are set by default,
9840         * (_hasNativeMulFor): modified to allow port generation of integer
9841         multiplication,
9842         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9843         set regtype to REG_SFR for all registers, restricting seting the
9844         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9845
9846 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9847
9848         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9849         more than 500 times in the regression tests
9850
9851 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9852
9853         * support/Util/SDCCerr.h,
9854         * support/Util/SDCCerr.c,
9855         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9856         enumerator_list),
9857         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9858         for symbol conflicts.
9859         * support/valdiags/tests/enum.c,
9860         * support/valdiags/tests/tentdecl.c,
9861         * support/valdiags/tests/struct.c: expect possible error messages
9862         referring to original symbol definitions.
9863         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9864         * src/SDCCsymt.h,
9865         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9866
9867 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9868
9869         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9870
9871 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9872
9873         * src/pic16/ralloc.c (newReg): fixed bug #908929
9874
9875 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9876
9877         * src/ds390/gen.c: added missing #include "main.h"
9878
9879 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9880
9881         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9882         checking if symbol is already in set,
9883         * src/pic16/device.h: prototype for checkAddSym,
9884         * src/pic16/gen.c: (_G): added entry interruptvector,
9885         * (assignResultValue): removed some commented out lines,
9886         * (genFunction): check for ISR via sym->type, absolute section for
9887         interrupt code is created via a new pBlock, the goto instruction is
9888         placed now correctly at the interrupt vector position, changed all
9889         references from ivec to _G.interruptvector,
9890         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9891         is the interrupt is a high priority one, same for return from ISR,
9892         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9893         externs to calls of checkAddSym,
9894         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9895         pic16_pcode_verbose flag is set,
9896         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9897         * src/pic16/pcoderegs.c: message about how many registers are saved
9898         will only be emitted if pic16_pcode_verbose flag is set,
9899
9900 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9901
9902         * src/ds390/ralloc.h,
9903         * src/ds390/ralloc.c (ds390_regWithIdx),
9904         * src/ds390/gen.c (emitcode),
9905         * src/ds390/main.h,
9906         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9907         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9908         ds390operandCompare, getRegsRead, getRegsWritten,
9909         initializeAsmLineNode): customized instruction size calculation for
9910         ds390, started basis for some register optimizations
9911         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9912         corresponding assembly output
9913         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9914         missing push/pop of r0/r1. Optimized push/pops
9915
9916 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9917
9918         * src/mcs51/main.c (instructionSize): fixed ACALL size
9919         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9920
9921 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9922
9923         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9924         the sorting of rlist with NULL elements
9925         * (print_idataType, print_idata): NEW to create idata sections
9926         * src/pic16/device.h: idataSymSet new variable
9927         * src/pic16/gen.c (genFunction): fixed some bugs in string
9928         comparing, improved the absolute section creation for ISRs,
9929         added FSR0L/FSR0H in registers that are saved in an ISR,
9930         * (genInline): fixed the processing of inline snippets,
9931         now they undergo no process by the peephole optimizer
9932         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9933         are placed in idataSymSet,
9934         * (pic16emitStaticSeg): extern symbols are added in externs,
9935         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9936         switching when aboslute variables are placed in access bank memory
9937         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9938         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9939         commented out with #if,
9940         * (pic16_packRegisters): reintroduce the check for CAST because some
9941         symbols are not correctly handled,
9942         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9943         pCodeInstruction instead of pCode,
9944         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9945         pCodeAsmDir definition,
9946         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9947         directive, then the argument directive is emitted without the leading
9948         tab, hack for inline labels which must be in the first column,
9949         * (compareLabel,pic16_findNextInstruction),
9950         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9951         * (insertBankSwitch): modified for the new pCodeAsmDir,
9952
9953 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9954         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9955
9956         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9957         instance,
9958         * (pushSide): commented out with #if,
9959         * (assignResultValue): fixed some typos in saving
9960         registers,
9961         * (genPcall): FIXED and sync'ed with genCall,
9962         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9963         * (genNearPointerGet): fixed to handle some more cases,
9964         implementation scheme via table reads,
9965         * (genConstPointerGet): modified to access code memory correct,
9966         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9967         and improved to handle some cases
9968         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9969         instead of "RETLW" for init data
9970         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9971         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9972         variables are placed in access bank memory (<0x80 and >=0xf80),
9973         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9974         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9975         TBLWT_POSTDEC,TBLWT_PREINC
9976         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9977         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9978         directives
9979         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9980         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9981         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9982         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9983
9984 2004-02-29  Borut Razem <borut.razem AT siol.net>
9985
9986         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9987         support/Util/findme.h, support/Util/system.h: enhance binary relative
9988         search for lib and include by using findProgramPath()
9989
9990 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9991
9992         * src/SDCCpeeph.h,
9993         * src/SDCCpeeph.c (pcDistance),
9994         * src/port.h,
9995         * src/mcs51/ralloc.h,
9996         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9997         * src/mcs51/main.h,
9998         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9999         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10000         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10001         size calculation port specific, started basis for some register
10002         optimizations
10003         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10004         missing push/pop of r0/r1. Optimized push/pops
10005         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10006         * device/lib/_modsint.c (_modsint),
10007         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10008         and stack version so regression tests pass
10009
10010 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10011
10012         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10013         * src/SDCCast.c (decorateType): catch another small optimization
10014         with '?' operator
10015         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10016         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10017         modified to finally use computeType() all over SDCC,
10018         see Feature Request #877103
10019         * src/SDCCval.h: cosmetic
10020         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10021         valCompare(); regression tested in muldiv.c
10022         * support/regression/tests/muldiv.c (testMod): mod sign follows
10023         dividend only
10024
10025 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10026
10027         * src/SDCCast.c (decorateType): fixed bug #902362
10028         * doc/INSTALL.txt: fixed install instructions for win32
10029
10030 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10031
10032         * device/include/Makefile.in (install): fixed by replacing spaces
10033         by tabs
10034         * doc/README.txt,
10035         * doc/INSTALL.txt: updated for release
10036         * doc/sdccman.lyx: added warning for --xstack being buggy
10037
10038 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10039
10040         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10041         to eliminate build warnings.
10042         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10043
10044 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10045            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10046
10047         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10048         removed -penable-stack, added comment for stack pragma, added
10049         warning for not initializing the stack/frame registers, removed
10050         comment at interrupts section
10051
10052         Stack is made permanent, there is no ability to disable stack usage.
10053         * src/pic16/device.h,
10054         * src/pic16/device.c: removed all references to USE_STACK macro,
10055         * src/pic16/device.c (pic16_dump_section): when no elements in
10056         rlist, free rlist before return,
10057         * (pic16_dump_int_registers): NEW, internal registers are a new set
10058         of general purpose registers reused by each function,
10059         * (checkAddReg): returns 1 if registers is added to set,
10060         * (pic16_groupRegistersInSection): when a registers is of type
10061         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
10062         * src/pic16/device.h: memRange and Assigned Memory are deleted,
10063         SRCASECMP macro is moved here from device.c
10064         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
10065         PO_PCLATU, PO_PRODL, PO_PRODH,
10066         * (pic16_pCodeOpType, genMinus,
10067         changed compares to "a" register, with AOP_ACC,
10068         * (pic16_genPlus): fixed some bugs and indented properly,
10069         * (pic16_addSign): changed size to size+offset in the MOVWF
10070         instruction,
10071         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
10072         multiply 8-bit operand by literal, result is 8-bit,
10073         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
10074         multiply 2 8-bit operand, result is 8-bit,
10075         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
10076         genUMult8X*_16,
10077         * src/pic16/gen.c: changed accUse to contain WREG only,
10078         * (pic16_emitcomment): renamed to pic16_emitpcomment,
10079         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
10080         true, do not use immediate addressing any more unless sym is a
10081         pointer in codespace,
10082         * (aopForRemat): do not use immediate addressing when symbol not in
10083         codespace and when symbol's address is requested,
10084         * (aopOp): for-loop in if(sym->accUse) is modified for the new
10085         accUse size (= 1),
10086         * (aopGet): added case for AOP_ACC and don't return "accumulator
10087         bug" but WREG instead,
10088         * (popGetTempReg): pushes contents of temporary register in stack,
10089         * (popReleaseTempReg): pops contents of temporary register from
10090         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
10091         * (pic16_popGet): separated case AOP_ACC to return register WREG
10092         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
10093         or PO_IMMEDIATE and initializes their instance/offset appropriately,
10094         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
10095         the use of immediate pointers to certain cases only.
10096
10097         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
10098         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
10099         * (assignResultValue, genCall, genRet): modified to use the new
10100         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
10101         genPcall is still broken,
10102         * (genFunction): added code to create 'A' type pBlocks when
10103         interrupt functions are generated, code not extensively tested yet,
10104         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
10105         * (genEndFunction): modified so ISRs pop stored registers from stack,
10106         * (genMultOneByte): cleanup,
10107         * (AccRsh): added flag andmask, to and result with appropriate mask,
10108         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
10109         * (genDataPointerGet): fixed and reenabled its use,
10110         * (genNearDataPointerGet): bugs fixed,
10111         * (genDataPointerSet): bugs fixed,
10112         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
10113         pic16_DumpSymbol, pic16_DumpOp,
10114         * src/pic16/genutils.h: function prototypes for the above functions,
10115         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
10116         pointers,
10117         * (pic16emitRegularMap): many many many improvements, but needs a
10118         major cleanup,
10119         * src/pic16/main.c: enable_stack in pic16_options is removed,
10120         * (_pic16_parseOptions): removed command line options -penable-stack,
10121         * (_process_pragma): emit stack symbol only when stack pragma is
10122         processed,
10123         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
10124         redirected to FSR0L/FSR0H pair,
10125         * (pic16_get_op, pic16_get_op2): modifications and improvements,
10126         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
10127         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
10128         for immediates,
10129         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
10130         * (dumpPicOptype): NEW,
10131         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
10132         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
10133         with movff instruction,
10134         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
10135         added pic16_int_regs, some packRegsFor* functions are commented out,
10136         because produce errors,
10137         * src/pic16/NOTES: minor modifications
10138
10139 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10140
10141         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
10142         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
10143         --pack-iram.
10144         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
10145         * as/mcs51/lkaomf51.c: fixed bug #895763
10146
10147 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
10148
10149         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
10150
10151 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10152
10153         * doc/sdccman.lyx: added details about the HC08 storage classes and
10154         interrupts, fixed the register usage info for z80 & gbz80
10155
10156 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
10157
10158         * doc/sdccman.lyx: added more pic16 port documentation
10159         * device/include/pic16/: added header pic18fregs.h
10160
10161 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
10162
10163         * doc/sdccman.lyx: added Vangelis' contribution
10164
10165 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10166
10167         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
10168         extend to the next CALL or PCALL, not just to the next CALL.
10169
10170 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
10171
10172         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
10173
10174 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10175
10176         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
10177         bug #895752 and a better fix for bug #716790
10178
10179 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10180
10181         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
10182
10183 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10184
10185         * doc/sdccman.lyx: minor changes, minor changed
10186
10187 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
10188
10189         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
10190         which can't handle SDCC_NEWONEBYTEOPS,
10191         (geniCodeMultiply): removed conversion from mult to shift for pic14
10192         and pic16
10193
10194 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10195
10196         * src/hc08/gen.h,
10197         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
10198         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
10199         thus fixing bug #895406
10200
10201 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10202
10203         * device/lib/_modsint.c,
10204         * device/lib/_modslong.c: sign follows divisor only
10205         * src/hc08/gen.c (genMultOneByte): if result size is 1,
10206         signs or signedness can be ignored
10207         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
10208         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
10209         added optimization for IFX,
10210         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
10211         arguments;
10212         reenabled optimization for IFX, which was removed on 2004-01-11
10213         * src/SDCCast.h: added return type IFX
10214         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
10215         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
10216         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
10217         SDCC_OLDONEBYTEOPS selects the old behaviour
10218         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10219         changed again and commented promotion rule
10220         * src/SDCCval.c (valDiv): promotion no longer necessary
10221         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10222         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10223         rewritten
10224         * support/regression/tests/onebyte.c: added
10225
10226 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10227
10228         * gen.c (genInline): reverted to old code for assemnling inline
10229         code because of bug reported James Chadd
10230
10231 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10232
10233         * ralloc.h: missing declarations from previous patch,
10234         seems that patch for ralloc.h was never applied, fixed
10235
10236 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10237            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10238
10239         * pcode.c,
10240         * pcode.h,
10241         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10242         indirect addressing. Marked FSR0 as deprecated
10243         * gen.c (pointerCode): commented out, not needed now
10244         (pic16_popGet2p): new MOVFF helper function
10245         (genGenPointerGet),
10246         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10247         (shiftRLong): removed duplicate debugging info
10248
10249 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10250
10251         * src/ds390/gen.c (genNearPointerGet),
10252         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10253         optimization with bits, but not bitfields.
10254         * src/ds390/ralloc.c (packRegisters),
10255         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10256
10257 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10258
10259         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10260
10261 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10262
10263         * src/SDCCsymt.h,
10264         * src/SDCCicode.c (operandFromSymbol),
10265         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10266         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10267         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10268         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10269         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10270         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10271         bug #892038
10272         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10273         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10274         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10275         * src/SDCCsymt.c (newSymbol),
10276         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10277         enumerator_list),
10278         * src/SDCCval.h,
10279         * src/SDCCval.c (newiList): fixed bug #885705
10280
10281 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10282
10283         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10284         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10285
10286 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10287
10288         * device/include/c8051f120.h,
10289         * device/include/c8051f300.h,
10290         * device/include/c8051f310.h: added/updated header files for Silicon
10291         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10292         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10293         in new section Submitting patches
10294
10295 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10296
10297         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10298         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10299         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10300         genGenPointerSet),
10301         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10302         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10303         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10304         genGenPointerSet),
10305         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10306         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10307         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10308         genGenPointerSet),
10309         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10310         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10311         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10312         genGenPointerSet): fixed bug #892400
10313         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10314         to eliminate build warnings.
10315         * src/SDCCast.c (processParms),
10316         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10317         fixed bug 751859
10318         * support/valdiag/valdiag.py: added GCC to the list of defines active
10319         when compiling with gcc
10320
10321 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10322
10323         * support/Util/SDCCerr.h,
10324         * support/Util/SDCCerr.c,
10325         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10326         with an incomplete type (fixed bug #883734)
10327         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10328
10329 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10330
10331         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10332
10333 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10334
10335         * src/SDCCast.c (decorateType),
10336         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10337         function pointer implementation
10338         * support/regression/tests/funptrs.c: added tests to verify both forms
10339         of function pointers work correctly. Added tests to verify parameters
10340         are passed in the correct order.
10341
10342 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10343
10344         * device.c (regCompare): registers are sorted by ascending
10345         address and increasing size,
10346         * main.c (_pic16_finaliseOptions): removed the declaration
10347         of compiler macro MCU. Now a macro of the format pic18fxxxx
10348         will be defined from the command line
10349
10350 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10351             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10352
10353         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10354         PCOP_RLCF was overwritten!
10355         * gen.c (genSkip): commented out calls to pic16_emitcode,
10356         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10357         * (genlshTwo),
10358         * (genRRC): added debugging info,
10359         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10360         overwritten while shifting,
10361         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10362         overwritten while shifting,
10363         * (AccLsh),
10364         * (AccRsh),
10365         * (shiftLLeftOrResult),
10366         * (shiftRLeftOrResult),
10367         * (shiftRLong),
10368         * (shiftLLong): Implemented with pic16_emitpcode
10369         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10370         * (genLeftShift): Fixed bug, operand for shift by variable always
10371         was "and"ed with 0x0f,
10372         * (genLeftShiftLiteral),
10373         * (genrshTwo),
10374         * (genRightShiftLiteral): added debugging info,
10375         * (genrshFour): added comment,
10376         * (genRightShift): determined signedness from operand "left"
10377         instead of "result"
10378
10379 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10380
10381         * src/SDCCicode.c (geniCodeParms),
10382         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10383         function pointers, fixed function pointer bugs #861242 and #861896
10384
10385 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10386
10387         * device/include/c8051f000.h,
10388         * device/include/c8051f120.h,
10389         * device/include/c8051f300.h: added header files for Silicon
10390         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10391
10392 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10393
10394         * src/SDCCast.c (processParams): added new type flow and restructured
10395         (gatherAutoInit): added new type flow
10396         (addCast): cosmetic changes
10397         (getLeftResultType): added new type flow for array indices, patch
10398         provided by Stas, see FR #877103
10399         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10400         array index patch by Stas
10401         * src/SDCCast.h: added prototype getResultTypeFromType()
10402         * src/SDCCval.h,
10403         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10404         * src/pic/glue.c (pic14emitStaticSeg),
10405         * src/pic16/glue.c (pic16emitStaticSeg),
10406         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10407         for initialization of symbols
10408         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10409         * support/Util/SDCCerr.h:
10410         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10411         * .version: bumped version number to 2.3.8
10412         * device/include/Makefile.in (install),
10413         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10414         avoid warnings
10415
10416 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10417
10418         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10419         Slade Rich fixed an optimization bug
10420         * src/pic/pcodepeep.c,
10421         * src/pic/pcoderegs.c
10422         * doc/Makefile (install): added test for directory
10423
10424 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10425
10426         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10427         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10428         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10429         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10430         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10431         * as/mcs51/asexpr.c (term),
10432         * as/hc08/asexpr.c (term): fixed bug #887146
10433
10434 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10435
10436         * src/z80/gen.c (genMult): handle single byte result product
10437         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10438         DUMMY_READ_VOLATILE (fixed bug #886367)
10439
10440 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10441
10442         * support/regression/tests/libmullong.c: fixed logic, on little endian
10443         hosts we ended without a mullong_wrapper()
10444
10445 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10446
10447         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10448         virus/worm forged address usage.
10449
10450 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10451
10452         Fixed promotion, it should be done on AST level:
10453         * src/SDCCast.c (addCast): added promotion to int
10454         (decorateType): updated call to upCast()
10455         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10456         usualUnaryConversions()
10457
10458 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10459
10460         * support/regression/tests/literalop.c (mulWrapper): Added a
10461         wrapper to remove integer overflow warnings.
10462
10463         * support/regression/tests/float_trans.c: Made work on host.
10464
10465         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10466         location of sz80.
10467
10468         * support/regression/generate-cases.py (main): Changed from inline
10469         to a main method.
10470
10471         * doc/Makefile (install): Changed to depth first to get rid of
10472         missing directory install warning.
10473
10474         * as/Makefile (install-doc): Made work on Mac.
10475
10476 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10477
10478         * src/SDCCast.c: added an additional type flow in decorateType() of
10479         opposite direction, see feature request #860006; it's enabled at runtime
10480         by setting the environment variable SDCC_NEWTYPEFLOW
10481         * src/SDCCast.h: changed prototype of decorateType()
10482         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10483         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10484         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10485         see feature request #877103
10486         * src/SDCCval.c: updated call of decorateType()
10487         (valBitwise): fixed bug #882876
10488         (valMinus): added promotion
10489         (valLogicAndOr): result is unsigned
10490         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10491         * src/SDCCsymt.c (computeType),
10492         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10493         must not cause an unsigned operation
10494         * src/pic/glue (pic14emitRegularMap),
10495         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10496
10497 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10498
10499         * src/pic/pcode.c (PCodeID): commented out left over debug code
10500
10501 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10502
10503         * support/valdiag/tests/overflow.c: added shift tests
10504         * src/pic/device.c,
10505         * src/pic/gen.c,
10506         * src/pic/gen.h,
10507         * src/pic/glue.c,
10508         * src/pic/main.c,
10509         * src/pic/pcode.c,
10510         * src/pic/pcode.h,
10511         * src/pic/pcodepeep.c,
10512         * src/pic/pcoderegs.c,
10513         * src/pic/ralloc.c,
10514         * src/pic/ralloc.h: applied patch from Slade Rich;
10515         added support for multiple code pages and multiple RAM banks on the
10516         PIC 14 port. The ASM files now no longer simply assume all the
10517         code / RAM are in the same page / bank. This means the linker can
10518         safely allocate code/RAM of separate ASM files to different pages/banks.
10519         * doc/sdccman.lyx: added Slade's tips
10520         * src/mcs51/peeph.def: fixed bug #880768
10521
10522 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10523
10524         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10525         * src/SDCCast.c (decorateType): fixed bug #880197
10526
10527 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10528
10529         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10530         getopt.h.
10531
10532         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10533         strtof is not part of C89 and isn't included with Mac OS X.
10534
10535 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10536
10537         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10538         shiftL2Left2Result): fixed bug #879326
10539         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10540         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10541         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10542         address fetch for clr instruction
10543         * device/lib/hc08/_mulint.c: created optimized assembly version
10544         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10545
10546 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10547
10548         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10549         proposed in FR #877103
10550
10551 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10552
10553         * src/SDCCval.c (cheapestVal): added missing checks
10554         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10555         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10556
10557 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10558
10559         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10560         equal operands
10561
10562 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10563
10564         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10565         loaded with the linker search paths (-L arguments) and the libraries
10566         to be linked with the current source (-l arguments). Changes
10567         currently will affect only the pic16 port.
10568         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10569         include path the port specific paths and port specific libraries,
10570         * gplink command now contains the $3 argument,
10571         * src/pic16/device.h,
10572         * src/pic16/device.c,: structure PIC_device is made public and
10573         renamed to PIC16_device, the same for variable Pics which is renamed
10574         to Pics16. Updated all references to them.
10575         * src/pic16/glue.c (pic16glue): corrected bug with code
10576         initialization which bypassed the variable initializations block.
10577
10578         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10579         COMPILE_FLAGS and added the --nostdinc option
10580
10581 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10582
10583         * device/include/mc68hc908jb8.h: Register defs for another member
10584         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10585
10586 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10587
10588         Documenting changes from previous commits.
10589         * configure.in (version 1.56),
10590         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10591         when generating output files to configure the pic16 library,
10592         but now I've commented it out, since gputils aren't installed in the
10593         SF compile farm, so library won't compile
10594
10595         * device/lib/Makefile.in (version 1.56): initially I've added in
10596         target 'all' the prerequestive 'model-pic16' so it compiled the
10597         pic16 library, but now I've commented it out for the same reasons
10598         above,
10599         * added targets 'model-pic16' and 'objects-pic16' to compile the
10600         library
10601         * added target 'port-specific-objects-pic16' to handle the
10602         generated libraries and copy them into the build/ directory
10603         * added target 'clean-intermediate-pic16' to clean intermediate
10604         files into pic16 directory
10605         * in target 'installdirs' added line to create directory pic16 in
10606         the installation path
10607
10608         * device/include/Makefile.in (version 1.11): in target 'install'
10609         added lines to copy all header files to installation path,
10610         * in target 'installdirs' added line create directory for pic16
10611         headers in the installation path
10612
10613 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10614
10615         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10616          a function call
10617
10618 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10619
10620         * configure,
10621         * device/lib/configure.in,
10622         * device/lib/configure: fixed for autoconf 2.57
10623
10624 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10625
10626         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10627         option so that it actually works. Made it specific to the z80, since
10628         the gbz80 doesn't have these kinds of I/O ports.
10629
10630 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10631
10632         * device/include/z180.h,
10633         * device/lib/_memcpy.c,
10634         * device/lib/_memmove.c,
10635         * device/lib/_mulint.c,
10636         * device/lib/ser_ir.c,
10637         * device/lib/ser_ir_cts_rts.c,
10638         * device/lib/_strcmp.c,
10639         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10640         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10641         portmode; added deprecation warning for bank= and protmode= forms.
10642         Also, guard against buffer overflow.
10643         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10644
10645 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10646
10647         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10648         changed interrupt vector table generation to only emit declared vectors.
10649         * device/include/Makefile.in: added missing backslash
10650         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10651
10652 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10653
10654         Mainly changes to support compilation of the device libraries
10655         * src/pic16/device.c: stack is allocated via symbol and not
10656         via literal number. The symbol is placed in the corresponding
10657         position of the data ram
10658         * (pic16_dump_section): relocatable and absolute uninitialized
10659         data are now emitted in sorted order to reduce section naming,
10660         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10661         weren't marked as being in the access bank,
10662
10663 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10664
10665         Added portion of GNU PIC Library under the directory
10666         device/include/pic16 and device/lib/pic16. These files
10667         contain the declarations of SFRs for the PIC18Fxx2 devices.
10668         The directory is initialized via configure from toplevel.
10669
10670 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10671
10672         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10673         the spilllocations to be compared correctly
10674
10675 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10676
10677         * src/SDCCast.c (decorateType): fixed bug introduced today
10678
10679 2004-01-12  Borut Razem <borut.razem AT siol.net>
10680
10681         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10682         doc/sdccman.lyx: upper case pragmas are deprecated
10683
10684 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10685
10686         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10687         in simpler and even better code
10688
10689 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10690
10691         * src/SDCCicode.c (operandOperation): fixed bug #874819
10692         * src/SDCCast.c (decorateType): fixed
10693         char foo (unsigned long ul) { return ul > 0; }
10694
10695 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10696
10697         * doc/sdccman.lyx: Moved and added some sections, small changes
10698         all over. Telling LaTeX to be less strict with word spacing
10699         to better keep the right margin. Changed some notes about
10700         maintainance of the ports in section 3.2.1 - is it OK like this?
10701
10702 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10703
10704         SDCC source changes:
10705         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10706         convilong): modified to inform the pic16 port that builtin functions
10707         are external
10708
10709         PIC16 PORT specific changes:
10710         * src/pic16/device.c pic16_dump_equates() added,
10711         processor registers declared internally by the port are emitted in
10712         the translation as equates,
10713         * src/pic16/gen.c: inline code is passed unprocessed to the
10714         translation,
10715         * (pic16_popGetLit2): fnuction modified to take second operand as
10716         pCodeOp pointer and not as literal,
10717         * (popRegFromIdx): prefixed with pic16_,
10718         * (pic16_popCombine2): modified to receive already allocated pCode
10719         operands,
10720         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10721         * (genFunction): initializes local stack frame and pushes on stack
10722         all the registers used by this function,
10723         * (genEndFunction): restores all registers from stack and restores
10724         stack frame,
10725         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10726         improvements,
10727         * (pic16glue): changed the program startup sequence,
10728         * added new dbName code 'A' for functions placed in absolute section
10729         * src/pic16/main.c: added function attribute _naked,
10730         * added pragma 'code' to place a fnuction at an absolute address,
10731         * added command line arguments --debug-ralloc and --pcode-verbose,
10732         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10733         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10734         * (pic16_newpCodeOpLit2): modified to take the second operand as
10735         pCodeOp pointer,
10736         * (pic16_printpBlock): modified to emit each function in a separate
10737         section,
10738         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10739         UPPER for immediate operands,
10740         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10741         instruction,
10742         * src/pic16/peeph.def: all peepholes with movff are commented out,
10743         because there is a problem in the pcode peep optimizer,
10744         * src/pic16/ralloc.c: the register allocator can now reuse local
10745         function symbols for another function. This saves register usage.
10746         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10747
10748         Added file src/pic16/NOTES with information about program writing on
10749         the current port version.
10750
10751 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10752
10753         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10754         and peephole 252 (array access)
10755
10756 2004-01-09  Borut Razem <borut.razem AT siol.net>
10757
10758         * src/SDCCmain.c : fixed #872250: -l command line defined library
10759           files are scanned before standard library files
10760
10761 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10762
10763         * src/SDCCast.c (decorateType): fixed bug #874046
10764
10765 2004-01-09  Borut Razem <borut.razem AT siol.net>
10766
10767         * support/scripts/sdcc.nsi: remove previous installation
10768
10769 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10770
10771         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10772         bytes for last interrupt vector (mcs51)
10773         * sdcc.spec: fixed typo
10774
10775 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10776
10777         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10778         gen51Code): more efficient parameter receive for --model-large
10779         ("bug" #845294)
10780
10781 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10782
10783         * src/ds390/main.c,
10784         * src/z80/main.c: added missed needLinkerScript flags (more than
10785         one port structure defined in these file)
10786         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10787         bug #795325
10788
10789 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10790
10791         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10792         * src/port.h: added flag needLinkerScript in port->linker
10793         structure to inform whether to create a .lnk file or not,
10794         * src/avr/main.c,
10795         * src/ds390/main.c,
10796         * src/hc08/main.c,
10797         * src/mcs51/main.c,
10798         * src/pic/main.c,
10799         * src/pic16/main.c,
10800         * src/xa51/main.c,
10801         * src/z80/main.c: changed appropriately to configure
10802         needLinkerScript flag
10803         * src/pic/gen.c,
10804         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10805         * src/pic/glue.c: added variable udata_section_name to
10806         override default uninitialized data segment definition for
10807         devices only with SHAREBANK memory (reported from Erik Epetrich)
10808         * (pic14emitOverlay): modified to emit a commented overlay segment
10809         directive when no overlay data exist
10810         * (picglue): modified to emit uninitialized data segment
10811         according to udata_section_name
10812         * src/pic/main.c (_pic14_parseOptions): added command line
10813         options --udata-section-name=[name] to override default
10814         udata definition name
10815         * modified _linkCmd and _asmCmd to include compiler passed
10816         arguments via -W option
10817         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10818         object file from '.rel' to '.o' in port->linker structure,
10819         changed size of fptr from 2 to 3 in port structure
10820
10821 2004-01-07  Borut Razem <borut.razem AT siol.net>
10822
10823         * support/scripts/sdcc.nsi: update PATH
10824         * support/scripts/sdcc.ico: craeted
10825
10826 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10827
10828         * device/include/Makefile.in: fix install
10829         * doc/Makefile: fix install
10830
10831 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10832
10833         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10834         in bug #860505
10835         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10836         how the function variable allocation summary is displayed; also
10837         include information about variables allocated to the overlay
10838         segment
10839
10840 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10841
10842         * as/mcs51/lkmain.c: Help about -Y option
10843         * as/mcs51/lkarea.c: Fixed gcc warnings
10844
10845 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10846
10847         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10848         fixed warning
10849         * support/valdiag/tests/overflow.c: added
10850         * src/SDCCast.c (decorateType),
10851         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10852         LEFT_OP (left shift)
10853
10854 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10855
10856         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10857         (default behaviour).
10858
10859 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10860
10861         A python script to validate compiler diagnostic messages. It can be
10862         used to verify that sdcc complains about bad c source code and
10863         gives a good location of the error.
10864         * support/valdiag/Makefile,
10865         * support/valdiag/valdiag.py,
10866         * support/valdiag/tests/*
10867
10868 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10869
10870         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10871         * src/SDCCsymt.c (newEnumType),
10872         * src/SDCCsymt.h
10873         * support/Util/SDCCerr.c,
10874         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10875         enum related bugs.
10876         * support/regression/tests/enum.c: added test for enum values that
10877         require at least 2 bytes of storage.
10878
10879 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10880
10881         * src/common.h: added ifndef/define/endif macros
10882         around the header file.
10883         Bug reported from Jesus Calvino-Fraga
10884
10885 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10886
10887         * sdcc.spec: updated
10888         * device/include/Makefile.in: don't install CVS directories
10889         * device/lib/Makefile.in: added removal of CVS directories after install
10890         * doc/Makefile: fixed install, added local_icons
10891         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10892         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10893         * src/ds390/gen.c (genRightShift): fixed bug #870788
10894         * src/SDCCast.c (decorateType): fixed bug #870781
10895
10896 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10897
10898         PIC16 port related changes:
10899         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10900         added variable stackPos,
10901
10902         * gen.c: genCall, assignResultValue: added support for
10903         pushing/retrieving function parameters to/from stack,
10904         genFunction,genEndFunction: setup stack frame for the
10905         generated function,
10906         genAddrOf: will be changed according to bug 863624
10907
10908         * added files genutils.c and genutils.h which contain gen*
10909         debugged and optimised functions extracted from gen.c
10910
10911         * glue.c: added variable 'externs' which holds extern symbols,
10912         pic16emitRegularMap: is modified to properly handle relocatable
10913          symbols under the new scheme,
10914         pic16createInterruptVect: is modified
10915         pic16printPublics: is modified to emit 'global' assembler directives,
10916         added pic16_printExterns to print extern symbols,
10917         pic16glue: initializes stack/frame pointer in the beginning of
10918         the assembly output. Temporary hack, will be corrected later,
10919         because gplink yet does not support stack and SDCC does not
10920         yet support a type of crt0.o object to create the final binary.
10921
10922         * Removed many lines that contain 8051 legacy code.
10923         * The code is finally placed under a 'code' directive.
10924         * Added port specific options.
10925
10926         * _process_pragma: simplified since now we do not need *special*
10927         include file to define SFR registers. But a separate header
10928         will be needed. This will be developed later.
10929         * _pic16_parseOptions: added, parses port specific options:
10930         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10931         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10932         --preplace-udata-with=
10933
10934         * _pic16_setDefaultOptions: modified to initialize section names,
10935         but hack is temporarly out of order since it needs improvement.
10936         * _pic16_genAssemblerPreamble: configuration words are emitted by
10937         their address instead of their name. This part is incomplete and
10938         supports only the 18Fxx2 devices. Other devices will emit an error
10939         during assembly since they do not contain the same set of config
10940         registers
10941         * _pic16_genIVT: is modified,
10942
10943         * pcode.c: added definitions for some hardware registers that are needed
10944         for stack support
10945         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10946         All PCI entries are updated. Now LFSR is supported.
10947         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10948         * added pic16_newpCodeOpLit2 to support instructions with
10949         two literal arguments
10950         * pic16_pCode2str: corrected code that emits assembler instructions
10951         with two literal operands and those that have an access bit modifier
10952         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10953         this fixes a bug which caused some labels to be lost, when an
10954         assembler directive was added, i.e. banksel,
10955         * pic16_FixRegisterBanking: improved logic that causes the insertion
10956         of bank switching,
10957         * InlineFunction: functions that are called once, are not any more
10958         inlined. This can be a port option in the future,
10959
10960         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10961
10962         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10963         hold the corresponding uninitialized symbols,
10964         * pic16_allocProcessorRegister: registers have explicit marked the
10965         accessBank field,
10966         * pic16_allocInternalRegister: registers are explicit marked as
10967         not used,
10968         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10969         processing list, so bit registers were lost,
10970         *
10971
10972         * ralloc.h: added field 'accessBank' and original symbol operand
10973         in register definition,
10974         * removed the field isMapped from register definition,
10975
10976         ** Several functions have been removed from various sources:
10977         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10978         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10979         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10980         pic16_assignRelocatableRegisters
10981
10982         ** others have been introduced:
10983         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10984         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10985
10986 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10987
10988         * support/scripts/inc2h.pl: changed definition of BIT_AT
10989         to emit 'sbit at' instead of 'bit at'. This was a request.
10990
10991         PIC16 port related preliminary changes:
10992         * gen.c: prefixed function popRegFromString with
10993         pic16_ and all references to it corrected
10994         * pcode.c: all pic16_pc_* hardware registers prefixed
10995         with underscore (_),
10996         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10997         * ralloc.c: newReg(): when register is REG_SFR then
10998         set address to rIdx,
10999         pic16_allocProcessorRegister(): marks register wasUsed=0
11000         pic16_writeUsedRegs(): added a call to assign processor
11001         registers via pic16_assignFixedRegisters
11002
11003 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11004
11005         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11006         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11007         variables in unused register banks.  Also the SSEG is placed
11008         wherever there is enough space for it, and IDATA can be anywhere
11009         in internal RAM.  For now compile using -Wl-Y[stack_size].
11010         The mem file is different for this option as well, since it
11011         makes no sense of talking about DSEG lenght.
11012
11013 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11014
11015         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11016         in certain cases, e.g. when ROM assignment, patch provided
11017         from Albert den Haan.
11018
11019 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11020
11021         Many signedness and type propagation fixes:
11022         * src/SDCCicode.c: made geniCodeCast() static
11023         replaced SPEC_ by IS_ (cosmetic)
11024         (operandOperation): fixed div and mod operation
11025         (usualBinaryConversions): added support for promotion of char
11026         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11027         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11028         (geniCodeAdd): an array index will stay unsigned, even if promoted
11029         from char to int
11030         (geniCodeArray): ditto
11031         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11032         * src/SDCCsymt.c (computeType): added more support for char;
11033         promotion of char is selectable by promoteCharToInt, fixed signedness
11034         for all cases
11035         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11036         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11037         * src/SDCCval (val*): replaced signedness calculation by
11038         computeType()
11039         rearranged if-branches (cosmetic)
11040         (valShift): added warning W_SHIFT_CHANGED
11041         (valCompare): fixed problem with different types
11042         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11043         * support/regression/tests/literalop.c: added many cases
11044         * support/regression/tests/ast_constant_folding.c: changed finally to
11045         'unsigned int'
11046         * .version: new year, new version: 2.3.7
11047         * src/SDCCmain.c (main): applied patch #866468
11048         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11049         provided by Scott Bronson
11050         * doc/sdccman.lyx: updated documentation for sdcdb
11051         updated and added chapter tips
11052
11053 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11054
11055         * src/SDCCsymt.h: missing from yesterday's commits
11056
11057 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11058
11059         * src/SDCC.y (struct_or_union_specifier),
11060         * support/Util/SDCCerr.c,
11061         * support/Util/SDCCerr.h: verify that struct & union tags are used
11062         as declared.
11063
11064 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11065
11066         * src/SDCCglobl.h: missing from yesterday's commits
11067
11068 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11069
11070         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
11071         sft_attributes, struct_declaration, parameter_declaration,
11072         type_name, start_block, declaration_list),
11073         * src/SDCC.lex (check_type): support redefinition of typedef names
11074
11075 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11076
11077         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
11078         aligned xdata arrays. Erik helped me with the if clause.
11079
11080 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11081
11082         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
11083         warning
11084
11085 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11086
11087         * src/SDCCast.h,
11088         * src/SDCCast.c (newAst_),
11089         * src/SDCCicode.h,
11090         * src/SDCCicode.c (ast2iCode, newiCode),
11091         * src/SDCCglobl.h,
11092         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
11093         expr, statement, expression_statement, selection_statement,
11094         iteration_statement, expr_opt, jump_statement): foundation for tracking
11095         sequence points
11096         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
11097         point code too)
11098
11099 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11100
11101         * support/Util/SDCCerr.c,
11102         * src/SDCCast.h,
11103         * src/SDCCast.c (createCase, createDefault, decorateType),
11104         * src/SDCClabel.c (labelUnreach),
11105         * src/SDCC.y (labeled_statement, jump_statement): More improvements
11106         to error messages.
11107         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
11108         (with thanks to Stas Sergeev)
11109         * device/include/time.h,
11110         * device/lib/time.c (CheckTime): suppress unreachable code warning
11111
11112 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11113
11114         * src/SDCCast.c (createIvalCharPtr),
11115         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
11116         bug #753752)
11117         * support/regression/tests/nullstring.c: tests for these two bugs
11118
11119 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11120
11121         * support/Util/SDCCerr.h,
11122         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
11123         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
11124         about storage class and 'at' used inside struct or union
11125         * src/SDCCBBlock.c (iCodeFromeBBlock),
11126         * src/SDCCcse.c (ifxOptimize),
11127         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
11128         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
11129         printIval, emitStaticSeg, emitOverlay),
11130         * src/SDCClabel.c (deleteIfx),
11131         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
11132         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
11133         gatherAutoInit, processParms),
11134         * support/Util/SDCCerr.h,
11135         * support/Util/SDCCerr.c (werrorfl): Support for better error location
11136         reporting for post-parse errors.
11137
11138 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11139
11140         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
11141         implicit casts via union; they don't work on big endian systems
11142         (possible fix for bug #861138)
11143
11144 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11145
11146         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
11147         * src/mcs51/main.c: fixed the fix for bug #737001
11148
11149 2003-12-15  Borut Razem <borut.razem AT siol.net>
11150
11151         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
11152
11153 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11154
11155         * support/makebin/makebin.c: put output in binary mode
11156
11157 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11158
11159         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
11160         xdata and data memory on startup. Set the environment variable
11161         SDCC_NOGENRAMCLEAR to disable this.
11162         * src/mcs51/peephole.def,
11163         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
11164         (allows non-interrupt and interrupt code to safely compete for a resource
11165         without the non-interrupt code having to disable interrupts)
11166
11167 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11168
11169         * src/SDCCicode.c (geniCodeAdd),
11170         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
11171         with valFromType if type might be a pointer and host is big endian).
11172         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
11173         types, not just integer types.
11174         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
11175         multiply defined with mismatching "at" address.
11176
11177 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11178
11179         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
11180         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
11181         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
11182         with embedded nulls (fixed bug #753752)
11183
11184 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11185
11186         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
11187         Apparently this did not see much testing (endless loop)
11188
11189 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11190
11191         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
11192
11193 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11194
11195         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
11196         gracefully handle NULL memmap pointers
11197
11198 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11199
11200         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
11201         instead of deleting the iCode when an operand is volatile
11202         * src/z80/gen.c (genDummyRead),
11203         * src/mcs51/gen.c (genDummyRead),
11204         * src/ds390/gen.c (genDummyRead),
11205         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
11206         not just IC_RIGHT
11207         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
11208         * src/SDCC.y: fixed bug #850420
11209
11210 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11211
11212         Applied z80 i/o port patch from Peter Townson and fixed some operators
11213         to better handle operands in A register.
11214         * device/include/z180.h
11215         * src/SDCC.y
11216         * src/SDCCglue.c
11217         * src/z80/gen.c
11218         * src/z80/gen.h
11219         * src/z80/main.c
11220         * src/z80/peeph-z80.def
11221         * src/z80/peeph.def
11222         * src/z80/z80.h
11223
11224 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11225
11226         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11227
11228 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11229
11230         * device/lib/hc08/_mullong.c: Removed extra #endif
11231
11232 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11233
11234         * sim/ucsim/hc08.src/inst.cc,
11235         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11236         carries from x to h
11237         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11238         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11239         * device/include/stdarg.h: fixed varargs for hc08
11240         * device/lib/Makefile.in,
11241         * device/lib/hc08/Makefile,
11242         * device/lib/hc08/_mulint.c,
11243         * device/lib/hc08/_mullong.c: fixed some endian problems
11244
11245 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11246
11247         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11248         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11249         * device/lib/_gptrget.c,
11250         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11251
11252 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11253
11254         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11255         * src/SDCCast.c (astErrors): fixed bug #846007
11256         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11257
11258 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11259
11260         * src/SDCCast.c (decorateType): disabled a transformation I added in
11261         revision 1.188 (access to fields of a structure at an absolute address);
11262         it breaks with bitfields, extern declarations, and gcse analysis.
11263         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11264         could be assigned through a pointer, so don't complain.
11265         * src/SDCCast.c (astErrors),
11266         * src/SDCCast.h,
11267         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11268
11269 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11270
11271         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11272         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11273         output of __config directives, since gpasm now supports them
11274         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11275         pre-processor macro, i.e. -DMCU=p18f452
11276         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11277         and modified to handle 'cast' icode similarly to '=' icode
11278         * src/pic16/device.h (typedef struct PIC_device): added field
11279         'extMIface' to indicate that chip has external memory interface
11280         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11281         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11282         18F8720
11283
11284 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11285
11286         * src/SDCC.y (pointer): fixed bug #846006
11287         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11288         * src/SDCCast.c (decorateType): fixed bug #846009
11289         * src/ds390/peeph.def,
11290         * src/ds390/gen.c (genAnd, genOr),
11291         * src/mcs51/peeph.def,
11292         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11293
11294 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11295
11296         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11297         * src/SDCCdflow.c
11298         * src/SDCCcse.c
11299         * src/SDCCcse.h
11300         * src/SDCCBBlock.h
11301         * src/SDCCBBlock.c
11302
11303 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11304
11305         fixed bug #845089
11306         * src/SDCCbitv.h,
11307         * src/SDCCbitv.c: added function to free a bitvector
11308         * src/SDCClrange.h,
11309         * src/SDCClrange.c: added function to recompute the liveranges
11310         * src/avr/ralloc.c,
11311         * src/ds390/ralloc.c,
11312         * src/hc08/ralloc.c,
11313         * src/mcs51/ralloc.c,
11314         * src/pic/ralloc.c,
11315         * src/pic16/ralloc.c,
11316         * src/xa51/ralloc.c,
11317         * src/z80/ralloc.c: recompute the liveranges after register packing
11318
11319 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11320
11321         * src/SDCCloop.c (newInduction): fixed bug #845630
11322
11323 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11324
11325         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11326         inadvertantly left behind from my 2003-11-12 change
11327
11328 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11329
11330         Updated headers I neglected to commit yesterday.
11331         * src/SDCClrange.h,
11332         * src/SDCCicode.h
11333
11334 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11335
11336         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11337         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11338         * src/SDCCopt.c (eBBlockFromiCode),
11339         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11340         the creation of the key hash table from the sequencing so it can be used
11341         earlier (for some GCSE bug fixes still pending)
11342
11343 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11344
11345         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11346         * support/regression/tests/addsub.c: testing genPlus shortcut
11347
11348 2003-11-15  Borut Razem <borut.razem AT siol.net>
11349
11350         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11351
11352 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11353
11354         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11355         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11356         ordering is immaterial.
11357         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11358
11359 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11360
11361         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11362         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11363         (SIGSEV) of bug #840381
11364         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11365         unlink new file before rename if new and old filenames are the same)
11366
11367 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11368
11369         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11370         uninitialized variables) for the mcs51. Set environment variable
11371         SDCC_GENRAMCLEAR to test.
11372         xdata initialization slightly shorter
11373
11374 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11375
11376         * src/SDCCsymt.h,
11377         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11378         #838241 & 780691 (basicly the same bug)
11379         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11380         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11381
11382 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11383
11384         * src/SDCCmain.c (linkEdit): "fix" #834252
11385
11386 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11387
11388         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11389         * src/SDCCast.h,
11390         * src/SDCC.y: fixed bug #819403
11391
11392 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11393
11394         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11395         the reentrant attribute.
11396         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11397         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11398         simulation
11399         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11400         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11401         erroneously reduced to a literal.
11402         * src/hc08/ralloc.c (packRegisters, rematStr),
11403         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11404         some cases
11405
11406 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11407
11408         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11409         * doc/sdccman.lyx: changed from 'article' to 'book'
11410         * doc/Makefile: readded test_suite_spec and cdbfileformat
11411
11412 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11413
11414         * device/include/stdlib.h: include malloc.h to comply with ANSI
11415         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11416
11417 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11418
11419         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11420         * doc/clean.mk: also remove *.out files
11421         * doc/sdccman.lyx: some additions, larger top/bottom margins
11422
11423 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11424
11425         * src/SDCC.y: fixed bug #837365
11426         * support/regression/tests/bitopcse.c
11427         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11428         a symbol (might be valop instead)
11429         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11430         * device/lib/clean.mk: added hc08 to the cleaning list
11431
11432 2003-11-04  Borut Razem <borut.razem AT siol.net>
11433
11434         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11435           made 2003-11-04
11436         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11437           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11438           malloc is declared in standard stdlib.h
11439
11440 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11441
11442         * device/lib/hc08/Makefile: need to clean .rel not .o files
11443         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11444
11445 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11446
11447         * src/port.h,
11448         * src/hc08/main.c,
11449         * src/mcs51/main.c,
11450         * src/ds390/main.c,
11451         * src/z80/main.c,
11452         * src/avr/main.c,
11453         * src/pic/main.c,
11454         * src/pic16/main.c,
11455         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11456         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11457         tests (which uses the port's oclsExpense function)
11458         * src/SDCC.y,
11459         * src/SDCCast.c,
11460         * src/SDCCicode.c,
11461         * src/hc08/gen.c,
11462         * src/ds390/gen.c,
11463         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11464
11465 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11466
11467         * src/SDCCcse.c (ifxOptimize),
11468         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11469         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11470         deleting the IFX iCode.
11471         * src/hc08/ralloc.c: reduced unneeded slocs
11472         * src/hc08/gen.c: fixed bug in asmopToBoolean
11473
11474 2003-11-04  Borut Razem <borut.razem AT siol.net>
11475
11476         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11477           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11478           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11479           transferred to configure
11480
11481 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11482
11483         Use headers defined in the C[++] standards:
11484         * sim/ucsim/gui.src/serio.src/fileio.cc
11485         * sim/ucsim/gui.src/serio.src/frontend.cc
11486         * sim/ucsim/gui.src/serio.src/main.cc
11487         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11488         * support/Util/NewAlloc.c
11489         * as/hc08/lklibr.c
11490         * as/mcs51/lklibr.c
11491         * as/z80/aslist.c
11492         * as/z80/assym.c
11493
11494 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11495
11496         * Added MSVC projects for hc08 assembler and linker:
11497         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11498         /as/hc08/link_hc08.dsp
11499
11500 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11501
11502         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11503
11504 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11505
11506         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11507
11508 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11509
11510         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11511
11512 2003-10-31  Borut Razem <borut.razem AT siol.net>
11513
11514         * support/cpp2/cpplib.h,
11515           support/cpp2/cpplib.c,
11516           support/cpp2/cpplex.c,
11517           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11518           to switch _asm block preprocessing on / off. Default is
11519           #pragma preproc_asm +
11520
11521 2003-10-31  Borut Razem <borut.razem AT siol.net>
11522
11523         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11524           when outputting comment blocks (when executed with -C option) and
11525           _asm (SDCPP specific) blocks
11526
11527 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11528
11529         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11530
11531 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11532
11533         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11534
11535 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11536
11537         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11538         * src/SDCCast.c (decorateType): fixed bug #832664
11539
11540 2003-10-31  Borut Razem <borut.razem AT siol.net>
11541
11542         * support/cpp2/cpplex.c: fixed for SDCPP:
11543           comments(when executed with -C option) and _asm blocks
11544           were included even if they where in skipped #if block.
11545           Applied solution from GCC cpp 3.3.2
11546
11547 2003-10-31  Borut Razem <borut.razem AT siol.net>
11548
11549         * src/SDCC.lex: sdcc now understands both formats:
11550           '# <line_number> <file_name>' and
11551           '#line <line_number> <file_name>'
11552         * support/cpp2/cppmain.c: sdcpp now generates the standard
11553           '# <line_number> <file_name>' instead of former
11554           '#line <line_number> <file_name>'
11555
11556 2003-10-30  Borut Razem <borut.razem AT siol.net>
11557
11558         * support/cpp2/cpphash.h,
11559         * support/cpp2/cpplib.h
11560         * support/cpp2/cpplex.c,
11561         * support/cpp2/cppmain.c,
11562         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11563
11564 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11565
11566         Fixed a number of problems revealed by bug #827883.
11567         * src/SDCCloop.c (loopInvariants): Spill location of the
11568         result operand should be recomputed if extracted from
11569         a loop. Also, don't extract assignments of an iTemp
11570         from a literal.
11571         * src/SDCCast.c (isConformingBody): loop reversal should
11572         not occur if the control variable is involved with a
11573         relational operator.
11574
11575 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11576
11577         * .version: bumped to 2.3.6 to reflect the big improvements
11578         made by Erik and Klaus. Thanks!
11579
11580 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11581
11582         Replaced the livrange code.
11583         * src/SDCClrange.c: added new LR code
11584         * src/SDCCloop.c,
11585         * src/SDCCBBlock.h: removed remainig parts from old LR code
11586         * src/ds390/ralloc.c,
11587         * src/ds390/gen.c: minor fixes to make it work with new code
11588
11589 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11590
11591         * as/hc08/asm.h,
11592         * as/hc08/lkrloc.c,
11593         * src/hc08/gen.c,
11594         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11595         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11596         (tweaked fix for bug #818696)
11597
11598 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11599
11600         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11601
11602 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11603
11604         * src/SDCCmain.c,
11605         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11606         * src/mcs51/gen.c (gencjneshort),
11607         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11608         more efficient (per Scott Bronson's suggestion)
11609
11610 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11611
11612         Extended the semantics of the critical keyword to include
11613         individual statements. See RFE #827755 and #799831
11614         * src/SDCC.y
11615         * src/SDCCicode.c
11616         * src/SDCCopt.c
11617         * src/SDCCast.c
11618         * support/Util/SDCCerr.c
11619         * support/Util/SDCCerr.h
11620         * src/mcs51/gen.c
11621         * src/ds390/gen.c
11622         * src/hc08/gen.c
11623
11624 2003-10-19  Borut Razem <borut.razem AT siol.net>
11625
11626         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11627
11628 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11629
11630         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11631         Fixed bug #818696
11632         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11633         and predecrement operand is displayed
11634
11635 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11636
11637         * src/SDCCval.c (valMinus): fixed bug #826041
11638
11639 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11640
11641         Some hc08 related updates that I missed earlier
11642         * sim/ucsim/stypes.h
11643         * support/regression/ports/hc08/spec.mk
11644
11645 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11646
11647         New target "hc08" for the Motorola 68hc08 family of micros
11648
11649         * configure
11650         * configure.in
11651         * Makefile
11652         * src/hc08/*
11653         * src/SDCCmain.c
11654         * src/port.h
11655         * sim/ucsim/hc08.src/*
11656         * sim/ucsim/configure.in
11657         * src/ucsim/configure
11658         * sim/ucsim/packages_in.mk
11659         * as/hc08/*
11660         * as/Makefile
11661         * device/include/mc68hc908qy.h
11662         * device/lib/hc08/*
11663         * device/lib/Makefile.in
11664         * support/regression/ports/hc08/*
11665         * support/regression/Makefile
11666
11667 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11668
11669         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11670         regression test
11671         * src/ds390/gen.c (genCast): fixed bug #821957
11672
11673 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11674
11675         * device/lib/logf.c: "fixed" overlay bug
11676         * support/regression/ports/host/spec.mk: added m library
11677         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11678         * support/regression/tests/float_trans: added (for Eric)
11679
11680 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11681
11682         * src/mcs51/gen.c (genCpl): fixed bug
11683         http://sf.net/mailarchive/message.php?msg_id=6263915
11684
11685 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11686
11687         * src/SDCCast.c (decorateType): added extended constant folding
11688         * src/SDCCsymt.c (computeType): cleanup
11689         * src/SDCCval.c (valShift): minor optimization
11690         * support/regression/tests/ast_constant_folding.c: added
11691
11692 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11693
11694         * src/SDCCmain.c: removed some unintended changes
11695
11696 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11697
11698         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11699         * src/z80/gen.c: fixed part of bug #817589
11700         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11701
11702 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11703
11704         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11705         * src/SDCCcflow.c
11706         * src/SDCCcse.c
11707         * src/SDCCdflow.c
11708         * src/SDCClabel.c
11709         * src/SDCClrange.c
11710         * src/SDCCmem.c
11711         * src/SDCCopt.c
11712         * src/SDCCpeeph.c
11713         * src/SDCCset.c
11714         * src/avr/ralloc.c
11715         * src/ds390/ralloc.c
11716         * src/izt/ralloc.c
11717         * src/mcs51/ralloc.c
11718         * src/pic/ralloc.c
11719         * src/pic16/ralloc.c
11720         * src/xa51/ralloc.c
11721         * src/z80/ralloc.c
11722         * src/z80/gen.c: removed unused label "release:"
11723
11724 2003-10-06  Borut Razem <borut.razem AT siol.net>
11725
11726         * src/SDCC.lex: removed definition of unused variables
11727           save_optimize and save_options
11728
11729 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11730
11731         * clean.mk: removed '=' in "-maxdepth=1"
11732         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11733         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11734
11735 2003-10-06  Borut Razem <borut.razem AT siol.net>
11736
11737         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11738           my_unput() replaced by unput()
11739
11740 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11741
11742         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11743         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11744         type-punned pointer will break strict-aliasing rules"
11745         Old LR behaviour is again default; Klaus' LR can be choosen by
11746         defining the environment variable LRKLAUS
11747         * src/SDCCBBlock.h
11748         * src/SDCCloop.c
11749         * src/SDCClrange.c
11750         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11751         * clean.mk: fixed removal of files in bin/CVS/
11752         * device/lib/clean.mk: fixed removal of directories small and large
11753         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11754         * src/SDCCicode.c,
11755         * src/SDCCval.c: removed superflous test for pedantic
11756
11757 2003-10-05  Borut Razem <borut.razem AT siol.net>
11758
11759         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11760           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11761           message "unmatched #pragma SAVE and #pragma RESTORE"
11762
11763 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11764
11765         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11766           assembly, critical functions, atomic, nojtbound)
11767
11768 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11769
11770         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11771         * src/SDCCBBlock.h
11772         * src/SDCCloop.c
11773         * src/SDCCloop.h
11774         * src/SDCClrange.c
11775
11776 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11777
11778         * src/z80/gen.h,
11779         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11780         * src/mcs51/gen.h
11781         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11782         * src/ds390/gen.h
11783         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11784         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11785         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11786
11787 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11788
11789         * src/z80/gen.c (genRet): fixed bug #524753
11790         * src/z80/gen.c (genCast): fixed internal error on cast from
11791         pointer to long
11792         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11793         fix for bug #477835 to the z80
11794         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11795         for tracking iCodes in the peephole optimizer for z80
11796
11797 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11798
11799         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11800         the other part of bug #814548
11801         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11802
11803 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11804
11805         * src/SDCCcse.c: fixed part of bug #814548
11806
11807 2003-09-28  Borut Razem <borut.razem AT siol.net>
11808
11809         * src/asm.c: rewrite of printILine() to use temporary file instead
11810           a pipe
11811         * src/xa51/main.c: commented out declaration of int rewinds
11812
11813 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11814
11815         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11816
11817 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11818
11819         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11820         * src/asm.c (printILine): Fixed bug #811015
11821
11822 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11823
11824         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11825         freeing.
11826
11827 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11828
11829         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11830         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11831         to correctly handle general case of AOP_PAIRPTR
11832         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11833
11834 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11835
11836         * src/mcs51/ralloc.c (fillGaps),
11837         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11838         register positioning bug)
11839
11840 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11841
11842         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11843
11844 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11845
11846         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11847         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11848         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11849         (ralloc doesn't intentionally do this now, but perhaps later)
11850         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11851         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11852         register positioning bugs (Fixed bug #762602 and #795325)
11853         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11854         (Fixed bug #808779)
11855         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11856         lines that --i-code-in-asm generates
11857
11858 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11859
11860         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11861         trying to fclose a FILE* that was already closed.
11862
11863 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11864
11865         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11866         of const struct should be treated as if const themselves)
11867
11868 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11869
11870         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11871
11872 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11873
11874         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11875         Unix (/n) and DOS (/r/n) line terminations.
11876
11877 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11878
11879         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11880         bug #613775
11881
11882 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11883
11884         * src/mcs51/gen.c (genFunction, genEndFunction),
11885         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11886         and restore of EA so that stack offsets to parameters are
11887         correct when using both critical and reentrant/stack-auto.
11888         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11889         size (can be triggered in error if sloc is shared between
11890         different sized objects)
11891         * device/include/float.h: fixed macros to explicitly use
11892         unsigned long where needed
11893
11894 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11895
11896         Feature req. 799831: added code to allow nesting of critical functions
11897         * src/mcs51/gen.c (genFunction, genEndFunction)
11898         * src/ds390/gen.c (genFunction, genEndFunction)
11899
11900 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11901
11902         * src/SDCCsymt.c (sclsFromPtr),
11903         * src/SDCCsymt.h,
11904         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11905         support for standard C idiom of memory mapped variables; for
11906         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11907         to xdata int at 0x1234 tempvar = 1.
11908         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11909         provided by Akiya ISHIDA
11910
11911 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11912
11913         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11914         * src/SDCCval.c (constVal): added reduction from int to char
11915         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11916         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11917         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11918         to ignore the sign
11919         * support/regression/tests/shifts.c: fixed
11920
11921 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11922
11923         * src/z80/gen.c (genXor): Fixed bug #805445
11924
11925 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11926
11927         Fixed bug #621531 (const & volatile confusion in the type chain).
11928         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11929         refer to the const or volatile state of the pointer itself.
11930
11931         * src/SDCCast.c
11932         * src/SDCCglue.c
11933         * src/SDCCicode.c
11934         * src/SDCCsymt.c
11935         * src/SDCCval.c
11936         * src/SDCC.y
11937         * src/SDCCsymt.h
11938         * src/pic/gen.c
11939         * src/pic/ralloc.c
11940         * src/pic16/gen.c
11941         * src/pic16/ralloc.c
11942         * support/regression/tests/const.c
11943
11944 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11945
11946         When checking for duplicated modules, use absolute paths
11947         instead of relative paths.  Files changed:
11948
11949         * as/mcs51/lklib.c
11950         * link/z80/lklib.c
11951
11952 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11953
11954         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11955
11956 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11957
11958         * device/include/string.h: added size_t typedef, changed
11959         prototypes to use size_t, eliminated separate reentrant and
11960         non-reentrant declarations, added _memmove declaration
11961         * device/lib/_memcpy.c: changed to use size_t instead of int,
11962         changed /4 to >>2 to avoid division library call
11963         * device/lib/_memcmp.c,
11964         * device/lib/_memset.c,
11965         * device/lib/_strncat.c,
11966         * device/lib/_strncpy.c,
11967         * device/lib/_strncmp.c: changed to use size_t instead of int
11968         * device/lib/_memmove.c: new file (fixed bug #772294)
11969         * device/lib/Makefile.in: added _memmove.c
11970         * device/lib/z80/asm_strings.s: fixed bug #772290
11971         * support/regression/tests/bitfields.c: attempt to fix host assertion
11972         failure on amd64-unknown-linux2.2
11973
11974 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11975
11976         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11977         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11978         * as/z80/asmain.c (main): fixed bug #801766
11979
11980 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11981
11982         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11983         compilers
11984
11985 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11986
11987         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11988         reported in bug #800609
11989
11990 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11991
11992         * Top header beautifications in src/pic16 directory:
11993           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11994           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11995           pcoderegs.h, ralloc.c, ralloc.h
11996         * main.c: added top header and GPL license notice
11997         * pcode.c: fixed the if-conditional warning
11998
11999 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12000
12001         * device/lib/_mullong.c: replaced int by short for gcc
12002
12003 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12004
12005         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12006         and JUMPTABLE iCodes properly now (worked by accident before)
12007         * src/mcs51/gen.c (leftRightUseAcc),
12008         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12009         iCode properly now. Use getSize instead of nRegs since a & b
12010         aren't part of the nRegs tally.
12011
12012 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12013
12014         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12015         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12016           before instructions that use the _STATUS register
12017
12018 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12019
12020         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12021         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12022         fetching of the pointer
12023         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12024         copied from genNearPointerSet()
12025         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12026         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12027         If they pop r0/r1 they must be called in the opposite order than aopOp().
12028         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12029         (resp. --stack-auto), prepared for --xstack
12030
12031 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12032
12033         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12034
12035 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12036
12037         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12038         these ports have their own __sdcc_external_start()
12039
12040 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12041
12042         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12043         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12044         type for bits was changed. It resulted in bit variables becoming
12045         global, which is not permitted in PIC 14 assembly output.
12046
12047 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12048
12049         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12050
12051 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12052
12053         Z80 and MCS51 linkers complaint if a public symbol is defined
12054         in more than one library module:
12055
12056         * as/mcs51/lklib.c
12057         * link/z80/lklib.c
12058         * as/mcs51/Makefile.in
12059
12060 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12061
12062         A few small changes that speed up the peephole optimizer.
12063
12064         * src/SDCCpeeph.c
12065
12066 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12067
12068         Try to make the peephole optimizer smarter by maintaining
12069         an association between the assembly source code and the
12070         iCodes that originated them. Put this information to use
12071         with a new peephole rule condition "notVolatile" so that
12072         the rules can be aggressive yet still safe.
12073
12074         * src/SDCCpeeph.c
12075         * src/SDCCpeeph.h
12076         * src/mcs51/gen.c
12077         * src/mcs51/peeph.def
12078
12079 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12080
12081         Fixed bug #741761
12082
12083         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
12084         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
12085         if the left or right operand symbols have the accuse flag set.
12086
12087 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12088
12089         Changed the type of the result of the ! (NOT) operator to char;
12090         previously it returned the same type as the source. This allows
12091         us to eliminate all the genFloatNot functions (all of its target
12092         implementations were very buggy) since !float can use the same
12093         code as !long now.
12094
12095         * src/SDCCicode.c (ast2iCode): ! returns char
12096         * src/mcs51/gen.c (genNot, genNotFloat),
12097         * src/ds390/gen.c (genNot, genNotFloat),
12098         * src/z80/gen.c (genNot, genNotFloat),
12099         * src/pic/gen.c (genNot, genNotFloat),
12100         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
12101
12102 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
12103
12104         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12105         1. Interrupt would not compile properly. Ensure PCLATH register is saved
12106            during interrupts. Ensure WSAVE is located at a shared bank address.
12107         2. Fixed page selection in some places
12108         3. Fixed BTFSS/C to where necessary use registers directly and not simply
12109            the registers name strings.
12110         4. Fixed "signed / unsigned compare" compiler warnings.
12111         5. The PIC port manages its own allocation of the general purpose
12112            registers, but makes no attempt to reuse them. As a result when
12113            compiling it soon runs out of general purpose registers. Some
12114            additional code was added to the files pcode.c and device.c to walk
12115            through the function call tree and rename the registers so that they
12116            get reused.
12117
12118         * src/pic/device.c
12119         * src/pic/gen.c
12120         * src/pic/glue.c
12121         * src/pic/pcode.c
12122         * src/pic/pcode.h
12123         * src/pic/ralloc.c
12124         * src/pic/ralloc.h
12125         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
12126         genPlus() & genMinus() when the result is the same as left or right
12127
12128 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12129
12130         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
12131
12132 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12133
12134         Made bitfield a distinct type from bit so that bitfields
12135         convert as per ANSI C and bits retain their traditional
12136         boolean style behaviour. Implemented bitfield support in
12137         the z80 port.
12138
12139         * src/SDCCsymt.h,
12140         * src/SDCCsymt.c,
12141         * src/SDCCast.c,
12142         * src/cdbFile.c,
12143         * src/mcs51/gen.c,
12144         * src/ds390/gen.c: bit v bitfield split
12145         * src/z80/gen.c: New support for bitfields
12146         * support/regression/tests/bitfields.c: reenabled z80,
12147         added more tests
12148
12149 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12150
12151         Rules 246.x, 247.x relate to bitfields, the others speed up
12152         access to xdata mapped I/O devices.
12153
12154         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
12155
12156 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12157
12158         Cleaned up genPackBits and genUnpackBits and added two helper
12159         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
12160         for literal assignments in genPackBits (thanks to Frieder for
12161         reminding me).
12162
12163         * src/mcs51/gen.c
12164         * src/ds390/gen.c
12165
12166 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12167
12168         Fixed bug #748310 (pointer to function type mishandled when the
12169         function name is omitted). Also fixed a SIGSEGV when a function
12170         attribute (reentrant, etc) is used on a non-function or on a
12171         function but misplaced before the parameter list.
12172
12173         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
12174         bug #748310
12175         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
12176         * support/Util/SDCCerr.h,
12177         * support/Util/SDCCerr.c: Added func attr misuse error msg
12178
12179 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12180
12181         Fixed bug #787649 by anonymous
12182         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
12183         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
12184
12185 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12186
12187         Fixed numerous bitfield problems.
12188
12189         * src/SDCC.y: More bitfield related error checking
12190         * src/SDCCsymt.h,
12191         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
12192         * support/Util/SDCCerr.h,
12193         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
12194         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12195         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
12196         * support/regression/tests/bitfields.c: tests added
12197
12198 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12199
12200         Made the constant following the "interrupt" keyword optional. If
12201         omitted, the function will not automatically be given an entry
12202         in the interrupt vector table (similar to #pragma NOIV, but
12203         less syntacticly kludgy). The interrupt number is also now
12204         range checked. Also fixed a bug in the high order bit example
12205         in the manual.
12206
12207         * src/SDCC.y
12208         * src/SDCCmem.c
12209         * src/SDCCglue.c
12210         * src/SDCCsymt.h
12211         * support/Util/SDCCerr.c
12212         * support/Util/SDCCerr.h
12213         * doc/sdccman.lyx
12214
12215 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
12216
12217         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12218         * src/SDCCicode.c (operandOperation): rewritten some ops
12219         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12220         * src/SDCCsymt.c (computeType): literals are handled the same way as any
12221         other type
12222         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12223         be re-activated by defining REDUCE_LITERALS)
12224         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12225         unsigned, but are signed by default
12226         * src/SDCCval.c (constVal): rearranged
12227         * src/SDCCval.c (valMod): preliminary fix
12228         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12229         * support/regression/literalop.c: added, work in progress
12230
12231 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12232
12233         Generate warnings for useless declarations like "char data;"
12234         that don't do what new users expect.
12235
12236         * src/SDCC.y
12237         * support/Util/SDCCerr.h
12238         * support/Util/SDCCerr.c
12239
12240 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12241
12242         * src/SDCCval.c (valMult): fix overflow detection of negative int
12243
12244 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12245
12246         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12247
12248         Changes to support big endian targets:
12249
12250         * src/ports.h
12251         * src/SDCCglue.c
12252         * src/avr/main.c
12253         * src/ds390/main.c
12254         * src/izt/i186.c
12255         * src/mcs51/main.c
12256         * src/pic/main.c
12257         * src/pic16/main.c
12258         * src/xa51/main.c
12259         * src/z80/main.c
12260
12261 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12262
12263         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12264         * device/lib/time.c: fixed warning "integer overflow in expression"
12265
12266 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12267
12268         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12269         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12270         constants are unsigned; added recognition of "u" flag for unsigned
12271         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12272         * src/SDCCval.c (valDiv, valMod): fixed signdness
12273         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12274         signedness of modulo, left and right shift
12275         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12276         * support/Util/SDCCerr.h: added warning W_INT_OVL
12277         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12278         * src/SDCCast.c (ast_print): improved output of constants
12279
12280 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12281
12282         Fixed some warnings when building with MSVC:
12283
12284         * as/mcs51/asdata.c
12285         * as/z80/asdata.c
12286         * as/mcs51/asm.h
12287         * as/z80/asm.h
12288         * link/z80/aslink.h
12289         * link/z80/lkdata.c
12290         * link/z80/lkeval.c
12291         * link/z80/lkgb.c
12292         * link/z80/lkihx.c
12293         * link/z80/lks19.c
12294         * link/z80/lksym.c
12295         * support/cpp2/cpplib.c
12296         * src/ds390/gen.c
12297         * src/mcs51/gen.c
12298
12299 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12300
12301         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12302
12303 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12304
12305         * support/librarian/clean.mk: Do not remove Makefile.
12306         * support/librarian/Makefile: added.
12307
12308 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12309
12310         Added librarian to MSVC build:
12311         * all.dsp
12312         * sdcc.dsw
12313         * support/librarian/librarian.dsp
12314
12315         'configure' not needed for librarian, removed:
12316         * support/librarian/configure
12317         * support/librarian/configure.in
12318         * support/librarian/config_in.h
12319         * support/librarian/Makefile.in
12320
12321         Hopefully these ones built the librarian and the rest of sdcc properly:
12322         * Makefile
12323         * Makefile.common.in
12324
12325         Messed up 'configure', so revert to previous version:
12326         * configure
12327         * configure.in
12328
12329 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12330
12331         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12332         there, while the mantissa of a double is "only" 53 bits wide.
12333
12334 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12335
12336         Adding sdcclib to the build.  MSVC project coming soon.
12337         Files added/changed:
12338
12339         * support/librarian/clean.mk
12340         * support/librarian/configure
12341         * support/librarian/configure.in
12342         * support/librarian/config_in.h
12343         * support/librarian/Makefile.bcc
12344         * support/librarian/Makefile.in
12345         * support/librarian/sdcclib.c
12346         * Makefile.bcc
12347         * Makefile
12348         * Makefile.common.in
12349         * configure
12350         * configure.in
12351
12352 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12353
12354         Linker now complaints if linked modules have conflicting options, for
12355         example, one compiled using --model-large and another one compiled with
12356         --model-small.  The following files were modified:
12357
12358         * as/mcs51/asdata.c
12359         * as/mcs51/aslink.h
12360         * as/mcs51/asm.h
12361         * as/mcs51/asmain.c
12362         * as/mcs51/asout.c
12363         * as/mcs51/i51pst.c
12364         * as/mcs51/lkdata.c
12365         * as/mcs51/lklibr.c
12366         * as/mcs51/lkmain.c
12367         * as/z80/asdata.c
12368         * as/z80/asm.h
12369         * as/z80/asmain.c
12370         * as/z80/asout.c
12371         * as/z80/z80pst.c
12372         * link/z80/aslink.h
12373         * link/z80/lkdata.c
12374         * link/z80/lklibr.c
12375         * link/z80/lkmain.c
12376         * src/SDCCglue.c
12377
12378 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12379
12380         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12381         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12382
12383 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12384
12385         * src/z80/mappings.i: fix _mul[us][int,long] entries
12386
12387 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12388
12389         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12390
12391 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12392
12393         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12394         * support/regression/tests/bitopcse.c: added
12395         fixed warning:
12396         * src/avr/gen.c:
12397         * src/pic/gen.c:
12398         * src/pic16/gen.c:
12399         * src/z80/gen.c:
12400         * src/xa51/gen.c:
12401
12402 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12403
12404         added support for new library format to z80, gbz80 linkers:
12405         *link/z80/aslink.h
12406         *link/z80/lklex.c
12407         *link/z80/lklib.c
12408         *link/z80/lklist.c
12409
12410 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12411
12412         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12413         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12414
12415 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12416
12417         added DUMMY_READ_VOLATILE:
12418         * src/SDCC.y:
12419         * src/avr/gen.c:
12420         * src/xa51/gen.c:
12421         * src/z80/gen.c:
12422         * src/pic/gen.c:
12423         * src/pic16/gen.c:
12424         * src/mcs51/gen.c:
12425         * src/ds390/gen.c:
12426         * src/SDCCcse.c (algebraicOpts): many improvements
12427         * src/SDCCcse.h: removed algebraicOpts()
12428         * src/SDCCicode.c (picDummyRead): added
12429
12430 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12431
12432         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12433         "Insufficient space in data memory".
12434
12435 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12436
12437         * src/mcs51/gen.c: fixed bug #771358
12438         * src/z80/gen.c: fixed bug #759087
12439
12440 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12441
12442         * src/pic16/glue.c: minor cleanup by Vangelis
12443
12444 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12445
12446         * device/include/regc515c.h: fixed #758477
12447         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12448         * device/lib/_gptrput.c: saved a few bytes
12449         * my tab spacing is 8, yours too?)
12450         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12451         * device/lib/serial.c: process RX bytes earlier than TX bytes
12452         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12453
12454 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12455
12456         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12457
12458 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12459
12460     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12461
12462 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12463
12464         * device/lib/Makefile.in: bad fix, reverted to 1.43
12465
12466 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12467
12468         * device/lib/Makefile.in: added missing z80 object files
12469
12470 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12471
12472         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12473         pic16 progress by Vangelis:
12474         * src/SDCCglobl.h:
12475         * src/SDCCmain.c:
12476         * src/pic/Makefile:
12477         * src/pic:
12478         * pic/Makefile:
12479         * pic16/device.c:
12480         * pic16/device.h:
12481         * pic16/gen.c:
12482         * pic16/gen.h:
12483         * pic16/genarith.c:
12484         * pic16/glue.c:
12485         * pic16/main.c:
12486         * pic16/pcode.c:
12487         * pic16/pcode.h:
12488         * pic16/pcodepeep.c:
12489         * pic16/peeph.def:
12490
12491 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12492
12493     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12494
12495 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12496
12497     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12498     added gbz80 build to MSVC project.
12499     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12500     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12501     from 8051 stuff and setup so it links using a .lnk file.
12502
12503 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12504
12505     * support/librarian/sdcclib.c: sdcc librarian.
12506     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12507     with sdcclib.
12508
12509 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12510
12511     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12512
12513 2003-07-02  Borut Razem <borut.razem AT siol.net>
12514
12515         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12516         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12517         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12518         src/xa51/main.c, src/z80/main.c:
12519         virtualization of glue() function: each port has it's own glue function,
12520         which is accessed by do_glue function pointer in PORT.general structure
12521
12522 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12523
12524         * DS800C400 fun, improved ROM interface and tinibios.
12525
12526 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12527
12528         * More support for DS80C400. Now includes beginning of interface to ROM.
12529
12530 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12531
12532         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12533
12534 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12535
12536         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12537
12538 2003-06-19  Borut Razem <borut.razem AT siol.net>
12539
12540         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12541
12542 2003-06-19  Borut Razem <borut.razem AT siol.net>
12543
12544         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12545         fixed Z80 port - crt0.o: cannot open.
12546
12547 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12548
12549         * support/Util/MySystem.c (merge_command): revert bad fix
12550
12551 2003-06-18  Borut Razem <borut.razem AT siol.net>
12552
12553         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12554
12555 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12556
12557         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12558         option --use-stdout sends errors to stdout instead of stderr.
12559
12560 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12561
12562         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12563
12564 2003-06-15  Borut Razem <borut.razem AT siol.net>
12565
12566         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12567         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12568         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12569         fixed width array of pointers replaced with sets;
12570         multiple include and lib paths ared transferred to preprocessor and linker
12571         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12572         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12573         fixed width array of pointers
12574         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12575         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12576         fixupPath(), getPathDifference()
12577         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12578         fixed width array of pointers
12579
12580 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12581
12582         * src/pic16/ralloc.c: fix warnings
12583         * src/pic16/pcode.c: fix warning
12584
12585 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12586
12587          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12588         know all the details, but essentially this set of changes enable
12589         the pic16 port to generate movff instructions and generate assembler
12590         directives,
12591         * src/SDCCmain.c:
12592         * src/pic16/gen.c:
12593         * src/pic16/glue.c:
12594         * src/pic16/pcode.c:
12595         * src/pic16/device.c:
12596         * src/pic16/main.c:
12597         * src/pic16/pcode.h:
12598         * src/pic16/pcoderegs.c:
12599         * src/pic16/ralloc.c:
12600         * src/pic16/ralloc.h:
12601
12602 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12603
12604         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12605         added option --vc, so sdcc errors and warnings are compatible with
12606         Microsoft Visual Studio.
12607
12608 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12609
12610         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12611           device/lib/libfloat.lib: added atof function.
12612
12613 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12614
12615         * doc/sdccman.lyx: updated to Lyx 1.3
12616         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12617         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12618         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12619
12620 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12621
12622         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12623
12624 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12625
12626         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12627           additions to the "related tools/documentation" section
12628
12629 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12630
12631         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12632
12633 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12634
12635         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12636         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12637
12638 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12639
12640         * doc/sdccman.lyx: fix double dash and other minor things
12641         * doc/Makefile: fix double dash
12642
12643 2003-05-28  Karl Bongers(patches from Martin Helmling)
12644         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12645           condition and ignore commands.
12646
12647 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12648
12649         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12650           is in parts still quite out of date, I did changes as far as I felt makes sense
12651           for a non-native english speaker.
12652           Please feel free to add to the manual or to correct my changes.
12653         * doc/Makefile: undid touching the date of intermediate tex files.
12654
12655 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12656
12657         * doc/sdccman.lyx: Manual has an index now
12658
12659 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12660
12661         Finalize muluint/mulsint and mululong/mulslong merging:
12662         * device/lib/_mulint.c
12663         * device/lib/_mullong.c
12664         * device/lib/gbz80/mul.s
12665         * device/lib/gbz80/stubs.s
12666         * device/lib/z80/mul.s
12667         * device/lib/z80/stubs.s
12668         * src/SDCCsymt.c (initCSupport)
12669
12670 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12671
12672         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12673         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12674           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12675           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12676           instead of /Zm500.
12677
12678 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12679
12680         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12681           the regression tests I'm not brave enough to enable 245.b, 245.c
12682         * doc/sdccman.lyx: added latex preamble for hyperref package.
12683           Using pdflatex this will give you a hyperlinked pdf file with
12684           bookmarks. (prepend '%' before /usepackage if this breaks something)
12685
12686 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12687
12688          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12689
12690 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12691
12692         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12693
12694 2003-05-21    <johan AT balder>
12695
12696         * src/SDCCglue.c (printIval): fixed bug #739934
12697
12698 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12699
12700         Applied patch from bug 737905 (renamed yylineo to mylineno):
12701         * src/altlex.c
12702         * src/SDCCast.c
12703         * src/SDCglobl.h
12704         * src/SDCC.lex
12705         * src/SDCCsymt.c
12706         * src/SDCCval.c
12707         * src/pic16/pcode.c: Cleaned warnings
12708         * src/pic16/pcodeflow.c: Cleaned warnings
12709         * src/pic16/pcoderegs.c: Cleaned warnings
12710
12711 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12712
12713         * src/pic16/pcode.c: Cleaned warnings
12714         * src/pic16/pcodepeep.c: Cleaned warnings
12715         * src/pic16/ralloc.c: Cleaned warnings
12716
12717 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12718
12719         * doc/sdccman.lyx: fixed bug 739745
12720         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12721
12722 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12723
12724         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12725         it can be defined with CFLAGS when running configure
12726         * src/SDCCmain.c: fixed compiling + linking with object files
12727
12728 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12729
12730         * configure.in: configure for pic16 port,
12731             added --disable-pic16-port
12732         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12733         * src/SDCCmain.c: linkOptions is changed to set *,
12734             added if/endif conditional macros to remove options help
12735             messages from optionsTable when a port is not configured, added
12736             support for the PIc16 port in the ports table, when executing
12737             the compiler with no port specified on command line, a default
12738             port is selected with the new macro DEFAULT_PORT which is
12739             defined in port.h, in setDefaultOptions() linkOptions is removed
12740             from initialization assignment, since now it is a set,
12741             parseCmdLine uses setParseWithComma for linkOptions, in
12742             linkEdit() linkOptions are accessed with new function indexSet()
12743             which returns the i'th item of a set variable. See SDCCset.c, in
12744             linkEdit() when calling buildCmdLine(), added linkOptions as
12745             last argument. Now users can pass arguments to gplink via the
12746             -Wl option, main() uses pic16glue() to glue up pic16 programs
12747         * src/SDCCpeeph.c: various changes to support pic16
12748         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12749             return the i'th item of the set
12750         * src/SDCCset.h: added function prototype for indexSet()
12751         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12752         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12753         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12754             added macro DEFAULT_PORT
12755         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12756         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12757             generated
12758         * src/pic16/glue.c: commented out some error producing lines
12759         * src/pic16/main.c: __config directives are commented out to stop
12760             gpasm complaining and test the linkage with gplink, _linkCmd and
12761             _asmCmd changed to be more gplink and gpasm friendly
12762         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12763             produced an error when parsed, peep rule 12 is added to utilize
12764             movff, but it is commented out since the pCode does not support
12765             yet a command with 2 address arguments
12766
12767 2003-05-18    <johan AT balder>
12768
12769         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12770         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12771 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12772
12773         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12774   Added feature to script commands from file.
12775
12776 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12777
12778         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12779         * src/SDCCutil.c: include ctype.h for win32
12780
12781 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12782
12783         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12784
12785 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12786
12787         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12788   Fixed so you can set breakpoints prior to run, run does not stop
12789   on entry now.  Add tbreak.  Other enhancements and fixes for use
12790   with ddd.
12791
12792 2003-05-12  Borut Razem <borut.razem AT siol.net>
12793
12794         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12795
12796 2003-05-11  Borut Razem <borut.razem AT siol.net>
12797
12798         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12799         the path of bin directory, so that PATH is the only env. variable, which has to be set
12800         in case of standard installation.
12801         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12802         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12803         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12804
12805 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12806
12807         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12808         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12809         temp files are in the port dir; clean the gen/test directory when
12810         generating new test.c
12811         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12812         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12813         * support/regression/tests/zeropad.c: added
12814
12815 2003-05-09    <johan AT balder>
12816
12817         * src/SDCCglue.c: fixed bug #597940
12818
12819 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12820
12821         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12822   cache sfr, optimize next,step, fix off by one sourceline,
12823   support ddd list function.
12824         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12825
12826 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12827
12828         * support/regression/HTMLgen.py: added compare_s2f()
12829         * support/regression/Makefile: redo 1.27
12830         * support/regression/generate-cases.py: redo 1.5
12831
12832 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12833
12834         * support/regression/tests/float.c: workaround 33 bit hex constant
12835         * support/regression/tests/simplefloat.c: fix division for host
12836
12837 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12838
12839         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12840         that tame's the PIC's over-aggressive optimizer.
12841
12842 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12843
12844          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12845          support for MSVC.
12846
12847 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12848
12849         Initial support for DS80C400. "Hello world" runs on TINIm400
12850         (with polled I/O).
12851
12852 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12853
12854          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12855          * Some notes on ddd usage added in debugger/README
12856          Martin Helmling adding more features and fixes for ddd GUI debugger.
12857          Code added for nexti, stepi, up, down, and other adjustments.
12858
12859 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12860
12861         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12862         * src/pic/peeph.def Added two rules to optimize carry manipulation
12863         * src/pic/* removed debug printfs
12864
12865 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12866
12867         * debugger/mcs51/cmd.c: added header newalloc.h
12868
12869 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12870
12871         * as/Makefile: new EXEEXT
12872         * as/z80/Makefile: remove trailing slash of BUILDIR
12873         * as/z80/clean.mk: new EXEEXT
12874         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12875         * support/cpp2/Makefile.in: new EXEEXT
12876         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12877
12878 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12879
12880         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12881         EXEEXT was introduced to fix all related problems with targets
12882         "clean", "install" and "uninstall"; a couple of further flaws
12883         especially with "clean" have been fixed too
12884         * as/mcs51/Makefile.in
12885         * as/mcs51/clean.mk
12886         * as/z80/Makefile
12887         * Makefile
12888         * clean.mk
12889         * debugger/mcs51/Makefile.in
12890         * debugger/mcs51/clean.mk
12891         * link/z80/Makefile
12892         * link/z80/Makefile.in
12893         * link/z80/clean.mk
12894         * link/Makefile
12895         * packihx/Makefile.in
12896         * packihx/clean.mk
12897         * sim/ucsim/Makefile
12898         * sim/ucsim/clean.mk
12899         * sim/ucsim/avr.src/Makefile.in
12900         * sim/ucsim/avr.src/clean.mk
12901         * sim/ucsim/s51.src/Makefile.in
12902         * sim/ucsim/s51.src/clean.mk
12903         * sim/ucsim/xa.src/Makefile.in
12904         * sim/ucsim/xa.src/clean.mk
12905         * sim/ucsim/z80.src/Makefile.in
12906         * sim/ucsim/z80.src/clean.mk
12907         * sim/ucsim/main_in.mk
12908         * sim/ucsim/packages_in.mk
12909         * sim/ucsim/gui.src/Makefile.in
12910         * sim/ucsim/gui.src/serio.src/Makefile.in
12911         * sim/ucsim/gui.src/serio.src/clean.mk
12912         * src/Makefile.in
12913         * src/clean.mk
12914         * support/cpp2/Makefile.in
12915         * support/cpp2/clean.mk
12916         * support/makebin/Makefile
12917         * support/makebin/clean.mk
12918         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12919         * doc/sdccman.lyx: --program-suffix no longer needed
12920
12921 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12922
12923          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12924          Martin Helmling added support for ddd GUI debugger.
12925          Code added to display assembly, set variables, and other commands
12926          to interface to ddd.
12927
12928 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12929
12930         * as/Makefile: fix target clean
12931         * as/clean.mk: fix target clean
12932         * as/z80/clean.mk: fix target clean
12933
12934 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12935
12936         * Makefile.common.in: added  AT EXEEXT AT
12937         * configure.in: removed all mingw32 stuff
12938         * configure: rebuilt from configure.in
12939         * doc/sdccman.lyx: updated section "installation"
12940         * support/scripts/sdcc_mingw32: adapted to configure
12941         * support/scripts/sdcc_cygwin_mingw32: added
12942
12943 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12944
12945         * src/pic Added object file support for the PIC port
12946         * src/pic Applied patch from Craig Franklin (this started the object file support)
12947         * src/regression Updated the PIC regression tests for object files
12948
12949 2003-04-20  Borut Razem <borut.razem AT siol.net>
12950
12951         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12952           lklex.c: In function `getfid':
12953           lklex.c:203: warning: array subscript has type `char'
12954         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12955           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12956         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12957           stack handling macros
12958
12959 2003-04-19  Borut Razem <borut.razem AT siol.net>
12960
12961         * "handling space characters in file path" task:
12962         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12963         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12964         * support/Util/MySystem.h: make it self-sufficient
12965         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12966           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12967           handling space characters in file path
12968         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12969           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12970         * support/Util/MySystem.c: handling space characters in executable's path
12971
12972 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12973
12974         * as/z80/Makefile: fix permanent rebuild of z80
12975         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12976         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12977
12978 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12979
12980         * src/SDCCopt.c: add special case optimization to replace modulo by
12981           a power of two with a bitwise AND.
12982
12983 2003-04-18    <johan AT balder>
12984
12985         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12986
12987 2003-04-17    <johan AT balder>
12988
12989         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12990         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12991
12992 2003-04-13  Borut Razem <borut.razem AT siol.net>
12993
12994         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12995         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12996           fixed mingw problem in adl_NORMALIZE_PATH
12997
12998 2003-04-12  Borut Razem <borut.razem AT siol.net>
12999
13000         * fixed "#pragma SAVE/RESTORE can not be nested":
13001         * src/SDCC.lex: reworked pragma handling functions
13002         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13003         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13004
13005 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13006
13007         * src/SDCCutil.c (pathEquivalent): defined but not used
13008         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13009         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13010         * configure: rebuilt from configure.in
13011         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13012         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13013         * device/include/Makefile.in: replace sdcc_datadir
13014         * device/lib/Makefile.in: replace sdcc_datadir
13015         * Makefile.common.in: add LDFLAGS from configure
13016         * packihx/Makefile.in: use LDFLAGS
13017         * src/Makefile.in: use LDFLAGS
13018         * support/cpp2/Makefile.in: add LDFLAGS from configure
13019         * support/makebin/Makefile: use LDFLAGS
13020         * .version: bumped version number to 2.3.5
13021
13022 2003-04-12  Borut Razem <borut.razem AT siol.net>
13023
13024         * completed "different paths" task:
13025         * src/SDCCmacro.c: fixed bug in handling quotes
13026         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13027         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13028
13029 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13030
13031         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13032
13033 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13034
13035         * ds390/gen.c ds390/peeph.def: fix bug 706781
13036
13037 2003-04-11  Borut Razem <borut.razem AT siol.net>
13038
13039         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13040
13041 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13042
13043         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13044         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13045          set - this bit used to not be set...).
13046         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13047           bad code in PIC Port
13048         * src/regression/and2.c added to test bug 609268
13049         * src/regression/Makefile added and2.c to regression test
13050
13051
13052 2003-04-08    <johan AT CP255758-A>
13053
13054         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
13055         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
13056         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
13057
13058 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
13059
13060         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
13061         fix bug #487815
13062         * support/cpp2/Makefile.in: fix bug #487815
13063         * configure: rebuilt from configure.in
13064         * Makefile.common.in: docdir changed, new path suffixes
13065         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13066         * sdcc_vc_in.h: reflect changes from sdccconf.h
13067         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
13068         * src/SDCCutil.h: remove BINDIR hack
13069         * doc/sdccman.lyx: update new path hierarchy
13070
13071 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13072
13073         * src/SDCCpeeph.c: added okToRemoveSLOC test
13074
13075 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13076
13077         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
13078
13079 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
13080
13081         * src/SDCCpeeph.c: added labelIsReturnOnly test
13082         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
13083
13084 2003-04-05    <johan AT balder>
13085
13086         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
13087         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
13088         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
13089         * src/SDCCast.c: fixed a warning
13090         * src/SDCCast.h: fixed a warning
13091         * src/SDCCicode.c (operandFromAst): fixed a warning
13092
13093 2003-04-04    <johan AT balder>
13094
13095         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
13096         * src/SDCCast.c (decorateType): fixed bug #715076
13097         * src/SDCC.y: fixed bug #702907
13098
13099 2003-04-03    <johan AT balder>
13100
13101         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
13102         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
13103         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
13104         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
13105         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
13106
13107 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
13108
13109         * _decdptr.c: fix return values
13110         * _gptrget.c: fix return values
13111         * _gptrgetc.c: fix return values
13112         * _gptrput.c: fix return values
13113         * _mulint.c: fix return values
13114         * as/z80/Makefile: fix 'make -j' problem
13115
13116 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
13117
13118         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
13119         * configure.in: big cleanup, updated to autoconf 2.5x
13120         * configure: rebuilt from configure.in
13121         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
13122         * sdcc_vc_in.h: reflect changes from sdccconf.h
13123         * doc/Makefile: fixed a flaw in "make install"
13124
13125 2003-04-02    <johan AT balder>
13126
13127         * src/ds390/gen.c (genCmp): no comments
13128         * src/mcs51/gen.c (genCmp): no comments
13129         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
13130         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
13131
13132 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
13133
13134         * support/regression/generate-cases.py: place generated file in given sub directory
13135         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
13136         * support/regression/Makefile: improvements for 'make -j';
13137         side effect: it's simpler and faster now
13138
13139 2003-03-31  Borut Razem <borut.razem AT siol.net>
13140
13141         * src/z80/main.c: link-{port} and as-{port} defined without path
13142         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
13143
13144 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
13145
13146         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
13147
13148 2003-03-30  Borut Razem <borut.razem AT siol.net>
13149
13150         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
13151           changed type of list parameter to set
13152         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
13153         * src/port.h: changed type of do_assemble() parameter to set
13154         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
13155           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
13156           definition of "cppoutfilename" macro with NULL value in preProcess()
13157         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
13158         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
13159         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
13160           replaced with set *binPathSet
13161         * shash_add() deallocates the item, if allready exsists, before adding the new one
13162         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
13163
13164 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
13165
13166         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
13167           a nested for loop bug in the PIC port
13168         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
13169           for loops
13170
13171 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
13172
13173         * support/Util/dbuf.h: remove C++ stuff to make it portable
13174
13175 2003-03-28  Borut Razem <borut.razem AT siol.net>
13176
13177         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
13178           literal strings in stringLiteral()
13179         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
13180         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
13181           to the project
13182
13183 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
13184
13185         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
13186
13187 2003-03-26    <johan AT balder>
13188
13189         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
13190         * src/ds390/gen.c (saveRegisters): catched symbol abuse
13191         * src/SDCCast.c (decorateType): fixed " -v < 3"
13192
13193 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
13194
13195         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
13196         Added Lenny Story's debug infrastructure changes:
13197         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
13198         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
13199         * src/cdbFile.c: added
13200         * src/SDCCdebug.c: added
13201         * src/SDCCdebug.h: added
13202         * src/SDCCast.c (createFunction)
13203         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
13204         * src/SDCCmain.c (parseCmdLine, main)
13205         * src/SDCCmem.c (redoStackOffsets)
13206         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
13207         * src/SDCCsymt.h
13208         * src/common.h
13209         * src/avr/gen.c (genAVRCode)
13210         * src/ds390/gen.c (gen390Code)
13211         * src/mcs51/gen.c (gen51Code)
13212         * src/pic/gen.c (genpic14Code)
13213         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
13214         * src/xa51/gen.c (genXA51Code)
13215         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
13216
13217 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13218
13219         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13220         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13221
13222 2003-03-22    <johan AT balder>
13223
13224         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13225
13226 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
13227
13228         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13229         * doc/cdbfileformat.lyx: added, written by Lenny Story
13230         * doc/Makefile: added cdbfileformat.lyx
13231         * doc/clean.mk: added cdbfileformat.lyx
13232
13233 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13234
13235         * src/mcs51/peeph.def: fix bug #705773
13236
13237 2003-03-20    <johan AT balder>
13238
13239         An sfr/sbit can have an "at #" AND an initializer
13240         * src/SDCCsymt.c (checkSClass):
13241         * src/SDCCmem.c (allocGlobal):
13242         * src/SDCCmem.c (allocLocal):
13243         * src/SDCCast.c (createBlock):
13244
13245 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13246
13247         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13248
13249 2003-03-16    <johan AT balder>
13250
13251         Undid the hackup of const and volatile, the problem is much bigger
13252         * src/SDCC.y:1.65
13253         * src/SDCCast.c:1.171
13254         * src/SDCCglue.c:1.138
13255         * src/SDCCicode.c:1.146
13256         * src/SDCCsymt.c:1.150
13257         * src/SDCCval.c:1.65
13258
13259 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13260
13261         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13262         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13263
13264 2003-03-13    <johan AT balder>
13265
13266         Hackup const and volatile modifiers in type chains a bit:
13267         * src/SDCC.y:1.63
13268         * src/SDCCast.c:1.169
13269         * src/SDCCglue.c:1.136
13270         * src/SDCCicode.c:1.143
13271         * src/SDCCsymt.c1.146
13272         * src/SDCCsymt.h1.59
13273         * src/SDCCval.c:1.63
13274
13275 2003-03-12    <johan AT balder>
13276
13277         * src/SDCCBBlock.h: more LRH debugging junk
13278         * src/SDCCcflow.h: more LRH debugging junk
13279         * src/SDCCloop.c: more LRH debugging junk
13280         * src/SDCC.y (struct_declaration): fixed bug #697590
13281         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13282         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13283         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13284
13285 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13286         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13287         test function names must now match exactly).
13288         * src/SDCCcse.c: added special case in findCheaperOp to allow
13289         extending a short integer. Makes less awful code for bug 700121 test case.
13290
13291 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13292
13293         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13294         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13295
13296 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13297
13298         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13299         actually called (operandsNotEqual() was called for all
13300         operandsNotEqualX tests).
13301
13302 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13303
13304         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13305         with shorter literals. Fixes bug 700121.
13306
13307 2003-03-11    <johan AT balder>
13308
13309         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13310
13311 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13312
13313         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13314         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13315
13316 2003-03-10  Borut Razem <borut.razem AT siol.net>
13317
13318         * src/SDCCmain.c: pipe preprocessor's output
13319         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13320         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13321         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13322         which closes all pipes in pipeSet set
13323         * src/SDCCset.c: free deleted item in function deleteSetItem()
13324         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13325         moved from z80 to src subproject
13326         * .version: increased version number to 2.3.4
13327
13328 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13329
13330         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13331         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13332         * support/regression/ports/xa51/spec.mk: fix typo
13333
13334 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13335
13336         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13337
13338 2003-03-09  Borut Razem <borut.razem AT siol.net>
13339
13340         * src/SDCCmain.c: pipe preprocessor's output
13341         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13342         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13343         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13344         which closes all pipes in pipeSet set
13345         * src/SDCCset.c: free deleted item in function deleteSetItem()
13346         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13347         moved from z80 to src subproject
13348
13349 2003-03-09  Borut Razem <borut.razem AT siol.net>
13350
13351         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13352         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13353         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13354         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13355         * src/SDCCglobl.h: unification of WIN32 native definitions
13356
13357 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13358
13359         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13360
13361 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13362
13363         * src/configure.in:   check for endianess (even while cross-compiling)
13364         * src/configure:      check for endianess (even while cross-compiling)
13365         * src/configure_in.h: check for endianess (even while cross-compiling)
13366         * src/avr/gen.c:        remove old endianess stuff
13367         * src/mcs51/gen.c:      remove old endianess stuff
13368         * src/ds390/gen.c:      remove old endianess stuff
13369         * src/pic/gen.c:        remove old endianess stuff
13370         * src/pic/genarith.c:   remove old endianess stuff
13371         * src/pic/glue.c:       fix endianess check
13372         * src/pic16/gen.c:      remove old endianess stuff
13373         * src/pic16/genarith.c: remove old endianess stuff
13374         * src/pic16/glue.c:     fix endianess check
13375         * src/xa51/gen.c:       remove old endianess stuff
13376         * src/z80/gen.c:        fix endianess check
13377         * src/SDCCglue.c:       fix endianess check
13378         * src/ds390/peeph.def: fix bug 700036
13379
13380 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13381
13382         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13383         * src/configure: find appropriate data-types on host for SDCC's int and long
13384         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13385         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13386         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13387
13388 2003-03-07    <johan AT balder>
13389
13390         Just a big NOOP:
13391                 some minor cleanups before the big shot
13392                 OP_DEFS and OP_USES now use Kevin's protection
13393                 new option --nolabelopt
13394
13395         * src/SDCCBBlock.c:
13396         * src/SDCCast.c,:
13397         * src/SDCCcflow.c:
13398         * src/SDCCcse.c:
13399         * src/SDCCicode.c:
13400         * src/SDCCicode.h:
13401         * src/SDCClabel.c:
13402         * src/SDCCloop.c:
13403         * src/SDCCmain.c:
13404         * src/ds390/ralloc.c:
13405         * src/mcs51/ralloc.c:
13406         * src/pic/ralloc.c:
13407         * src/xa51/ralloc.c:
13408         * src/z80/ralloc.c:
13409
13410 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13411
13412         * src/pic/pcode.c (get_op): fix 64 bit warnings
13413         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13414         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13415         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13416         * support/regression/tests/malloc.c: fix 64 bit warnings
13417
13418 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13419
13420         * src/mcs51/gen.c (genMinus): fixed bug 696436
13421
13422 2003-03-02  Borut Razem <borut.razem AT siol.net>
13423
13424         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13425
13426 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13427
13428         * configure.in: test for mkstemp
13429         * sdccconf_in.h: add HAVE_MKSTEMP
13430
13431 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13432
13433         * device/include/ctype.h: removed warning while using --stack-auto
13434         * device/include/malloc.h: removed warning while using --stack-auto
13435         * device/include/string.h: removed warning while using --stack-auto
13436
13437 2003-02-23  Borut Razem <borut.razem AT siol.net>
13438
13439         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13440         because NDEBUG is defined (see man assert)
13441         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13442
13443 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13444
13445         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13446         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13447
13448 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13449
13450         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13451         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13452
13453 2003-02-18    <johan AT balder>
13454
13455         * as/mcs51/asmain.c (asmbl): module can start with a digit
13456         * as/z80/asmain.c (asmbl): module can start with a digit
13457
13458 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13459
13460         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13461         * src/asm.c: fix pipe() for Mingw32
13462
13463 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13464
13465         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13466         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13467         make -V work again; --c1mode reads now from stdin
13468         * doc/sdccman.lyx: added --c1mode
13469         * support/Util/SDCCerr.c: new messages for c1 mode
13470         * support/Util/SDCCerr.h: new messages for c1 mode
13471         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13472
13473 2003-02-15    <johan AT balder>
13474
13475         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13476
13477 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13478
13479         * doc/sdccman.lyx: Environment variables, -o and other minor things
13480
13481 2003-02-14    <johan AT balder>
13482
13483         * src/xa51/main.c: before anyone really tries to use it :)
13484
13485         * Install doc's in share/sdcc/doc
13486         * removed some obsolete files
13487         * Do a proper make distclean and uninstall
13488         M Makefile.common.in
13489         R sdccbuild.sh
13490         M as/Makefile
13491         M device/include/Makefile.in
13492         M device/lib/Makefile.in
13493         M doc/sdccman.lyx
13494         M link/Makefile
13495         M sim/ucsim/doc/Makefile.in
13496         M src/clean.mk
13497         R src/avr/peeph.rul
13498         R src/xa51/peeph.rul
13499         M support/cpp2/Makefile.in
13500         M support/makebin/Makefile
13501
13502
13503 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13504
13505         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13506
13507 2003-02-10  Borut Razem <borut.razem AT siol.net>
13508
13509         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13510         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13511         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13512         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13513         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13514         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13515         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13516         src/z80/Makefile.bcc: Borland Makefile cleanup
13517         * as/z80/Makefile.bcc: Added Borland Makefile
13518         * support/cpp2/borland.h: Removed
13519
13520 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13521
13522         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13523         * src/SDCC.lex: new pragma NOIV
13524         * src/SDCCglobl.h: new pragma NOIV
13525         * src/SDCCmem.c: new pragma NOIV
13526
13527 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13528
13529         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13530
13531 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13532
13533         * src/SDCCmain.c: signal handling is switched off by --debug
13534         * doc/Makefile: small fix for install; use clean.mk again
13535         * doc/clean.mk: clean *.pdf and *.html too
13536
13537 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13538
13539         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13540         * device/lib/printfl.c: fix a ds390 bug by making it portable
13541         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13542         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13543         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13544         * debugger/mcs51/cmd.c: converted multi-line string literals
13545         * sim/ucsim/globals.cc: converted multi-line string literals
13546         * src/SDCCmain.c: introduced signal handler to remove temp files
13547         * doc/Makefile: small tweaks, implement clean
13548         * doc: removed generated files
13549
13550 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13551
13552         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13553         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13554         Address Record is not correctly generated for DS390."
13555
13556 2003-02-02  Borut Razem <borut.razem AT siol.net>
13557
13558         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13559         * as/mcs51/asm.h: fixed compilation with Borland C
13560         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13561         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13562         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13563         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13564         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13565         src/z80/Makefile.bcc: delete $(LIB) only if exist
13566         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13567
13568 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13569
13570         * device/include/malloc.h: introduced NULL
13571         * device/include/string.h: introduced NULL
13572         * device/include/stdlib.h: introduced NULL
13573         * device/lib/_memcpy.c: removed NULL
13574         * device/lib/_strcat.c: removed NULL
13575         * device/lib/_strchr.c: removed NULL
13576         * device/lib/_strcmp.c: removed NULL
13577         * device/lib/_strcpy.c: removed NULL
13578         * device/lib/_strcspn.c: removed NULL
13579         * device/lib/_strlen.c: removed NULL
13580         * device/lib/_strncat.c: removed NULL
13581         * device/lib/_strncmp.c: removed NULL
13582         * device/lib/_strncpy.c: removed NULL
13583         * device/lib/_strpbrk.c: removed NULL
13584         * device/lib/_strrchr.c: removed NULL
13585         * device/lib/_strspn.c: removed NULL
13586         * device/lib/_strstr.c: removed NULL
13587         * device/lib/_strtok.c: removed NULL
13588         * device/lib/malloc.c: removed NULL, include own header
13589
13590 2003-02-02    <johan AT balder>
13591
13592         * 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
13593         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13594         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13595         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13596         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13597         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13598
13599 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13600
13601         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13602         area 'DATA'"
13603
13604 2003-02-01    <johan AT balder>
13605
13606         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13607
13608 2003-01-31    <johan AT CP255758-A>
13609
13610         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13611
13612 2003-01-30    <johan AT balder>
13613
13614         * src/SDCCBBlock.c: automatic bug detection
13615         * src/SDCCicode.c: automatic bug detection
13616
13617 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13618
13619         * src/SDCCglobl.h:   now --xram-size 0 works
13620         * src/SDCCmain.c:    now --xram-size 0 works
13621
13622 2003-01-29    <johan AT balder>
13623
13624         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13625
13626 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13627
13628         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13629         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13630         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13631         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13632         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13633         * src/SDCCmain.c:    Added options --xram-size and --code-size
13634
13635 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13636
13637         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13638         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13639
13640 2003-01-27    <johan AT balder>
13641
13642         * src/SDCC.y: fixed bug #613764
13643
13644 2003-01-26    <johan AT balder>
13645
13646         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13647         * src/SDCCsymt.h: fixed bug #673374
13648         * src/SDCCglue.c: fixed bug #661910
13649         * src/SDCCast.c: fixed bug #458099 and 673374
13650
13651 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13652
13653         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13654         * as/mcs51/strcmpi.h: added
13655         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13656         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13657         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13658         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13659         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13660         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13661         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13662         * as/mcs51/Makefile.aslink: new module strcmpi
13663         * as/mcs51/Makefile.asx8051: new module strcmpi
13664         * as/mcs51/Makefil.bcc: new module strcmpi
13665         * as/mcs51/Makefile.in: new module strcmpi
13666         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13667
13668 2003-01-26    <johan AT balder>
13669
13670         * src/SDCCglue.c: reverted back to 1.124
13671         * src/SDCCast.c: reverted back to 1.156
13672         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13673
13674 2003-01-25    <johan AT balder>
13675
13676         * src/SDCCglue.c: A better fix for bug #661910
13677         * src/SDCCast.c: A better fix for bug #661910
13678         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13679
13680 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13681
13682         * src/Makefile.in: remove spawn.o
13683         * src/SDCCmain.c: remove spawn.h
13684         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13685         * src/spawn.c: removed
13686         * src/spawn.h: removed
13687         * support/regression/ports/ds390/spec.mk: link with -r
13688
13689 2003-01-24    <johan AT CP255758-A>
13690
13691         * src/ds390/gen.c (aopOp): fixed bug #667458
13692         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13693         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13694         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13695
13696 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13697
13698         * src/mcs51/peeph.def: better assembler identation by Frieder
13699         * src/mcs51/gen.c: better assembler identation by Frieder
13700
13701 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13702
13703         * as/z80/string.h: removed for gcc 3.2
13704         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13705         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13706
13707 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13708
13709         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13710         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13711         * support/regression/Makefile: separate temp files for ports
13712         * support/regression/generate-cases.py: separate temp files for ports
13713         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13714         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13715
13716 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13717
13718         * moved tinitalk to device/examples/ds390
13719
13720 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13721
13722         * as/mcs51/lkmem.c: rflag is for DS390
13723         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13724         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13725                          (linkEdit): move mem- and map-files the same way as ihx-files
13726         * src/z80/main.c (_setDefaultOptions): removed --generic
13727         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13728         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13729         * src/pic/glue.c (picglue): --c1mode works again
13730         * src/pic16/glue.c (pic16glue): --c1mode works again
13731         * src/asm.c (printCLine): fix #660034
13732
13733 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13734
13735         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13736         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13737         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13738         * as/mcs51/lkmem (summary): better fix for sp problem
13739         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13740         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13741         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13742                                               remove --stack-after-data
13743
13744 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13745
13746         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13747         * src/SDCCutil.c (join): ugly bug: missing '\0'
13748         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13749
13750 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13751
13752         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13753         * src/port.h: typo
13754         * src/pic/main.c (_asmCmd): gpasm supports -o
13755         * src/z80/main.c: more general macros
13756         * device/lib/Makefile.in: remove intermediate files
13757
13758 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13759
13760         * .version: Bumped version number to 2.3.3
13761         * src/SDCCBBlock.c: new option -o
13762         * src/SDCCglobl.h: new option -o
13763         * src/SDCCglue.c: new option -o
13764         * src/SDCCmain.c: new option -o
13765         * src/asm.c: new option -o
13766         * src/ds390/main.c: new option -o
13767         * src/pic/glue.c: new option -o
13768         * src/pic/pcode.c: new option -o
13769         * src/pic/ralloc.c: new option -o
13770         * src/pic16/glue.c: new option -o
13771         * src/pic16/pcode.c: new option -o
13772         * src/pic16/ralloc.c: new option -o
13773         * src/z80/main.c: new option -o
13774         * device/lib/Makefile.in: use -o
13775         * support/regression/ports/ds390/spec.mk: use -o
13776         * support/regression/ports/gbz80/spec.mk: use -o
13777         * support/regression/ports/mcs51/spec.mk: use -o
13778         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13779         * support/regression/ports/z80/spec.mk: use -o
13780         * support/regression/ports/ucz80/spec.mk: use -o
13781         * support/regression/ports/xa51/spec.mk: use -o
13782         * support/regression/fwk/lib/timeout.c: fix usage string
13783
13784 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13785         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13786
13787 2003-01-07    <johan AT balder>
13788
13789         * src/SDCCast.c (decorateType): fixed bug #600035
13790
13791 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13792         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13793         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13794         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13795         * src/pic/pcode.c: outcommented unused variable to remove warnings
13796         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13797
13798 2003-01-06    <karl AT turbobit.com>
13799         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13800    regression tests.
13801
13802 2003-01-06    <johan AT balder>
13803
13804         * src/SDCCicode.c: fixed array add
13805
13806 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13807         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13808         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13809
13810 2003-01-04    <johan AT balder>
13811
13812         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13813
13814 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13815         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13816
13817 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13818         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13819         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13820
13821 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13822         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13823
13824 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13825         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13826
13827 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13828         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13829
13830 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13831
13832     * in /sdcc/as/mcs51/ changed these files in order to create an
13833     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13834     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13835     following files to include the previous two files: aslink.dsp,
13836     Makefile.aslink, Makefile.bcc, and Makefile.in.
13837
13838     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13839     .adb instead of .cdb
13840
13841 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13842
13843         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13844         value from option --iram-size.
13845
13846 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13847
13848         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13849         dram[] array.
13850
13851 2002-09-18    <wiml AT hhhh.org>
13852
13853         * SDCClrange.h: exposed setFromRange() and setToRange()
13854         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13855           packRegsForAccUse() (bug 542397)
13856         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13857           multiple times and emitting the fetch operations more than once
13858           added aopGetUsesAcc() function to allow binary operators to
13859           fetch their operands in the correct order; made genMinus() emit
13860           compact code for X = LITERAL - Y
13861
13862 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13863         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13864         sprintf() in line 1267.
13865
13866 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13867         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13868         like ports.
13869
13870 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13871         Changes to aslink (All the changes are marked with 'JCF'):
13872
13873         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13874         summary().
13875
13876         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13877         area BSEG.  Also moves, if possible, the DATA area down into the internal
13878         ram so more space is available.
13879
13880         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13881         sflag.
13882
13883         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13884         not bytes.  Function summary() which creates a memory usage summary
13885         file with extension .mem.  Reports of overlaping stack and small stack
13886         size.  If the space for the stack is less than 16 bytes aslink trows a
13887         warning.
13888
13889         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13890         the 8051.  Option 'y' for memory summary output file.
13891
13892         Changes to sdcc (All the changes are marked with 'JCF'):
13893
13894         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13895
13896         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13897         overlaying area for it (uses RegBankUsed[4]).
13898
13899         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13900         bank zero as used by default.  By default aslink locates the stack
13901         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13902         the creation of the .mem file.  Delegates the allocation of data area
13903         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13904         the begining of the stack area to aslink.
13905
13906         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13907         glue() in SDCCglue.c creates an area for it.
13908
13909 2002-09-03  Borut Razem <borut.razem AT siol.net>
13910         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13911         sdcc/src/pic/glue.c:
13912         introduced atexit() handler for teporay files removal in case of
13913         errors, assertions, ...
13914
13915 2002-08-29  Borut Razem <borut.razem AT siol.net>
13916         * sdcc/support/cpp2/auto-host_vc_in.h:
13917         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13918         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13919         Maybe there is a similar problem with BORLANDC? It should be checked!
13920
13921         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13922         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13923         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13924         was not executed, and the compiler (cl) launched a warning:
13925         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13926
13927 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13928         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13929
13930 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13931         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13932
13933         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13934           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13935           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13936           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13937           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13938           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13939           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13940         - added Release configuration in VS projects
13941         - review of compiler an linker options
13942         - VC .exe files are generated in bin_vc directory, not to interfere
13943           with binaries generated from other projects (cygwin, mingw, bcc ...)
13944
13945         * sdcc/src/yacc.dsp: added
13946
13947         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13948         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13949         and insert the version number definitions from .version
13950
13951         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13952
13953         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13954         added - genarate auto-host.h using auto-host_vc_in.h as template
13955
13956         * sdcc/sdcc_vc.h,
13957         removed from CVS, generated automatically
13958
13959 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13960         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13961
13962 2002-08-11  Borut Razem <borut.razem AT siol.net>
13963         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13964
13965 2002-08-10  Borut Razem <borut.razem AT siol.net>
13966         * src/SDCCmain.c (main):
13967         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13968         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13969         The consequence was that some temporary files were not removed.
13970
13971         * src/SDCCglue.c:
13972         unification of code in functions tempfilename() and tempfile():
13973         function tempnam() is defined in Visual Studio 6.0 and .NET
13974
13975         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13976
13977         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13978           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13979         - removed compiler command line option /WX: Treats all warnings as errors
13980         - update a list of source files, included into the project
13981
13982         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13983           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13984         changed project type to Generic Project so that can be correcly converted to VS.NET project
13985
13986         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13987
13988         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13989
13990         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13991
13992         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13993         added return 0 statements after assert() to make compiler happy
13994
13995         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13996         added newline in the def file to keep MSC compiler satisfied
13997
13998         * sdcc/src/z80/gen.c:
13999         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14000           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14001         - solved MSC error in function aopDump()
14002
14003         * sdcc_vc.h: define PREFIX as "\\sdcc"
14004
14005 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14006         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14007
14008 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14009         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14010         - Rewrote the register banking algorithm.
14011         - Added pCode live-range analysis to registers (for now, only non-used and
14012         singly-used registers optimized away)
14013
14014         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14015
14016         * 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.
14017
14018 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14019         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14020
14021 2002-04-22  Michael Hope  <michaelh AT vroom>
14022
14023         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14024
14025         * configure.in (DD_COPT): Added include support required for gbdk.
14026
14027         * .version: Bumped version number just to increase it.
14028
14029         * src/SDCCmain.c: Added -nostdinc to the default options.
14030
14031 2002-04-15  Michael Hope  <michaelh AT vroom>
14032
14033         * device/lib/z80/printf.c (sprintf): Added.
14034
14035         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14036
14037         * src/z80/peeph.def: Added transpose redundent load rule.
14038
14039         * src/z80/main.c: Added force callee saves for jaune.
14040
14041         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14042
14043         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14044
14045 2002-03-28  Johan Knol  <johan AT balder>
14046
14047         * src/SDCCval.c: fixed bug #532436
14048
14049 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14050         * /src/port.h:
14051         Added "char *Processor" field to the port structure.
14052
14053         * /src/SDCCmain.c:
14054         Added -p option. Allows port dependent processor to be specified.
14055
14056         * all ports:
14057         Initialized the new field char *Processor field to NULL in all ports
14058
14059         * /src/pic/*:
14060         Compiler generated registers for interrupt context saving
14061         were not getting allocated.
14062
14063 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
14064
14065         * /src/SDCCast.c:
14066         Fixed left shift. Will promote the left side of a left shift
14067         if a) left shifting more than size of operand or b) when assigned
14068         to something size > size of left side
14069
14070 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14071         * src/pic/*
14072         tons of changes. Register allocation has been
14073         rewritten. Added customization for the various PICs. Flow
14074         analysis is restructured. ...
14075
14076         * src/pic/device.h:
14077         Added
14078
14079         * src/pic/device.c:
14080         Added. device.c is a PIC port hack to accomodate variations
14081         in PIC devices.
14082
14083 2002-03-13  Michael Hope  <michaelh AT vroom>
14084
14085         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
14086
14087 2002-03-04  johanknol  <johanknol AT manik>
14088
14089         * /src/SDCCval.c: fixed
14090
14091         const unsigned char arr[][2] = { { 0, 1 } };
14092         t18.c:1: error: Initializer element is not constant
14093
14094 2002-03-04  bela  <bela AT manik>
14095
14096         * /device/include/mcs51reg.h:
14097         ds89c420 register definition update
14098
14099 2002-03-03    <johan AT FRIJA>
14100
14101         * support/Util/SDCCerr.c: did something, but don't no why anymore
14102
14103         * support/regression/tests/bug-524691.c: made it a little less shy
14104
14105         * src/SDCCast.c (decorateType): fixed bug #524697
14106
14107         * src/SDCCast.c: made some lineno improvements
14108
14109         * src/SDCCval.c (getNelements): changed warning to error
14110
14111         * src/SDCCglue.c (printIvalArray): changed warning to error
14112
14113         * src/SDCCicode.c: fixed a warning for mingw
14114
14115         * src/SDCCast.c (decorateType): fixed the << promotion for ops
14116
14117         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
14118
14119 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
14120
14121         * src/ds390/peeph.def:
14122         Added some more peephole rules
14123
14124         * src/ds390/gen.c: Various fixes & enhancements
14125
14126         * src/SDCClrange.c, src/SDCClrange.h:
14127         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
14128
14129         * src/ds390/ralloc.c:
14130         various fixes & enhancements (ds390) specific
14131
14132         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
14133         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
14134         from rallocs.
14135
14136         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
14137
14138 2002-03-02    <johan AT FRIJA>
14139
14140         * src/SDCCast.c (decorateType): fixed bug #524708
14141
14142         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
14143
14144         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
14145
14146 2002-03-01  Michael Hope  <michaelh AT vroom>
14147
14148         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
14149
14150         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
14151
14152 2002-03-01    <johan AT FRIJA>
14153
14154         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
14155
14156         * src/SDCCast.c (decorateType): fixed bug #524209
14157
14158         * src/SDCCval.c (valNot): fixed bug #524195
14159
14160 2002-02-26    <johan AT balder>
14161
14162         * src/xa51/gen.c: fixed a warning
14163
14164         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
14165
14166         * src/SDCCast.c (decorateType): fixed bug #522534
14167
14168 2002-02-23    <johan AT balder>
14169
14170         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
14171
14172 2002-02-22    <johan AT balder>
14173
14174         * src/SDCCast.c: fixed bug #514865
14175
14176         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
14177
14178 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
14179
14180         * sdcc/src/SDCCloop.c:
14181         Previous fix was not good. basic blocks that have "break" or "return" are
14182         not really partof a loop , but live ranges used in these blocks should
14183         be live thru the entire loop, so set partOfLoop but don't add them to
14184         loop region
14185
14186 2002-02-21    <johan AT FRIJA>
14187
14188         * src/SDCCcse.c: fixed bug #514308
14189
14190 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
14191
14192         * src/SDCCloop.c:
14193         Fixed BUG #519583. If a conditional block ended in a return/break
14194         statement inside a loop, it was not being considered part of the loop.
14195
14196         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
14197
14198 2002-02-10  Karl Bongers <karl AT turbobit.com>
14199
14200         * debugger/*:
14201         Fixed up SDCDB debugger somewhat.  Updated debugger/README
14202         with lots of comments and notes.
14203
14204         * device/examples/test2.c:
14205         Fix bug, "red" variable not being initialized(compiler complained).
14206
14207         * device/examples/Makefile, examples/test3.c:
14208         Add Makefile in device/examples folder, compiles test3.c
14209         for use as a multiple module SDCDB test case.
14210
14211         * sim/ucsim/cmd.src/cmdset.cc:
14212         Took out debug printfs in ucsim "next" command.
14213
14214         * sim/ucsim/xa.src:
14215         Karl and Johan start ucsim XA support.  Most dissassembly working,
14216         about 75% emulation done(plenty of work remaining).
14217
14218         * sim/ucsim/z80.src:
14219         Add Z80 support to ucsim, add test-ucz80 regression test,
14220         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14221         Notice z80 compiler fails on examples/test3.c/crc code.
14222
14223 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
14224
14225         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14226         Added support for --parms-in-bank1
14227
14228         * src/ds390/peeph.def:
14229         added a few more peephole optimzations
14230
14231         * src/ds390/main.c:
14232         1) added __builtin_inp & __builtin_outp used to read in data of given length
14233            from a memory mapped port
14234         2) added __builtin_memcmp
14235         3) added __builtin_swapw swap bytes of a short
14236
14237         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14238         1) handle multiple send & receives from register bank1
14239         2) ralloc can now allocate DPTR1 to some liveRanges
14240
14241         * src/SDCCsymt.c, src/SDCCsymt.h:
14242         changes to handle multiple sends & receives
14243
14244         * src/SDCCptropt.h:
14245         added some pointer arithmetic optimization
14246
14247         * src/SDCCptropt.c:
14248         added some pointer arithmetic optimizations but not stable yet so not
14249         called from anywhere (will get this working shortly)
14250
14251         * src/SDCCopt.c: fixed for multiple sends & receives
14252
14253         * src/SDCCmain.c:
14254         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14255         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14256            set preprocessor defines (depending on options)
14257
14258         * src/SDCCicode.c, src/SDCCicode.h:
14259         changes made to handle multiple sends & receives
14260
14261         * src/SDCCglobl.h:
14262         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14263
14264         * src/SDCCcse.c, src/SDCCcse.h:
14265         added function findbackward def (to be used in upcoming optimization)
14266
14267         * src/SDCCcflow.c, src/SDCCcflow.h:
14268         added function returnAtEnd - to determine if a basic block terminates with
14269         a RETURN iCode
14270
14271         * src/SDCCast.c, src/SDCCast.h:
14272         added option parms-in-bank1
14273
14274         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14275         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14276         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14277         adjusted for --parms-in-bank1 option
14278
14279         * device/include/string.h:
14280         donot redefine "reentrant" keyword
14281
14282         * device/include/ds80c390.h: Added some more SFRs
14283
14284 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14285
14286         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14287
14288 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14289
14290         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14291
14292 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14293
14294         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14295
14296 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14297
14298         * Added --xram-movc option
14299
14300 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14301
14302         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14303
14304 2002-01-11  Johan Knol
14305
14306         * Added math lib of Jesus Calvino-Fraga
14307
14308 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14309
14310         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14311         * support/regression/Makefile: new target test-mcs51-stack-auto
14312         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14313
14314 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14315
14316         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14317
14318 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14319
14320         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14321
14322 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14323
14324         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14325
14326         * src/SDCCglue.h: add definition for printIvalChar()
14327
14328 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14329
14330         * src/SDCCast.c: fix #498138 by Johan
14331
14332         * src/SDCCglue.c: fix #498138 by Johan
14333
14334 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14335
14336         * support/regression/Makefile: fix clean
14337
14338         * support/regression/ports/ds390/support.c: fix transmission of last character
14339
14340 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14341
14342         * /sdcc/src/ds390/gen.c:
14343         a) improved computing address of stack variable
14344         b) took out some #if 0 code
14345         c) improved parmBytes adjustment
14346         d) improved genPlusIncr & genMinusIncr
14347         e) genCmp could generate bad code (when left assigned to DPTR)
14348         f) Fixed bug in hasInc
14349
14350         * /sdcc/src/ds390/ralloc.c:
14351         a) packRegsForSupport could mess up live information (Fixed)
14352         b) packRegsDPTRuse could be incorrect for left & right shift
14353
14354         * /sdcc/src/mcs51/ralloc.c:
14355         packRegsForSupport could mess up the live information (Fixed)
14356
14357         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14358
14359         * /sdcc/src/SDCCast.c:
14360         can reverse a loop even if function call is present as long
14361         as the loop control variable is local & is not passed as parameter
14362
14363 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14364
14365         * /sdcc/ChangeLog: *** empty log message ***
14366
14367         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14368         More builtin function additions for TININative
14369
14370         * /sdcc/src/ds390/ralloc.c:
14371         Had broken the regression testsuite
14372
14373         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14374
14375         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14376         Added funcattr hasStackParms will be set for reentrant functions when there
14377         are paramteres on the stack, this helps in minimizing frame pointer generation
14378         typeFromStr can handle function pointers now
14379
14380         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14381         *** empty log message ***
14382
14383 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14384
14385         * /src/ds390/gen.c, /src/ds390/main.c:
14386         More builtin function additions for TININative
14387
14388         * /src/ds390/ralloc.c:
14389         Had broken the regression testsuite
14390
14391         * /src/SDCCast.c: Fixed a bug in dumptree
14392
14393         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14394         Added funcattr hasStackParms will be set for reentrant functions when there
14395         are paramteres on the stack, this helps in minimizing frame pointer generation
14396         typeFromStr can handle function pointers now
14397
14398         * /doc/builtins.txt, /doc/TININative.txt:
14399         *** empty log message ***
14400
14401
14402 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14403
14404         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14405         ALPHA version for -mTININative
14406
14407         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14408         updated to reflect changes in the port structure
14409
14410         * /src/port.h:
14411         added function do_assemble (similar to do_link) if non-null this function
14412         will be called to do assembly (-mTININative) requires a multi command
14413         assembly
14414         added function genAssemblerEnd will be called to generate assembler Epilogue
14415
14416         * /src/SDCCsymt.c:
14417         added _JavaNative to debug info printing
14418
14419         * /src/SDCCmain.c: added option --tini-libid
14420         added port->do_assemble function (-mTININative) has a multi command assemble
14421
14422         * /src/SDCCglue.c: Disabled "constExpr" check
14423         added port->genAssemblerEnd function
14424
14425         * /src/SDCCglobl.h: Added option --tini-libid value
14426
14427         * /src/SDCCast.h:
14428         tookout optimizeCompare from the header (has no external references)
14429
14430         * /src/SDCCast.c: made one more function "static"
14431
14432 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14433
14434         * src/z80/mappings.i: Added z80asm support.
14435
14436         * src/z80/main.c: Added z80asm support on --asm=z80asm
14437
14438         * src/z80/gen.c: Fixed asm portability issues.
14439
14440         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14441
14442         * src/SDCCglue.c (printExterns): Added global/extern split.
14443
14444 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14445
14446         * support/regression/Makefile: added test for mcs51 model large
14447
14448         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14449
14450         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14451
14452 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14453
14454         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14455
14456 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14457
14458         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14459
14460         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14461
14462 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14463
14464         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14465
14466         * support/regression/tests/simplefloat.c: Port to mcs51.
14467
14468 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14469         * support/regression/tests/bug-485362.c: Added.
14470
14471         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14472
14473         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14474
14475         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14476
14477         * src/z80/gen.c (aopDump): Added a dump function.
14478
14479 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14480         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14481
14482         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14483
14484         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14485
14486         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14487
14488         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14489
14490         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14491
14492         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14493
14494         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14495
14496         * support/regression/ports/ds390/support.c: Use tinibios.
14497
14498         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14499
14500 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14501
14502         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14503         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14504
14505         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14506
14507         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14508
14509 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14510
14511         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14512
14513         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14514         (packRegsForIYUse): Created and optimised.
14515
14516 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14517
14518         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14519 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14520
14521         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14522
14523         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14524
14525         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14526
14527 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14528
14529         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14530
14531         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14532
14533 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14534
14535         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14536
14537         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14538
14539         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14540
14541 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14542
14543         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14544         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14545         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14546
14547         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14548
14549         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14550         (genNotFloat): Added.
14551         (genUminusFloat): Added.
14552
14553         * device/lib/z80/Makefile: Added floating pt stubs.
14554
14555         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14556
14557         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14558
14559         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14560
14561 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14562
14563         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14564
14565         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14566
14567         * sdcc/support/regression/Makefile: Add port ds390.
14568
14569         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14570
14571         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14572
14573         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14574
14575         * sdcc/support/regression/ports/ds390/support.c: Added.
14576
14577         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14578
14579         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14580
14581         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14582
14583 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14584
14585         * device/include/malloc.h: Added z80 and gbz80 support.
14586
14587         * device/lib/gbz80/heap.s: Added.
14588
14589         * device/lib/z80/heap.s: Added.
14590
14591         * device/lib/malloc.c: Added z80 and gbz80 support.
14592
14593         * support/regression/tests/malloc.c (testMalloc): Added.
14594
14595         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14596
14597         * support/regression/tests/bug-478094.c: Added.
14598
14599         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14600
14601 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14602
14603         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14604
14605         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14606
14607         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14608
14609         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14610
14611         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14612
14613 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14614
14615         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14616
14617 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14618
14619         * support/regression/tests/bug-477927.c: Added.
14620
14621         * src/z80/peeph.def: Added minor rules.
14622
14623         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14624
14625         * src/z80/peeph.def: Added jump optimisation modification.
14626
14627 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14628
14629         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14630
14631 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14632
14633         * support/regression/tests/funptrs.c: Added.
14634
14635 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14636
14637         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14638
14639 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14640
14641         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14642
14643         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14644
14645         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14646         (movLeft2ResultLong): Created.
14647
14648         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14649         (joinPushes): Added.  Joins two char pushes into a word push.
14650
14651 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14652
14653         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14654
14655         * support/makebin/Makefile (install): Added creation of dest dir.
14656
14657 2001-10-24 Karl Bongers <karl AT turbobit.com>
14658
14659         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14660
14661 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14662
14663         * src/z80/ralloc.c: Turned off faulty pack for one use.
14664
14665         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14666
14667         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14668
14669 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14670
14671         * support/regression/Makefile: Improved clean
14672
14673         * support/regression/ports/gbz80/spec.mk: Added clean
14674
14675         * support/regression/ports/host/spec.mk: Added clean
14676
14677         * support/regression/ports/z80/spec.mk: Added clean
14678
14679         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14680
14681         * support/regression/ports/mcs51/timeout.c: little improvements
14682
14683 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14684
14685         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14686
14687         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14688
14689         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14690
14691 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14692
14693         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14694
14695         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14696
14697 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14698         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14699
14700         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14701
14702         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14703
14704         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14705
14706         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14707
14708         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14709
14710         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14711
14712         * support/regression/tests/longor.c: Added.
14713
14714 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14715
14716         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14717
14718         * as/mcs51/aslink.h: define PATH_MAX
14719
14720         * as/mcs51/asm.h: define PATH_MAX
14721
14722         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14723
14724         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14725
14726         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14727
14728         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14729
14730         * src/SDCCglobl.h: define PATH_MAX
14731
14732         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14733
14734         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14735
14736 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14737
14738         * src/z80/gen.c (gencjneshort): Fixed
14739
14740         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14741
14742 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14743
14744         * support/regression/tests/bug-469671.c: Added.
14745
14746         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14747
14748 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14749
14750         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14751
14752         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14753
14754 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14755
14756         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14757
14758         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14759
14760         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14761
14762         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14763
14764         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14765
14766         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14767
14768         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14769
14770 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14771
14772         * 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.
14773
14774         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14775
14776         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14777
14778 2001-10-07    <johan AT FRIJA>
14779
14780         * device/lib/gets.c (gets): fixed the return value.
14781
14782 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14783         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14784
14785         * 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.
14786
14787         * 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.
14788
14789         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14790
14791         * src/pic/gen.c: Removed Safe_strdup.
14792
14793         * configure.in: Added option to enable libgc support.
14794
14795         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14796         (bitVectUnion): Optimised.
14797         (bitVectIntersect): Optimised.
14798         (bitVectBitsInCommon): Optimised.
14799         (bitVectCplAnd): Optimised.
14800
14801         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14802
14803 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14804
14805         * src/SDCCmain.c: distinguish between assembler debug and plain options
14806
14807         * src/avr/main.c:   remove standard assembler options
14808
14809         * src/ds390/main.c: remove standard assembler options
14810
14811         * src/mcs51/main.c: remove standard assembler options
14812
14813         * src/port.h: removed "PENDING" comment
14814
14815 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14816
14817         * src/device/lib/_mulint.c  : new, with assember functions
14818
14819         * src/device/lib/_mullong.c : new, with assember functions
14820
14821         * src/device/lib/_divuint.c : with assember functions
14822
14823         * src/device/lib/_divsint.c : with assember functions
14824
14825         * src/device/lib/_divulong.c: with assember functions
14826
14827         * src/device/lib/_divslong.c: with assember functions
14828
14829         * src/device/lib/_moduint.c : with assember functions
14830
14831         * src/device/lib/_modsint.c : with assember functions
14832
14833         * src/device/lib/_modulong.c: with assember functions
14834
14835         * src/device/lib/_modslong.c: with assember functions
14836
14837         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14838
14839         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14840
14841         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14842                                       replaced _mululong.c and _mulslong.c by _mullong.c
14843
14844 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14845
14846         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14847
14848 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14849
14850         * src/SDCCglue.c: test, if win32api is available for MINGW
14851
14852 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14853
14854         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14855         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14856         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14857         * support/regression/ports/host/spec.mk: removed GENERIC
14858         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14859         * support/regression/ports/z80/spec.mk: removed GENERIC
14860
14861 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14862
14863         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14864
14865         * support/regression/tests/bug-467035.c: Created.
14866
14867 2001-10-01    <johan AT FRIJA>
14868
14869         * src/SDCC.y: fixed bug #466586 part 1
14870
14871 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14872
14873         * SDCCicode.c: z80 has no generic pointers
14874         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14875
14876 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14877
14878         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14879
14880 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14881
14882         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14883
14884         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14885
14886 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14887
14888         * configure.in: Fixed up so that ucsim is only configured once.
14889
14890         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14891
14892         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14893         (getPathDifference): As above.
14894
14895         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14896
14897         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14898
14899 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14900         * .version: Updated to 2.3.1
14901
14902         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14903         Added copyright header.
14904
14905         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14906         (assemble): Added support for macro based assembler commands.
14907         (linkEdit): Added support for macro based linker commands.
14908         (preProcess): Changed the pre-processor to use macros.
14909         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14910         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14911
14912         * device/lib/z80/crt0.s: Added module name for debugging.
14913
14914 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14915
14916         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14917
14918         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14919
14920         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14921
14922         * src/Makefile.in: Added SDCCmacro and SDCCutil
14923
14924 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14925
14926         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14927
14928 2001-09-16    <johan AT FRIJA>
14929
14930         * 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.
14931
14932 2001-09-15    <johan AT FRIJA>
14933
14934         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14935         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14936
14937 2001-09-11    <johan AT FRIJA>
14938
14939         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14940
14941 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14942
14943         * support/regression/tests/bug-460444.c: Added test case.
14944
14945         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14946         (genCast): Added justification for all of the asserts.
14947
14948 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14949
14950         * support/regression/support.c: _xdata replaced by xdata
14951
14952         * support/regression/spec.mk: removed _generic
14953
14954 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14955
14956         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14957
14958         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14959         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14960
14961         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14962
14963         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14964
14965         * support/regression/tests/bug-460010.c: Added test case.
14966
14967         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14968
14969 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14970
14971         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14972
14973         * support/regression/testfwk.c: removed workaround for bug #436344
14974
14975         * support/regression/tests/bp.c: use less memory with mcs51
14976
14977         * support/regression/tests/bug-441448.c: use less memory
14978
14979         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14980
14981         * support/regression/collate-results.py: typo
14982
14983 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14984
14985         * support/regression/tests/fetchoverlap.c: Added new test case.
14986
14987         * support/regression/tests/bp.c: Added new test case.
14988
14989         * support/regression/tests/bug-448984.c: Added new test case.
14990
14991         * support/regression/tests/pow2shifts.c: Added new test case.
14992
14993         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14994         (genlshTwo): Fixed right shift for count > 8.
14995
14996         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14997
14998 2001-09-08    <johan AT FRIJA>
14999
15000         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15001
15002 2001-09-07    <johan AT FRIJA>
15003
15004         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15005
15006         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15007
15008 2001-09-06    <johan AT FRIJA>
15009
15010         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15011         * bernhard noted me at this: "() equals to (void)" (1.38)
15012
15013 2001-09-05    <johan AT FRIJA>
15014
15015         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15016
15017 2001-09-04    <johan AT FRIJA>
15018
15019         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15020
15021
15022 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15023
15024         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15025
15026 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15027
15028         * link/z80/aslink.h: Fixed path for PATH_MAX
15029
15030 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15031
15032         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15033
15034         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15035
15036         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15037
15038         * 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.
15039
15040 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15041
15042         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15043         (genCmp): Fixed up genCmp for the GB with longs.
15044
15045         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15046
15047         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15048
15049         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15050
15051         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15052
15053 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15054
15055         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
15056
15057 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
15058
15059         * 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.
15060
15061         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
15062
15063 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
15064
15065         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
15066
15067         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
15068
15069 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
15070
15071   * sim/ucsim/configure:    little improvement of Cygwin-detection
15072   * sim/ucsim/configure.in: little improvement of Cygwin-detection
15073   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
15074   * support/regression/tests/bug-221100.c: small changes for mcs51
15075   * support/regression/tests/bug-221168.c: small changes for mcs51
15076   * support/regression/tests/bug-227710.c: small changes for mcs51
15077   * support/regression/tests/staticinit.c: small changes for mcs51
15078   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
15079   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15080   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
15081
15082 $Revision$