* src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
[fw/sdcc] / ChangeLog
1 2007-06-10 Borut Razem <borut.razem AT siol.net>
2
3         * as/link/z80/lklibr.c: fixed mingw build warning
4           lklibr.c:575: warning: implicit declaration of function 'tolower'
5         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
6           src/z80/main.c: move target specific options from src/SDCCmain.c
7           to src/<target>/main.c
8
9 2007-06-09 Borut Razem <borut.razem AT siol.net>
10
11         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
12           removed unused swap_sense; removed outBitCLong, replaced with outBitC
13         * support/regression/tests/bug-1294691.c: added
14
15 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
16
17         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
18           can also be static, fixes bug 1733438
19         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
20           have absolute address too
21           (computeType): added optimization for 'cond ? true : false'
22         * support/regression/tests/absolute.c: added test for static absolute var
23
24 2007-06-08 Raphael Neider <rneider AT web.de>
25
26         * src/regression/Makefile: suppress parallel builds, allow easy
27           switching between pic14/pic16 ports
28         * src/regression/picregs.h: added pic14/16 header file switch
29         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
30           inline.c,nestfor.c,string1.c}: include "picregs.h"
31
32 2007-06-07 Borut Razem <borut.razem AT siol.net>
33
34         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
35           permanent solution to suppress GCC 4.2.0 c++ warning:
36           deprecated conversion from string constant to `char *'
37           use 'const char *' where ever required
38         * support/regression/generate-cases.py: implemented more flexible rule
39           for detection of testing functions, allowing white-spaces surrounding
40           the function name and the 'void' parameter.
41         * support/regression/tests/constantRange.c,
42           support/regression/tests/scott-compare3.c: fixed failing regression
43           tests, uncovered by implementation of more flexible rule for detection
44           of testing functions
45
46 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
47
48         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
49
50 2007-06-04 Borut Razem <borut.razem AT siol.net>
51
52         * configure.in, configure, config_vc.awk: sdcc version number is now
53           stored in configure.in; removed .version
54         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
55           doc/INSTALL.txt: version bumped to 2.7.2
56         * sim/ucsim/configure.in, sim/ucsim/configure:
57           use "read" to read from .version
58
59 2007-06-03 Borut Razem <borut.razem AT siol.net>
60
61         * */Makefile.in: removed annoying warning:
62           Makefile:xx: Makefile.dep: No such file or directory
63
64 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
65
66         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
67           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
68         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
69         * src/SDCCast.c (resultTypePropagate): propagate for '!',
70           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
71           bugfix: only use newBoolLink for bit result type
72         * src/SDCCicode.c (geniCodeLogic): added param tree,
73           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
74           (geniCodeLogicAndOr): use IS_BIT,
75           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
76           (ast2iCode): added tree param to geniCodeLogic for comparisons
77         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
78         * support/regression/tests/bug1723128.c: added test NotZero
79
80 2007-06-01 Borut Razem <borut.razem AT siol.net>
81
82         * SDCPP synchronized with GCC CPP release version 4.2.0,
83           currently the latest release:
84         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
85           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
86           support/cpp2/cppdefault.h, support/cpp2/except.h,
87           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
88           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
89           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
90           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
91           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
92           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
93           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
94           support/cpp2/opts.h, support/cpp2/output.h,
95           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
96           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
97           support/cpp2/system.h, support/cpp2/version.c,
98           support/cpp2/Makefile.in: modified
99         * support/cpp2/opts-common.c: added
100         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
101         * device/lib/pic16/libdev/pic18f[24]5j10.c:
102           search for included source file in local directory
103         * sim/ucsim/configure, sim/ucsim/configure.in:
104           temporary solution to suppress GCC 4.2.0 c++ warning:
105           deprecated conversion from string constant to `char *'
106
107 2007-06-01 Raphael Neider <rneider AT web.de>
108
109         * device/lib/pic/libdev/pic12f683.c,
110         * device/include/pic/pic12f683.h: added GPIO bits
111
112 2007-06-01 Raphael Neider <rneider AT web.de>
113
114         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
115           quotation marks, clarified role of PIC14 vs. PIC16 ports
116         * src/pic16/devices.inc,
117         * device/include/pic16/pic18fregs.h,
118         * device/include/pic16/pic18f[24][45]j10.h,
119         * device/lib/pic16/pics.all,
120         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
121           18f24j10, 18f25j10, 18f44j10, and 18f45j10
122         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
123           for new devices as they are not yet supported by gputils
124
125 2007-05-31 Borut Razem <borut.razem AT siol.net>
126
127         * Small Device C Compiler 2.7.0 released
128         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
129           changed sdcc version to 2.7.1
130         * support/scripts/sdcc.nsi: added How to create WIN32 release
131           setup.exe package
132
133 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
134
135         * doc/sdccman.lyx: documented initialization and allocation of absolute
136           variables, bit parameter passing, the need for function pointers to be
137           reentrant and alpha quality support of inline and retrict
138
139 2007-05-26 Borut Razem <borut.razem AT siol.net>
140
141         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
142           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
143         * docs/knownbugs.html: updated
144
145 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
146
147         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
148           thanks Jan Waclawek
149         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
150           AOP_CRY and ruonly
151           (gencjneshort): optimized when left is AOP_DIR
152         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
153           initializing unions in a struct/array
154         * support/regression/fwk/include/testfwk.h: added defines for data, near
155           and far for host and z80
156         * support/regression/tests/bug1723128.c: new, added
157
158 2007-05-22 Borut Razem <borut.razem AT siol.net>
159
160         * doc/knownbugs.html: updated
161
162 2007-05-21 Raphael Neider <rneider AT web.de>
163
164         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
165           error message instead
166         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
167
168 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
169
170         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
171
172 2007-05-21 Raphael Neider <rneider AT web.de>
173
174         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
175           closes #1722392
176         * src/regression/gpsim_assert.h,
177         * src/regression/Makefile,
178         * src/regression/pcodeopt.c: regression test for the above fix
179
180 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
181
182         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
183           jumps to self, fixed bug 1717281
184
185 2007-05-10 Borut Razem <borut.razem AT siol.net>
186
187         * support/scripts/gen_known_bugs.pl: cosmetic fix
188         * doc/knownbugs.html: generated by gen_known_bugs.pl
189
190 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
191
192         * src/SDCCast.c (createFunction): also generate non-inlined version of
193           function for functions declared as "static inline"
194         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
195           function can be inlined after non-inlined version generated.
196
197 2007-05-10 Borut Razem <borut.razem AT siol.net>
198
199         * support/scripts/gen_known_bugs.pl: added script
200           which generates knownbugs.html
201
202 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
203
204         * doc/knownbugs.html: updated for release 2.7.0
205
206 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
207
208         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
209
210 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
211
212         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
213           (throughout): updated generating comments
214         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
215           (throughout): updated generating comments
216         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
217           rule instead of at the second, or it might skip lines when removing the
218           complete match
219         * support/regression/tests/bug1714204.c: changed test to foo
220
221 2007-05-08 Borut Razem <borut.razem AT siol.net>
222
223         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
224           thanks to SDCC Distributed Compile Farm members,
225           added Z80 and GBZ80 command line options
226         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
227
228 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
229
230         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
231         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
232         * support/regression/tests/longlit.c: modified to be tested at all and
233           to pass the actual test
234
235 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
236
237         * device/include/mcs51/uPSD33xx.h: Added.
238
239 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
240
241         * device/lib/_gptrput.c,
242         * device/lib/_gptrget.c: removed old code,
243          (_gptrgetWord),
244         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
245         * support/regression/tests/bug1714204.c: new, added
246
247 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
248
249         * support/regression/tests/regtrack.c: test was never executed
250           because of the regression test being picky about white spaces.
251         * device/lib/mcs51/crtclear.asm: added comment
252
253 2007-05-06 Raphael Neider <rneider AT web.de>
254
255         * device/lib/pic/Makefile.rules,
256         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
257           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
258
259 2007-05-06 Raphael Neider <rneider AT web.de>
260
261         * src/pic16/device.h,
262         * src/pic16/main.h,
263         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
264           _pic16_setDefaultOptions): removed/reordered command-line args
265         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
266           devices, regrouped command line args, environment variables),
267           clarified sone points, added sections on how to add devices to the
268           PIC14/PIC16 ports
269
270 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
271
272         * src/z80/peeph.def: fixed bug in rule 2
273
274 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
275
276         * src/port.h: added TARGET_MCS51_LIKE
277         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
278           take advantage of it too
279         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
280           (shiftR2Left2Result): Optimized: don't check shifting by 0
281         * src/z80/peeph-z80.def,
282         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
283           modifications, see patch 1700823
284         * src/mcs51/peep.c (): fixed bug 1712928
285         * support/regression/tests/bug1712928.c: new, added
286
287 2007-05-05 Borut Razem <borut.razem AT siol.net>
288
289         * device/lib/pic16/Makefile.common.in,
290           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
291           removed bash dependencies
292
293 2007-05-01 Borut Razem <borut.razem AT siol.net>
294
295         * src/SDCCicode.c:
296           fixed bug #1710507: --i-code-in-asm makes compile fail
297           all iCode comments are now one liners
298         * src/mcs51/gen.c: fixed memory leak
299
300 2007-05-01 Raphael Neider <rneider AT web.de>
301
302         * device/lib/pic/libdev/*.c
303         * device/include/pic/*.h: regenerated all device libs from updated
304           .inc files
305         * support/scripts/inc2h.pl: documented usage, now uses strict to
306           catch more bugs
307
308 2007-04-30 Borut Razem <borut.razem AT siol.net>
309
310         * doc/sdccman.lyx:
311           fixed bug #1669175: Problem with space in output paths
312           documented how to use paths with spaces for Windows users
313
314 2007-04-29 Borut Razem <borut.razem AT siol.net>
315
316         * Fixed svn:eol-style and svn:keywords properties
317         * src/SDCCval.c: fixed bug
318           #1592871: Segfault with "large" const arrays of characters
319           replaced recursion with iteration
320         * Removed svn:executable property from non-executable files
321
322 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
323
324         * src/mcs51/gen.c (genRet): fixed bug 1707003
325
326 2007-04-27 Raphael Neider <rneider AT web.de>
327
328         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
329           createReachingDefinitions,assignValnums,pic16_destructDF,
330           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
331           prevent NULL pointer dereferences
332         * device/lib/pic/libdev/pic16f886.c,
333         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
334           prevent building them, gputils do not really support them yet
335
336 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
337
338         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
339           helps printf_small. 32 bytes more __idata mem.
340
341 2007-04-27 Raphael Neider <rneider AT web.de>
342
343         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
344           return early when pb or pb->pcHead is NULL (patch #1708427)
345         * src/regression/empty.c,
346         * src/regression/Makefile: added test with empty functions
347         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
348
349 2007-04-27 Borut Razem <borut.razem AT siol.net>
350
351         * src/SDCCast.c: fixed feature request
352           #1547512: Redundant strings linked when using sizeof("abc")
353
354 2007-04-23 Borut Razem <borut.razem AT siol.net>
355
356         * doc/sdccman.lyx, src/SDCCmain.c:
357           peep-hole comments are generated only if --fverbose-asm option is
358           specified and --no-peep-comments is not, as proposed by Frieder.
359         * support/regression/Makefile.in: compile regression tests with
360           --fverbose-asm option so one can "grep" whether a new (or an old)
361           peephole is (still) applied; requested by Frieder.
362
363 2007-04-23 Kevin Buettner <kevin AT buettner.to>
364
365         * device/include/pic/pic16f886.h,
366         * device/include/pic/pic16f887.h,
367         * device/lib/pic/libdev/pic16f886.c,
368         * device/lib/pic/libdev/pic16f887.c,
369         * device/include/pic/pic14devices.txt,
370         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
371
372 2007-04-23 Kevin Buettner <kevin AT buettner.to>
373
374         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
375           fixes #1704666
376
377 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
378
379         * device/lib/_memset.c: assembler version for mcs51
380
381 2007-04-22 Borut Razem <borut.razem AT siol.net>
382
383         * support/scripts/listerr.c: program to create the list of errors and
384           warnings list from - added
385         * doc/sdccman.lyx: removed the note
386           "For list of warnings and corresponding codes, see err_warn.txt"
387         * src/SDCCsymt.c: fixed bug #1699804:
388           Bug with some uses of sizeof(static local array) (MCS51)
389         * support/regression/tests/bug-1699804.c: added
390
391 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
392
393         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
394           (main): added option -i,
395           (asmbl, case S_INCL): use search_path_fopen,
396           mostly from patch 1579668 by Peter Miller, thanks
397         * src/z80/main.c: fixed typo --callee-saves-bc
398         * device/include/mcs51/compiler.h: added sfrword for Tasking
399
400 2007-04-20 Borut Razem <borut.razem AT siol.net>
401
402         * src/z80/main.c: replaced reserved keyword asm with asmblr
403
404 2007-04-19 Borut Razem <borut.razem AT siol.net>
405
406         * src/port.h: use const pointers to strings
407         * src/SDCCargs.h: declared getStringArg() and getIntArg()
408         * src/pic16/main.c: include SDCCargs.h
409         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
410           const char, since the strings are dynamically allocated
411         * src/SDCCmain.c: options.code_seg and options.const_seg are
412           dynamically allocated; check port specific command line options
413           before the general ones
414         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
415
416 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
417
418         * device/include/ds400rom.h,
419         * device/lib/ds390/lcd390.c,
420         * device/lib/ds390/memcpyx.c,
421         * device/lib/ds390/rtc390.c,
422         * device/lib/ds400/ds400rom.c,
423         * device/lib/ds400/memcpyx.c,
424         * device/lib/hc08/_ret.c: more replacements of keywords with their
425           double underscore equivalents
426         * device/lib/ds390/Makefile.in,
427         * device/lib/ds400/Makefile.in,
428         * device/lib/gbz80/Makefile.in,
429         * device/lib/hc08/Makefile.in,
430         * device/lib/mcs51/Makefile.in,
431         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
432
433 2007-04-17 Borut Razem <borut.razem AT siol.net>
434
435         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
436           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
437           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
438           to --fverbose-asm, to be gcc'ish
439
440 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
441
442         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
443
444 2007-04-17 Borut Razem <borut.razem AT siol.net>
445
446         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
447         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
448           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
449           with their double underscore equivalent
450
451 2007-04-14 Borut Razem <borut.razem AT siol.net>
452
453         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
454           source"
455
456 2007-04-13 Borut Razem <borut.razem AT siol.net>
457
458         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
459           C99 standard
460         * device/examples/serialcomm/windows/serial.[ch],
461           device/examples/serialcomm/windows/test_serialcomm.cpp:
462           updated by Bela Torok
463         * device/examples/serialcomm/windows/serialcomm.dsw,
464           device/examples/serialcomm/windows/serialcomm.dsp: added
465
466 2007-04-13 Jan Waclawek <wek AT efton.sk>
467
468         * doc/sdccman.lyx: additions and changes at various places
469           (submitted as #1697136).
470           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
471
472 2007-04-10 Borut Razem <borut.razem AT siol.net>
473
474         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
475           LyX file format changed to 245
476         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
477           "FreeWare" replaced with "free open source"
478
479 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
480
481         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
482
483 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
484
485         * device/include/pic16/pic18fregs.h,
486         * device/lib/_bp.c,
487         * device/lib/_decdptr.c,
488         * device/lib/_divsint.c,
489         * device/lib/_divslong.c,
490         * device/lib/_divuint.c,
491         * device/lib/_divulong.c,
492         * device/lib/_fs2schar.c,
493         * device/lib/_fs2sint.c,
494         * device/lib/_fs2slong.c,
495         * device/lib/_fs2uchar.c,
496         * device/lib/_fs2uint.c,
497         * device/lib/_fs2ulong.c,
498         * device/lib/_fsadd.c,
499         * device/lib/_fscmp.c,
500         * device/lib/_fsdiv.c,
501         * device/lib/_fseq.c,
502         * device/lib/_fsget1arg.c,
503         * device/lib/_fsget2args.c,
504         * device/lib/_fsgt.c,
505         * device/lib/_fslt.c,
506         * device/lib/_fsmul.c,
507         * device/lib/_fsneq.c,
508         * device/lib/_fsnormalize.c,
509         * device/lib/_fsreturnval.c,
510         * device/lib/_fsrshift.c,
511         * device/lib/_fssub.c,
512         * device/lib/_fsswapargs.c,
513         * device/lib/_gptrget.c,
514         * device/lib/_gptrgetc.c,
515         * device/lib/_gptrput.c,
516         * device/lib/_logexpf.c,
517         * device/lib/_modsint.c,
518         * device/lib/_modslong.c,
519         * device/lib/_moduint.c,
520         * device/lib/_modulong.c,
521         * device/lib/_mulint.c,
522         * device/lib/_mullong.c,
523         * device/lib/_schar2fs.c,
524         * device/lib/_ser.c,
525         * device/lib/_setjmp.c,
526         * device/lib/_sint2fs.c,
527         * device/lib/_slong2fs.c,
528         * device/lib/_spx.c,
529         * device/lib/_uchar2fs.c,
530         * device/lib/_uint2fs.c,
531         * device/lib/_ulong2fs.c,
532         * device/lib/asincosf.c,
533         * device/lib/atanf.c,
534         * device/lib/calloc.c,
535         * device/lib/ds390/tinibios.c,
536         * device/lib/ds400/tinibios.c,
537         * device/lib/expf.c,
538         * device/lib/free.c,
539         * device/lib/hc08/_mulint.c,
540         * device/lib/logf.c,
541         * device/lib/malloc.c,
542         * device/lib/printf_fast.c,
543         * device/lib/printf_tiny.c,
544         * device/lib/printfl.c,
545         * device/lib/realloc.c,
546         * device/lib/ser_ir.c,
547         * device/lib/serial.c,
548         * support/regression/tests/libmullong.c: replaced all special keywords
549           with their double underscore equivalent
550         * support/regression/ports/mcs51-xstack-auto/spec.mk,
551         * device/lib/Makefile.in: compile libs with --std-c99 instead of
552           --std-sdcc99
553         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
554           (genRet): if the bit-symbol is ruonly it already is in the carry
555         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
556         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
557         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
558           type UCHAR if dest is not bit
559
560 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
561
562         * device/include/math.h,
563         * device/lib/cotf.c,
564         * device/lib/expf.c,
565         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
566
567 2007-04-01 Borut Razem <borut.razem AT siol.net>
568
569         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
570           fixed bug #1692042: input buffer overflow...scanner uses REJECT
571         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
572           gcc_unreachable() called internal_error()...
573
574 2007-03-30 Raphael Neider <rneider AT web.de>
575
576         * src/pic/ralloc.c (isData): suppress garbage debug output
577
578 2007-03-28 Borut Razem <borut.razem AT siol.net>
579
580         * doc/sdccman.lyx:
581           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
582           is developed, built and used worldwide, and the word "night" doesn't
583           make any sense.
584
585 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
586
587         * device/include/mcs51/C8051F360.h: new, added
588         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
589
590 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
591
592         * src/SDCC.y (declaration_specifiers, function_specifier),
593         * support/Util/SDCCerr.c,
594         * support/Util/SDCCerr.h,
595         * src/SDCCsymt.h,
596         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
597           inline keyword
598         * src/SDCCmem.c (deallocParms),
599         * src/SDCCast.c: support for function inlining, not quite complete
600         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
601           'restrict' qualifier
602
603 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
604
605         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
606           (saveRBank, unsaveRBank): don't save bits,
607           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
608         * support/regression/tests/bug1535242.c: new, added
609         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
610           thanks Alexey Shamrin <shamrin AT gmail.com>,
611           made assert.h header ANSI compliant (added a check for NDEBUG macro,
612           removed header guard)
613         * .version,
614         * sdcc.spec: bumped version to 2.6.5
615         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
616
617 2007-03-22 Borut Razem <borut.razem AT siol.net>
618
619         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
620           fixed bug #1653671: sdcdb integration into ddd is broken
621
622 2007-03-22 Raphael Neider <rneider AT web.de>
623
624         * src/pic/gen.c (popGetExternal): augmented to also create references
625           to external variables (not only labels),
626           (genCall): comment on plan to reduce PAGESEL overhead,
627           (genFunction, genEndFunction): also save/restore FSR around interrupt
628           handling code, removed lots of unused code
629           (genDivOneByte): release acquired temp register
630         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
631           of popGetExternal
632         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
633           for registers that need to be saved during interrupts (FSR, STATUS,
634           PCLATH; W needs special handling), currently only FSR is used
635
636 2007-03-22 Raphael Neider <rneider AT web.de>
637
638         * device/include/pic/pic14devices.txt: 16f688 has only one config word
639
640 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
641
642         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
643
644 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
645
646         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
647
648 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
649
650         * as/link/aslink.h: added LKOBJEXT
651         * as/link/hc08/link_hc08.dsp,
652         * as/link/hc08/Makefile.bcc,
653         * as/link/hc08/Makefile.in,
654         * as/link/mcs51/aslink.dsp,
655         * as/link/mcs51/Makefile.bcc,
656         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
657         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
658         * as/link/lkaomf51.c: merged and moved
659         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
660         * as/link/z80/lkdata.c,
661         * as/link/lkdata.c: merged and moved
662         * as/link/hc08/lkmain.c,
663         * as/link/mcs51/lkmain.c: cosmetic changes
664         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
665         * as/link/lklex.c: use LKOBJEXT
666         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
667           ANSI-fied functions, removed bubble-sorts
668         * as/link/z80/lksym.c           as/link/lksym.c: merged,
669           ANSI-fied functions
670         * as/link/z80/linkgbz80.dsp,
671         * as/link/z80/linkz80.dsp,
672         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
673           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
674         * as/link/z80/lkhead.c,
675         * as/link/z80/lklex.c: deleted
676         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
677         * as/link/z80/lkmain.c: added copyfile()
678
679 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
680
681         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
682
683 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
684
685         * device/lib/_strlen.c: assembler version for mcs51
686
687 2007-03-13 Raphael Neider <rneider AT web.de>
688
689         * device/include/pic16/pic18f2221.h,
690         * device/include/pic16/pic18f2321.h,
691         * device/include/pic16/pic18f2331.h,
692         * device/include/pic16/pic18f4221.h,
693         * device/include/pic16/pic18f4321.h,
694         * device/include/pic16/pic18f4331.h: fixed config byte location names
695         * support/scripts/inc2h-pic16.pl: removed debug output, emit
696           consistently named config byte locations
697
698 2007-03-13 Borut Razem <borut.razem AT siol.net>
699
700         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
701           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
702           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
703           as/link/z80/Makefile.in, as/z80/Makefile.in:
704           introduced LDFLAGS
705
706 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
707
708         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
709         * device/lib/printf_large.c: pointer was converted to generic
710         pointer for mcs51 models other than model-small (Maarten noticed)
711
712 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
713
714         * device/include/mcs51/ADuC84x.h: Added.
715
716 2007-03-10 Borut Razem <borut.razem AT siol.net>
717
718         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
719           fixed RFE #1624219: double backslashes in filenames;
720           functions hexEscape(), octalEscape() and copyStr() moved from
721           SDCCval.c to SDCCutil.c and made them glovbally available
722
723 2007-03-09 Borut Razem <borut.razem AT siol.net>
724
725         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
726           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
727           1673361: Missaligned comments in output files
728
729 2007-03-09 Raphael Neider <rneider AT web.de>
730
731         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
732
733 2007-03-09 Raphael Neider <rneider AT web.de>
734
735         * src/pic/gen.c,
736         * src/pic/glue.c,
737         * src/pic/ralloc.c: suppress undesired debug output
738         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
739
740 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
741
742         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
743
744 2007-03-07 Borut Razem <borut.razem AT siol.net>
745
746         * device/lib/pic16/libdev/pic18f[24][34]31.c:
747           search include files in the current directory
748
749 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
750
751         * src/SDCCglue.c (emitMaps, glue),
752         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
753           absolute xdata
754         * support/regression/tests/absolute.c: added xdata test
755
756 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
757
758         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
759           added condition to macro, fixes bug 1666080
760
761 2007-03-02 Raphael Neider <rneider AT web.de>
762
763         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
764
765 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
766
767         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
768         be cleared. Unconditionally set __XPAGE
769         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
770
771 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
772
773         * src/SDCCglobl.h,
774         * src/SDCCmain.c,
775         * src/mcs51/gen.c,
776         * src/mcs51/rtrack.c,
777         * src/ds390/gen.c,
778         * doc/sdccman.lyx: added --no-gen-comments
779         * src/mcs51/peeph.def: added 192.b, disabled 185
780
781 2007-02-25 Raphael Neider <rneider AT web.de>
782
783         * src/pic16/gen.c (genCast): fixed typo
784         * device/lib/pic16/Makefile.subdir: only install existing files
785         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
786
787 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
788
789         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
790         * device/lib/mcs51/crtclear.asm,
791         * device/lib/mcs51/crtxclear.asm: renumbered labels
792         * device/lib/mcs51/Makefile.in: added crtcall.asm
793         * doc/sdccman.lyx: documented mcs51 crt* library startup code
794         * src/mcs51/gen.c (movc): removed,
795           (aopGet, genPlusBits): clear a after loading the carry (possibly from
796             acc.x or psw.x),
797           (toCarry, genSend, genRet): added function toCarry,
798           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
799           (assignBit, genAssign, genCast): added function assignBit
800         * src/mcs51/Makefile.bcc: added rtrack.c
801         * src/mcs51/ralloc.h: made valueKnown a bitfield
802         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
803           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
804           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
805         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
806         * src/z80/gen.c: added AOP_IS_PAIRPTR,
807           (_pop): only pop valid pairs, see gencjneshort,
808           (gencjneshort): return pair that still needs to be popped, restructured,
809           (gencjne, genCmpEq): call _pop
810
811 2007-02-23 Raphael Neider <rneider AT web.de>
812
813         * device/include/pic/pic14devices.txt: 16f684 has only one config word
814
815 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
816
817         * device/include/mcs51/P89LPC925.h: Added.
818
819 2007-02-18 Raphael Neider <rneider AT web.de>
820
821         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
822
823 2007-02-17 Borut Razem <borut.razem AT siol.net>
824
825         * support/cpp2/directives.c, support/cpp2/version.c:
826           synchronized with GCC CPP 4.1.2
827
828 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
829
830         * src/mcs51/rtrack.h,
831         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
832           by checking the strings passed by emitcode() to the assembler.
833           Feel free to change. This in part addresses RFE #482179.
834           Set environment variable SDCC_RTRACK to enable.
835         * src/mcs51/gen.c: inserted hooks
836         * src/mcs51/ralloc.h: added two members to struct regs
837         * support/regression/tests/regtrack.c: added
838
839 2007-02-14 Borut Razem <borut.razem AT siol.net>
840
841         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
842         * Makefile.in: applied patch from Makefile related part of
843           #1469393: Compiler does not initialize static data
844
845 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
846
847         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
848           for better fix of bug 1273984, compiles pic16 rand.c
849
850 2007-02-12 Borut Razem <borut.razem AT siol.net>
851
852         * src/pic16/main.c: fixed pic16 standard library directory bug
853
854 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
855
856         * src/hc08/gen.c (genSwap): fix swap regression test
857
858 2007-02-10 Borut Razem <borut.razem AT siol.net>
859
860         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
861           with same scope
862         * support/regression/tests/bug-1654060.c: added regression test for
863           #1654060
864
865 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
866
867         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
868         bit moves in return statement
869
870 2007-02-09 Borut Razem <borut.razem AT siol.net>
871
872         * src/SDCC.y: fixed bug #1654060 typedef within function causes
873           syntax error
874
875 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
876
877         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
878         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
879
880 2007-02-07 Raphael Neider <rneider AT web.de>
881
882         * src/pic16/devices.inc,
883         * device/include/pic16/pic18fregs.h,
884         * device/include/pic16/pic18f[24][34]31.h,
885         * device/lib/pic16/libdev/pic18f[24][34]31.c,
886         * device/lib/pic16/pics.all: added 18f[24][34]31 family
887         * device/lib/pic16/libio/i2c.ignore: do not build i2c
888
889 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
890
891         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
892           can this have lived here for so many years?
893         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
894           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
895         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
896
897 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
898
899         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
900         appended by loop induction must be at the very end of the eBBlock
901
902 2007-02-05 Kevin Vigor
903
904         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
905
906 2007-02-05 Borut Razem <borut.razem AT siol.net>
907
908         * support/regression/fwk/lib/timeout.c: native WIN32 port,
909           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
910
911 2007-02-03 Borut Razem <borut.razem AT siol.net>
912
913         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
914           applied patch #1646602 option to set default signedness of char to
915           unsigned, added -funsigned-char command line option,
916           thanks to Gunther Jehle
917         * device/lib/Makefile.in: added the -f option to rm so it doesn't
918           prompt for file deletion a few hundred times (especially the
919           subversion files, which have ro permissions so it asks for
920           confirmation), thanks to Simon McAuliffe;
921           added {} + option to find in order to remove multiple files from a
922           single rm commad
923
924 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
925
926         * device/include/mcs51/SST89x5xRDx.h: Added.
927
928 2007-02-02 Raphael Neider <rneider AT web.de>
929
930         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
931         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
932
933 2007-02-01 Raphael Neider <rneider AT web.de>
934
935         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
936           config words again
937
938 2007-01-31 Borut Razem <borut.razem AT siol.net>
939
940         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
941           if compiled with GCC. Thanks to Raphael Neider
942
943 2007-01-31 Raphael Neider <rneider AT web.de>
944
945         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
946             operand names, handles name and (name + n) for all n,
947           (sameBank): restructured, also check bank allocation policy,
948         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
949           (pic14_operandsAllocatedInSameBank): check whether to operands
950             will be allocated into the same bank (i.e., section) to reduce
951             BANKSEL overhead, queried from pcode.c:sameBank,
952           (pic14printLocals): reintroduced clustering registers into a single
953             section: all compiler generated symbols will now reside in one
954             bank (per file), reducing BANKSEL overhead and code size,
955           (showAllMemmaps): use local dbuf where possible
956
957 2007-01-29 Raphael Neider <rneider AT web.de>
958
959         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
960           (call_libraryfunc): retrieve/create symbol and mark as used,
961           (genFunction): mark defined functions as non-extern and add again
962            to code memmap for later output
963         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
964           (pic14printLocals): reworked for new symbol emission,
965           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
966           showAllMemmaps): reworked symbol output using dbufs, added handling
967             of string literals (still incomplete),
968           (picglue): removed symbol emission, moved into showAllMemmaps,
969           (emitSymbolSet): new workhorse for symbol output,
970           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
971
972 2007-01-29 Borut Razem <borut.razem AT siol.net>
973
974         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
975           component contains the extension separator.
976
977 2007-01-28 Borut Razem <borut.razem AT siol.net>
978
979         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
980           on WIN32
981         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
982           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
983           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
984           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
985           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
986           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
987           src/z80/gen.c, support/Util/MySystem.c:
988           accept slash and backslash as directory separator on WIN32 and
989           Cygwin ports
990
991 2007-01-28 Raphael Neider <rneider AT web.de>
992
993         * src/pic16/devices.inc,
994         * device/include/pic16/pic18f[24][23]21.h,
995         * device/include/pic16/pic18fregs.h,
996         * device/lib/pic16/libdev/pic18f[24][23]21.c,
997         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
998         * device/lib/pic16/libio/adc.ignore,
999         * device/lib/pic16/libio/i2c.ignore,
1000         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1001           family, as gputils do not yet support the devices
1002         * device/lib/pic16/Makefile.subdir: ignore errors on install
1003         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1004           headers and libraries from gputils .inc files
1005
1006 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1007
1008         * doc/sdccman.lyx: add printf_fast_f precision limitation note
1009
1010 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1011
1012         * doc/sdccman.lyx: add printf benchmarks
1013
1014 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1015
1016         * device/lib/printf_fast.c: fix %c, char promoted to int
1017         * device/lib/printf_tiny.c: fix %c, char promoted to int
1018
1019 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1020
1021         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1022
1023 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1024
1025         * support/regression/tests/swap.c: 64 bit hosts failed
1026         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1027
1028 2007-01-25 Raphael Neider <rneider AT web.de>
1029
1030         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1031           based on absolute register address, patch by Alex Blond
1032
1033 2007-01-22 Raphael Neider <rneider AT web.de>
1034
1035         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1036           emitted, do not emit them again...
1037
1038 2007-01-22 Raphael Neider <rneider AT web.de>
1039
1040         * src/regression/bank1.c, src/regression/compare6.c,
1041           src/regression/add.c: cosmetic changes
1042         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1043         * src/pic/gen.c: fixed global zero and one,
1044           (aopForSym): removed unued code,
1045           (aopGet): assert aop is defined, check and use `index' of
1046             pCodeImmd operands (fixes #1630908),
1047         * src/pic/pcode.c (get_op): added output of generic pointer tag,
1048           (register_reassign): prevent accidental register unification,
1049           (ReuseReg): cosmetic changes (also above)
1050         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1051           pic14emitStaticSeg): do not emit initialized data,
1052           (printIval*): replaced with working versions,
1053           (pic14createInterruptVect,picglue): use idata for initialized data,
1054             now init data should work in all modules (not only main()),
1055         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1056
1057 2007-01-21 Borut Razem <borut.razem AT siol.net>
1058
1059         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1060           use -fPIC or -fpic if they are supported and not ignored
1061         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1062         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1063
1064 2007-01-20 Borut Razem <borut.razem AT siol.net>
1065
1066         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1067           implemented RFE #1470316: allow "$" in variable names
1068
1069 2007-01-20 Raphael Neider <rneider AT web.de>
1070
1071         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1072
1073 2007-01-20 Raphael Neider <rneider AT web.de>
1074
1075         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1076         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1077         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1078         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1079           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1080         * device/lib/pic/libdev/pic*.c,
1081         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1082         * device/lib/pic/libdev/Makefile.in: show progress
1083
1084 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1085
1086         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1087         * support/scripts/sdcc_cygwin_mingw32,
1088         * support/scripts/sdcc_mingw32,
1089         * support/scripts/build.mak: replaced --datadir by --datarootdir for
1090         conformance with autoconf 2.6
1091
1092 2007-01-19 Raphael Neider <rneider AT web.de>
1093
1094         * src/pic/device.c (register_map): fixed list construction
1095         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1096           (genMod): removed case for genModbits,
1097           (genModbits): removed as now unused/unimplemented
1098         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1099
1100 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1101
1102         * support/regression/tests/swap.c: added in response to #1638622
1103         * doc/sdccman.lyx: synced version, minor changes
1104
1105 2007-01-18 Borut Razem <borut.razem AT siol.net>
1106
1107         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1108           thanks to Gunther Jehle
1109         * src/asm.c: don't die if the file drfined in #line couldn't be opened
1110         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1111           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1112           use filename in lineno instead.
1113         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1114           print the file name in ast_print()
1115
1116 2007-01-18 Borut Razem <borut.razem AT siol.net>
1117
1118         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1119           defined in MSVC
1120         * src/SDCC.lex: stringLiteral() returns const char pointer,
1121           EOF detection in stringLiteral(), fixed asmbuf memory leak,
1122           fixed column counting
1123         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1124           accept const char pointer as parameter
1125         * src/SDCCdwarf2.c: corrected buffer size
1126
1127 2007-01-17 Borut Razem <borut.razem AT siol.net>
1128
1129         * support/Util/dbuf_string.c: fixed for amd64
1130
1131 2007-01-15 Borut Razem <borut.razem AT siol.net>
1132
1133         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1134           removed terminal symbol ELIPSIS, since it was never generated by the
1135           lexer and it was wrongly used in parameter_identifier_list rule
1136
1137 2007-01-15 Raphael Neider <rneider AT web.de>
1138
1139         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1140             code page and data banking description
1141         * src/pic/genarith.c,
1142         * src/pic/gen.h: removed bit arithmetic functions,
1143             updated exit(1) to exit(EXIT_FAILURE)
1144         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1145         * device/include/pic16/pic18f2455.h,
1146         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1147             TRISD and TRISE, fixed/added some bit names
1148         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1149         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1150             updated pic18f2455.{c,h} instead of duplicating them
1151
1152 2007-01-14 Borut Razem <borut.razem AT siol.net>
1153
1154         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1155           Cannot debug files that contain spaces in the path name
1156           by converting spaces in asm file name to underscores
1157
1158 2007-01-13 Borut Razem <borut.razem AT siol.net>
1159
1160         * doc/sdccman.lyx: fixed format errors
1161
1162 2007-01-10 Borut Razem <borut.razem AT siol.net>
1163
1164         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1165           codeseg/constseg #pragma fail
1166         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1167         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1168           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1169           suppoprt/cpp2/sdcpp.[ch]: house cleaning
1170
1171 2007-01-09 Borut Razem <borut.razem AT siol.net>
1172
1173         * get rid of diagnistic.[ch], pretty-print.[ch],
1174           c-pretty-print.[ch], ... used just for error, warning, ...
1175           message formatting
1176         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1177           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1178           suppoprt/cpp2/pretty-print.[ch]:
1179           removed
1180         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1181           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1182           suppoprt/cpp2/sdcpp.dsp:
1183           changed
1184
1185 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1186
1187         * device/lib/printf_large.c (output_float): removed recursion,
1188           use smaller buffer on stack for mcs51,
1189           fixed bug printing 1.96
1190         * support/regression/tests/snprintf.c: added test
1191
1192 2007-01-07 Borut Razem <borut.razem AT siol.net>
1193
1194         * use dynamic memory buffers instead temporary files
1195         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1196           added
1197         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1198           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1199           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1200           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1201           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1202           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1203           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1204           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1205           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1206           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1207           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1208           support/Util/dbuf.c, support/Util/dbuf.h:
1209           modified
1210         * .version, sdcc.spec: bumped version to 2.6.4
1211
1212 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1213
1214         * src/port.h: added TARGET_Z80_LIKE macro
1215         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1216           output PSEG location if --xram-loc or --xstack-loc was used
1217         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1218
1219 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1220
1221         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1222         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1223         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1224         * sdcc.dsw: moved project files into subdir
1225         * as/hc08/as_hc08.dsp,
1226         * as/hc08/Makefile.bcc,
1227         * as/hc08/Makefile.in,
1228         * as/mcs51/Makefile.bcc,
1229         * as/mcs51/Makefile.in,
1230         * as/z80/Makefile.bcc,
1231         * as/z80/Makefile.in,
1232         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1233         * as/hc08/asm.h,
1234         * as/mcs51/asm.h,
1235         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1236         * as/hc08/asmain.c,
1237         * as/hc08/assym.c,
1238         * as/mcs51/asmain.c,
1239         * as/mcs51/assym.c,
1240         * as/z80/assym.c: removed include "strcmpi.h"
1241         * as/hc08/strcmpi.c,
1242         * as/hc08/strcmpi.h,
1243         * as/mcs51/strcmpi.c,
1244         * as/mcs51/strcmpi.h,
1245         * support/Util/strcmpi.c,
1246         * support/Util/strcmpi.h: removed files
1247         * as/strcmpi.c: added as_strncmpi()
1248
1249 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1250
1251         * sdcc.dsw: Added some dependencies on project config.dsp
1252
1253 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1254
1255         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1256           with [di]ram_start to fix a regresion
1257
1258 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1259
1260         * configure.in: added missing mcs51 in status output
1261         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1262         directory
1263         * debugger/mcs51/clean.mk (distclean): remove config.h
1264         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1265         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1266         options.h, s-options-h and options.c
1267         * support/cpp2/clean.mk: unused, removed
1268         * Makefile.common.in,
1269         * main_in.mk,
1270         * as/Makefile.in,
1271         * as/hc08/Makefile.in,
1272         * as/hc08/clean.mk,
1273         * as/mcs51/Makefile.in,
1274         * as/mcs51/clean.mk,
1275         * as/z80/clean.mk,
1276         * as/z80/conf.mk,
1277         * as/z80/Makefile.in,
1278         * as/z80/clean.mk,
1279         * as/link/Makefile.in,
1280         * as/link/hc08/Makefile.in,
1281         * as/link/hc08/clean.mk,
1282         * as/link/mcs51/Makefile.in,
1283         * as/link/mcs51/clean.mk,
1284         * as/link/z80/Makefile.in,
1285         * as/link/z80/clean.mk,
1286         * as/link/z80/conf.mk,
1287         * debugger/mcs51/Makefile.in,
1288         * debugger/mcs51/clean.mk,
1289         * device/include/Makefile.in,
1290         * device/lib/Makefile.in,
1291         * device/lib/mcs51/Makefile.in,
1292         * device/lib/pic/Makefile.in,
1293         * device/lib/pic/Makefile.common.in,
1294         * device/lib/pic/Makefile.subdir,
1295         * device/lib/pic/Makefile.rules,
1296         * device/lib/pic16/libio/Makefile.in,
1297         * device/lib/pic16/Makefile.subdir,
1298         * device/lib/pic16/libdev/Makefile.in,
1299         * device/lib/pic16/Makefile.rules,
1300         * device/lib/pic16/Makefile.common.in,
1301         * sim/ucsim/avr.src/Makefile.in,
1302         * sim/ucsim/main_in.mk,
1303         * sim/ucsim/cmd.src/Makefile.in,
1304         * sim/ucsim/doc/Makefile.in,
1305         * sim/ucsim/gui.src/Makefile.in,
1306         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1307         * sim/ucsim/gui.src/serio.src/Makefile.in,
1308         * sim/ucsim/hc08.src/Makefile.in,
1309         * sim/ucsim/libltdl/Makefile.in,
1310         * sim/ucsim/s51.src/Makefile.in,
1311         * sim/ucsim/sim.src/Makefile.in,
1312         * sim/ucsim/sim.src/conf.mk,
1313         * sim/ucsim/xa.src/Makefile.in,
1314         * sim/ucsim/z80.src/Makefile.in,
1315         * src/Makefile.in,
1316         * src/clean.mk,
1317         * src/port.mk,
1318         * support/cpp2/Makefile.in,
1319         * support/librarian/Makefile.in,
1320         * support/librarian/clean.mk,
1321         * support/makebin/Makefile.in,
1322         * support/makebin/clean.mk,
1323         * support/packihx/Makefile.in,
1324         * support/regression/Makefile.in,
1325         * support/regression/ports/ds390/spec.mk,
1326         * support/regression/ports/gbz80/spec.mk,
1327         * support/regression/ports/hc08/spec.mk,
1328         * support/regression/ports/mcs51/spec.mk,
1329         * support/regression/ports/mcs51-large/spec.mk,
1330         * support/regression/ports/mcs51-medium/spec.mk,
1331         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1332         * support/regression/ports/pic14/spec.mk,
1333         * support/regression/ports/pic16/spec.mk,
1334         * support/regression/ports/mcs51-stack-auto/spec.mk,
1335         * support/regression/ports/ucz80/spec.mk,
1336         * support/regression/ports/xa51/spec.mk,
1337         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1338         adding a slash after $(top_builddir) and/or adding @datarootdir@
1339         * configure.in,
1340         * debugger/mcs51/configure.in,
1341         * device/lib/pic/configure.in,
1342         * device/lib/pic16/configure.in,
1343         * sim/ucsim/configure.in,
1344         * support/cpp2/configure.in,
1345         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1346         * configure,
1347         * debugger/mcs51/configure,
1348         * device/lib/pic/configure,
1349         * device/lib/pic16/configure,
1350         * sim/ucsim/configure,
1351         * support/cpp2/configure,
1352         * support/packihx/configure: generated with autoconf 2.60
1353
1354 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1355
1356         * as/link/hc08/lkihx.c (newArea),
1357         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1358
1359 2007-01-02 Borut Razem <borut.razem AT siol.net>
1360
1361         * doc/sdccman.lyx: documented #pragma sdcc_hash
1362         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1363           initialized to 0
1364         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1365
1366 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1367
1368         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1369         empty 'while'-loop to work correctly, see regression test 'while.c'
1370         * support/regression/tests/while.c: added
1371
1372 2007-01-01 Borut Razem <borut.razem AT siol.net>
1373
1374         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1375           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1376           support/cpp2/libcpp/sdcpp.c:
1377           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1378         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1379         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1380
1381 2006-12-31 Borut Razem <borut.razem AT siol.net>
1382
1383         * SDCPP synchronized with GCC CPP release version 4.1.1,
1384           currently the latest release:
1385         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1386           support/cpp2/libcpp/include/cpp-id-data.h
1387           support/cpp2/libiberty/fopen_unlocked.c
1388           support/cpp2/libiberty/md5.c
1389           support/cpp2/md5.h
1390           support/cpp2/opt-functions.awk
1391           support/cpp2/opt-gather.awk
1392           support/cpp2/optc-gen.awk
1393           support/cpp2/opth-gen.awk:
1394           added
1395         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1396           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1397           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1398           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1399           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1400           support/cpp2/diagnostic.h, support/cpp2/except.h,
1401           support/cpp2/hwint.h, support/cpp2/input.h,
1402           support/cpp2/intl.h, support/cpp2/move-if-change,
1403           support/cpp2/opts.c, support/cpp2/opts.h,
1404           support/cpp2/output.h, support/cpp2/prefix.c,
1405           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1406           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1407           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1408           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1409           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1410           support/cpp2/version.c:
1411           modified
1412         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1413           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1414           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1415           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1416           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1417           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1418           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1419           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1420           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1421           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1422           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1423           moved
1424         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1425           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1426           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1427           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1428           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1429           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1430           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1431           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1432           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1433           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1434           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1435           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1436           support/cpp2/system.h:
1437           deleted / moved
1438
1439 2006-12-31 Borut Razem <borut.razem AT siol.net>
1440
1441         * configure.in, configure: fixed bug #1538756: configure dies if bison
1442           and flex are not installed, 2nd try
1443
1444 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1445
1446         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1447         400.x for better code in RFE 899102
1448
1449 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1450
1451         * src/SDCCpeeph.c (deadMove),
1452         * src/port.h,
1453         * src/mcs51/peep.h: renamed 'op' by 'reg'
1454         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1455         (scan4op): small change for removeDeadMove(), added support for
1456         'callee saves' and/or PACLL function calls,
1457         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1458         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1459         left in new dispatcher mcs51DeadMove()
1460         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1461         removeDeadMove()
1462         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1463
1464 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1465
1466         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1467           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1468
1469 2006-12-30 Borut Razem <borut.razem AT siol.net>
1470
1471         * support/cpp2/spacs.h: deleted from svn
1472         * configure.in, configure: fixed bug #1538756: configure dies if bison
1473           and flex are not installed
1474
1475 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1476
1477         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1478           with this z80 passes printf float test when enabled
1479         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1480
1481 2006-12-28 Borut Razem <borut.razem AT siol.net>
1482
1483         * support/cpp2/config.in, support/cpp2/configure.in,
1484           support/cpp2/configure, support/cpp2/Makefile.in:
1485           fix for the solaris build
1486
1487 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1488
1489         * src/SDCC.y (type_specifier2, pointer),
1490         * src/SDCCsymt.h,
1491         * src/SDCCsymt.c (mergeSpec, checkSClass),
1492         * support/Util/SDCCerr.c,
1493         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1494         * support/valdiag/valdiag.py: Allow test cases to specify
1495           required language standard
1496         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1497         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1498
1499 2006-12-27 Borut Razem <borut.razem AT siol.net>
1500
1501         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1502         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1503           mbchar removed
1504         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1505           fixed for borland C
1506         * support/cpp2/libiberty/Makefile.bcc: updated
1507         * src/pic16/main.c: fixed #pragma udata handling
1508         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1509
1510 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1511
1512         * src/SDCCpeeph.c: made labelHashEntry global,
1513         made pcDistance, FBYNAME static,
1514         (pcDistance): made static, use isComment and isLabel,
1515         (deadMove): added,
1516         (getLabelRef): added, extracted from labelRefCount(),
1517         (labelRefCount): use new getLabelRef(),
1518         (callFuncByName): made static, added deadMove,
1519         use isComment and isLabel,
1520         (newPeepRule): made static, set isLabel,
1521         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1522         labels from peephole rules,
1523         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1524         when isComment or isLabel is set
1525         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1526         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1527         to make them global
1528         * src/mcs51/peep.h: added
1529         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1530         * src/port.h: added peep->deadMove to port structure
1531         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1532         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1533         deadMove, finally removed no. 1 and 2
1534         * src/mcs51/gen.c,
1535         * src/pic/gen.c,
1536         * src/z80/gen.c,
1537         * src/z80/ralloc.c,
1538         * src/pic16/gen.c,
1539         * src/ds390/gen.c,
1540         * src/hc08/gen.c: mark lines with isComment or isLabel
1541         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1542         * .version,
1543         * sdcc.spec: bumped version to 2.6.3
1544
1545 2006-12-26 Borut Razem <borut.razem AT siol.net>
1546
1547         * support/cpp2/Makefile.in: added dependency on options.h
1548         * configure: regenerated
1549         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1550         * support/cpp2/Makefile.in: added vasprintf.c
1551
1552 2006-12-25 Borut Razem <borut.razem AT siol.net>
1553
1554         * SDCPP synchronized with GCC CPP release version 3.4.6,
1555           the latest release before 4.x:
1556         * support/cpp2/Makefile.in, support/cpp2/config.h,
1557           support/cpp2/configure, support/cpp2/configure.in,
1558           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1559           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1560           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1561           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1562           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1563           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1564           support/cpp2/cpptrad.c, support/cpp2/except.h,
1565           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1566           support/cpp2/hwint.h, support/cpp2/intl.h,
1567           support/cpp2/line-map.c, support/cpp2/line-map.h,
1568           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1569           support/cpp2/output.h, support/cpp2/prefix.c,
1570           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1571           support/cpp2/system.h, support/cpp2/version.c:
1572           modified
1573         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1574           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1575           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1576           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1577           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1578           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1579           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1580           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1581           support/cpp2/move-if-change, support/cpp2/opts.c,
1582           support/cpp2/opts.h, support/cpp2/opts.sh,
1583           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1584           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1585           support/cpp2/win32, support/cpp2/win32/dirent.c,
1586           support/cpp2/win32/dirent.h:
1587           added
1588         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1589         * support/cpp2/sdcpp.h: renamed from sdcc.h
1590         * sdcppinit.c: deleted
1591
1592 2006-12-23 Borut Razem <borut.razem AT siol.net>
1593
1594         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1595           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1596           preproc.c: an other try to fix bug #982435: introduced
1597           -pedantic-parse-number command line option and pedantic_parse_number
1598           pragma
1599
1600 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1601
1602         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1603            BSEG handling,
1604           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1605            corrected overlayed areax addresses, warn about memory overlaps
1606         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1607         * src/avr/main.c,
1608         * src/ds390/main.c,
1609         * src/hc08/main.c,
1610         * src/mcs51/main.c,
1611         * src/pic16/main.c,
1612         * src/pic/main.c,
1613         * src/xa51/main.c,
1614         * src/z80/main.c,
1615         * src/port.h: added xabs_name and iabs_name
1616         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1617           (glue, emitMaps): create and emit maps d_abs and i_abs
1618         * src/SDCCglue.h: cosmetic changes
1619         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1620         * src/SDCCmem.h,
1621         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1622           (allocDefault): put absolute, initialized globals in them
1623         * support/regression/tests/absolute.c: added absolute bdata test
1624         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1625
1626 2006-12-20 Borut Razem <borut.razem AT siol.net>
1627
1628         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1629         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1630           added regression test for bug #982435
1631
1632 2006-12-18 Borut Razem <borut.razem AT siol.net>
1633
1634         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1635         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1636           small cosmetic changes
1637         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1638         * support/regression/tests/bug-1351710.c: added regression test
1639
1640 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1641
1642         * doc/sdccman.lyx: added the long missed iCode table
1643           "<where is figure II?>", added links to wiki
1644
1645 2006-12-17 Borut Razem <borut.razem AT siol.net>
1646
1647         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1648           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1649           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1650           unified table driven pragma handling, pragma argument type checking
1651         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1652           current one - version 1.1.3
1653         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1654
1655 2006-12-13 Raphael Neider <rneider AT web.de>
1656
1657         * src/pic/device.h: removed AssignedMemory structure and macros
1658         * src/pic/device.c: removed global finalMapping (linker assigns
1659             memory locations),
1660           (register_map): add SFRs to remembered memRanges
1661           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1662           assignFixedRegisters,assignRelocatableRegisters): removed,
1663           (setMaxRAM,validAddress): adapted accordingly,
1664           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1665             reasonably sized sharebanks,
1666         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1667           (allDefsOutOfRange): removed unused code,
1668         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1669             handling
1670         * src/pic/pcode.c (register_reassign): removed recursion warning,
1671             fired far too often,
1672         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1673             to use existing pic14_stringInSet() to avoid duplicate symbols,
1674             tidied up the code a bit,
1675           (pic14printLocals): added in symmetry to printExterns, replaces
1676             writeUsedRegs more or less,
1677           (picglue): call new pic14_printLocals(),
1678         * device/include/pic/pic*.h: removed #pragma memmap directives,
1679             information gathered from include/pic/pic14devices.txt
1680         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1681
1682 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1683
1684         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1685
1686 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1687
1688         * device/include/mcs51/cc2430.h: fixed missing ';'
1689
1690 2006-12-10 Raphael Neider <rneider AT web.de>
1691
1692         * device/lib/pic16/libc/stdio/vfprintf.c,
1693         * device/lib/pic16/libc/stdio/printf_small.c,
1694         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1695           char arguments, as char varargs are cast to int by the caller,
1696           hopefully fixes #1604915 (other device libraries are still affected)
1697
1698 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1699
1700         * src/mcs51/ralloc.c (packRegsForAssign),
1701         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1702
1703 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1704
1705         * device/include/malloc.h: removed init_dynamic_memory
1706         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1707           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1708         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1709         * device/lib/libsdcc.lib,
1710         * device/lib/Makefile.in,
1711         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1712         * doc/sdccman.lyx: documented use of new _heap.c
1713         * support/regression/tests/malloc.c: removed init_dynamic_memory
1714         * src/cdbFile.c(spacesToUnderscores): new function,
1715           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1716           1068030
1717         * device/include/tinibios.h: removed defines for putchar and getchar
1718         * device/lib/ds390/Makefile.in: added putchar.c
1719         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1720
1721 2006-12-09 Borut Razem <borut.razem AT siol.net>
1722
1723         * support/cpp2/sdcc.h: prevent multiple inclusion
1724         * support/cpp2/options.h: deleted
1725
1726 2006-12-08 Borut Razem <borut.razem AT siol.net>
1727
1728         * support/cpp2/sdcc.h: removed x*alloc() macros
1729         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1730         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1731           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1732         * support/cpp2/system.h: moved #include "sdcc.h"
1733         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1734           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1735           added
1736         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1737           -funsigned-char options
1738         * support/cpp2/sdcppmain.c: fixed bug 1611411
1739
1740 2006-12-07 Borut Razem <borut.razem AT siol.net>
1741
1742         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1743           directive
1744
1745 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1746
1747         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1748         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1749         * doc/sdccman.lyx,
1750         * .version: bumped to 2.6.2 because a) it's been a while
1751           b) the linker sources have moved c) the preprocessor is upgraded
1752
1753 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1754
1755         * support/regression/tests/snprintf.c: some checks
1756         * lib/src/printf_large.c: %bc: read char instead of int from stack
1757
1758 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1759
1760         * device/include/mcs51/cc2430.h: inserted _XPAGE
1761
1762 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1763
1764         * device/include/mcs51/cc2430.h: added
1765
1766 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1767
1768         * device/include/asm/default/features.h,
1769         * device/include/asm/ds390/features.h,
1770         * device/include/mcs51/at89s53.h,
1771         * device/include/ser.h,
1772         * device/include/ser_ir.h,
1773         * device/include/serial.h: changed keywords to double underscore variants,
1774           fixes bug 1590261 some more, thanks Steven Borley
1775
1776 2006-12-01 Raphael Neider <rneider AT web.de>
1777
1778         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1779           but emit warning (recursion is not supported for pic14)
1780
1781 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1782
1783         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1784         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1785
1786 2006-11-30 Raphael Neider <rneider AT web.de>
1787
1788         * src/pic/device.c (dump_sfr): always emit symbols
1789         * src/pic/glue.c (pic14printPublics): fixed typo
1790
1791 2006-11-30 Raphael Neider <rneider AT web.de>
1792
1793         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1794           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1795           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1796            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1797            a sharebank, use a non-shared bank for the stack if none available
1798         * src/pic/device.h (struct memRange): added linked list next field,
1799           added prototypes for above functions
1800         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1801           (typeRegWithIdx): accept fixed and unfixed stack registers
1802         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1803           the stack, handle shared and banked stack (except for WSAVE),
1804           (insertBankSel): removed useless optimization (will never fire),
1805           (FixRegisterBanking): added optimization for devices with only one
1806           possibly aliased bank of memory, like 16f84
1807         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1808           devices have no SHAREBANK in the linker script
1809         * device/include/pic/pic14devices.txt: documented memmap
1810         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1811
1812 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1813
1814         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1815           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1816           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1817           genhc08Code): switched most of the D (debug) macros to DD (detailed
1818           debug) macros to better control clutter in the generated .asm file.
1819         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1820           genRightShift): fixed bug with non-constant bit shift stored to
1821           a volatile result (SF Open Discussion forum thread #1616749).
1822           Single byte case is not yet optimized.
1823
1824 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1825
1826         * device/include/asm/mcs51/features.h,
1827         * device/include/malloc.h,
1828         * device/include/stdio.h: changed keywords to double underscore variants,
1829           fixes bug 1590261
1830
1831 2006-11-27 Borut Razem <borut.razem AT siol.net>
1832
1833         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1834           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1835           support/cpp2/output.h, support/cpp2/cppinit.c,
1836           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1837           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1838           support/cpp2/cppdefault.c, support/cpp2/system.h,
1839           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1840           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1841           support/cpp2/prefix.c, support/cpp2/except.h,
1842           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1843           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1844           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1845           support/cpp2/version.c, support/cpp2/cppmain.c,
1846           support/cpp2/version.h, support/cpp2/hashtable.c,
1847           support/cpp2/cpperror.c:
1848           synchronized with GCC CPP release version 3.3.6,
1849           the latest where cppmain.c still exists.
1850         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1851           support/cpp2/sdcppinit.c: added
1852
1853 2006-11-27 Borut Razem <borut.razem AT siol.net>
1854
1855         * support/cpp2/cpplex.c:
1856           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1857           synchronization
1858         * support/cpp2/cpplib.c: removed definitions of unused variables
1859
1860 2006-11-26 Borut Razem <borut.razem AT siol.net>
1861
1862         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1863           since they are redefined by macros in support/cpp2/sdcc.h
1864         * support/cpp2/sdcc.h: x*alloc macro redefinition
1865
1866 2006-11-25 Borut Razem <borut.razem AT siol.net>
1867
1868         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1869           support/cpp2/configure, support/cpp2/Makefile.in,
1870           support/cpp2/cppfiles.c, support/cpp2/output.h,
1871           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1872           support/cpp2/config.h, support/cpp2/cpplib.h,
1873           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1874           support/cpp2/cppdefault.c, support/cpp2/config.in,
1875           support/cpp2/system.h, support/cpp2/cpplex.c,
1876           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1877           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1878           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1879           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1880           support/cpp2/configure.in, support/cpp2/intl.h,
1881           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1882           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1883           support/cpp2/version.c, support/cpp2/cppmain.c,
1884           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1885           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1886           support/cpp2/cpperror.c,
1887           support/cpp2/libiberty/safe-ctype.c,
1888           support/cpp2/libiberty/safe-ctype.h,
1889           support/cpp2/libiberty/splay-tree.c,
1890           support/cpp2/libiberty/obstack.c,
1891           support/cpp2/libiberty/lbasename.c,
1892           support/cpp2/libiberty/splay-tree.h,
1893           support/cpp2/libiberty/obstack.h:
1894           synchronized with GCC CPP release version 3.2.3,
1895           the latest before integration of cpp into gcc
1896         * support/cpp2/except.h, support/cpp2/line-map.c,
1897           support/cpp2/line-map.h,
1898           support/cpp2/libiberty/hex.c,
1899           support/cpp2/libiberty/concat.c,
1900           support/cpp2/libiberty/filenames.h: added
1901         * support/cpp2/intl.c: deleted
1902
1903 2006-11-24 Borut Razem <borut.razem AT siol.net>
1904
1905         * src/SDCC.y: enabled compilation of empty source file
1906         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1907           "ISO C forbids an empty source file"
1908         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1909           if all the code is ifdefed out.
1910
1911 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1912
1913         * src/hc08/gen.c (genPcall): fix for bug #1601032
1914
1915 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1916
1917         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1918         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1919         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1920         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1921         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1922         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1923         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1924         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1925         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1926         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1927         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1928         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1929         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1930         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1931         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1932           Renamed to all upper case as per the standard set by SiLabs
1933
1934 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1935
1936         * device/include/mcs51/C8051F520.h: new, added
1937         * device/include/mcs51/compiler.h: added link about predefined macros
1938
1939 2006-11-23 Raphael Neider <rneider AT web.de>
1940
1941         * src/regression/Makefile: add -L path to fresh library
1942         * src/regression/simulate: emphasize FAILED output
1943         * src/regression/create_stc: output _failures from gpsim
1944         * src/regression/compare4.c,
1945         * src/regression/rotate6.c: fixed char literals,
1946           all compile, all run =8-D
1947
1948         * src/pic/pcode.h: added isPCASMDIR macro
1949         * src/pic/gen.c (genAnd): fixed bit offset
1950         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1951           packBits): unified register numbering schemes,
1952           (newReg): do not insert stack registers into hash table,
1953           (initStack): unpinned pseudo stack, simplified,
1954           (typeRegWithIdx): fixed retrieval of stack registers,
1955         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1956           (pCodeReplace): removed invalid assertion,
1957           (insertPCodeInstruction): fixed newly added labels,
1958           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1959           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1960           DumpFlow): removed unsed (broken?) code,
1961           (insertBankSel): prevent STATUS from being BANKSELed,
1962           (FixRegisterBanking): rewritten from scratch, implemented generic
1963             optimizations (suppress BANKSELs to same register and to registers
1964             present in all banks),
1965           (AnalyzeBanking): update flow after BANKSELection
1966
1967         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1968             sharebank, let linker place it, mark STKxx symbols as emitted
1969
1970 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1971
1972         * src/regression/arrays.c,
1973         * src/regression/bank1.c,
1974         * src/regression/bool2.c,
1975         * src/regression/compare7.c,
1976         * src/regression/compare8.c,
1977         * src/regression/compare9.c,
1978         * src/regression/compare10.c,
1979         * src/regression/configword.c,
1980         * src/regression/for.c,
1981         * src/regression/mult1.c,
1982         * src/regression/pointer1.c,
1983         * src/regression/rotate6.c,
1984         * src/regression/string1.c,
1985         * src/regression/struct1.c,
1986         * src/regression/Makefile: make PIC14 regression tests run again
1987           (3 fail, 6 won't compile)
1988
1989 2006-11-21 Raphael Neider <rneider AT web.de>
1990
1991         * device/include/pic16/pic18f4550.h,
1992         * device/include/pic16/pic18f4455.h,
1993         * device/lib/pic16/libdev/pic18f4550.c,
1994         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1995         * configure.in: removed superfluous closing bracket
1996
1997 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1998
1999         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2000           always positive.
2001
2002 2006-11-21 Raphael Neider <rneider AT web.de>
2003
2004         * src/pic/device.{c,h}: added pic14_getPIC()
2005         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2006           (genAnd): added PIC code for one case, fixes #1597044
2007         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2008           SFRs that are present in all banks (e.g., STATUS)
2009
2010 2006-11-20 Raphael Neider <rneider AT web.de>
2011
2012         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2013           INCFSZ/INCFSZW and declared them as changing Z bit,
2014           (insertPCodeInstruction): correctly invert the above instructions,
2015           fixes #1599333,
2016           (DoBankSelect): don't panic on po_immediates
2017
2018 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2019
2020         * as/link/aslink.h,
2021         * as/link/mcs51/lkihx.c (newArea),
2022         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2023         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2024
2025 2006-11-11 Raphael Neider <rneider AT web.de>
2026
2027         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2028           bitfield symbols, fixes #1579535 (once more...).
2029
2030 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2031
2032         * support/regression/generate-cases.py,
2033         * support/regression/fwk/include/testfwk.h,
2034         * support/regression/fwk/lib/testfwk.c: used code pointers,
2035           (about 50kByte less code generated for mcs51)
2036
2037 2006-11-06 Borut Razem <borut.razem AT siol.net>
2038
2039         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2040           debugger/mcs51/configure: fixed failed check because the function
2041           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2042           who submitted the patch for gpsim.
2043         * debugger/mcs51/configure.in: removed the result message
2044         * debugger/mcs51/Makefile.in: fixed the config.status warning
2045           "... seems to ignore the --datarootdir setting"
2046
2047 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2048
2049         * device/include/mcs51/c8051f020.h,
2050         * device/include/mcs51/c8051f040.h,
2051         * device/include/mcs51/c8051f060.h,
2052         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2053         * src/z80/gen.c (gencjneshort),
2054         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2055
2056 2006-10-31 Borut Razem <borut.razem AT siol.net>
2057
2058         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2059           debugger/mcs51/configure: get readline version
2060
2061 2006-10-30 Borut Razem <borut.razem AT siol.net>
2062
2063         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2064         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2065           debugger/mcs51/configure: locate readline even when cross compiling
2066         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2067
2068 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2069
2070         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2071           serial port.
2072
2073 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2074
2075         * device/include/malloc.h,
2076         * device/lib/calloc.c,
2077         * device/lib/free.c,
2078         * device/lib/malloc.c,
2079         * device/lib/realloc.c: moved definition of struct into sources
2080         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2081
2082 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * as/asx8051.dsp: corrected output directories
2085         * as/link/hc08: new directory for hc08 linker
2086         * as/hc08/aslink.h,             as/link/aslink.h,
2087         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
2088         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
2089         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
2090         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
2091         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
2092         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
2093         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
2094         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
2095         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
2096         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
2097         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
2098         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
2099         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
2100         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
2101         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
2102         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
2103         * as/link/hc08/conf.mk,
2104         * configure,
2105         * configure.in,
2106         * Makefile.in,
2107         * sdcc.dsw: moved hc08 linker to as/link/hc08
2108         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
2109         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
2110         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
2111         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
2112         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
2113         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
2114         * as/link/mcs51/aslink.dsp,
2115         * as/link/mcs51/Makefile.in: factored out the common files
2116         * as/hc08/lkstore.c: deleted, use the one already in as/link/
2117         * as/clean.mk: extra cleaning common files
2118         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
2119         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2120         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2121
2122 2006-10-29 Raphael Neider <rneider AT web.de>
2123
2124         * src/pic/ralloc.c (newReg): create aliases for registers with
2125           multiple names to fix #1579535 and #1584001,
2126           (regWithIdx,dirregWithName): resolve aliases on lookup
2127         * src/pic/pcode.c (DoBankSelect): die with error message on failing
2128           bankselect
2129         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2130           to prevent build errors on small devices
2131
2132 2006-10-28 Raphael Neider <rneider AT web.de>
2133
2134         * src/pic/gen.c (genFunction,genCall): drop "same code page"
2135           assumption within interrupt handlers, fixes #1584940
2136         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2137           "emitted" to avoid emitting them again in udata
2138
2139 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2140
2141         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2142         Removed.
2143
2144 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2145
2146         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2147         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
2148         on/off CR to CRLF conversion.
2149
2150 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2151
2152         * doc/sdccman.lyx: updated IRQ section
2153
2154 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2155
2156         * device/lib/serial_io.c: removed
2157         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2158         replacements for serial_io.c
2159
2160 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2161
2162         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2163
2164 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2165
2166         * device/lib/serial_io.c: Default putchar() and getchar() for
2167           mcs51 uses serial port.
2168
2169 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2170
2171         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2172
2173 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2174
2175         * support/regression/ports/mcs51/support.c: smaller
2176         _sdcc_external_startup()
2177         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2178
2179 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2180
2181         * device/lib/gbz80/crt0.s,
2182         * device/lib/gbz80/crt0_rle.s,
2183         * device/lib/gbz80/div.s,
2184         * device/lib/gbz80/fstubs.s,
2185         * device/lib/gbz80/heap.s,
2186         * device/lib/gbz80/mul.s,
2187         * device/lib/gbz80/putchar.s,
2188         * device/lib/gbz80/stubs.s,
2189         * device/lib/z80/crt0.s,
2190         * device/lib/z80/crt0_rle.s,
2191         * device/lib/z80/div.s,
2192         * device/lib/z80/fstubs.s,
2193         * device/lib/z80/heap.s,
2194         * device/lib/z80/mul.s,
2195         * device/lib/z80/putchar.s,
2196         * device/lib/z80/stubs.s: reverted, I was mistaken
2197
2198 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2199
2200         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2201         * support/regression/ports/mcs51/support.c: removed race
2202         condition on TI in _putchar allowing to use serial port mode 0
2203
2204 2006-10-20 Borut Razem <borut.razem AT siol.net>
2205
2206         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2207
2208 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2209
2210         * device/lib/gbz80/crt0.s,
2211         * device/lib/gbz80/crt0_rle.s,
2212         * device/lib/gbz80/div.s,
2213         * device/lib/gbz80/fstubs.s,
2214         * device/lib/gbz80/heap.s,
2215         * device/lib/gbz80/mul.s,
2216         * device/lib/gbz80/putchar.s,
2217         * device/lib/gbz80/stubs.s,
2218         * device/lib/z80/crt0.s,
2219         * device/lib/z80/crt0_rle.s,
2220         * device/lib/z80/div.s,
2221         * device/lib/z80/fstubs.s,
2222         * device/lib/z80/heap.s,
2223         * device/lib/z80/mul.s,
2224         * device/lib/z80/putchar.s,
2225         * device/lib/z80/stubs.s: removed all leading underscores from area names
2226
2227 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2228
2229         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2230           regression tests are not waiting in the simulator for simulated
2231           transmission of debug output
2232
2233 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2234
2235         * device/lib/printf_large.c: slightly smaller
2236         * doc/sdccman.lyx: do not use spaces within html links
2237
2238 2006-10-16 Borut Razem <borut.razem AT siol.net>
2239
2240         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2241           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2242           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2243           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2244           debugger/mcs51/configure:
2245           [ 1185668 ] add gnu readline support to sdcdb - enabled
2246
2247 2006-10-16 Raphael Neider <rneider AT web.de>
2248
2249         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2250           fixes #1577882, removes close to all banking optimizations
2251
2252 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2253
2254         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2255           variables in code memory
2256         * support/regression/tests/absolute.c: added test for this
2257
2258 2006-10-15 Raphael Neider <rneider AT web.de>
2259
2260         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2261           devices,
2262           (BankSelect): emit BANKSEL before touching linker-placed regs,
2263           fixes #1570934
2264
2265 2006-10-10 Raphael Neider <rneider AT web.de>
2266
2267         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2268         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2269         * src/pic/main.c (_pic14_parseOptions),
2270         * src/pic/main.h: mostly reverted to previous state, now use results
2271             from SDCCmain.c's argument parsing
2272
2273 2006-10-10 Borut Razem <borut.razem AT siol.net>
2274
2275         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2276           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2277           [ 1185668 ] add gnu readline support to sdcdb -
2278           prepared for READLINE, not enabled yet,
2279           thanks to <tal.bav AT gmail.com>
2280
2281 2006-10-10 Raphael Neider <rneider AT web.de>
2282
2283         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2284         * src/pic16/devices.inc,
2285         * device/include/pic16 (pic18f[24]620.h),
2286         * device/include/pic18fregs.h,
2287         * device/lib/pic16/pics.all,
2288         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2289             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2290             Gary Plumbridge and Anton Strobl
2291
2292 2006-10-10 Raphael Neider <rneider AT web.de>
2293
2294         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2295           --stack-siz=NUM options to configure the argument passing stack
2296         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2297         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2298           (pic14_getSharebankSize): obey --stack-siz=NUM,
2299           (pic14_getSharebankAddress): obey --stack-loc=NUM
2300
2301 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2302
2303         * doc/sdccman.lyx: added to the manual
2304         * doc/figures/ddd_example.png: added (neither pdflatex nor
2305         most browsers seem to like the .eps file)
2306
2307 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2308
2309         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2310         to /tmp and /var/tmp acc. LSB
2311         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2312         RESULT_TYPE_IFX
2313         * support/regression/tests/onebyte.c: added test
2314
2315 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2316
2317         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2318
2319 2006-10-05 Borut Razem <borut.razem AT siol.net>
2320
2321         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2322           thanks to dfulab:
2323           - sdcc.dsw: changed property eol-style to CRLF
2324           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2325
2326 2006-10-04 Raphael Neider <rneider AT web.de>
2327
2328         * device/include/pic/{pic16f84.h,pic16f84a.h},
2329         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2330           from patch #1522504, thanks to Robas Teodor
2331
2332 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2333
2334         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2335           fixes bug 1566015
2336
2337 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2338
2339         * src/pic16/glue.c (pic16emitMaps),
2340         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2341         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2342         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2343         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2344           Philipp Krause
2345         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2346         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2347
2348 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2349
2350         * support/librarian/sdcclib.c: Added option -l.
2351         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2352           usage totals.
2353         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2354           using Windows command prompt.
2355
2356 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2357
2358         * device/lib/libsdcc.lib: added module rand
2359         * src/ds390/ralloc.c (rematStr),
2360         * src/hc08/ralloc.c (rematStr),
2361         * src/mcs51/ralloc.c (rematStr),
2362         * src/z80/ralloc.c (rematStr): made output more consistent
2363         * src/mcs51/gen.c: cosmetic changes
2364
2365 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2366
2367         * src/port.h: added mem.cabs_name to PORT
2368         * src/ds390/main.c,
2369         * src/hc08/main.c,
2370         * src/mcs51/main.c,
2371         * src/pic16/main.c,
2372         * src/pic/main.c,
2373         * src/xa51/main.c,
2374         * src/z80/main.c: added cabs_name initializers
2375         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2376           constants
2377           (emitMaps): emit absolutes in code memory into cabs_name
2378         * src/SDCCmem.c,
2379         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2380         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2381         * support/regression/fwk/include/testfwk.h: added define for at
2382         * support/regression/tests/absolute.c: added, new
2383
2384 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2385
2386         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2387           optimizations, see also patch 887161 by Stas Sergeev
2388         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2389           to be necessary anymore,
2390           (102, 103, 104, 127): renamed all occurances of bp to _bp
2391
2392 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2393
2394         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2395           thanks Weston T. Schmidt for patch 1555221
2396         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2397         * src/SDCCicode.c(geniCodeMultiply): small optimization
2398
2399 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2400
2401         * device/include/stdlib.h: added rand prototypes
2402         * device/lib/rand.c: new, added
2403         * device/lib/Makefile.in: added rand.c
2404         * src/z80/peeph.def,
2405         * src/z80/peeph-gbz80.def,
2406         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2407
2408 2006-09-20 Raphael Neider <rneider AT web.de>
2409
2410         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2411
2412 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2413
2414         * as/link/aslink.h: cosmetic changes
2415         * as/link/mcs51/Makefile.in,
2416         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2417
2418 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2419
2420         * as/link/aslink.h,
2421         * as/link/mcs51/aslink.h,
2422         * as/link/z80/aslink.h: merged and moved to as/link/
2423         * as/link/lkstore.c,
2424         * as/link/mcs51/lkstore.c: moved to as/link/
2425         * as/link/clean.mk: remove *.o
2426         * as/link/mcs51/alloc.h: deleted
2427         * as/link/mcs51/lkarea.c: added lnksect prototype
2428         * as/link/mcs51/lkdata.c,
2429         * as/link/mcs51/lklex.c,
2430         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2431         * as/link/mcs51/lkmem.c,
2432         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2433         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2434         * as/link/mcs51/aslink.dsp,
2435         * as/link/mcs51/Makefile.aslink,
2436         * as/link/mcs51/Makefile.bcc,
2437         * as/link/mcs51/Makefile.in: updated for moved files
2438         * as/link/z80/lkarea.c,
2439         * as/link/z80/lkhead.c,
2440         * as/link/z80/lklex.c,
2441         * as/link/z80/lklibr.c,
2442         * as/link/z80/lklist.c,
2443         * as/link/z80/lkmain.c,
2444         * as/link/z80/lkrloc.c,
2445         * as/link/z80/lksym.c: synced with mcs51
2446         * as/link/z80/lkdata.c,
2447         * as/link/z80/lkeval.c,
2448         * as/link/z80/lkihx.c,
2449         * as/link/z80/lks19.c: cosmetic changes
2450         * as/link/z80/Makefile.in,
2451         * as/link/z80/linkgbz80.dsp,
2452         * as/link/z80/linkz80.dsp: updated for moved files
2453
2454 2006-09-16 Borut Razem <borut.razem AT siol.net>
2455
2456         * debugger/mcs51/sdcdb.c: partially fixed
2457           [ 1203664 ] sdcdb fails to open files w. two "." periods
2458         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2459           debugger/mcs51/symtab.h: fixed indenting
2460         * configure.in, configure: up to date with latest Maarten's changes
2461
2462 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2463
2464         as/link/mcs51
2465         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2466         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2467         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2468         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2469         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2470         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2471         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2472         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2473         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2474         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2475         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2476         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2477         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2478         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2479         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2480         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2481         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2482         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2483         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2484         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2485         as/link/mcs51/alloc.h,
2486         as/link/mcs51/clean.mk,
2487         as/link/mcs51/conf.mk,
2488         as/link/mcs51/Makefile.bcc,
2489         as/link/mcs51/Makefile.in,
2490         as/link/mcs51/readme.390,
2491         as/link/mcs51/strcmpi.c,
2492         as/link/mcs51/strcmpi.h,
2493         as/mcs51/clean.mk,
2494         as/mcs51/Makefile.bcc,
2495         as/mcs51/Makefile.in,
2496         configure,
2497         Makefile.in,
2498         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2499
2500 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2501
2502         * as/link,
2503         * as/link/Makefile.in,
2504         * as/link/z80/linkgbz80.dsp,
2505         * as/link/z80/linkz80.dsp,
2506         * configure,
2507         * link,
2508         * link/clean.mk,
2509         * link/Makefile.in,
2510         * link/README,
2511         * link/z80,
2512         * link/z80/aslink.h,
2513         * link/z80/clean.mk,
2514         * link/z80/conf.mk,
2515         * link/z80/linkgbz80.dsp,
2516         * link/z80/linkz80.dsp,
2517         * link/z80/lkarea.c,
2518         * link/z80/lkdata.c,
2519         * link/z80/lkeval.c,
2520         * link/z80/lkgb.c,
2521         * link/z80/lkgg.c,
2522         * link/z80/lkhead.c,
2523         * link/z80/lkihx.c,
2524         * link/z80/lklex.c,
2525         * link/z80/lklibr.c,
2526         * link/z80/lklist.c,
2527         * link/z80/lkmain.c,
2528         * link/z80/lkrloc.c,
2529         * link/z80/lks19.c,
2530         * link/z80/lksym.c,
2531         * link/z80/Makefile.in,
2532         * Makefile.in,
2533         * sdcc.dsw: moved link/ to as/link/
2534
2535 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2536
2537         * as/mcs51/i51mch.c (machine): fixed warning
2538
2539 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2540
2541         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2542
2543 2006-09-09 Borut Razem <borut.razem AT siol.net>
2544
2545         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2546           sdcdb WIN32 native port
2547         * src/clean.mk: fixed
2548
2549 2006-09-08 Borut Razem <borut.razem AT siol.net>
2550
2551         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2552
2553 2006-09-08 Raphael Neider <rneider AT web.de>
2554
2555         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2556         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2557             to gplink to disable processor mismatch warning and to allow
2558             the use of devices with only aliased (shared) memory banks,
2559           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2560
2561 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2562
2563         * doc/sdccman.lyx: Some re-formating plus example on using
2564           #pragma preproc_asm +/-
2565
2566 2006-09-07 Borut Razem <borut.razem AT siol.net>
2567
2568         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2569           section
2570
2571 2006-09-06 Borut Razem <borut.razem AT siol.net>
2572
2573         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2574           line at sdcc.nsi:153
2575         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2576
2577 2006-09-05 Borut Razem <borut.razem AT siol.net>
2578
2579         * configure.in, configure: support for winsock2
2580         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2581           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2582           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2583           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2584           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2585
2586 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2587
2588         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2589           and OP_DEFS
2590         * support/regression/tests/bug1551947.c: new, added
2591         * src/SDCCsymt.h: strings are char* not byte*
2592
2593 2006-09-05 Raphael Neider <rneider AT web.de>
2594
2595         * device/lib/pic16/libdev/pic18f4550.c,
2596           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2597             declarations/definitions from patch #1520949
2598
2599 2006-09-05 Raphael Neider <rneider AT web.de>
2600
2601         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2602           byte-aligned bitfields, fixes #1539278
2603
2604 2006-09-05 Raphael Neider <rneider AT web.de>
2605
2606         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2607           fixes #1544120
2608
2609 2006-09-04 Borut Razem <borut.razem AT siol.net>
2610
2611         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2612         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2613           -mno-cygwin is a part of the compiler name
2614         * support/scripts/sdcc_mingw32: don't disable ucsim
2615
2616 2006-09-03 Borut Razem <borut.razem AT siol.net>
2617
2618         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2619         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2620
2621 2006-09-03 Raphael Neider <rneider AT web.de>
2622
2623         * src/pic/ralloc.c,
2624         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2625           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2626           fixes #1550049
2627
2628 2006-09-01 Borut Razem <borut.razem AT siol.net>
2629
2630         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2631           to make ppc-osx happy
2632
2633 2006-08-31 Borut Razem <borut.razem AT siol.net>
2634
2635         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2636         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2637         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2638         * support/regression/ports/ds390/spec.mk,
2639           support/regression/ports/mcs51/spec.mk,
2640           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2641           To run regression tests in mingw environment:
2642           make DEV_NULL=NUL CC=gcc
2643
2644 2006-08-30 Borut Razem <borut.razem AT siol.net>
2645
2646         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2647           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2648           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2649           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2650           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2651           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2652           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2653           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2654           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2655           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2656           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2657           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2658           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2659           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2660           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2661           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2662           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2663           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2664           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2665           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2666           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2667           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2668           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2669           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2670           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2671           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2672           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2673           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2674           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2675           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2676           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2677           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2678           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2679           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2680           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2681           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2682           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2683           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2684           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2685           ucsim WIN32 native port
2686
2687 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2688
2689         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2690
2691 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2692
2693         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2694         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2695
2696 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2697
2698         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2699         * support/regression/tests/bug1546986.c: new, added
2700         * as/mcs51/.cvsignore,
2701         * debugger/mcs51/.cvsignore,
2702         * src/.cvsignore: deleted
2703
2704 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2705
2706         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2707           definitions)
2708
2709 2006-08-20 Borut Razem <borut.razem AT siol.net>
2710
2711         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2712           removed cl_listen_console::match(), cl_console::match(),
2713           restructured cl_commander::proc_input()
2714
2715 2006-08-16 Borut Razem <borut.razem AT siol.net>
2716
2717         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2718           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2719           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2720
2721 2006-08-14 Borut Razem <borut.razem AT siol.net>
2722
2723         * support/regression/Makefile.in,
2724           support/regression/ports/pic14/gpsim.cmd,
2725           support/regression/ports/pic14/spec.mk,
2726           support/regression/ports/pic14/support.c:
2727           added pic14 regression test
2728
2729 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2730
2731         * as/doc/asxhtm.html: documented changed ABS behaviour
2732         * as/doc/README: fixed some typos
2733
2734 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2737           not defined on host
2738
2739 2006-08-12 Borut Razem <borut.razem AT siol.net>
2740
2741         * support/regression/fwk/include/testfwk.h,
2742           support/regression/fwk/lib/testfwk.c,
2743           support/regression/generate-cases.py,
2744           support/regression/Makefile.in:
2745           regression test framework does not depend on function pointers and
2746           variable arguments
2747
2748 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2749
2750         * device/include/stddef.h: c temporary hack to fix bug 1518273
2751
2752 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2753
2754         * device/include/mcs51/cc2510fx.h: added
2755         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2756           to projects.
2757
2758 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2759
2760         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2761         * as/z80/Makefile.in: added strcmpi.c
2762         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2763         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2764
2765 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2766
2767         * device/lib/gbz80/asm_strings.s,
2768         * device/lib/gbz80/crt0_rle.s,
2769         * device/lib/gbz80/div.s,
2770         * device/lib/gbz80/mul.s,
2771         * device/lib/gbz80/shift.s,
2772         * device/lib/z80/asm_strings.s,
2773         * device/lib/z80/crt0_rle.s,
2774         * device/lib/z80/div.s,
2775         * device/lib/z80/mul.s,
2776         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2777           flags which are all upper case
2778
2779 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2780
2781         * as/z80/asm.h: made CASE_SENSITIVE 1
2782         * link/z80/aslink.h: made CASE_SENSITIVE 1
2783         * src/z80/gen.c (throughout): made all conditionals upper case
2784         * support/regression/tests/bug1503067.c: new
2785
2786 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2787
2788         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2789           (shiftIntoPair): added case 2 for PAIR_IY,
2790           (setupToPreserveCarry): replaced parameters with iCode and check if
2791            PAIR_DE is in use to fix bug 1399290,
2792           (genPlus, genMinus): updated call to setupToPreserveCarry
2793         * support/regression/tests/bug1399290.c: new
2794
2795 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2796
2797         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2798         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2799         * src/ds390/gen.c (shiftRLong),
2800         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2801         * src/mcs51/gen.c (sameReg): changed to sameByte,
2802           (xch_a_aopGet): new,
2803           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2804            shiftRLong): fixed bug 1533966
2805         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2806           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2807         * support/regression/Makefile.in: disabled z80, enabled ucz80
2808         * support/regression/tests/float_trans.c: enabled test for z80 and host
2809         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2810
2811 2006-08-01 Borut Razem <borut.razem AT siol.net>
2812
2813         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2814           comparison is always false due to limited range of data type
2815           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2816
2817 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2818
2819         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2820         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2821         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2822         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2823
2824 2006-07-31 Borut Razem <borut.razem AT siol.net>
2825
2826         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2827           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2828           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2829           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2830           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2831           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2832           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2833           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2834           enable ucsim mingw compilation. Serial port is disabled,
2835           since it uses termios.h API, which is not available on native
2836           WIN32
2837
2838 2006-07-31 Borut Razem <borut.razem AT siol.net>
2839
2840         * Small Device C Compiler 2.6.0 released
2841         * support/scripts/sdcc.nsi: added FULL_DOC option
2842         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2843
2844 2006-07-28 Borut Razem <borut.razem AT siol.net>
2845
2846         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2847         * doc/INSTALL.txt: updated
2848
2849 2006-07-27 Borut Razem <borut.razem AT siol.net>
2850
2851         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2852           device/lib/pic/libdev/Makefile.in: fixed bug
2853           [ 1438354 ] pic libsdcc: distclean doesn't work
2854         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2855           device/lib/pic16/libio/Makefile.in: fixed bug
2856           [ 1438344 ] pic16 lib: clean doesn't work properly
2857         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2858
2859 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2860
2861         * device/lib/pic/libsdcc/fsdiv.c,
2862         * device/lib/pic/libsdcc/fsmul.c,
2863         * device/lib/pic16/libsdcc/float/fsdiv.c,
2864         * device/lib/pic16/libsdcc/float/fsmul.c,
2865         * device/lib/_fsdiv.c,
2866         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2867         * support/regression/tests/bug1520966.c: added
2868         * doc/knownbugs.html: removed [ 1520966 ] from the list
2869
2870 2006-07-25 Borut Razem <borut.razem AT siol.net>
2871
2872         * configure.in, configure, sdccconf_in.h: fixed bug
2873           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2874         * doc/knownbugs.html: removed [ 1519095 ] from the list
2875
2876 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2877
2878         * doc/knownbugs.html: added, contains list of known bugs at release
2879         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2880
2881 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2882
2883         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2884           function registers and corrected defaults with additional warning
2885         * device/lib/malloc.c: cosmetic changes
2886         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2887         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2888           (fillGaps): and used it
2889
2890 2006-07-20 Raphael Neider <rneider AT web.de>
2891
2892         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2893           output unless SDCCPICDEBUG is set
2894         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2895           output if SILENT is set
2896
2897 2006-07-11 Borut Razem <borut.razem AT siol.net>
2898
2899         * doc/README.txt: updated
2900
2901 2006-07-10 Borut Razem <borut.razem AT siol.net>
2902
2903         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2904           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2905           in WIN32 installation
2906         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2907           release candidate 1
2908
2909 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2910
2911         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2912         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2913
2914 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2915
2916         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2917
2918 2006-07-06 Borut Razem <borut.razem AT siol.net>
2919
2920         * support/regression/tests/bitfields.c:
2921           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2922         * support/regression/tests/constantRange.c:
2923           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2924
2925 2006-07-04 Borut Razem <borut.razem AT siol.net>
2926
2927         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2928           src/port.mk,
2929           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2930           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2931           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2932           reverted changes from 2006-07-03
2933         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2934         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2935           added CPPFLAGS, used by the host port
2936
2937 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2938
2939         * support/regression/valdiag/tests/switch.c,
2940         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2941         * support/regression/tests/libmullong.c: fixed for host
2942         * support/regression/ports/host/spec.mk: disable all warnings for host,
2943         SDCC runs with --less-pedantic too
2944
2945 2006-07-03 Borut Razem <borut.razem AT siol.net>
2946
2947         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2948           defined CPPFLAGS
2949         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2950         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2951           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2952           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2953           include ../port.mk
2954         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2955           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2956           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2957           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2958
2959 2006-07-02 Raphael Neider <rneider AT web.de>
2960
2961         * src/pic16/devices.inc,
2962         * device/include/pic16/pic18fregs.h,
2963         * device/include/pic16/pic18f4550.h,
2964         * device/lib/pic16/pics.all,
2965         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2966
2967 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2968
2969         * as/hc08/lkaomf51.c (OutputName),
2970         * as/mcs51/lkaomf51.c (OutputName),
2971         * as/z80/asmain.c (asmbl),
2972         * src/ds390/main.c (asmLineNodeFromLineNode),
2973         * src/hc08/ralloc.c (hc08_assignRegisters),
2974         * src/mcs51/main.c (asmLineNodeFromLineNode),
2975         * src/xa51/ralloc.c (checkRegMask),
2976         * src/xa51/gen.c (emitcode),
2977         * src/z80/gen.c (_emit2),
2978         * src/SDCCast.c (searchLitOp),
2979         * src/SDCCglobl.h,
2980         * support/packihx/packihx.c,
2981         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2982         * src/ds390/gen.c (aopPutUsesAcc),
2983         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2984         * support/regression/tests/libmullong.c (mullong_wrapper),
2985         * src/SDCCsymt.c (powof2),
2986         * src/SDCCast.c,
2987         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2988         * src/SDCCsymt.h: added TYPE_TARGET_*
2989         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2990         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2991         SDCCast because 1) header problems 2) this is the right place
2992         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2993         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2994         prototype
2995
2996 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2997
2998         * src/SDCCicode.h: removed buggy semicolon in unused macro
2999         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3000         search for previous definiton of auto symbols too,
3001         (findPrevUse): fixed logic of emitWarnings
3002
3003 2006-06-26 Raphael Neider <rneider AT web.de>
3004
3005         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3006           PCLATH and PCLATU on interrupts, potentially fixes #1505141
3007
3008 2006-06-25 Raphael Neider <rneider AT web.de>
3009
3010         * device/lib/pic/libm: NEW, added math library functions
3011         * device/lib/pic/libsdcc: NEW; added float support functions
3012         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3013         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3014           NEW, added math related headers
3015         * device/include/asm/pic/features.h: NEW
3016         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3017           (popGet): allow larger offsets for AOP_PCODE,
3018           (genDataPointerSet): handle literals explicitly, more debug output,
3019           (genAssign): fixed for float using aopLiteral ;-)
3020         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3021           GOTO initialisation routine
3022         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3023           flag on registers, fixes #1469043 (local variables do not work)
3024         * src/pic/main.c (_pic14_do_link),
3025         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3026           available
3027
3028 2006-06-25 Borut Razem <borut.razem AT siol.net>
3029
3030         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3031           characters printed (not including the trailing '\0' used to end
3032           output to strings). Problem detected in regression test bug-927659.c.
3033           NOTE: printf() family functions should return int instead
3034           unsigned int!
3035         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3036           specifier are printed as themselves
3037         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3038           support flags, width and precision specifiers
3039
3040 2006-06-24 Borut Razem <borut.razem AT siol.net>
3041
3042         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3043           to the list of sdcc tagrets not supporting bit type
3044         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3045           testfor pic16 due to bug:
3046           [ 1511794 ] pic16: regression test bug-895992.c fails
3047
3048 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3049
3050         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3051         * src/SDCCglue.c (initPointer), fixed bug 1496419
3052         * support/regression/tests/bug1496419.c: new, added
3053
3054 2006-06-22 Borut Razem <borut.razem AT siol.net>
3055
3056         * support/regression/ports/pic16/support.c: use gpsim usart module from
3057           libgpsim_modules library
3058
3059 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3060
3061         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3062         IP0H to IPH0.
3063
3064 2006-06-19 Raphael Neider <rneider AT web.de>
3065
3066         * src/pic/glue.h,src/pic16/glue.h: added prototypes
3067         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3068           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3069           (pic14printExterns,pic14printPublics,pic16printPublics,
3070           pic16_printExterns): use new functions to emit symbols
3071           (picglue,pic16glue): emit publics before emitting externs
3072         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3073           locally defined functions to avoid bug #1443651
3074         * support/regression/tests/bug-716242.c: removed pic16 workaround
3075         * support/regression/ports/pic16/spec.mk: ignore errors during build
3076
3077 2006-06-19 Raphael Neider <rneider AT web.de>
3078
3079         * src/pic/glue.h: added pic14aopLiteral prototype
3080         * src/pic/glue.c (pic14aopLiteral): return unsigned int
3081         * src/pic/gen.c: removed stdint.h dependency
3082           (aopGet): use Safe_strdup()
3083           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3084           (genDataPointerSet): use pic14aopLiteral()
3085         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3086           for pic16; thanks to Bernhard and Maarten
3087
3088 2006-06-18 Borut Razem <borut.razem AT siol.net>
3089
3090         * support/regression/tests/structflexarray.c: flexible array members
3091           not supported by gcc < 3
3092         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3093           GUI tool by default
3094         * src/pic/gen.c: don't include [p]strdin.h on solaris
3095         * support/Util/pstdint.h: addad svn attributes
3096         * support/regression/tests/constantRange.c,
3097           support/regression/tests/rotate.c: include inttypes.h instead
3098           stdint.h on solaris, addad svn attributes
3099
3100 2006-06-18 Raphael Neider <rneider AT web.de>
3101
3102         * src/SDCCsymt.c (initCSupport): change return type of divschar to
3103           int for PIC16
3104         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3105           (pic16_genMinusBits): simplified sign-extension
3106           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3107             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3108             adjusted to correctly handle mixed-signed operands, disabled
3109             now unused multiplciation routines
3110         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3111           (assignResultValue): added argument denoting the size of the result
3112             as returned by the function (fixes upcasts in assigning from
3113             function calls: char foo(); int i = foo();)
3114           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3115             function result to assignResultValue
3116           (genMult): disabled inlined multiplication code
3117           (genDiv): augmented to also handle the modulus operator, fixed to
3118             handle mixed-signed operands correctly
3119           (genMod): simply call genDiv, disabled unused code
3120           (genAssign): fixed missing (sign-)extension on result
3121         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3122             valid char operands, allow signed operands for native code, added
3123             division and modulo operator handling
3124         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3125
3126         As a consequence, onebyte.c (if split into two files) and muldiv.c
3127         pass regression tests.
3128
3129 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3130
3131         * doc/Makefile.in: two runs of makeindex seem needed to get
3132         correct page references in the index of sdccman.pdf
3133         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3134
3135 2006-06-17 Borut Razem <borut.razem AT siol.net>
3136
3137         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3138
3139 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3140
3141         * doc/sdccman.lyx: updated, added (porting source code, debugging),
3142         mentioned ec2drv and paulmon
3143
3144 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3145
3146         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3147           consecutive abs areas
3148           (find_empty_space, allocate_space): added map to handle codemap or
3149            xdatamap,
3150           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3151            absolute idata and xdata
3152         * as/mcs51/lkmem.c (summary2): updated legend
3153
3154 2006-06-16 Raphael Neider <rneider AT web.de>
3155
3156         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3157
3158 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3159
3160         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3161           1208515
3162         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3163
3164 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3165
3166         * src/port.h (struct PORT): added field gp_tags, to hold the tag
3167         value of generic pointers,
3168         * src/avr/main.c,
3169           src/ds390/main.c,
3170           src/hc08/main.c,
3171           src/izt/i186.c,
3172           src/izt/tlcs900h.c,
3173           src/mcs51/main.c,
3174           src/pic/main.c,
3175           src/pic16/main.c,
3176           src/xa51/main.c,
3177           src/z80/main.c: PORT structure, added elements for gp_tags field,
3178         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3179         fields in the PORT structure of each port,
3180         * src/SDCCast.c (decorateType): allow processing of generic pointers
3181         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3182         S_FIXED symbols
3183
3184 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3185
3186         * link/z80/lkgb.c,
3187         * link/z80/lkgg.c,
3188         * src/pic16/gen.c,
3189         * src/pic16/main.c,
3190         * src/pic16/pcode.c,
3191         * src/pic/main.c,
3192         * src/pic/pcoderegs.c,
3193         * src/SDCCicode.c,
3194         * src/SDCCmain.c,
3195         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3196           bug 1504689 on minGW
3197
3198 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3199
3200         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3201
3202 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3203
3204         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3205
3206 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3207
3208         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3209           for optimization
3210
3211 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3212
3213         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3214         to a char variable. Fixed bug #1504211
3215         * device/include/pic16/adc.h,
3216         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3217         and fixed bug #1364390
3218
3219 2006-06-10 Borut Razem <borut.razem AT siol.net>
3220
3221         * CVSROOT: removed the CVS left-over
3222
3223 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3224
3225         * as/hc08/asmain.c (asexit),
3226         * as/hc08/lkmain.c (lkexit),
3227         * as/mcs51/asmain.c (asexit),
3228         * as/mcs51/lkmain.c (lkexit),
3229         * src/SDCCglue.c (DEFSETFUNC),
3230         * src/SDCCmain.c (linkEdit, assemble),
3231         * support/librarian/sdcclib.c (AddRel),
3232           replaced unlink() by standard C remove()
3233         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3234         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3235           gatherImplicitVariables): new, added to fix bug 608752,
3236           (createFunction): added gatherImplicitVariables()
3237         * src/SDCCast.h: added createRMW prototype
3238         * src/SDCCsymt.h (struct symbol): added infertype
3239         * support/regression/tests/bug608752.c: new, added
3240
3241 2006-06-10 Raphael Neider <rneider AT web.de>
3242
3243         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3244           multibyte dummy reads (fixes #1503234)
3245
3246 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3247
3248         * device/include/mcs51/compiler.h: new, added header file to enable
3249           creating common sfr definition header files for different compilers
3250
3251 2006-06-05 Raphael Neider <rneider AT web.de>
3252
3253         * src/pic16/{pcode.h,genarith.c}:
3254           introduced pCodeOp combining any two pCodeOps (previously only
3255           two register operands could be combined), removed pcop2 from
3256           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3257         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3258         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3259           rewritten to use new PO_TWO_OPS
3260         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3261         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3262           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3263           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3264           (pic16_get_op): embraced return arg to allow #define return(x),
3265             added new case for combined opcodes
3266           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3267           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3268            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3269
3270 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3271
3272         * src/SDCCval.c (checkConstantRange): added
3273         * src/SDCCval.h: added checkConstantRange
3274         * support/Util/SDCCerr.c,
3275         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3276         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3277         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3278         * src/SDCCast.c (decorateType): added checkConstantRange,
3279         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3280         can be emitted with the correct always true/false warning,
3281         added optimization for double '!';
3282         result of decorateType() must be assigned back to the tree, because
3283         decorateType() can change the tree
3284         * src/SDCCicode.c (geniCodeLogic),
3285         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3286         (checkConstantRange): removed, it was only a fragment which never
3287         emitted a warning
3288         * src/SDCCsymt.c (computeType): fixed promotion for
3289         "-1 < (unsigned bit) b"
3290         * src/pic/ralloc.c (packRegsForAssign),
3291         * src/pic16/ralloc.c (packRegsForAssign),
3292         * src/hc08/ralloc.c (packRegsForAssign),
3293         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3294         from mcs51
3295         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3296         * support/regression/tests/constantRange.c: added
3297         * support/valdiag/tests/constantRange.c: added
3298         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3299
3300 2006-06-02 Borut Razem <borut.razem AT siol.net>
3301
3302         * support/regression/ports/pic16/support.c: increase stack size
3303           to 255 bytes
3304         * support/regression/Makefile.in: sort tests by name so that the
3305           resutlts can be compared on different machines / platforms
3306
3307 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3308
3309         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3310         * src/ds390/gen.c (emitLabel): new, added,
3311           (genDjnz): fixed stack overflow bug,
3312           (throughout): cosmetic changes to sync with mcs51/gen.c,
3313           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3314         * src/mcs51/gen.c (genEndFunction): small optimization,
3315           (throughout): cosmetic changes to sync with ds390/gen.c
3316
3317 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3318
3319         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3320           (_print_format): fixed printing pointers
3321         * src/mcs51/gen.c (emitLabel, movb): new, added,
3322           (genAssign): small optimization,
3323           (genDjnz): fixed stack overflow bug,
3324           (throughout): replaced sprintf with SNPRINTF,
3325           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3326           replaced emitcode("mov", "b,...") with MOVB(...),
3327           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3328           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3329         * src/mcs51/peeph.def: added rules 140 and 264
3330         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3331           so they may get optimized into registers
3332
3333 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3334
3335         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3336           immediately when encountered,
3337           (printUsage): always use stderr even on windows
3338
3339 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3340
3341         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3342         (processParms): fixed bug #1247551
3343         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3344         parseCmdLine, main): print '--version' to stdout,
3345         print 'help' to stdout if --help is given,
3346         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3347         arguments are given; fixed --help
3348
3349 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3350
3351         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3352         * support/regression/tests/bug-1493710.c: added
3353
3354 2006-05-27 Borut Razem <borut.razem AT siol.net>
3355
3356         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3357           static instead auto
3358         * support/regression/ports/pic16/support.c: increase stack size
3359           from default 64 bytes to 128 bytes
3360         * support/regression/tests/staticinit.c,
3361           support/regression/tests/float.c: regression tests fully enabled
3362           for pic16 port by putting the initialized data arrays into the code
3363           section
3364         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3365           This was changed by mistake in the previous version.
3366
3367 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3368
3369         * src/pic16/gen.c (genFunction, genEndFunction): some
3370         beautifications, fixed bug with falsely restoring FSR2 in large
3371         stack model, thanks to Beau E. Cox for reporting the bug
3372
3373 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3374
3375         * debugger/mcs51/break.c,
3376         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3377           use %p to print pointers, made address variables unsigned
3378         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3379         * debugger/mcs51/symtab.c (parseSymbol): must return something
3380         * src/mcs51/gen.c (aopForSym): small optimization,
3381            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3382           (freeAsmop): added missing break,
3383           (aopPut): removed parameter bvolatile, determine it inside the function,
3384           (saveRegisters, unsaveRegisters): small optimization,
3385           (genIpush): removed pointless check,
3386           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3387           replaced sprintf with SNPRINTF,
3388           replaced strcpy with strncpyz,
3389           updated aopPut calls,
3390           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3391         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3392
3393 2006-05-24 Borut Razem <borut.razem AT siol.net>
3394
3395         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3396           modification of test for the pic16 port, put the array to the code
3397           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3398
3399 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3400
3401         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3402         * support/Util/pstdint.h: added
3403
3404 2006-05-22 Borut Razem <borut.razem AT siol.net>
3405
3406         * src/regression/Makefile: removed bool2.c test, added -q linker option
3407         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3408           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3409           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3410           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3411           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3412           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3413           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3414           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3415           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3416
3417 2006-05-22 Raphael Neider <rneider AT web.de>
3418
3419         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3420           bug #1492360 (problematic due to generic pointers, see code)
3421
3422 2006-05-22 Borut Razem <borut.razem AT siol.net>
3423
3424         * support/regression/ports/pic16/specs.mk: removed stack size linker
3425           directive
3426         * support/regression/tests/array.c,
3427           support/regression/tests/bitopcse.c,
3428           support/regression/tests/bug-908454.c,
3429           support/regression/tests/malloc.c: modified for pic16 regression test
3430         * support/regression/tests/bitfields.c:
3431           pic16 - excluded bitfileds of size > 8
3432         * support/regression/tests/bp.c: pic16 - reduced data size
3433         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3434         * support/regression/tests/bug-460010.c:
3435           pic16 - used the absolute address the fits in memory
3436         * support/regression/tests/bug-716242.c:
3437           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3438         * support/regression/tests/float.c:
3439           pic16 - excluded - data size too big
3440         * support/regression/tests/onebyte.c:
3441           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3442         * support/regression/tests/shifts.c:
3443           pic16 - function names probably have to differ in first X characters
3444           (gpasm limitation?)
3445         * support/regression/tests/staticinit.c:
3446           pic16 - excluded some tests due error: no target memory available for
3447           section ".idata"
3448
3449 2006-05-22 Borut Razem <borut.razem AT siol.net>
3450
3451         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3452           second try. Thanks Stas Sergeev once more.
3453
3454 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3455
3456         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3457           (genLeftShift, genRightShift): fixed bug 1491627
3458         * src/hc08/peeph.def (rules 7, 8.x): added
3459         * support/regression/tests/shifts.c (ShiftLeftByParam,
3460           ShiftRightByParam, testShiftByParam): added to test variable shifting
3461
3462 2006-05-20 Raphael Neider <rneider AT web.de>
3463
3464         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3465         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3466           (allocReg): add only new registers to dynAllocRegs,
3467           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3468             #1489055, #1445850, and probably #1483693
3469
3470 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3471
3472         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3473         bug in for-loop that didn't emit the last of CONFIG and ID registers
3474
3475 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3476
3477         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3478           with offset
3479         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3480           1489016, 1434401 and 1490124
3481         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3482           1489016, 1434401 and 1490124
3483
3484 2006-05-17 Borut Razem <borut.razem AT siol.net>
3485
3486         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3487           thanks Stas Sergeev
3488
3489 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3490
3491         * device/include/mcs51/P89c51RD2.h,
3492         * device/include/mcs51/P89LPC901.h,
3493         * device/include/mcs51/P89LPC922.h,
3494         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3495
3496 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3497
3498         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3499         to fix missing stack pragma in compiled binary object file,
3500
3501 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3502
3503         * support/packihx/configure.in,
3504         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3505         determine sizeof basic types even while cross compiling
3506
3507 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3508
3509         * src/avr/gen.c (aopop),
3510         * src/ds390/gen.c (aopOp),
3511         * src/hc08/gen.c (aopOp),
3512         * src/mcs51/gen.c (aopop),
3513         * src/pic16/gen.c (pic16_aopOp),
3514         * src/pic/gen.c (aopOp),
3515         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3516         if size of operand is smaller than spill location
3517
3518 2006-05-12 Borut Razem <borut.razem AT siol.net>
3519
3520         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3521           have to have CR/LF line endings even if they are checked out on *nix
3522           or on WIN32 in cygwin binmode
3523
3524 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3525
3526         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3527         * device/include/ds80c390.h: added sfr16 definitions
3528         * src/ds390/gen.c,
3529         * src/ds390/gen.h,
3530         * src/ds390/main.c,
3531         * src/ds390/ralloc.c,
3532         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3533           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3534           bit returning functions
3535         * support/regression/tests/sfr16.c: enabled test on ds390
3536
3537 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3538
3539         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3540         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3541
3542 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3543
3544         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3545         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3546           (cl_address_space constructor): removed expensive initialization,
3547           (cl_address_space::get_cell): extended for late initialization,
3548           (cl_address_space::*): use late initialization,
3549           (cl_address_decoder::activate): removed expensive initialization,
3550           This reduced regression test running time by 25%
3551
3552 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3553
3554         * packihx/,
3555         * configure.in,
3556         * configure,
3557         * sdcc.dsw,
3558         * Makefile.bcc,
3559         * Makefile.in,
3560         * support/packihx/Makefile.in,
3561         * support/packihx/clean.mk,
3562         * support/packihx/Makefile.bcc,
3563         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3564
3565 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3566
3567         * src/SDCCval.c (valNot): fix for regression test failure
3568           of not.c on big endian hosts
3569
3570 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3571
3572         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3573
3574 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3575
3576         * device/lib/mcs51/Makefile.in: changed string comparison operator
3577           to = for POSIX compliance; == is bash extension
3578
3579 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3580
3581         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3582           kosmonaut_pirx
3583
3584 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3585
3586         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3587         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3588         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3589         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3590         bug report #1478657,
3591
3592 2006-05-05 Borut Razem <borut.razem AT siol.net>
3593
3594         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3595           making the html
3596
3597 2006-05-02 Borut Razem <borut.razem AT siol.net>
3598
3599         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3600           create *.ind, which made make to fail if invoked with -j 2
3601
3602 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3603
3604         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3605           Hubert Sack for patch 1479782
3606
3607 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3608
3609         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3610
3611 2006-05-01 Raphael Neider <rneider AT web.de>
3612
3613         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3614           (create_pic): store only prefix-free device name,
3615           (init_pic): check for device names with "16" prefix,
3616           (list_valid_pics),
3617         * src/pic/device.h (struct PIC_device),
3618         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3619             stored device name,
3620         * device/include/pic/pic12f{635,675,629,683}.h,
3621         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3622         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3623         * device/include/pic/pic16f505.h,
3624         * device/lib/pic/libdev/pic16f505.c: removed
3625         * device/include/pic/pic14devices.txt: added support for pic12f
3626             devices, removed unsupported non 16-bit devices
3627             [above changes provided by patch from Zik Saleeba]
3628         * src/pic/*, src/pic16/*, device/include/pic16/*,
3629           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3630
3631 2006-05-01 Borut Razem <borut.razem AT siol.net>
3632
3633         * configure.in, configure, doc/Makefile.in:
3634           sync with nightly build makefile - latex, dvipdf and dvips
3635           not needed any more
3636
3637 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3638
3639         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3640         in the library source
3641
3642 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3643
3644         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3645
3646 2006-04-28 Raphael Neider <rneider AT web.de>
3647
3648         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3649         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3650           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3651         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3652
3653 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3654
3655         * device/lib/pic/libdev/Makefile.in,
3656         * device/lib/hc08/Makefile.in,
3657         * device/lib/gbz80/Makefile.in,
3658         * device/lib/z80/Makefile.in,
3659         * device/lib/ds390/Makefile.in,
3660         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3661         thanks to Borut for the bug report
3662         * configure.in,
3663         * configure: always create doc/Makefile independent from --enable-doc
3664         * Makefile.in: always install from directory doc independent from
3665         --enable-doc
3666         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3667         removed
3668         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3669         * doc/Makefile.in: install *.txt if present
3670         * device/include/Makefile.in (install): added installation of pic/*.inc
3671         and pic/*.txt files again, they were erroneously removed
3672
3673 2006-04-28 Raphael Neider <rneider AT web.de>
3674
3675         * src/pic/{gen.c,main.h,pcode.c},
3676         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3677             concerning signedness with casts
3678
3679 2006-04-28 Raphael Neider <rneider AT web.de>
3680
3681         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3682             definition of an interrupt handler,
3683         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3684             interrupt handler stuff from picglue() to separate routine,
3685           (picglue): enabled definition of intr handlers in files w/o main()
3686
3687 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3688
3689         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3690           compilation with MSVC 2005 Express Edition (VC8)
3691
3692 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3693
3694         * device/lib/Makefile: fixed build of gbz80 lib
3695
3696 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3697
3698         * support/regression/tests/bug-460010.c,
3699         * support/regression/tests/bug-524691.c,
3700         * support/regression/tests/bug-716242.c: removed conditional defines
3701           that are already in testfwk.h
3702
3703 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3704
3705         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3706           (AccAXRsh1): added, shift right by 1,
3707           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3708            AccAXLrl1
3709         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3710
3711 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3712
3713         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3714         remove cast to same type
3715         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3716         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3717         * as/z80/Makefile,
3718         * link/z80/Makefile: removed, they have moved to
3719         Makefile.in files
3720         * configure,
3721         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3722         * install-sh: fix bug #1204398 by setting umask 0022
3723         * device/lib/Makefile: separate build of z80 and gbz80 lib
3724
3725 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3726
3727         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3728         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3729
3730         One basic decision: e.g. src/clean.mk includes further files. In order
3731         to make this work there are two solutions:
3732         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3733           run configure on them. This way they can use
3734           'include $(srcdir)/port-clean.mk'
3735         - always include clean.mk by the Makefile at the same level. To avoid
3736           that `make clean` tries to include and build Makefile.dep the
3737           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3738           implemented, because now even `make uninstall` doesn't create
3739           Makefile.in. clean.mk could be eliminated by pasting it in
3740           Makefile.in.
3741
3742         * debugger/mcs51/Makefile.in: build own objects from library sources
3743         (SLIB, SDCC) in current directory
3744
3745         * configure, configure.in: renamed --disable-device-lib-build in
3746         --disable-device-lib; added --enable-doc, the required tools are
3747         searched by configure; added result message; the toolchain for the
3748         belonging ports are now only built, if the port is enabled.
3749
3750         * support/regression/*: all output is written in directory gen, because
3751         the fwk and ports directories don't livet in the build tree using vpath
3752
3753         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3754         --disable-device-lib, added --enable-doc, added section VPATH
3755
3756         * sim/ucsim/configure.in,
3757         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3758         z80 are enabled by default
3759
3760 2006-04-24 Raphael Neider <rneider AT web.de>
3761
3762         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3763             to config word, "pic14_"-prefixed some extern functions
3764           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3765             config word has been found
3766         * src/pic/device.h: added prototypes
3767         * src/pic/pcode.c: added "pic14_"-prefix where needed
3768         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3769             fixup
3770         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3771             words,
3772           (pic14emitRegularMap): ignore config words,
3773           (pic14createInterruptVect): moved generating __config directives away
3774           (picglue): have __config directives emitted
3775
3776 2006-04-24 Borut Razem <borut.razem AT siol.net>
3777
3778         * doc/Makefile: sync with nightly build makefile
3779
3780 2006-04-24 Raphael Neider <rneider AT web.de>
3781
3782         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3783             registers that have not been assigned proper liveranges,
3784             fixes #1469504 and #1474602,
3785           (pCodeRegOptimizeRegUsage): fixed typo in comment
3786
3787 2006-04-24 Borut Razem <borut.razem AT siol.net>
3788
3789         * device/examples/main8051.c: deleted - it was removed from CVS
3790           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3791           after the transition to Subversion
3792         * src/SDCCalloc.h: deleted - it was removed  from CVS
3793           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3794           after the transition to Subversion
3795         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3796           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3797           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3798           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3799
3800 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3801
3802         * as/asx8051.dsp: added mcs51/strcmpi.h
3803         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3804         * as/hc08/aslink.h: updated lnksect prototype
3805         * as/hc08/asm.h,
3806         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3807         * as/hc08/asmain.c,
3808         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3809           (newdot): handle A_ABS
3810         * as/hc08/asout.c,
3811         * as/mcs51/asout.c (outarea): output address
3812         * as/hc08/lkaomf51.c,
3813         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3814         * as/hc08/m08pst.c,
3815         * as/mcs51/i51pst.c,
3816         * as/z80/z80pst.c: "ABS" is not A_OVR
3817         * as/hc08/lkarea.c (newarea): read a_addr,
3818           (lnkarea): added codemap array, sort absolute areas to the front,
3819            combine all GSINITx/GSFINAL,
3820           (find_empty_space, allocate_space): new functions,
3821           (lnksect): return next address, handle absolute sections
3822         * as/mcs51/lkarea.c (newarea): read a_addr,
3823           lnksect2 prototype changed,
3824           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3825           (find_empty_space, allocate_space): new, factored out of lnksect2,
3826           (lnksect2): return next address, handle absolute sections
3827         * as/hc08/lkhead.c,
3828         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3829         * as/hc08/lklibr.c (addfile, fndsym),
3830         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3831           index out of range and detect both '\' and '/'
3832         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3833         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3834           regression tests (ds390 cannot return bool yet)
3835         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3836           document critical interrupts on z80, document changed SDCC define
3837         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3838           (_a390_mapping): added .org directive
3839         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3840           (genMultOneByte): fixed warnings
3841         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3842           ones
3843         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3844         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3845           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3846         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3847         * src/pic16/main.c: removed newReg prototype
3848         * src/pic16/pcode.c,
3849         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3850           warnings
3851         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3852           ones
3853         * src/pic16/ralloc.c
3854         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3855           to fix warnings
3856         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3857           from short to PIC_OPTYPE
3858         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3859         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3860           optype from short to PIC_OPTYPE
3861         * src/port.h: made int_size unsigned to fix warnings
3862         * src/SDCC.y: fixed warning on MSVC
3863         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3864         * src/SDCCopt.c (convertToFcall): fixed warnings
3865         * src/SDCCsymt.h: removed double prototype for genSymName
3866         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3867           offset int to fix warnings
3868
3869 2006-04-22 Borut Razem <borut.razem AT siol.net>
3870
3871         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3872           references to CVS replaced with Subversion
3873
3874 2006-04-21 Borut Razem <borut.razem AT siol.net>
3875
3876         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3877           references to CVS replaced with Subversion
3878
3879 2006-04-19 Borut Razem <borut.razem AT siol.net>
3880
3881         * src/version.awk: adapted for svn
3882         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3883           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3884           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3885           /binutils-avr/etc/*.vi, *.jin: removed all properties
3886           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3887
3888 2006-04-19 Borut Razem <borut.razem AT siol.net>
3889
3890         * CVS to Subversion migration completed
3891
3892 2006-04-18 Borut Razem <borut.razem AT siol.net>
3893
3894         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3895           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3896
3897 2006-04-17 Borut Razem <borut.razem AT siol.net>
3898
3899         * device/include/Makefile.in: added pic/*.inc to the installation
3900
3901 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3902
3903         * support/regression/collate-results.py: fixed output in case of
3904         a valdiag error
3905         * support/regression/generate-cases.py: fixed splitting of pathnames
3906         with dots
3907         * as/hc08/lklibr.c (addfile),
3908         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3909
3910 2006-04-11 Raphael Neider <rneider AT web.de>
3911
3912         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3913         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3914         * src/pic16/pcode.c (assignValnums): fixed #1460578
3915
3916 2006-04-11 Raphael Neider <rneider AT web.de>
3917
3918         * device/lib/pic/libdev/*.c,
3919         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3920           fixes #1468739, enables compilation in --std-c99 mode
3921         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3922
3923 2006-04-11 Raphael Neider <rneider AT web.de>
3924
3925         * src/pic/device.c (find_device): removed debug output
3926           (list_valid_pics): enabled verbose listing of supported devices
3927         * device/include/stdbool.h: define bool as char for pic14/16 as well
3928
3929 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3930
3931         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3932
3933 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3934
3935         * .version: bumped version to 2.5.6
3936         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3937
3938 2006-04-06 Raphael Neider <rneider AT web.de>
3939
3940         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3941         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3942         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3943           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3944             pic14_constructAbsMap
3945           (pic14printPublics): declare absolute global symbols as global
3946           (pic14createInterruptVect),
3947         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3948           (newReg): assume new registers unused, use correct name in
3949             hashtable (reg->name instead of name), more debugLog output
3950         * src/pic/device.h (PIC_device): added fields for verbose output
3951         * src/pic/device.c: moved device definition to pic14devices.txt,
3952             added routines for runtime parsing of pic14devices.txt,
3953             added support for second config word
3954         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3955           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3956           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3957           (_pic14_parseOptions): moved pCodeInitRegisters here
3958           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3959         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3960           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3961             handling the pseudo stack
3962         * device/lib/Makefile.in: ignore failures in objects-pic16,
3963         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3964         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3965         * device/lib/pic/Makefile.subdir,
3966         * device/lib/pic16/Makefile.subdir: improved clean rules
3967         * device/lib/pic/libdev/: NEW, pic14 device libraries
3968         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3969         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3970         * device/include/Makefile.in: create subdir and install pic14 headers
3971         * device/include/pic/p16f_common.inc: removed unused declarations
3972         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3973             PICs from inc2h.pl v1.6,
3974             replaced BIT_AT macros with struct declarations
3975         * device/include/pic/pic14devices.txt: definition of supported devices,
3976             all above improvements contributed by Zik Saleeba, thanks
3977         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3978         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3979             headers
3980
3981 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3982
3983         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3984         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3985           thanks to Charles Olds
3986
3987 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3988
3989         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3990
3991 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3992
3993         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3994         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3995         * support/regression/bug1464657.c: added, new test
3996
3997 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3998
3999         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4000           version number
4001
4002 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4003
4004         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4005           --no-peep and --peep-file <file> are used don't use default rules but
4006           do use the <file>
4007
4008 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4009
4010         * src/mcs51/gen.c (genCall): fixed bug 1457608
4011
4012 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4013
4014         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4015         changes seem to cause (trigger?) problems with the build system.
4016
4017 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4018
4019         * src/SDCCpeeph.c (operandsLiteral): new, added,
4020           (callFuncByName): inserted operandsLiteral
4021         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4022
4023 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4024
4025         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4026         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4027
4028 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4029
4030         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4031           implemented patch 1120823 Thanks to Willy De la Court (normal
4032           interrupts need an interrupt number now if they are made critical),
4033           and enabled nesting of critical functions though not for gbz80
4034           (genCritical, genEndCritical): added functions
4035           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4036         * src/z80/mappings.i: added "ei" to all mappings
4037
4038 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4039
4040         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4041         submitted by the Debian SDCC maintainer Aurelien Jarno:
4042         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4043         archive with gcc 4.1 on mips and wrote the patch"
4044
4045 2006-03-16 Raphael Neider <rneider AT web.de>
4046
4047         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4048           the left operand is shorter than the result (c* = lit-c* + int),
4049           fixes bug #1450796
4050         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4051           OP_SYMBOL
4052
4053 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4054
4055         * src/.version: increased version number to 2.5.5
4056         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4057         linking is done manually in pic16 port's _linkEdit,
4058         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4059         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4060         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4061         allocate asmop as AOP_ACC,
4062         (aopForRemat): added parameter 'bool result' in function declaration,
4063         (pic16_aopGet): return AOP_ACC when accessing WREG,
4064         (pic16_popGetTempReg): minor modification,
4065         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4066         'pic16_allocWithIdx',
4067         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4068         calling function in absolute addresses,
4069         (genAssign): take into account AOP_ACC asmop,
4070         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4071         * src/pic16/pcoderegs.c: some debug functions and lines added,
4072         * src/pic16/ralloc.c (decodeRegType): added but commented out,
4073         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4074         register too,
4075         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4076         call to allocReg, not by manually allocating a new one,
4077         (pic16_assignRegisters): now before going through the register
4078         allocating functions mark all registers as free. This eliminates some
4079         side effects resulting from peephole parser done earlier in the backbone
4080
4081 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4082
4083         * src/SDCCicode.c (geniCodeLogic),
4084         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4085
4086 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4087
4088         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4089           (genSend): bugfix, do not allocate and free twice,
4090           (shiftRLong): handle partially overlapping aops
4091         * support/regression/tests/bitopcse.c: fixed warning redefined idata
4092
4093 2006-03-08 Borut Razem <borut.razem AT siol.net>
4094
4095         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4096           for pic16
4097
4098 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4099
4100         * support/regression/tests/bug1409955.c: new, added
4101         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4102         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4103           (aopForSym, aopOp): increment asmop.allocated if reused,
4104           (freeAsmop): decrement asmop.allocated and check for zero instead of
4105           using asmop.freed,
4106           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4107           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4108            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4109            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4110            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4111            genSignedRightShift, genRightShift, genDataPointerGet,
4112            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4113            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4114             in reverse order from allocation,
4115           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4116             added swappedLR to keep track
4117         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4118           pdata & code for GCC, z80, gbz80 & hc08
4119         * support/regression/tests/zeropad.c: moved defines to testfwk.h
4120
4121 2006-03-08 Raphael Neider <rneider AT web.de>
4122
4123         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4124
4125 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4126
4127         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4128         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4129         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4130
4131 2006-03-06 Borut Razem <borut.razem AT siol.net>
4132
4133         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4134           made the linker quiet
4135
4136 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4137
4138         * src/pic16/gen.c (genPcall): fixed bug #1443644
4139         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4140         which dumps before the function entry point a data byte which represents
4141         the number of the local variables used by the specified function, added
4142         'xinst' for initial support for Extended Instruction Support,
4143         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4144         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4145         port->fun_prefix anymore (may change later),
4146         (genFunction, genEndFunction): do not store/restore local registers for
4147         _main (this should take care the --main-return command line option in
4148         the future),
4149         (genOr): removed some legacy pic-port instructions,
4150         * src/pic16/genarith.c (genAddLit): re-enabled old code because
4151         performing operations with SFR's causes data to be written more than
4152         once to each SFR. Perhaps SFRs should be handled in special cases...
4153         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4154         pcode.h
4155         * src/pic16/main.c (_process_pragma): stack bound checking did not take
4156         into account for stack starting position,
4157         (struct OPTIONS pic16_optionsTable): added command line argument
4158         --extended or -y for Extended Instruction Support,
4159         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4160         (deassignLRs): *** perhaps the most important change, old 'for' code
4161         (commented out for reference), didn't account for some registers which
4162         were left marked 'not free' after a pointer operation. The change
4163         reduces register usage a lot in some cases
4164
4165 2006-03-04 Borut Razem <borut.razem AT siol.net>
4166
4167         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4168           _clean
4169         * support/regression/tests/bug-524697.c: decreased array size for
4170           mcs51 to fit into the internal RAM
4171         * support/regression/Makefile.in: a little bit more verbose
4172
4173 2006-03-03 Borut Razem <borut.razem AT siol.net>
4174
4175         * support/regression/fwk/lib/testfwk.c,
4176           support/regression/fwk/include/testfwk.h: introduced function
4177           _prints(), nonrecursive _printn(), call _initEmu() from main()
4178         * support/regression/ports/gbz80/support.asm,
4179           support/regression/ports/ucz80/support.asm,
4180           support/regression/ports/z80/support.asm,
4181           support/regression/ports/ds390/support.c,
4182           support/regression/ports/hc08/support.c,
4183           support/regression/ports/host/support.c,
4184           support/regression/ports/mcs51/support.c,
4185           support/regression/ports/xa51/support.c: added empty _initEmu()
4186           function
4187         * support/regression/ports/pic16/gpsim.cmd,
4188           support/regression/ports/pic16/spec.mk,
4189           support/regression/ports/pic16/support.c,
4190           support/regression/Makefile.in: added pic16 regression test
4191
4192 2006-03-01 Raphael Neider <rneider AT web.de>
4193
4194         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4195           genConstPointerGet): use safe way of generating MOVFF to cover
4196             literals as well as registers, fixes bug #1440527
4197         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4198             dereference
4199           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4200             more correctly, fixes bug #1232186
4201           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4202         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4203             gplink guess the correct processor in more cases, applied patch
4204             from Till Riedel attached to and fixing bug #1436552
4205
4206 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4207
4208         * support/regression/tests/array.c: added, contains check for #1434401
4209         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4210
4211 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4212
4213         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4214         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4215         * device/include/mcs51/c8051f326.h,
4216         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4217         * device/include/mcs51/c8051f000.h,
4218         * device/include/mcs51/c8051f018.h,
4219         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4220           PCON_IDLE,PCON_STOP and added sfr16 definitions
4221
4222 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4223
4224         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4225           genGetWord): fixed bug 1409955
4226
4227 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4228
4229         * device/include/hc08/mc68hc908gp32.h,
4230         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4231
4232 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4233
4234         * src/SDCCast.c (constExprValue): return NULL if not a value
4235         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4236         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4237         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4238
4239 2006-02-13 Borut Razem <borut.razem AT siol.net>
4240
4241         * src/regression/ptrarg.c: added, fails due to bug #1430967
4242         * src/regression/Makefile: ptrarg.c added, ...
4243
4244 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4245
4246         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4247         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4248
4249 2006-02-11 Borut Razem <borut.razem AT siol.net>
4250
4251         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4252           print "Processor: xxx" message to stdout only if --verbose
4253
4254 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4255
4256         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4257         * support/regression/tests/bug1426356.c: added
4258         * support/regression/tests/bitfields.c: removed 2 tests
4259
4260 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4261
4262         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4263         * device/include/mcs51/c8051f330.h,
4264         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4265           PCON_IDLE,PCON_STOP and added sfr16 definitions
4266         * device/lib/_divsint.c,
4267         * device/lib/_divuint.c,
4268         * device/lib/_divulong.c,
4269         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4270           register bank bug for small stackauto
4271
4272 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4273
4274         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4275
4276 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4277
4278         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4279         * all.dsp: corrected several bin paths
4280         * device/include/mcs51/c8051f120.h,
4281         * device/include/mcs51/c8051f300.h,
4282         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4283           to PCON_IDLE,PCON_STOP
4284         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4285         * device/lib/printf_large.c (output_float): fixed bug 1388703
4286         * support/regression/tests/bug1057979.c: added test for bug 1388703
4287
4288 2006-02-08 Raphael Neider <rneider AT web.de>
4289
4290         * src/pic/pcode.c (pciTRIS): fixed typo,
4291           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4292           (LinkFlow): fixed handling of flows that end in a call,
4293           (ReuseReg): perform safety check earlier
4294         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4295             to work with flows at the beginning of a pBlock,
4296             fixes #1426557 (Symbol not previously defined),
4297           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4298             usage information
4299           (RemoveUnusedRegisters): update register usage info
4300         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4301             created, reuse existing ones instead
4302         * src/pic/gen.c (genPcall): fixed #1424719
4303
4304 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4305
4306         * link/z80/lkmain.c,
4307         * link/z80/lklex.c,
4308         * link/z80/lkdata.c,
4309         * link/z80/aslink.h: fixed build on current cygwin:
4310         replaced getline() by lk_getline()
4311
4312 2006-02-01 Borut Razem <borut.razem AT siol.net>
4313
4314         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4315           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4316           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4317           src/regression/bool1.c, src/regression/bool2.c,
4318           src/regression/bool3.c, src/regression/call1.c,
4319           src/regression/compare.c, src/regression/compare10.c,
4320           src/regression/compare2.c, src/regression/compare3.c,
4321           src/regression/compare4.c, src/regression/compare5.c,
4322           src/regression/compare6.c, src/regression/compare7.c,
4323           src/regression/compare8.c, src/regression/compare9.c,
4324           src/regression/configword.c, src/regression/for.c,
4325           src/regression/inline.c, src/regression/mult1.c,
4326           src/regression/nestfor.c, src/regression/or1.c,
4327           src/regression/pointer1.c, src/regression/ptrfunc.c,
4328           src/regression/rotate1.c, src/regression/rotate2.c,
4329           src/regression/rotate3.c, src/regression/rotate4.c,
4330           src/regression/rotate5.c, src/regression/rotate6.c,
4331           src/regression/rotate7.c, src/regression/string1.c,
4332           src/regression/struct1.c, src/regression/sub.c,
4333           src/regression/sub2.c, src/regression/switch1.c,
4334           src/regression/while.c, src/regression/xor.c,
4335           src/regression/create_stc, src/regression/simulate,
4336           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4337           regression tests
4338         * src/regression/gpsim_assert.h: added
4339
4340 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4341
4342         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4343         ((void (code *) (void)) 0) ();
4344         * as/hc08/aslex.c,
4345         * as/hc08/aslink.h,
4346         * as/hc08/asm.h,
4347         * as/hc08/asmain.c,
4348         * as/hc08/lkdata.c,
4349         * as/hc08/lklex.c,
4350         * as/hc08/lkmain.c,
4351         * as/mcs51/aslex.c,
4352         * as/mcs51/aslink.h,
4353         * as/mcs51/asm.h,
4354         * as/mcs51/asmain.c,
4355         * as/mcs51/lkdata.c,
4356         * as/mcs51/lklex.c,
4357         * as/mcs51/lkmain.c,
4358         * as/z80/aslex.c,
4359         * as/z80/asm.h,
4360         * as/z80/asmain.c: fixed build on current cygwin:
4361         replaced getline() by as_getline()
4362
4363 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4364
4365         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4366         declarator in the symbol chain
4367         * src/SDCCsymt.h,
4368         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4369         parameter list for function pointers
4370         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4371         * support/regression/tests/bug-716242.c: added
4372
4373 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4374
4375         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4376         offset if possible
4377         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4378
4379 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4380
4381         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4382         inifinitely recurseable, added static
4383         * support/regression/tests/bug-1408066.c: added
4384
4385 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4386
4387         * src/SDCCicode.h,
4388         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4389         renamed, added possibility to create "postLoopLbl"-labels
4390         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4391         newiTempLoopHeaderLabel
4392         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4393         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4394         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4395         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4396         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4397         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4398         (basicInduction): fixed bug #136564, made static,
4399         (loopInduction): changed parameter of basicInduction, made static,
4400         (addPostLoopBlock): added
4401         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4402         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4403         findLoopEndSeq
4404         * support/regression/tests/bug-136564.c: added
4405         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4406         --std-sdcc99 to LIBSDCCFLAGS
4407
4408 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4409
4410         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4411         while loop
4412         * support/regression/tests/bug-1406131.c: added
4413
4414 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4415
4416         * src/SDCCast.c (decorateType): fix promotion of unary minus
4417         * src/SDCCsymt.c (computeType): beautified
4418         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4419         (valUnaryPM, valComplement): fix sign and promotion,
4420         (valNot): ANSI: result type is int (SDCC: unsigned char)
4421         * support/regression/tests/uminus.c: speedup by removing superflous
4422         test case 'int'
4423         * support/regression/tests/onebyte.c: added promotion and signedness
4424         tests for unary minus
4425         * support/regressions/tests/bug-477927.c: disable warning about
4426         uninitialized variables
4427         * support/regression/tests/not.c: added
4428
4429 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4430
4431         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4432         * src/mcs51/gen.c (gen51Code): show final register usage after
4433         fillGaps in asm with --i-code-in-asm
4434         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4435         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4436         incUsed, rliveClear, adjustIChain): made static,
4437         (setFromRange): excluded because it's unused,
4438         (findPrevUseSym, markWholeLoop): added,
4439         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4440         through all branches of predecessors enables sdcc to emit the warning
4441         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4442         (rlivePoint): made static, added parameter emitWarnings which is only
4443         true during the first run out of two,
4444         (findRecursiveSucc, findRecursivePred): removed,
4445         (computeLiveRanges): made static, added parameter emitWarnings,
4446         (dumpIcRlive): added for debugging only
4447         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4448         removed prototype of setFromRange()
4449         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4450         in call of computeLiveRanges()
4451         * support/regression/tests/bug-895992.c: added
4452         * support/regression/tests/bug-971834.c: added
4453         * support/valdiag/tests/bug-895992.c: added
4454         * support/valdiag/tests/bug-971834.c: added
4455
4456 2005-12-18 Raphael Neider <rneider AT web.de>
4457
4458         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4459           (genUnpackBits): improved code for direct operands,
4460           (genPackBits): improved code for literal assignment to bitfields
4461             and for direct destination operands (no FSR indirection),
4462             prevented redundant AND, fixes #1362800,
4463           (AccLsh): added parameter to disable masking of the result
4464         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4465           skip instructions with side-effects (like incfsz),
4466           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4467         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4468         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4469           fixes #1375263
4470
4471 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4472
4473         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4474         volatile variables as spill location
4475
4476 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4477
4478         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4479         replacing literals
4480         * support/regression/tests/bug-1376320.c: added
4481
4482 2005-12-08 Raphael Neider <rneider AT web.de>
4483
4484         * src/pic/device.c: renamed is_shared to pic14_is_shared
4485         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4486         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4487           (is_valid_identifier): added for above workaround
4488
4489 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4490
4491         * device/lib/Makefile.in: fixed to enable port-specific-objects
4492         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4493           char, thanks Hubert Sack
4494         * doc/sdccman.lyx: documented --xstack-loc,
4495           elaborated a bit more on interrupts and pitfalls,
4496           removed "setjmp/longjmp unsupported",
4497           documented some unsupported C99 features
4498         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4499         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4500           if, thanks Hubert Sack
4501         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4502         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4503           make make_library
4504         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4505           regression tests can report resource usage (rfe 700441)
4506         * support/regression/collate-results.py: report resource usage
4507         * support/regression/ports/ds390/spec.mk,
4508         * support/regression/ports/hc08/spec.mk,
4509         * support/regression/ports/mcs51/spec.mk,
4510         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4511         * support/regression/ports/ds390/uCsim.cmd,
4512         * support/regression/ports/hc08/uCsim.cmd,
4513         * support/regression/ports/mcs51/uCsim.cmd,
4514         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4515         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4516           library, use the default one
4517         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4518           building the library
4519
4520 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4521
4522         * config.dsp: added dependency on .version and configure_vc.awk
4523         * device/include/setjmp.h: updated for --stack-auto and --xstack
4524         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4525         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4526         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4527         * device/lib/libsdcc.lib: added _setjmp
4528         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4529           (decorateType): fixed bug 1372851,
4530           (optimizeGetHbit): fixed warning
4531         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4532           array initialisation
4533         * support/regression/tests/bug1057979.c: added test for bug 1358192
4534         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4535
4536 2005-12-03 Borut Razem <borut.razem AT siol.net>
4537
4538         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4539           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4540
4541 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4542
4543         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4544         createIval): implement symbol independant "flexible array member",
4545         (createIvalCharPtr): implemented flexible array initialisation with a
4546         string
4547         * src/SDCCsymt.c (copyStruct): removed,
4548         (getSize): fixed misleading comment,
4549         (getAllocSize): removed, the additional allocation size is now in
4550         sym->flexArrayLength,
4551         (checkStructFlexArray): new, syntax checks for flexible array members,
4552         (compStructSize): added syntax checks for "flexible array members"
4553         (copyStruct): removed,
4554         (copyLinkChain): removed inefficient fix for bug 770487
4555         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4556         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4557         symbol->flexArrayLength
4558         * src/SDCCerr.c,
4559         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4560         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4561         * support/regression/tests/structflexarray.c: added
4562         * support/valdiag/tests/structflexiblearray.c: added
4563
4564 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4565
4566         * src/SDCCast.c (decorateType): fixed bug 1368489
4567         * support/Util/SDCCerr.c,
4568         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4569
4570 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4571
4572         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4573           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4574
4575 2005-11-27 Borut Razem <borut.razem AT siol.net>
4576
4577         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4578           support/cpp2/mkdeps.h: added command line option
4579           -obj-ext=<extension> to SDCPP to define object file externion, used
4580           for generation of make dependencies (-M)
4581         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4582
4583 2005-11-26 Borut Razem <borut.razem AT siol.net>
4584
4585         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4586           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4587           added pic and pic16 libraries
4588
4589 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4590
4591         * device/include/float.h: Corrected typo in prototype of __fsgt
4592
4593 2005-11-25 Borut Razem <borut.razem AT siol.net>
4594
4595         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4596           added creation of model-mcs51-stack-auto libraries
4597
4598 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4599
4600         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4601         and fields-list too
4602         * src/SDCCast.c (createIvalArray): removed obsolete comment
4603
4604 2005-11-24 Borut Razem <borut.razem AT siol.net>
4605
4606         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4607           added missing device/lib/mcs51/crt*.asm sources
4608
4609 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4610
4611         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4612
4613 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4614
4615         * device/lib/_fs2schar.c,
4616         * device/lib/_fs2sint.c,
4617         * device/lib/_fs2slong.c: optimized inline asm
4618
4619 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4620
4621         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4622           Better handling of floats between -1.0 and 0.0.
4623
4624 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4625
4626         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4627           (the missing "if"s prohibited removal of redundant labels)
4628
4629 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4630
4631         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4632           Properly convert floats between -1.0 and 0.0 to long, int, and char
4633           types (max integer value of negative floats tends to zero).
4634         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4635           Removed changes made so to work properly with floats between
4636           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4637           and _fs2char.c
4638
4639 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4640
4641         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4642         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4643         (genCast) cosmetic change
4644         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4645         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4646         from mcs51
4647         * support/regression/tests/bitfields (testSignedBitfields): added
4648
4649 2005-11-18 Borut Razem <borut.razem AT siol.net>
4650
4651         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4652         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4653           introduced SILENT option to make building of pic16 libraries less
4654
4655 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4656
4657         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4658           Now they work properly with floats between -1.0 and 0.0
4659         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4660
4661 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4662
4663         * src/SDCCicode.c (printOperand): added missing else
4664
4665 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4666
4667         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4668         reformatted for better readability
4669         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4670         signed bitfields
4671
4672 2005-11-17 Borut Razem <borut.razem AT siol.net>
4673
4674         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4675           introduced SILENT option to make building of pic16 libraries less
4676           verbose - used for nightly snapshot build
4677         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4678           available on Win32 platforms.
4679         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4680           medium, large, pic and pic16
4681
4682 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4683
4684         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4685           printf("%f"...) sets fraction to zero.
4686
4687 2005-11-16 Raphael Neider <rneider AT web.de>
4688
4689         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4690           fixes #1357221
4691         * src/pic/gen.c (genIfx): implemented for CARRY bit
4692         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4693           to generic pointers, fixes #1357332,
4694           (pic16_movLit2f): NEW,
4695           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4696
4697 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4698
4699         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4700
4701 2005-11-11 Raphael Neider <rneider AT web.de>
4702
4703         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4704         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4705           compute pointer's type from operand,
4706           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4707           improved single bit reads, fixes bug #1353379
4708
4709 2005-11-09 Borut Razem <borut.razem AT siol.net>
4710
4711         * support/scripts/sdcc.nsi: added lib/pic to the package
4712
4713 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4714
4715         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4716
4717 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4718
4719         * support/regression/tests/bug1348008.c: added
4720         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4721         * support/regression/tests/bug1337835.c: updated comment
4722
4723 2005-11-06 Borut Razem <borut.razem AT siol.net>
4724
4725         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4726           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4727           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4728           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4729           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4730           dynamic construction of cl_error_class and derivates - 2.nd try
4731
4732 2005-11-05 Borut Razem <borut.razem AT siol.net>
4733
4734         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4735           bug, which caused Bus Errors on sparc solaris
4736
4737 2005-11-04 Borut Razem <borut.razem AT siol.net>
4738
4739         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4740           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4741           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4742           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4743           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4744           and derivates to resolve the initialization problem on OSX
4745
4746 2005-11-02 Borut Razem <borut.razem AT siol.net>
4747
4748         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4749           corrected typo - #include <winsock2.h>
4750
4751 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4752
4753         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4754           (_asxxxx_mapping): added org directive for future enhancements
4755
4756 2005-11-01 Borut Razem <borut.razem AT siol.net>
4757
4758         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4759           enabled sockets on WIN32
4760         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4761
4762 2005-10-31 Borut Razem <borut.razem AT siol.net>
4763
4764         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4765           WIN32 backslash path delimiters should be escaped when used in C strings
4766         * support/regression/tests/bitfields.c: exclude failing assertions for
4767           __CYGWIN32__ and __MINGW32__ hosts
4768
4769 2005-10-30 Borut Razem <borut.razem AT siol.net>
4770
4771         * src/SDCCutil.c: corrected double comparison typo
4772
4773 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4774
4775         * device/lib/medium/Makefile: added for new memory model medium
4776         * device/include/asm/mcs51/features.h: updated for medium/pdata
4777         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4778           added Multiply & Accumulate sbit's and MAC0_PAGE define
4779         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4780         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4781         * device/lib/_mullong.c: update for medium model
4782         * device/lib/incl.mk: added medium model
4783         * doc/sdccman.lyx: documented medium model
4784         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4785         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4786         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4787         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4788           (allocParms): set SCLS and OCLS to pdata for medium model
4789         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4790           for pdata,
4791           (powof2): return <0 if not power of 2
4792         * src/avr/gen.c (genBitWise): use updated powof2
4793         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4794           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4795           (shiftLLeftOrResult): use B if necessary
4796         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4797         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4798         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4799         * support/regression/Makefile.in: added test-mcs51-medium
4800         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4801
4802 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4803
4804         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4805         specifier unsigned
4806         * device/lib/time.c (mktime): fixed bug 1334315
4807
4808 2005-10-28 Raphael Neider <rneider AT web.de>
4809
4810         * device/include/pic/p16f_common.inc: added common declarations
4811         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4812
4813 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4814
4815         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4816           (aopPutUsesAcc): added to predict accumulator use,
4817           (assignResultValue): save acc if necessary,
4818           (genMinusDec): store result if indirectly addressed,
4819           (genDivOneByte):  save acc if necessary,
4820           (movLeft2Result): bugfix if left already in acc,
4821           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4822             attention to accumulator use (esp. pdata),
4823           (genReceive): receive pdata correctly
4824         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4825         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4826
4827 2005-10-27 Raphael Neider <rneider AT web.de>
4828
4829         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4830
4831 2005-10-27 Raphael Neider <rneider AT web.de>
4832
4833         * .version: changed version to 2.5.4
4834         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4835         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4836           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4837             arithmetics support routines
4838         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4839         * device/lib/Makefile.in: also create installdir for pic
4840
4841         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4842           pic14 port as well
4843         * src/pic/device.c (dump_sfr): rewritten to delegate register
4844           placement to the linker (use `extern sym' rather than sym EQU addr),
4845           (validAddress): fixed to check last specified address
4846         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4847           (popGetLit): truncate literal value to 8 bit,
4848           (popGet): moved assert to more appropriate place
4849           (popGetExternal): create pCode operand from and mark the according
4850             symbol as being `extern'
4851           (popGetAddr): added sanity check on immediate's offset, provide
4852             GPOINTER tag on demand
4853           (aopPut): fixed for immediates,
4854           (mov2w_op): move operand's address or contents to WREG (depending on
4855             operand type), safer variant of mov2w,
4856           (movwf,call_libraryfunc): NEW, handy abbreviations,
4857           (get_argument_pcop,get_return_val_pcop,pass_argument,
4858           get_returnvalue): interface for accessing function parameters and
4859             return values,
4860           (assignResultValuei,genRet): use new parameter/return value interface
4861           (pic14_getDataSize): back to old version handling generic pointers,
4862           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4863             provided implementation and/or fixed old one,
4864           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4865             calls, removed legacy 8051 reference code
4866           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4867           (loadSignToC): NEW, move the operands sign bit to CARRY,
4868           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4869             genRightShiftSigned, accepts negative shift counts,
4870           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4871           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4872             generic pointers, __data pointers and __code pointers,
4873           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4874             and signed bitfields, limit bitfields to 8 bit,
4875           (genDataPointerGet): fixed number of bytes read,
4876           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4877           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4878             pointers to constant data are no longer assumed to point to __code
4879             space, removed invalid pointer types,
4880           (bitpatternFromVal): retrieve the PICs representation of an integer
4881             or float literal,
4882           (genDataPointerSet): fixed assigning to po_immediate operands,
4883           (genGenPointerSet): implemented as library call,
4884           (genIfx): fixed incorrect condition,
4885           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4886             provide GPOINTER tag according to destination's storage class,
4887           (genCast): added code to handle casting to generic pointers, added
4888             sign-/zero extension of the result
4889           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4890         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4891         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4892           extend the result
4893         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4894           address/register resides in the shared banks
4895           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4896             put all variables into separate sections (have the linker arrange
4897             them)
4898           (picglue): put init code and interrupt handlers in separate sections
4899         * src/pic/main.c: added port specific options table, modified to PORT
4900           structure to make GPOINTERs 3 byte, added pic14_options
4901           (_pic14_do_link): private linking routine (update paths to libraries,
4902             add libsdcc.lib by default)
4903         * src/pic/main.h: declare pic14_options
4904         * src/pic/pcode.c: fixed instructions i/o relations,
4905           (RegCond): reverted to correct version,
4906           (newpCodeOpLit): truncate literals to 8 bit,
4907           (genericPrint): added debug output,
4908           (getRegFromInstruction): fixed for various operand types, simplified
4909           (BuildFlow): fixed broken handling of isntructions with labels
4910           (LinkFlow): start at last instruction in flow (skip trailing comments),
4911             pass the flow on to the next instruction after CALL
4912           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4913           (insertPCodeInstruction): fixed inserting after a skip instruction,
4914           (DoBankSelect): fixed for labeled instructions
4915           (OptimizepBlock): honor --nopeep switch
4916           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4917         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4918         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4919           (pCodeOptime2pCodes): allow disabling this optimization via
4920             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4921             but is still buggy), started implementation of a dataflow based
4922             pCode optimization (CSE + dead code elimination)
4923           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4924         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4925           names are independant of the stack location and therefore portable across
4926           devices
4927
4928 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4929
4930         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4931           (selectSpil): fixed bug 1337835 by not spilling bit variables
4932         * support/regression/tests/bug1337835.c: added test for this bug
4933         * src/mcs51/peeph.def: restart after rule 3.c,
4934           addded rules 263.x to optimize loading constants
4935
4936 2005-10-26 Raphael Neider <rneider AT web.de>
4937
4938         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4939         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4940           (genAssign): emit warning when casting literals to generic pointer
4941             type, also applies when taking the address of a fixed variable,
4942           (genCast): improved casting to generic pointers
4943         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4944           extern variables, added verbose error message
4945         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4946
4947 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4948
4949         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4950         carry must be complemented too
4951         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4952         could be emitted by genMinus
4953         * src/SDCCval.c (constVal): fixed bug 1305065
4954
4955 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4956
4957         * src/SDCCast.c (addCast): added promotion for bit variables
4958         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4959         promotion casts + optimisation
4960         (optimizeGetWord): fix warning 'i' might be used uninitialized
4961         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4962         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4963
4964 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4965
4966         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4967         all chars are promoted to int; promotion should be handled in SDCCast.c
4968
4969 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4970
4971         * device/lib/_strcmp.c: Fixed bug 1326457
4972
4973 2005-10-11 Raphael Neider <rneider AT web.de>
4974
4975         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4976         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4977
4978 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4979
4980         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4981         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4982
4983 2005-10-04 Raphael Neider <rneider AT web.de>
4984
4985         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4986           device/lib/pic16/pics.all: added pic18f1320
4987         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4988
4989 2005-09-30 Raphael Neider <rneider AT web.de>
4990
4991         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4992         * src/pic16/devices.inc: NEW, provides device descriptions
4993         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4994
4995 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4996
4997         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4998           GETHBIT
4999
5000 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5001
5002         * doc/sdccman.lyx: updated Highest Order Bit documentation,
5003           documented Any Order Bit, Higher Order Byte and Higher Order Word
5004         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5005         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5006           (optimizeGetAbit): new, to get any bit, not only the high bit,
5007           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5008           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5009           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5010           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5011             RIGHT_OP: also try GETBYTE, GETWORD optimization,
5012             GETABIT, GETBYTE, GETWORD: decorate them,
5013           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5014           (ast_print): added GETABIT, GETBYTE, GETWORD
5015         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5016         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5017           (geniCodeBinary): new generic binary icode,
5018           (ast2iCode): added GETABIT, GETBYTE, GETWORD
5019         * src/port.h: updated comment for PORT.hasExtBitOp
5020         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5021           (genGetByte): new, to get a single byte,
5022           (genGetWord): new, to get a word from a long,
5023           (gen51Code): added GETABIT, GETBYTE, GETWORD
5024         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5025
5026 2005-09-23 Raphael Neider <rneider AT web.de>
5027
5028         * configure.in, configure: have device/lib/pic configured
5029         * device/lib/Makefile.in: added model-pic14
5030         * device/lib/clean.mk: added pic/ to clean rule
5031         * device/lib/pic: added rudimentary pic14 library providing support
5032           functions for multiplication/division/generic pointer access
5033         * src/SDCCopt.c (convilong): mark support functions as extern
5034           for pic14 port as well
5035         * src/pic/gen.c (genMult): added assertions,
5036           (genpic14Code): emit warning on unhandled iCodes
5037         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5038         * src/pic/pcode.c (pCodeOpCopy),
5039         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5040           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5041           SFR_REGISTER}), made safe for future extensions
5042         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5043           instructions even if preceeded by SKIP instructions (also remove
5044           them); removed unused code
5045         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5046           prevents leaving parts of the structure uninitialized after copying
5047
5048 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5049
5050         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5051           ago by me
5052         * support/regression/tests/addsub.c: added test for the bug
5053
5054 2005-09-21 Raphael Neider <rneider AT web.de>
5055
5056         * device/include/pic16/pic18f1220.h,
5057           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5058         * device/lib/pic16/Makefile.rules: added missing opening paren
5059         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5060           are provided in genutils.c,
5061           (genUminusFloat,genUminus,genCmpEq): added asserts on different
5062           operand/result sizes,
5063           (genCmp): assert on NULL pointers first, then check deref'ed values
5064         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5065           result size
5066
5067 2005-09-18 Raphael Neider <rneider AT web.de>
5068
5069         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5070           as these are now unused,
5071           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5072         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5073           local, avoids uninitialized pointer dereference on r->name
5074         * src/pic16/ralloc.c (newReg): fixed indentation
5075
5076 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5077
5078         * src/SDCCval.c (constVal): fixed bug 730366
5079         * support/Util/SDCCerr.c,
5080         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5081
5082 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5083
5084         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5085
5086 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5087
5088         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5089
5090 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5091
5092         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5093           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5094         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5095           (hex2dec): made hex_digit unsigned char, removed ascii dependance
5096         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5097         * packihx/packihx.c (hexDigit): made c unsigned char
5098         * as/mcs51/lklibr.c (fndsym),
5099         * link/z80/lkgb.c (gb),
5100         * link/z80/lklibr.c (fndsym),
5101         * link/z80/lkrloc.c (relr),
5102         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5103         * src/SDCC.lex (checkCurrFile, process_pragma),
5104         * src/SDCCglue.c (spacesToUnderscores),
5105         * src/SDCCmain.c (setParseWithComma, processFile),
5106         * src/asm.c (tvsprintf, printCLine),
5107         * src/avr/gen.c (emitcode, aopPut),
5108         * src/ds390/gen.c (emitcode),
5109         * src/hc08/gen.c (emitcode, emitinline),
5110         * src/mcs51/gen.c (emitcode, genInline),
5111         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5112           tokenizeLineNode),
5113         * src/pic/ralloc.c (debugLog),
5114         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5115           tokenizeLineNode),
5116         * src/pic16/ralloc.c (debugLog),
5117         * src/z80/main.c (_process_pragma):
5118            made all ctype.h function calls safe
5119         * src/SDCCopt.c: include math.h for fabs
5120         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5121           and used them throughout the code to make ctype.h function calls safe
5122         * src/ds390/main.c (asmLineNodeFromLineNode),
5123         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5124         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5125            unsigned char*
5126         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5127           (newpCodeAsmDir): made ctype.h function calls safe
5128         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5129           pic16_emitcode):  made lbp unsigned char*
5130         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5131           (pic16_newpCodeAsmDir): made ctype.h function calls safe
5132         * src/xa51/gen.c (emitcode),
5133         * src/z80/gen.c (_emit2): made lbp unsigned char*
5134         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5135            char*
5136
5137 2005-09-05 Raphael Neider <rneider AT web.de>
5138
5139         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5140           access bank splitpoint
5141
5142 2005-09-05 Raphael Neider <rneider AT web.de>
5143
5144         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5145
5146 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5147
5148         * .version: changed to version 2.5.3
5149         * doc/sdccman.lyx: changed version to 2.5.3,
5150           documented --codeseg and --constseg and pragma codeseg and constseg,
5151           documented bit parameters (reentrant) and bit returning
5152         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5153            currFunc->recvSize, but is this ok for all ports?
5154           (ast2iCode): result of ~ on unsigned char must be cast to int for
5155            bool to work
5156         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5157           function pointers in bit space
5158         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5159           (processFuncArgs): call port.reg_parm() with reentrancy info
5160         * src/port.h,
5161         * src/avr/main.c,
5162         * src/ds390/main.c,
5163         * src/hc08/main.c,
5164         * src/pic/main.c,
5165         * src/pic16/main.c,
5166         * src/xa51/main.c,
5167         * src/z80/main.c: port.reg_parm prototype extended with
5168           "bool reentrant" parameter
5169         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5170           options.stackAuto for allocating bit register parameters
5171         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5172           (genSend): set BitBankUsed if it is,
5173           (selectRegBank): factored out of genCall for use in genPcall,
5174           (genCall): removed redundant dtype assignmen, use selectRegBank,
5175           (genPcall): handle returning in Carry properly, save in F0 if needed,
5176           (genReceive): handle bit register parameters
5177         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5178           (mcs51_assignRegisters): enable bit registers for all reentrant
5179            functions and don't set BitBankUsed unconditionally
5180         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5181         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5182         * support/regression/tests/funptrs.c: added tests for BOOL and for return
5183
5184 2005-08-27 Borut Razem <borut.razem AT siol.net>
5185
5186         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5187         ppc-osx (Darwin) does not support -u option. It seems that it is
5188         supported only on Linux - GNU cp
5189
5190 2005-08-25 Borut Razem <borut.razem AT siol.net>
5191
5192         * sim/ucsim/gui.src/serio.src/Makefile.in,
5193           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5194           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5195           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5196           install and strip, since the strip at /usr/ccs/bin should be used
5197           on solaris
5198
5199 2005-08-24 Borut Razem <borut.razem AT siol.net>
5200
5201         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5202
5203 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5204
5205         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5206         ffffffffu
5207
5208 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5209
5210         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5211         * as/mcs51/lkmain.c (link_main): fixed warning
5212         * device/include/stdbool.h: ds390 has no advanced bit support yet
5213         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5214         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5215         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5216           and updated their macros
5217         * src/SDCCval.c (constVal): updated comment for renamed b_long
5218
5219 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5220
5221         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5222         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5223           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5224           (oprio): set priority for '['
5225         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5226            and adb_24_bit
5227         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5228         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5229         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5230         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5231           added overlayable BIT_BANK area
5232         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5233           (summary2): explain 'T' in legenda
5234         * as/mcs51/lkrloc.c: replaced old K&R style,
5235           (relr): added R_BIT processing,
5236           (errmsg): added "Bit-addressable relocation error",
5237           (adb_bit): added for converting from byte- to bit-addressable space,
5238           (adb_24_bit): added for converting from byte- to bit-addressable space
5239         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5240            used in reentrant functions now even as return value
5241         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5242         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5243           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5244         * src/SDCCglobl.h: added indicator BitBankUsed
5245         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5246            the bit registers b0-b7
5247         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5248           (geniCodeCast): fixed bug 1263853,
5249           (geniCodeLogicAndOr): put result in bool or char,
5250           (geniCodeReceive): added parameter func for accessing the return type,
5251           (geniCodeFunctionBody): pass func to geniCodeReceive
5252         * src/SDCCmain.c: added indicator BitBankUsed
5253         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5254         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5255           (checkSClass): don't put automatic bool/bit on stack,
5256           (checkFunction): removed check on function cannot return bit
5257         * src/SDCCsymt.h: added newBoolLink prototype
5258         * src/mcs51/gen.c (rb1regs): added bit registers,
5259           (movc): created for assigning to carry,
5260           (pushReg, popReg): created for pushing registers,
5261           (sameRegs): check both AOP_REG and AOP_CRY types,
5262           (aopOp): handle bit registers,
5263           (aopPut): optimization no self-assign,
5264           (saveRegisters): push reg->base (bits) only once for bit registers,
5265            and use pushReg,
5266           (unsaveRegisters): pop reg->base only once and use popReg,
5267           (assignResultValue): added parameter func and return in carry for bits,
5268           (genIpush): optimization no reload in A if not changed,
5269           (genSend): bit parameters in reentrant functions are passed in bit
5270            registers by first assigning to bits in B, then save registers and
5271            copy B to bits,
5272           (genCall): handle returning in Carry properly, save it in F0 if needed,
5273           (genPcall): updated assignResultValue call, this is not safe yet for bit
5274            returning function !!!
5275           (genFunction): don't generate equ's for bit registers and use pushReg,
5276           (genEndFunction): take care of bit returning functions and use popReg,
5277           (genRet): return bit in Carry,
5278           (genIfx): optimize bit registers and other directly addressable bits,
5279           (genReceive): updated assignResultValue call
5280         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5281           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5282            registers when using stack-auto
5283         * src/mcs51/ralloc.c (_G): added allBitregs,
5284           (regs8051): added the bit registers,
5285           (createStackSpil): use macro IS_BIT,
5286           (getRegBit): added to allocate a bit register, else spill,
5287           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5288           (updateRegUsage): factored out to ease stepping while debugging,
5289           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5290            also allocate bit registers,
5291           (fillGaps): handle bit registers,
5292           (findAllBitregs): added to create bit vector with all bit registers,
5293           (mcs51_allBitregs): returns this bit vector,
5294           (mcs51_assignRegisters): when using stack-auto use bit registers for
5295            passing parameters and creating local variables
5296         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5297
5298 2005-08-22 Borut Razem <borut.razem AT siol.net>
5299
5300         * device/lib/Makefile.in: replaced find option -or with -o
5301           to make it run on solaris
5302
5303 2005-08-22 Raphael Neider <rneider AT web.de>
5304
5305         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5306           fixes #1265442 (crash on Solaris)
5307
5308 2005-08-20 Borut Razem <borut.razem AT siol.net>
5309
5310         * configure, configure.in: added tests for libsocket and libnsl libraries,
5311           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5312           from support/regression/Makefile.in
5313         * support/regression/Makefile.in: added
5314         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5315         * sim/ucsim/libtool: regenerated on sparc-solaris
5316         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5317           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5318           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5319           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5320           sparc-solaris, which doesn't use GNU ld linker
5321         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5322         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5323
5324 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5325
5326         * src/mcs51/peeph.def: updated comments
5327
5328 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5329
5330         * device/lib/_gptrget.c,
5331         * device/lib/_gptrput.c: slightly shorter
5332         * doc/sdccman.lyx: incremented version
5333         * src/mcs51/peeph.def: moved peephole comments to the line of first
5334           change to better keep line correlation, reanimated 186.e
5335         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5336
5337 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5338
5339         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5340           David Saxton with quotes around file name.
5341
5342 2005-08-15 Borut Razem <borut.razem AT siol.net>
5343
5344         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5345           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5346           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5347           make tests run on x86_64 platform
5348
5349 2005-08-13 Raphael Neider <rneider AT web.de>
5350
5351         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5352           as it might be executed DURING a build (parallel make is wonderful)
5353
5354 2005-08-13 Raphael Neider <rneider AT web.de>
5355
5356         * device/lib/Makefile.in (port-specific-objects-pic16):
5357           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5358         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5359           dependency
5360         * device/lib/pic16/Makefile.rules: build subdirs before creating
5361           the library, removed builddir rule, create $(builddir) early in
5362           recurse rule, use empty recurse rule for leaf directories
5363         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5364           mkdir errors (race condition), removed duplicate suffix "hex"
5365           from clean rules
5366         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5367         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5368           prevents mkdir -p from aborting on Alpha
5369
5370 2005-08-12 Raphael Neider <rneider AT web.de>
5371
5372         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5373           db-statements in order to allow for arrays of pointers in code
5374           sections to be placed without interspersed 0-padding, fixes
5375           bug #1256215
5376         * (emitStatistics): fixed division by zero for pic18f1220
5377         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5378           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5379         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5380         * (pic16_pCodeConstString): keep track of already emitted string
5381           literals to prevent "duplicate definitions of symbol _str_NR"
5382         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5383           debug message
5384         * device/lib/Makefile.in: ignore failing PIC16 library builds
5385         * device/lib/pic16/Makefile: do not build if gputils are missing
5386         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5387
5388 2005-08-10 Raphael Neider <rneider AT web.de>
5389
5390         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5391           my last commit)
5392
5393 2005-08-10 Raphael Neider <rneider AT web.de>
5394
5395         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5396           Rokas' patch to add the new fixed point type "__fixed16x16"
5397         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5398           functions for __fixed16x16 arithmetics
5399         * device/lib/pic16: reimplemented the build system to support
5400           a separate build directory, better handling of libio (create
5401           the library in a separate subdir for each architecture) and
5402           easier configuration (centralized in Makefile.common)
5403
5404 2005-08-07 Raphael Neider <rneider AT web.de>
5405
5406         * src/pic16/gen.c (genrshTwo): fixed sign extension
5407         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5408         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5409           added T0CONbits
5410         * device/include/pic16/pic18f4220.h: NEW, header for
5411           pic18f4220 and pic18f4320
5412         * device/include/pic16/pic18fregs.h: added new devices,
5413           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5414         * device/include/pic16/signal.h: resolved name clashes
5415           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5416           to also allow testing for interrupt enable bits, added
5417           comments on how to use the macros
5418         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5419         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5420           register definitions for the devices
5421         * device/lib/pic16/pics.all: added new devices
5422         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5423           allocated memory
5424         * device/lib/pic16/libc/stdlib/memfree: do not count
5425           the block header as free memory
5426         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5427           simplified and added missing end-of-blocklist-marker
5428           (reported by Peter Onion, fixes #1252814)
5429         * (_mergeHeapBlock): fixed loop condition
5430         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5431           len==0, restructured code
5432         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5433           up a bit, reduced bitfield accesses, prevent endless loops
5434           in case of heap corruption
5435         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5436           "unreferenced arguments/must return a value" warnings
5437         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5438           replaced BAUDREG with SPBRG
5439         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5440           device/lib/pic16/debug/gstack/gstack.c: replaced
5441           _naked, _asm, _endasm with __naked, __asm, __endasm
5442
5443 2005-08-05 Raphael Neider <rneider AT web.de>
5444
5445         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5446           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5447
5448 2005-08-05 Borut Razem <borut.razem AT siol.net>
5449
5450         * device/lib/Makefile.in: added missing ';'
5451         * configure: removed ^M characters
5452
5453 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5454
5455         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5456           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5457           License
5458
5459 2005-08-04 Borut Razem <borut.razem AT siol.net>
5460
5461         * configure.in: pic16 libraries build 2nd try - enable running
5462           configure in device/lib/pic16
5463         * configure: regenerated from configure.in
5464         * device/lib/Makefile.in: create $(PORT)/bin directory
5465
5466 2005-08-03 Raphael Neider <rneider AT web.de>
5467
5468         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5469           to get/set values via pointers
5470         * (genUnpackBits,genPackBits): changed detection of
5471           ptr->bitfield vs. sym.bitfield, fixed access via generic
5472           pointers, removed dead (wrong) code for multibyte bitfields
5473         * (genNearPointerGet, genGenPointerGet): removed useless code,
5474           fixed bitfield detection, fixes #1250594
5475         * (genNearPointerSet): removed useless code
5476         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5477           and introduced macro pic16_emitpcode that conditionally emits
5478           the origin of the following pCode (useful for debugging SDCC)
5479         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5480         * (createDefmap): fixed handling of LFSR for --optimize-df
5481
5482 2005-08-02 Borut Razem <borut.razem AT siol.net>
5483
5484         * device/lib/Makefile.in: pic16 libraries build enabled since
5485           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5486
5487 2005-08-02 Raphael Neider <rneider AT web.de>
5488
5489         * src/pic16/gen.c (genPackBits): removed deprecated warning
5490         * (genGenPointerSet): fixed bitfield detection
5491
5492 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5493
5494         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5495
5496 2005-07-31 Raphael Neider <rneider AT web.de>
5497
5498         * device/lib/pic16/libdev/pic18f458.c,
5499           device/include/pic16/pic18f458.h: added missing T0CONbits
5500
5501 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5502
5503         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5504
5505 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5506
5507         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5508
5509 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5510
5511         * device/include/mcs51/at89c51ed2.h: added.
5512
5513 2005-07-23 Raphael Neider <rneider AT web.de>
5514
5515         * src/pic/gen.h: added emitpcode macro for debugging
5516         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5517           and replace by macro adding debug information on demand
5518         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5519         * (gencjne): tried to fix; replaced with correct (slower) code
5520         * (gen{Unp,P}ackBits): fixed single bit access
5521         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5522         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5523           previous instruction
5524         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5525           register has to be handled with care (forbidding movement
5526           of assignments/uses, removing assignments completely, ...)
5527         * (pCodeOptime2pCodes): make use of regIsSpecial
5528         * added lots of debugging output (commented out)
5529         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5530           from being reused as result UNLESS it is known to work
5531
5532 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5533
5534         * support/Util/dbuf.h: include <stddef.h> for size_t
5535         * .version: changed to version 2.5.2
5536
5537 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5538
5539         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5540
5541 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5542
5543         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5544           (genModOneByte): removed needless psha/pula
5545
5546 2005-07-22 Raphael Neider <rneider AT web.de>
5547
5548         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5549           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5550         * src/pic/gen.c (resolveIfx): do not "invent" labels
5551         * (genSkipc): changed to positive logic
5552         * (genSkipCond): removed as no longer needed
5553         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5554           backport from PIC16
5555         * (genLeftShift): check operands are in different registers
5556         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5557           INCF does not update CARRY...
5558         * src/pic/main.c: fixed _linkCmd
5559         * src/pic/pcode.c (unlinkpCode): added inactive code
5560         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5561           alive (do not assign result and operand overlapping registers)
5562
5563 2005-07-22 Raphael Neider <rneider AT web.de>
5564
5565         * src/pic/device.c (dump_sfr): replaced register declaration with
5566           call to emitSymbolToFile() to avoid duplicate symbols
5567         * (assignRelocatableRegisters): do not declare external symbols
5568         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5569           right (take size of type, not etype)
5570         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5571         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5572         * (packRegsForAccUse): disabled assignment of WREG as
5573           the result reg to prevent occurence of just fixed #1235003,
5574           fixes #1242954
5575         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5576           symbols (avoids duplicate symbols in .asm file)
5577         * (pic14emitRegularMap): use emitSymbolToFile()
5578         * src/pic/gen.c (aopOp): fixed spillLocation handling
5579         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5580         * (genDataPointerSet): removed unneccessary variables/output
5581
5582 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5583
5584         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5585         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5586
5587 2005-07-21 Raphael Neider <rneider AT web.de>
5588
5589         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5590           architecture cannot handle them efficiently, fixes bug #1235003
5591         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5592           check for empty sets before using them (fixes bug #1232190)
5593
5594 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5595
5596         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5597           (lnksect2): generate warnings for memory overlap
5598         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5599           constseg to set the name of these segments so you can instruct the linker
5600           to place them in banks
5601         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5602         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5603           added code_seg and const_seg to options
5604         * src/SDCCglue.c (emitMaps): use options.const_seg,
5605           (createInterruptVect): put interrupt vectors in segment HOME,
5606           (glue): put HOME before static segment and put the main glue in HOME,
5607           (glue): use options.code_seg
5608         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5609         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5610           these segments so you can instruct the linker to place them in banks
5611           (linkEdit): use code_loc for HOME segment which should be the first
5612           segment in code memory now
5613         * src/SDCCmem.c: fixed more stuff like bug 1238386
5614         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5615           (changePointer): don't change function pointers to code pointers for
5616           banked functions,
5617           (compareType): added exceptional check for banked function pointers
5618         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5619         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5620           after static in code memory
5621         * src/mcs51/gen.c: added aopLiteralLong prototype,
5622           (aopForSym): use getSize for functions,
5623           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5624           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5625           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5626           the segment,
5627           (genPcall): use call for literal function pointers and generate banked
5628           calls over the one trampoline so there's only one place for the user to
5629           modify according to his/hers hardware,
5630           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5631           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5632         * src/mcs51/main.c: added keyword banked,
5633           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5634         * support/Util/SDCCerr.c,
5635         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5636           needed for passing the bank and address to the trampoline
5637         * device/lib/mcs51/crtbank.asm: added for bankswitching
5638         * device/lib/mcs51/Makefile: added crtbank
5639
5640 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5641
5642         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5643           for fields at offset 0 of a struct or union as reported
5644           on 2005-07-07 in the developer mailing list.
5645
5646 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5647
5648         * src/SDCCmem.c: fixed bug 1238386
5649
5650 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5651
5652         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5653           (patch #1144962), added peephole 300, enabled 259.x
5654         * doc/sdccman.lyx: removed screenshot and provided link instead
5655
5656 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5657
5658         * doc/sdccman.lyx: added section about debugging with ddd
5659         * doc/figures/ddd_example.eps: screenshot of debugging session
5660
5661 2005-07-04 Raphael Neider <rneider AT web.de>
5662
5663         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5664           like CODE pointers, fixes #1115683
5665         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5666           call, fixes bugs #1232211, #1228110,
5667           fixed wrong casts to pCodeFlow from pCodeInstructions
5668
5669 2005-07-04 Raphael Neider <rneider AT web.de>
5670
5671         * src/pic/gen.c (popGet): changed assert to allow for
5672           bit operands
5673         * (popGetAddr): changed signature to provide
5674           an additional index, patched all call sites
5675         * (genCmpEq): handle literal-like operands correctly
5676         * (genAddrOf): added sanity checks on __code/__data pointers
5677         * (genAssign): added handling of symbols from __code section
5678         * (gencjne): do not generate code for comparisons whose result
5679           is neither stored nor used, fixes bug #1171114
5680         * (AccLsh, AccRsh): operate on operand instead of WREG
5681         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5682           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5683           by known count
5684         * rewrote complete shift-by-literal logic, commented unused
5685           functions out
5686         * (genConstPointerGet): get multiple bytes (if result size > 1),
5687           fixed handling of non-immediate addresses
5688         * (genPointerGet): handle CODE pointers like CONST pointers
5689         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5690         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5691           operand is to be treated as a literal or not
5692         * (mov2w,genPcall,genCmpEq),
5693           src/pic/genarith.c: use aop_isLitLike() to decide between
5694           literal/register contents
5695         * (addSign): added missing offset
5696         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5697           only emit comment in debug-mode,
5698           use {aop,op}_isLitLike throughout the file
5699         * src/pic/glue.c: fix initializers for pointers (work in progress)
5700         * src/pic/pcode.c (get_op): honor index on _const symbols
5701         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5702         * (dumppBlock): added pCode size estimation
5703         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5704           check for IS_SYMOP before OP_SYMBOL'ing
5705         * fixed indentation, compacted switch-statements
5706         * (allocReg): find free register and allocate it instead of
5707           allocating new registers all the time
5708         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5709           registers as its operands (necessary only for multibyte GETs)
5710
5711 2005-07-01 Raphael Neider <rneider AT web.de>
5712
5713         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5714           debugging .asm-output macros FENTRY + FEXIT
5715         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5716           way... I wonder...
5717         * (emitpComment): NEW, printf to pCode
5718         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5719           offset handling
5720         * (popGetAddr): NEW, variant of popGet to access an immediates
5721           high(er) bytes instead of the n'th byte of memory they reference,
5722           replaced popGet with popGetAddr where neccessary
5723         * (genDataPointerGet): reactivated and fixed implementation
5724         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5725           accesses
5726         * (genDataPointerSet): fixed multibyte assignments
5727         * (genpic14Code): fixed --i-code-in-asm handling
5728         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5729         * (genPlus): fixed index-out-of-bounds error
5730         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5731         * src/pic/ralloc.c: added debugging output macro FENTRY2
5732         * (spillThis): fixed indentation, enbraced for-body for clarity
5733         * (rematStr): commented out as now unused
5734         * (regTypeNum): commented out special spill case (overwrites
5735           arbitrary values)
5736         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5737
5738 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5739
5740         * doc/sdccman.lyx: documented sfr16/sfr32,
5741           added example for using storage class with function pointers
5742         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5743
5744 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5745
5746         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5747         * device/lib/_itoa.c,
5748         * device/lib/_ltoa.c: optimized codesize
5749         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5750           but don't know how to suppress the double warning.
5751         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5752         * support/Util/SDCCerr.c,
5753         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5754
5755 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5756
5757         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5758           fixed old K&R prototypes
5759         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5760         * device/lib/_gptrget.c,
5761         * device/lib/_gptrgetc.c,
5762         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5763           also new versions for small generic pointers and banked generic pointers
5764         * src/port.h: added const_name
5765         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5766         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5767         * src/SDCCcse.c (findPrevIc): check all associative operators
5768         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5769         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5770         * src/SDCCmem.c: updated comments,
5771           set far-space to 0 for pdata, results in optimized code
5772         * src/SDCCmem.h: added macro CONST_NAME
5773         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5774           moving the info into the highest bits, see also gptrget/gptrput
5775         * src/src.dsp: added sdcc.ico to project files
5776         * src/avr/gen.c (genCast): fixed bug 0x%d
5777         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5778         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5779           relation between ptr_type and DCL_TYPE,
5780           (genCast): fixed bug 0x%d
5781         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5782           (CODE)" for const_name
5783         * src/hc08/gen.c (genCast): fixed bug 0x%d
5784         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5785           (hc08_port): added "CONST (CODE)" for const_name
5786         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5787           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5788           between ptr_type and DCL_TYPE,
5789           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5790           operand* and took AOP() inside function so sfr-ness can be checked,
5791           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5792           new prototype,
5793           (genFunction, genEndFunction): optimized stack setup,
5794           (genMinus): optimized for literals with ending zeroes (in bytes),
5795           (genCast): fixed bug 0x%d
5796         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5797           (mcs51_port): added "CONST (CODE)" for const_name
5798         * src/mcs51/peeph.def: made rule 226 more generic
5799         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5800         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5801         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5802         * src/z80/main.c (z80_port): added NULL for const_name,
5803           (gbz80_port): added NULL for const_name
5804         * support/regression/tests/bug663539.c,
5805         * support/regression/tests/sfr16.c: new tests
5806
5807 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5808
5809         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5810
5811 2005-06-24 Raphael Neider <rneider AT web.de>
5812
5813         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5814           corrected typos...
5815         * device/include/pic16/signal.h: added USBIF
5816           and SIG_USB
5817
5818 2005-06-24 Raphael Neider <rneider AT web.de>
5819
5820         * device/lib/pic16/libdev/pic18f2455.c,
5821           device/include/pic16/pic18f2455.h: NEW
5822         * device/include/pic16/pic18fregs.h,
5823           device/lib/pic16/pics.all,
5824           src/pic16/device.c: added 18f2455
5825         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5826           device/include/pic16/{pic18f[68][567].h,usart.h}:
5827           replaced MULTIPLE_USARTS define with more relaible
5828           compatibility sfrs (for USART access)
5829
5830 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5831
5832         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5833           and the output asm file line is printed on two lines.
5834
5835 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5836
5837         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5838           BGT, BLE, BHI, and BLS instructions
5839         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5840           genCmpEq): removed
5841         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5842           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5843           fixes bug #1216342
5844         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5845
5846 2005-06-15 Raphael Neider <rneider AT web.de>
5847
5848         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5849         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5850         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5851           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5852           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5853
5854 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5855
5856         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5857           Marcel Telka in bug #1215704
5858
5859 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5860
5861         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5862           located in shared memory bank.
5863
5864 2005-05-31 Raphael Neider <rneider AT web.de>
5865
5866         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5867           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5868           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5869
5870 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5871
5872         * device/lib/_strncpy.c: fixed the fix
5873
5874 2005-05-26 Raphael Neider <rneider AT web.de>
5875
5876         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5877           initializers with \0, bug #1208187
5878         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5879           intializers with \0, bug #1208187
5880
5881 2005-05-26 Raphael Neider <rneider AT web.de>
5882
5883         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5884           initializers with \0, bug #1208187
5885         * src/pic16/main.c (_process_pragma): added sanity checks
5886           for stack position and size, emit warnings when appropriate
5887
5888 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5889
5890         * device/lib/_strncpy.c: fixed not filling with \0
5891
5892 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5893
5894         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5895           createFunction),
5896         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5897           compound_statement),
5898         * src/SDCCsymt.h,
5899         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5900
5901 2005-05-24 Raphael Neider <rneider AT web.de>
5902
5903         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5904
5905 2005-05-24 Raphael Neider <rneider AT web.de>
5906
5907         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5908           TRISE definitions, closes bug #1162453
5909
5910 2005-05-22 Raphael Neider <rneider AT web.de>
5911
5912         * src/pic16/main.c (_process_pragma): check for missing
5913           arguments to pragmas code and udata
5914         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5915           consistency fixes to match other headers (thanks to Jim Paris)
5916         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5917
5918 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5919
5920         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5921
5922 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5923
5924         * support/regression/tests/bug1198642.c: new test
5925         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5926         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5927         * support/scripts/resource.h,
5928         * support/scripts/resource.rc,
5929         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5930         * support/scripts/sdcc.ico: added 32x32 icon
5931
5932 2005-05-18 Raphael Neider <rneider AT web.de>
5933
5934         * device/lib/pic16/libdev/pic18f*.c,
5935         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5936           keywords to "__sfr" and "__at (X)"
5937         * device/include/pic16/pic18fregs.h: added pic18f4520
5938         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5939           #1203088 (MPLAB compatibility)
5940
5941 2005-05-17 Raphael Neider <rneider AT web.de>
5942
5943         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5944         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5945         * device/lib/pic16/pics.all: added new devices
5946         * src/pic16/device.c: added support for pic18f4520
5947
5948 2005-05-16 Raphael Neider <rneider AT web.de>
5949         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5950         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5951         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5952           convenience function for bit access
5953
5954 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5955
5956         * device/lib/printf_large.c: fixed bug 1193299
5957         * support/regression/tests/bug1057979.c: added test %3.3s
5958
5959 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5960
5961         * device/include/mcs51/8051.h,
5962         * device/include/mcs51/8052.h: made parseable with lint
5963         * device/include/mcs51/lint.h: added include file for (sp)lint
5964         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5965         * doc/cdbfileformat.lyx,
5966         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5967
5968 2005-05-14 Raphael Neider <rneider AT web.de>
5969
5970         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5971         * device/lib/pic16/libc/stdlib/itoa.c (new)
5972         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5973         * device/lib/pic16/libio/Makefile: exclude subdir according to
5974           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5975         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5976         * src/pic16/gen.c (genFunction): prevent annoying warning
5977         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5978           nameclashes on BeOS
5979         * support/cpp2/cppmain.c (cpp_output_string): new
5980         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5981           fixes bug 1116802
5982
5983 2005-05-13 Borut Razem <borut.razem AT siol.net>
5984
5985         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5986
5987 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5988
5989         * .version: changed to version 2.5.1; back to bleeding edge development
5990
5991 2005-05-11 Borut Razem <borut.razem AT siol.net>
5992
5993         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5994           generate PDF version 1.3 documents
5995
5996 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5997
5998         * .version: changed to version 2.5.0
5999
6000 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6001
6002         * doc/sdccman.lyx: updated weblinks, index and smaller updates
6003
6004 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6005
6006         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6007         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6008         well as many smaller updates.
6009         * .version: changed to version 2.5.0-pre1
6010
6011 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6012
6013         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6014
6015 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6016
6017         * support/regression/tests/bug1185672.c: added
6018         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6019           bug 1185672
6020         * src/mcs51/gen.c (genCall): added comments, made it look safer
6021         * src/mcs51/gen.c (genEndFunction): simplified
6022
6023 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6024
6025         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6026
6027 2005-04-14 Borut Razem <borut.razem AT siol.net>
6028
6029         * fixed bug 1045046 - SIGSEGV with really simple code?:
6030           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6031           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6032
6033 2005-04-14 Borut Razem <borut.razem AT siol.net>
6034
6035         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6036           src/pic16/device.h: temporarily disabled experimental #inline pragma
6037           for 2.5.0 release
6038
6039 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6040
6041         * device/include/z80/stdio.h,
6042         * device/include/z80/string.h: removed these highly incomplete files so
6043           SDCC can use the default ones in device/include/
6044
6045 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6046
6047         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6048         gcc warning.
6049         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6050         fix sdcpp warnings.
6051
6052 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6053
6054         * device/include/malloc.h: removed redundant __reentrant prototypes
6055         * device/lib/_mullong.c: added working xstack variant in asm (C version
6056           doesn't pass regression tests)
6057         * device/lib/bpx.c: used __data and made bpx char for mcs51
6058         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6059           (createFunction): fixed bug with xstackPtr
6060         * src/SDCCcse.c: corrected comments
6061         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6062           (killDeadCode, eBBlockFromiCode): removed unused code
6063         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6064           corrected comments
6065         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6066           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6067           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6068           (genModOneByte): fixed warning in MSVC
6069         * src/mcs51/main.c (): added comments
6070         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6071
6072 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6073
6074         * src/SDCCmain.c (linkEdit): oops, changed one line too many
6075
6076 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6077
6078         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6079
6080 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6081
6082         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6083         characters arrays of larger size than the declared one.
6084
6085 2005-04-10 Borut Razem <borut.razem AT siol.net>
6086
6087         * src/pic/gen.c (genInline),
6088           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6089           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6090           (findNextInstruction), (findPrevInstruction),
6091           (findInstructionUsingLabel),
6092           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6093         * src/pic/pcode.c (findLabel): added missing '\n'
6094         * src/src.dsp: added SDCCdwarf2.c to the project
6095
6096 2005-04-09 Borut Razem <borut.razem AT siol.net>
6097
6098         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6099
6100 2005-04-08 Raphael Neider <rneider AT web.de>
6101
6102         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6103           into the chain after a given one) and mergeDefmapSymbols (combine
6104           defmap entries for each symbol per pcode)
6105         * (createDefmap): have defmap entries merged in the end
6106         * (defmapReplaceSymRef): split defmap entries covering two accesses to
6107           a symbol before replacing one access type's symbol, merge symbols in
6108           the end (replacement symbol might already have an entry)
6109         * (assignValnums): keep reference to written WREG intact
6110
6111 2005-04-08 Raphael Neider <rneider AT web.de>
6112
6113         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6114           Alpha)
6115
6116 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6117
6118         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6119         bytes
6120
6121 2005-04-07 Raphael Neider <rneider AT web.de>
6122
6123         * device/include/pic16/usart.h: added compatibility defines for
6124           devices with more than one USART
6125         * device/include/pic16/pic18f[68][567]20.h: activated above defines
6126
6127 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6128
6129         * device/lib/Makefile.in: updated for port specific include
6130
6131 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6132
6133         * support/regression/ports/mcs51/spec.mk: added mcs51 include
6134
6135 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6136
6137         * device/include/8051.h,
6138         * device/include/8052.h,
6139         * device/include/at89S8252.h,
6140         * device/include/at89c55.h,
6141         * device/include/at89x051.h,
6142         * device/include/at89x51.h,
6143         * device/include/at89x52.h,
6144         * device/include/mcs51reg.h,
6145         * device/include/reg51.h,
6146         * device/include/reg764.h,
6147         * device/include/regc515c.h,
6148         * device/include/sab80515.h: (re)moved these 12 files
6149         * device/include/mcs51/8051.h,
6150         * device/include/mcs51/8052.h,
6151         * device/include/mcs51/at89S8252.h,
6152         * device/include/mcs51/at89c55.h,
6153         * device/include/mcs51/at89x051.h,
6154         * device/include/mcs51/at89x51.h,
6155         * device/include/mcs51/at89x52.h,
6156         * device/include/mcs51/mcs51reg.h,
6157         * device/include/mcs51/reg51.h,
6158         * device/include/mcs51/reg764.h,
6159         * device/include/mcs51/regc515c.h,
6160         * device/include/mcs51/sab80515.h: and added them here
6161
6162 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6163
6164         * device/include/stdarg.h: changed SDCC specific keywords to double
6165           underlined form.
6166         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6167           mcs51 and ds390.
6168         * device/include/hc08/mc68hc908gp32.h,
6169         * device/include/hc08/mc68hc908jb8.h,
6170         * device/include/hc08/mc68hc908jkjl.h,
6171         * device/include/hc08/mc68hc908qy.h: fixed comments
6172         * device/include/mcs51/README: updated
6173         * device/include/mcs51/c8051f120.h: added PINRSF
6174         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6175         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6176           amidst code. Also inline is not supported.
6177
6178 2005-04-06 Raphael Neider <rneider AT web.de>
6179
6180         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6181         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6182           callers stack/frame pointers
6183
6184 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6185
6186         * device/include/pic16/usart.h: added, missing in previous commit,
6187         * device/include/pic16/adc.h: fixed typo,
6188         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6189         commit,
6190         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6191         <p18fxxx.inc>
6192         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6193         uninitialized because a bug appears with gplink
6194         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6195         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6196         complains for unrecognised option
6197
6198 2005-04-05 Raphael Neider <rneider AT web.de>
6199
6200         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6201           structs as well (using memcpy)
6202         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6203           on ISRs (GOTO has no label)
6204         * src/pic16/device.h: added OF_OPTIMIZE_DF
6205         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6206           new data flow analysis/optimization
6207         * src/pic16/pcode.c: added (prototypes for and implementation of)
6208           dataflow analysis functions, fixed pCodeInstructions' inCond and
6209           outCond values, made RCALL a branch instruction
6210         * (pic16_unlinkpCode): keep C line if possible
6211         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6212           C line moved if possible
6213         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6214         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6215           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6216         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6217           new flow)
6218         * (pic16_getJumptabpCode): NEW, needed in...
6219         * (LinkFlow): fixed handling of jumptables, calls and conditional
6220           branches
6221         * (pic16_InsertCommentAfter): NEW
6222         * (pic16_pCodeReplace): made verbose and flow preserving
6223         * (AnalyzeFlow): added call to data flow analysis
6224         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6225         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6226         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6227
6228 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6229
6230         * src/SDCCast.c (decorateType): fixed bug #1105626
6231
6232 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6233
6234         * device/include/asm/pic16/features.h,
6235         * pic18f*.h headers,
6236         * device/include/pic16/adc.h,
6237         * device/include/pic16/delay.h,
6238         * device/include/pic16/i2c.h,
6239         * device/include/pic16/malloc.h,
6240         * device/include/pic16/stdio.h,
6241         * device/include/pic16/stdlib.h,
6242         * device/include/pic16/string.h,
6243         * device/lib/pic16/libc/stdio/printf_tiny.c,
6244         * device/lib/pic16/libc/stdio/printf_small.c,
6245         * device/lib/pic16/libc/stdio/strmgpsim.c,
6246         * device/lib/pic16/libc/stdio/strmmssp.c,
6247         * device/lib/pic16/libc/stdio/strmusart.c,
6248         * device/lib/pic16/libc/stdio/vfprintf.c,
6249         * device/lib/pic16/libc/stdlib/ltoa.c,
6250         * device/lib/pic16/libc/stdlib/putchar.c,
6251         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6252         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6253         * device/lib/pic16/libc/stdlib/memchrram.c,
6254         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6255         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6256         * device/lib/pic16/libio/adc/adcbusy.c,
6257         * device/lib/pic16/libio/adc/adcread.c,
6258         * device/lib/pic16/libio/adc/adcsetch.c,
6259         * device/lib/pic16/libio/usart/ubaud.c,
6260         * device/lib/pic16/libio/usart/ubusy.c,
6261         * device/lib/pic16/libio/usart/udrdy.c,
6262         * device/lib/pic16/libio/usart/uopen.c,
6263         * device/lib/pic16/libio/usart/uputc.c,
6264         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6265         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6266         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6267         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6268         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6269         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6270         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6271         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6272         specific keywords to double underlined form,
6273         * device/lib/pic16/libc/Makefile.rules,
6274         * device/lib/pic16/libsdcc/Makefile.rules,
6275         * device/lib/pic16/libm/Makefile,
6276         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6277         to compile with C standard set in Makefile.common
6278         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6279         rand.c and crc.c in compilation process,
6280         * device/lib/pic16/libsdcc/int/divuint.c,
6281         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6282         `c' from signed to unsigned,
6283         * device/lib/pic16/startup/crt0.c,
6284         * device/lib/pic16/startup/crt0i.c,
6285         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6286         keywords to double underlined form, bug fixes in _do_cinit function
6287         which prevented the correct initialization of the .idata segment,
6288         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6289         core to enter a infinite loop
6290         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6291
6292 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6293
6294         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6295
6296 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6297
6298         * device/include/Makefile.in: add support for hc08 subdirectory
6299         * device/include/hc08/: new subdirectory
6300         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6301         Lucas Loizaga, thanks!
6302         * device/include/hc08/mc68hc908qy.h,
6303         * device/include/hc08/mc68hc908gp32.h,
6304         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6305         their own directory. Changed internal macro names to use the compiler
6306         reserved namespace. Changed SDCC specific keywords to double
6307         underlined form.
6308         * device/include/math.h,
6309         * device/include/malloc.h,
6310         * device/include/stdarg.h,
6311         * device/include/stdbool.h
6312         * device/include/string.h,
6313         * device/include/tinibios.h,
6314         * device/include/ds400rom.h,
6315         * device/include/8051.h,
6316         * device/include/8052.h,
6317         * device/include/80c51xa.h,
6318         * device/include/at89c55.h,
6319         * device/include/at89S8252.h,
6320         * device/include/at89x51.h,
6321         * device/include/at89x52.h,
6322         * device/include/ds80c390.h,
6323         * device/include/reg764.h,
6324         * device/include/regc515c.h,
6325         * device/include/sab80515.h,
6326         * device/include/mcs51/c8051f000.h,
6327         * device/include/mcs51/c8051f018.h,
6328         * device/include/mcs51/c8051f020.h,
6329         * device/include/mcs51/c8051f040.h,
6330         * device/include/mcs51/c8051f060.h,
6331         * device/include/mcs51/c8051f120.h,
6332         * device/include/mcs51/c8051f300.h,
6333         * device/include/mcs51/c8051f310.h,
6334         * device/include/mcs51/c8051f320.h,
6335         * device/include/mcs51/c8051f330.h,
6336         * device/include/mcs51/c8051f350.h,
6337         * device/include/z180.h: Changed SDCC specific keywords to double
6338         underlined form.
6339
6340 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6341
6342         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6343         18F4455,
6344         * (pic16_assignConfigWordValue): disable testing of configuration
6345         register value with config mask,
6346         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6347         function with port->fun_prefix,
6348         * (genFunction): when generating a naked interrupt function never
6349         create an absolute segment placed in interrupt vector address, place
6350         the actual interrupt function at IVA instead, when an interrupt
6351         function is generated with unspecified interrupt then do not create
6352         the absolute section,
6353         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6354         code for generating a call to generic pointer get/put function with
6355         a call to function pic16_callGenericPointer(),
6356         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6357         the call to the generic pointer get/put functions with prefixing the
6358         function name with port->fun_prefix,
6359         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6360         * src/pic16/main.c (_process_pragma): prefix function with
6361         port->fun_prefix,
6362         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6363         calling assembler, old 18Fxxxx macro is deprecated,
6364         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6365         PC_ASMDIR in while condition,
6366         * (findInstruction): add PC_ASMDIR in while condition,
6367         * (buildCallTree): prefix main with port->fun_prefix,
6368         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6369         identifier for variable with banked access in instructions BTFSS,
6370         BTFSC, BCF, BSF, BTG
6371         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6372         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6373         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6374         perform optimization when enviroment variable NO_REG_OPT is set,
6375         * (insideLRBlock): NEW, return 1 if register is inside an
6376         INF_LOCALREGS block,
6377         * (RemoveRegFromLRBlock): remove a register that is completely
6378         eliminated by register optimization, but it is still left in local
6379         register store/restore in/from stack block,
6380         * (Remove2pcodes): after removing register, check to see if it
6381         should be removed from local register store/restore in/from stack
6382         block,
6383         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6384         DUMMY_READ_VOLATILE,
6385
6386         * device/include/pic16/adc.h: minor prototype modifications and
6387         update,
6388         * device/include/pic16/malloc.h: added GPL notice various
6389         modifications,
6390         * device/include/pic16/stdint.h: NEW, standard header for ints
6391         * device/include/pic16/delay.h: NEW, header for delay functions,
6392         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6393         delay1mtcy,
6394         * device/include/pic16/signal.h: NEW, header providing helper macros
6395         for implementing signal handlers,
6396         * device/include/pic16/stdio.h: added prototypes for functions,
6397         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6398         prototypes for stdin and stdout, added macro PUTCHAR to
6399         automatically implement putchar function prototype,
6400         * device/include/pic16/usart.h: modified and updated USART library,
6401         * device/lib/pic16/libio/adc/,
6402         * device/lib/pic16/libio/i2c: some modifications to improve library
6403         performance,
6404         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6405         family of functions,
6406         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6407         family of functions and other sources,
6408         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6409         of the PIC18Fxx[28] devices,
6410         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6411         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6412         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6413         _do_cinit function, because the previous failed when local variables
6414         where not placed in the same memory bank,
6415         * device/lib/pic16/libsdcc/char/: various modifications to improve
6416         library performance,
6417         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6418         information on the new functions of the c library and more...
6419
6420 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6421
6422         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6423
6424 2005-03-26 Raphael Neider <rneider AT web.de>
6425
6426         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6427           if condition == CARRY)
6428         * (genCmp): adapted to new genSkipc semantics
6429         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6430           on rIfx (genCmp was broken)
6431
6432 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6433
6434         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6435         * src/z80/main.c (_keywords[]),
6436         * src/SDCCglobal.h (struct options),
6437         * src/SDCC.y,
6438         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6439         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6440         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6441         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6442         always available in leading double underscore form. The C99 support is
6443         mostly missing, but it's a start.
6444         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6445         reserved identifier "__data".
6446
6447 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6448
6449         * src/mcs51/peeph.def: fixed bug 1170013
6450
6451 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6452
6453         * device/include/mcs51reg.h: fixed bug 842007
6454
6455 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6456
6457         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6458         last time.
6459
6460 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6461
6462         * src/port.h (struct PORT),
6463         * src/avr/ralloc.c (avr_assignRegisters),
6464         * src/avr/main.c,
6465         * src/ds390/ralloc.c (ds390_assignRegisters),
6466         * src/ds390/main.c,
6467         * src/hc08/ralloc.c (hc08_assignRegisters),
6468         * src/hc08/main.c,
6469         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6470         * src/mcs51/main.c,
6471         * src/pic/ralloc.c (pic14_assignRegisters),
6472         * src/pic/main.c,
6473         * src/pic16/ralloc.c (pic16_assignRegisters),
6474         * src/pic16/main.c,
6475         * src/xa51/ralloc.c (xa51_assignRegisters),
6476         * src/xa51/main.c,
6477         * src/z80/ralloc.c (z80_assignRegisters),
6478         * src/z80/ralloc.h,
6479         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6480         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6481         * src/SDCCcse.h,
6482         * src/SDCCdflow.c (computeDataFlow),
6483         * src/SDCCdflow.h,
6484         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6485         * src/SDCCloop.h,
6486         * src/SDCCcflow.c (*),
6487         * src/SDCCcflow.h,
6488         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6489         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6490         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6491         immedDom() returning wrong block; probably fixes bug #1160833)
6492
6493 2005-03-20 Borut Razem <borut.razem AT siol.net>
6494
6495         * support/scripts/inc2h.pl: WIN32 port
6496
6497 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6498
6499         * device/lib/makefile.in: added abs.c and labs.c
6500
6501 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6502
6503         * device/include/stdint.h: added
6504         * device/lib/abs.c: added
6505         * device/lib/labs.c: added
6506         * device/include/stdlib.h: added abs() and labs() prototypes
6507         * device/lib/libsdcc.lib: added abs and labs
6508         * device/include/float.h,
6509         * device/lib/_fsmul.c,
6510         * device/lib/printf_fast.c,
6511         * device/lib/printf_tiny.c: updated comments
6512
6513 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6514
6515         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6516         bug #1164313
6517
6518 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6519
6520         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6521         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6522
6523 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6524
6525         * device/lib/printf_large.c: removed inline assembly for portability and
6526           readability. Use printf_fast if speed or size are more important.
6527         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6528         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6529
6530 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6531
6532         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6533         prevent compiler warning
6534
6535 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6536
6537         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6538         moved to level 0 and declared as static. Also they are explicit
6539         placed in access bank. This was necessery because some times they
6540         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6541         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6542         optimizations. Currently only compare to unsigned char is implemented,
6543         * src/pic16/gen.c: added fReturnIdx array,
6544         * (struct resolvedIfx) is moved to gen.h and made public,
6545         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6546         * (aopForSym): added an optimization to directly store in stack of
6547         the operand of a SEND iCode,
6548         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6549         but as registers instead (AOP_REG) using the fReturnIdx array,
6550         * (pic16_freeAsmop): remove the freed register from the
6551         _G.sregsAlloc field,
6552         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6553         a compare of 'WREG',
6554         * (pic16_popGetTempRegCond): changed function prototype, now
6555         function takes also a bitVector argument v which holds the current
6556         set of registers that are allocated for stack access by aopForSym,
6557         registers allocated in aopForSym for accessing stack symbols are not
6558         any more part of the functions usedRegs field,
6559         * (genCall): some times aopOp is called for a stack variable to be
6560         send, aopForSym might perform the push, if this is true make sure
6561         that genCall doesn't push the variable twice by testing _G.resDirect,
6562         * (genFunction): changed testing for unspecified interrupt number
6563         from 256 to INTNO_UNSPEC,
6564         * modified selection scheme of frame pointer generation. Previously
6565         if function did use local registers a frame pointer was generated,
6566         now a frame pointer is generated only if function has arguments
6567         (that need PLUSW2 register access), or has stack arguments, or the
6568         compiler is not instructed to omit the frame pointer,
6569         * (genEndFunction): before restoring local registers that were saved
6570         in the function preamble, also restore the registers that *might*
6571         have been allocated for stack access,
6572         * (genRet): removed some old comments,
6573         * (genCmp, the active (RN's) version): added a call to the
6574         pic16_genCmp_special function to perform the compare with a more
6575         robust and optimized way,
6576         * (genInline): a feature has been added in inline code generation,
6577         which allows a wildcard variable substitution when writing inline
6578         assembly. Code is incomplete and experimental therefore undocumented,
6579         * (genCast): changed order of aopOp for result and right to allow
6580         aopForSym to directly load the result if possible,
6581         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6582         perform an optimized compare on some selected special occasions,
6583         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6584         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6585         generate an IVT any more,
6586         * src/pic16/main.c (pic16_optionsTable): added command line option
6587         --optimize-cmp,
6588         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6589         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6590         macros,
6591         * src/pic16/NOTES: Raphael Neider added in list of active developers
6592         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6593         jumptable_end to prevent bug #,
6594         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6595         inCond and outCond fields,
6596         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6597         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6598         turn off register spilling,
6599         * (packRegsForOneUse): synced with other ports' versions although it
6600         is not used currently,
6601         * (pic16_packRegisters): added an optimization while reading
6602         structure bitfields, some registers may be saved (malloc code is
6603         decreased by 80 bytes)
6604
6605 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6606
6607         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6608         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6609         this can be optimized more?
6610
6611 2005-03-10 Raphael Neider <rneider AT web.de>
6612
6613         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6614           genNearPointerGet): (hopefully) fixed access to bitfields via
6615           pointers (p->bitN = x; and x = p->bitN; failed)
6616
6617 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6618
6619         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6620
6621 2005-03-09 Raphael Neider <rneider AT web.de>
6622
6623         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6624
6625 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6626
6627         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6628         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6629           (regTypeNum): set REG_BIT type if necessary
6630         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6631         * support/regression/tests/critical.c: check bug 1144613
6632
6633 2005-03-02 Raphael Neider <rneider AT web.de>
6634
6635         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6636
6637 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6638
6639         * src/avr/ralloc.c (serialRegAssign),
6640         * src/ds390/ralloc.c (serialRegAssign),
6641         * src/hc08/ralloc.c (serialRegAssign),
6642         * src/mcs51/ralloc.c (serialRegAssign),
6643         * src/pic/ralloc.c (serialRegAssign),
6644         * src/pic16/ralloc.c (serialRegAssign),
6645         * src/xa51/ralloc.c (serialRegAssign),
6646         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6647
6648 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6649
6650         * src/SDCCast.c (decorateType): fixed bug 1124787
6651
6652 2005-02-20 Hubert Sack <sack AT digiplan.de>
6653         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6654
6655         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6656         patch #1121755
6657
6658 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6659
6660         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6661         to keep the correct label reference count when adding/removing references
6662         to labels. A peephole file using this is appended to patch #1144962.
6663
6664 2005-02-14 Raphael Neider <rneider AT web.de>
6665
6666         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6667         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6668         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6669           retrievals of result operand's value on assignment
6670
6671 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6672
6673         * device/include/pic16/string.h: modified prototype for memccpy()
6674         to memccpy(void *, void *, char, size_t)
6675         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6676         check whether to omit frame pointer or not,
6677         * (genInline): convert all occurences of "\n" to LF in inline
6678         assembler blocks, this helps formatting the inline text,
6679         * (pic16_loadFSR0): modified prototype,
6680         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6681         removed some 8051 legacy code,
6682         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6683         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6684         before allocating temporary registers in functions,
6685
6686 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6687
6688         * support/regression/tests/bitvars.c: corrected the "fix"
6689
6690 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6691
6692         * support/regression/tests/bitvars.c,
6693         * support/regression/tests/bitwise.c,
6694         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6695
6696 2005-02-10 Raphael Neider <rneider AT web.de>
6697
6698         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6699           different size for Alpha
6700         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6701
6702 2005-02-09 Raphael Neider <rneider AT web.de>
6703
6704         * src/SDCC.lex(doPragma) : save and restore warning options as well
6705           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6706         * have #pragma less_pedantic set the errorlevel to WARNING
6707           (fixes #1117001)
6708         * (cloneOptimize) : fixed wrong malloc's size
6709         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6710           facilitate correct handling of #pragma (save|restore)
6711
6712 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6713
6714         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6715
6716 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6717
6718         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6719
6720 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6721
6722         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6723
6724 2005-02-02 Raphael Neider <rneider AT web.de>
6725
6726         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6727         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6728         * (pic16_storeForReturn): fixed to allow returning function pointers
6729         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6730         * device/include/pic16/{stddef.h,stdbool.h}: added
6731
6732 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6733
6734         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6735
6736 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6737
6738         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6739         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6740          appeared to be required
6741
6742 2005-01-31 Borut Razem <borut.razem AT siol.net>
6743
6744         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6745           include/mcs51 and include/z80 directories to the package
6746
6747 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6748
6749         * src/hc08/gen.c (genFunction): fixed bug #1112752
6750
6751 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6752
6753         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6754
6755 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6756
6757         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6758
6759 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6760
6761         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6762
6763 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6764
6765         * device/include/c8051fxxx.h: removed these 6 files
6766         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6767
6768 2005-01-26 Raphael Neider <rneider AT web.de>
6769
6770         * src/pic16/gen.c (genAssign): fixed assignment from longs
6771           in codespace (were cut to three bytes)
6772         * (genDummyRead): implemented (except for CODESPACE...),
6773           fixed bug #1108575
6774         * src/pic16/glue.c (emitStatistics): beautified
6775         * device/lib/pic16/libm/Makefile: added include path
6776
6777 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6778
6779         * src/z80/gen.c (aopPut): fixed bug #1103902
6780
6781 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6782
6783         * device/lib/expf.c: fixed bug #1095792
6784
6785 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6786
6787         * device/lib/pic16/libm: added Math library sources
6788
6789 2005-01-24 Raphael Neider <rneider AT web.de>
6790
6791         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6792           to enable upcast to pCodeOpReg2 (there is no type tag to
6793           differenciate the two and pic16_popGet2p cast into PCOR2)
6794         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6795           (sizeof(sectNames) changed to sizeof(sectName))
6796           Both patches fix segfaults under MinGW.
6797
6798 2005-01-23 Raphael Neider <rneider AT web.de>
6799
6800         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6801           Safe_[mc]?alloc()'ed variables
6802         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6803           of (byte sized) temporaries (assign them to WREG for now)
6804         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6805           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6806           this might fix SIGSEGVs on MinGW...
6807         * src/SDCCopt.c (killDeadCode): restored original behaviour
6808           (volatile operands might get thrown away though)
6809
6810 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6811
6812         * src/pic16/gen.c: fixed bug #1106975,
6813         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6814         pointer update, INTCON is saved, global interrupts are disabled and
6815         restored after updateing TOS.
6816         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6817         * added function attribute 'shadowregs' to take advantage of shadow
6818         registers,
6819         * added function attribute 'wparam' as an alternative to the wparam
6820         pragma,
6821         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6822         user declares a non-ISR function as 'shadowregs',
6823         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6824
6825 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6826
6827         * .version: bumped version number to 2.4.8
6828         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6829         pic16 port,
6830         * device/lib/pic16/libio/i2c/: I2C module support library,
6831         * device/include/pic16/i2c.h: I2C support library header,
6832         * device/lib/pic16/libc/stdio/: standard IO support sources,
6833         * (printf_small.c): printf_small() source, supports float print,
6834         * (printf_tiny.c): printf_tiny() source, does not support floats,
6835         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6836         enable global optimizations for entire library source, other
6837         Makefiles in the source tree are also modified to reflect this,
6838         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6839         function,
6840         * doc/sdccman.lyx: updated to reflect new changes,
6841         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6842         sym->onStack if-case,
6843         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6844         sbit, idata, _idata, xdata, _xdata,
6845         * added pragma library, to link an external library, (see doc),
6846         * removed command line options, --pomit-config-words, --pomit-ivt,
6847         --pleave-reset-vector,
6848         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6849         when calling assembler to reflect memory model used, also define
6850         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6851         reflect stack model used,
6852         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6853         on stack return NULL,
6854
6855 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6856
6857         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6858           of the operands is volatile. Fixes #1020220
6859
6860 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6861
6862         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6863         * (OptimizeRegUsage): make sure that there is really no other flow where
6864           the first pCode is used
6865
6866 2005-01-22 Raphael Neider <rneider AT web.de>
6867
6868         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6869           to fix #1106967 (pCode->seq are not set up correctly)
6870
6871 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6872
6873         * src/SDCCglue.c (glue): make sure code area is declared before the
6874         static initialization area.
6875
6876 2005-01-21 Raphael Neider <rneider AT web.de>
6877
6878         * device/lib/Makefile.in: fixed test for pic16 install dir
6879         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6880           optimizations
6881         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6882           added --optimize-goto compiler switch and pragma wparam documentation
6883         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6884         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6885           and PRODH closing bug #1071770 (peephole optimizer)
6886
6887 2005-01-19 Raphael Neider <rneider AT web.de>
6888
6889         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6890           cmdLine buffers (used when calling sdcpp...) are large enough
6891           (MAX_PATH=256 truncates arguments leading to system halts when
6892           used in MinGW...)
6893         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6894         * (genUminus): rewritten to for efficiency
6895         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6896           used uninitialized in some cases)
6897         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6898           copy the third byte from the int -- now assumes 0x80 (data memory)
6899         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6900           operands (genAddLit expects the iCode's operands to swapped as
6901           well), fixed leftover bytes (crashed for short left operands)
6902         * (pic16_genMinusDec): performance improvements, removed false
6903           PIC14 emitSKPNCs
6904         * (pic16_genMinus): fixed to cope with differently sized operands
6905         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6906           for --obanksel > 1
6907         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6908         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6909           new banksel optimization
6910         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6911           analysis for temporary registers (segfaults...)
6912         * src/pic16/peeph.def: added rule
6913
6914 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6915
6916         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6917         which converts a float number to its ASCII representation
6918         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6919         functions to convert the fractional and integer part of a float to ASCII,
6920         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6921         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6922         ram
6923         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6924         _STATMEM macros,
6925         * device/include/pic16/adc.h: added GPL info,
6926         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6927         a pCodeOp as tested operand,
6928         * (genNearPointerGet): optimized bit testing, does not use
6929         intermediate register for bit value, test directly instead with
6930         BTFSS, BTFSC, works only for single bits,
6931         * (genpic16Code): dump the name of the iCode in the asm,
6932         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6933         renamed to pic16_decodeOp,
6934         * (serialRegAssign): do not allocate a temporary register for iCode
6935         sequences that test a single bit for 1/0
6936
6937 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6938
6939         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6940         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6941         access stack and frame pointers. They are initially assigned to
6942         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6943         accessing SFRs. Updated all occurences of modification of stack or
6944         frame pointer in gen.c and pcode.c,
6945         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6946         assigning of a literal value to pointers,
6947         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6948         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6949         selected
6950
6951 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6952
6953         * doc/sdccman.lyx: update documentation about stack pragma, added
6954         some info for stack memory models
6955
6956 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6957
6958         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6959
6960 2005-01-08 Raphael Neider <rneider AT web.de>
6961
6962         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6963           udata sections to fix bug #1097823
6964
6965 2005-01-05 Raphael Neider <rneider AT web.de>
6966
6967         * src/pic16/gen.c (genGenericShift): added handling of differently
6968           sized left operand and result
6969
6970 2005-01-04 Raphael Neider <rneider AT web.de>
6971
6972         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6973         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6974           to hold the condition bit)
6975         * added new version of genCmp (old code available via #define)
6976         * added new version of genShiftLeft/genShiftRight in a generic
6977           way, now supports shifting by negative values
6978         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6979           shiftCount (expected by genGenericShift)
6980         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6981         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6982           dump
6983         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6984           is an invalid literal too...)
6985
6986 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6987
6988         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6989         from Raphael Neider,
6990         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6991         for 8-bit literals. This fixes some literal operands which are sign
6992         extended to 16-bits ints when instruction needs only 8-bits.
6993
6994 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6995
6996         * device/lib/logf.c: added mcs51 assembly version
6997         * device/lib/expf.c: added mcs51 assembly version
6998         * device/lib/_logexpf.c: new shared asm code for expf and logf
6999         * device/include/math.h: add defines for assembly math library
7000         * device/lib/Makefile.in: build new _logexpf.c
7001         * device/lib/libfloat.lib: use new _logexpf.c
7002
7003 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7004
7005         * src/pic/device.c
7006         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7007           device types which have less than 0x7f registers.
7008
7009 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7010
7011         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7012
7013 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7014
7015         * device/lib/printf_fast.c: only build on supported arch.
7016         * device/lib/printf_tiny.c: only build on supported arch.
7017         * device/lib/printf_fast_f.c: only build if asm float lib
7018         * device/lib/_fsget1arg.c: only build if asm float lib
7019         * device/lib/_fsget2args.c: only build if asm float lib
7020         * device/lib/_fsnormalize.c: only build if asm float lib
7021         * device/lib/_fsreturnval.c: only build if asm float lib
7022         * device/lib/_fsrshift.c: only build if asm float lib
7023         * device/lib/_fsswapargs.c: only build if asm float lib
7024         * device/include/stdio.h: don't provide print_fast,
7025           print_fast_f, print_tiny prototypes if --xstack used
7026
7027 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7028
7029         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7030         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7031           to the SOURCES
7032
7033 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7034
7035         * device/lib/printf_fast_f.c: same as printf_fast, but
7036           with floating point enabled
7037         * device/lib/printf_fast.c: minor tweaks
7038         * device/include/stdio.h: add printf_fast_f
7039
7040 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7041
7042         * src/SDCCmain.c: make --float-reent default for mcs51
7043         * device/lib/_fsadd.c: added mcs51 assembly version
7044         * device/lib/_fssub.c: added mcs51 assembly version
7045         * device/lib/_fsmul.c: added mcs51 assembly version
7046         * device/lib/_fsdiv.c: added mcs51 assembly version
7047         * device/lib/_fseq.c: added mcs51 assembly version
7048         * device/lib/_fsneq.c: added mcs51 assembly version
7049         * device/lib/_fsgt.c: added mcs51 assembly version
7050         * device/lib/_fslt.c: added mcs51 assembly version
7051         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7052         * device/lib/Makefile.in: add _fscmp to build
7053         * device/lib/libfloat.lib: add _fscmp to build
7054
7055 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7056
7057         * device/lib/_fs2slong.c: added mcs51 assembly version
7058         * device/lib/_fs2sint.c: added mcs51 assembly version
7059         * device/lib/_fs2schar.c: added mcs51 assembly version
7060         * device/lib/_fs2ulong.c: added mcs51 assembly version
7061         * device/lib/_fs2uint.c: added mcs51 assembly version
7062         * device/lib/_fs2uchar.c: added mcs51 assembly version
7063         * device/lib/_slong2fs.c: added mcs51 assembly version
7064         * device/lib/_sint2fs.c: added mcs51 assembly version
7065         * device/lib/_schar2fs.c: added mcs51 assembly version
7066         * device/lib/_ulong2fs.c: added mcs51 assembly version
7067         * device/lib/_uint2fs.c: added mcs51 assembly version
7068         * device/lib/_uchar2fs.c: added mcs51 assembly version
7069         * device/include/float.h: added #define to select asm vs c
7070
7071 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7072
7073         * device/lib/printf_fast.c: improvements to float output
7074         * device/include/float.h: add defines for assembly float library
7075         * device/lib/_fsget1arg.c: receive 1 float arg
7076         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7077         * device/lib/_fsnormalize.c: normalize a float
7078         * device/lib/_fsreturnval.c: return float, various helper routines
7079         * device/lib/_fsrshift.c: right shift a float's mantissa
7080         * device/lib/_fsswapargs.c: swap 2 floats
7081         * device/lib/Makefile.in: build these 6 new files for mcs51
7082         * device/lib/libfloat.lib: add these 6 files to the library
7083
7084 2004-12-26 Borut Razem <borut.razem AT siol.net>
7085
7086         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7087           built by gcc 3.4.2
7088
7089 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7090
7091         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7092           and fully reentrant and register bank neutral.
7093         * device/lib/printf_fast.c: added float (not enabled by default),
7094           added compact/slower integer (also not enabled by default),
7095           improved size/speed of fast integer code, other minor changes
7096         * device/include/stdio.h, device/lib/Makefile.in,
7097           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7098
7099 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7100
7101         * src/pic16/pcode.c: declaring variables other than at the start of a
7102           block is not supported in C by VC6.
7103
7104 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7105
7106         * applied a previous patch from Raphael Neider that wasn't included
7107         in the previous commits, which fixes infinite loops within jumptable
7108         improvements,
7109         * made some fixes that previous patches introduced
7110
7111 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7112
7113         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7114         that fixes an issue with AOP_PCODE asmop's offset,
7115         * (pic16_popCopyReg): update instance field too,
7116         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7117         function of pic port,
7118         * (genCmp, genAnd, genAssign),
7119         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7120
7121 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7122
7123         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7124         variables initial values to idata section,
7125         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7126         variables in some functions. This utilizes parmBytes field of iCode
7127         structure to hold the offset of the variable in stack. (might be
7128         able to use the stack field too?)
7129         * applied patch from Raphael Neider # ### , # ###
7130         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7131         variable initial values in idata section,
7132         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7133         for static variables with initial value
7134         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7135         applied fix in while loop from Raphael Neider.
7136
7137 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7138
7139         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7140         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7141         * src/ds390/ralloc.c (serialRegAssign): spill bits
7142         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7143         * support/Util/SDCCerr.c,
7144         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7145         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7146         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7147
7148 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7149
7150         * device/include/sdcc-lib.h: inserted LGPL, added includes
7151           asm/ds390/features.h and asm/mcs51/features.h
7152         * device/include/asm/default/features.h,
7153         * device/include/asm/gbz80/features.h,
7154         * device/include/asm/z80/features.h: added empty _AUTOMEM
7155           and _STATMEM
7156         * device/include/asm/ds390/features.h,
7157         * device/include/asm/mcs51/features.h: added files with defines for
7158           _AUTOMEM and _STATMEM indicating automatic and static storage class
7159         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7160         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7161         * src/SDCCicode.c (geniCodeCast),
7162         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7163         * src/SDCCloop.c (loopInduction): removed unused variable lr
7164         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7165           to convertToFcall to include char modulo (RFE 1065037), added check
7166           if left operand is unsigned and use abs of literal value
7167         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7168           as it doesn't work after conversion from peephole.def to peephole.rul
7169         * src/mcs51/gen.c (toBoolean): added check for size,
7170           (genModOneByte): optimized code for signed char modulo a literal
7171           power of 2 (thanks to Hubert Sack),
7172           (genRRC): removed unnecessary "clr c",
7173           (genRLC): replaced "add a,acc" with cheaper "rlc a"
7174         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7175           jump optimization,
7176           swapped rules 256.c and 256.d,
7177           extended 256.d by using new multiple checks (thanks Erik),
7178           added rules 256.e and 256.f,
7179           updated rule 261.a and 261.b to new generated code
7180         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7181
7182 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7183
7184         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7185           induction related bugs, including first part of bug #1074377
7186
7187 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7188
7189         * applied patch from bug-report #1076292,
7190         * applied patches for genAnd and Goto-optimizations for Raphael
7191         Neider,
7192         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7193         dump a less iCode information,
7194         * src/pic16/device.h (pic16_options_t): added field debgen,
7195         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7196         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7197         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7198         puclic,
7199         * (various functions): added macros FENTRY and FENTRY2 to functions,
7200         to emit function prologue,
7201         * (various functions): fixed indentation,
7202         * (genNearPointerGet): fixed loading of FSR0,
7203         * (genPackBits): applied patch from Raphael Neider to fix updating
7204         of FSR0 and touching only the modified bits,
7205         * src/pic16/genarith.c (various functions): added macros FENTRY to
7206         emit function prologue in comments,
7207         * src/pic16/pcode.h: added functions debugf2, debugf3,
7208         * src/pic16/ralloc.c: partial fix for packForPush caused
7209         segmentation fault,
7210
7211 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7212
7213         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7214           <stsp AT users.sourceforge.net> with reversed byte order
7215         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7216
7217 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7218
7219         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7220           bug #1074377
7221         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7222         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7223
7224 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7225
7226         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7227
7228 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7229
7230         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7231           conditions,
7232           (setFromConditionArgs): friendly operand parser for peephole rules,
7233           (operandBaseName, operandsNotRelated): new peephole condition
7234           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7235           architecture specific register naming into account, handles n-way
7236           comparisons, and supports quoted literals
7237         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7238
7239 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7240
7241         * src/mcs51/peeph.def: fixed bug #1076940
7242
7243 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7244
7245         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7246
7247 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7248
7249         Adding support for replacing ljmps with sjmps in jumptables
7250         generated for switch statements. For now you need to set the
7251         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7252         Now 4 algorithms for mcs51 jumptable generation are used:
7253         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7254         addresses loaded pc-relative for up to 112 cases and stack-pushing
7255         target addresses loaded with offset from dptr for up to 256 cases.
7256
7257         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7258         * src/mcs51/main.c: adapted constants for switch table generation
7259         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7260
7261 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7262
7263         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7264         * support/regression/tests/bug1057979.c: added test for bug 1073386
7265
7266 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7267
7268         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7269         compilers
7270
7271 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7272
7273         * src/pic16/device.h,
7274         * src/pic16/genarith.c,
7275         * src/pic16/glue.c,
7276         * src/pic16/main.c,
7277         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7278
7279 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7280
7281         Large cummulative patch for pic16 port.
7282         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7283         to call when a stack overflow occurs,
7284         * (malloc.h): added CVS Id tag,
7285         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7286         variable,
7287         * added libc directory. The current version of LibC contains string
7288         functions, ctype functions and macros and some functions of the
7289         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7290         be extensively tested in the future. Standard disclaimer here.
7291         Library is not automatically build yet. But one can build it by
7292         invoking 'make' inside the libc directory.
7293         * added ADC library under libio. Preliminary version yet.
7294
7295         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7296         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7297         aopForRemat() now and not by pic16_aopOp(),
7298         * (pic16_popGetTempReg): removed warning messgae when allocating
7299         temporary registers, its a buggy feature and will be removed,
7300         * (pic16_popGet): set register instance field in AOP_CRY,
7301         * (pic16_outBitC): fixed for results in size greater than 1,
7302         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7303         * (pic16_storeForReturn): optimized return of 0,
7304         * (genCmp): experimental code for new genCmp which uses PIC18's
7305         special compare&skip instructions. Initial tests fail some times
7306         with variables grater than 1 byte in size, so new code is disabled,
7307         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7308         a single bit,
7309         * (genCast): began a fix to optimize the casting of a bit to another
7310         bit, now assigning a bitfield to another bitfield will fail, sorry,
7311         * src/pic16/main.c: disabled the use of lr-support feature,
7312         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7313         * added some function prototypes, added function _debugf prototype,
7314         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7315         bits with offset (case PO_GPR_BIT),
7316         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7317         command line,
7318         * (isBankInstruction): modified to return 0 for no banking instruction,
7319         and 1 for banking instruction,
7320         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7321         caused stop processing pCodes after a inline assembly block,
7322         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7323         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7324         registers when it shouldn't,
7325         * src/pic16/ralloc.c (allocReg): add preliminary support for
7326         supporting a limited set of temporary registers,
7327
7328 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7329
7330         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7331           genDataPointerSet): ensure assignments always copy in MSB to LSB
7332           order,
7333           (loadRegFromAop): recognize CLRH optimization,
7334           (genFunction): optimize RECEIVE iCodes in reentrant functions
7335
7336 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7337
7338         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7339           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7340           selected.
7341         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7342         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7343           contiguous with data
7344
7345 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7346
7347         * device/lib/_gptrget.c (_gptrget),
7348         * device/lib/_gptrgetc.c (_gptrgetc),
7349         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7350           instead of sjmp to ret
7351         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7352           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7353
7354 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7355
7356         * .version: bumped version to 2.4.7
7357         * device/lib/_gptrget.c (_gptrget): is now _naked
7358         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7359         * device/lib/_gptrput.c (_gptrput): is now _naked
7360         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7361           (createFunction): fixed xstack
7362         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7363         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7364           or bit either,
7365           (geniCodeCritical): store original interrupt state in an iTemp bit
7366           var unless stack-auto
7367         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7368         * src/SDCCmain.c (setIncludePath): added include/target to search path
7369         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7370         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7371           prototype,
7372           (processFuncArgs): put bit vars in bit area
7373         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7374           unsaveRBank): fixed xstack,
7375           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7376           (genFunction, genEndFunction): fixed xstack,
7377           (genAssign): optimization don't walk backwards through mem
7378         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7379         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7380         * support/regression/Makefile: also make library (for stack-auto) when
7381           making "all" and added "test-mcs51-xstack-auto"
7382         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7383         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7384         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7385         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7386         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7387           make-library by MAKE_LIBRARY
7388         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7389           regression tests for xstack
7390         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7391         * support/regression/tests/critical.c: test for critical on mcs51
7392
7393 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7394
7395         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7396           built version of sdcc instead of installed version
7397
7398 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7399
7400         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7401         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7402           vprintf.c now
7403         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7404         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7405           WARNING: remove device/lib/build/z80/printf.o by hand when
7406           updating from previous build!
7407         * device/lib/z80/printf.c: updated comment
7408         * support/regression/tests/bug1057979.c: test all ports now
7409         * support/regression/tests/bug1065458.c: file added
7410
7411 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7412
7413         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7414           *_start and *_end symbols for static functions
7415
7416 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7417
7418         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7419           and search crt0.o in all library paths,
7420           (setIncludePath): proper handling of --nostdinc,
7421           (setLibPath): proper handling of --nostdlib
7422         * support/regression/Makefile,
7423         * support/regression/ports/ds390/spec.mk,
7424         * support/regression/ports/gbz80/spec.mk,
7425         * support/regression/ports/hc08/spec.mk,
7426         * support/regression/ports/mcs51/spec.mk,
7427         * support/regression/ports/mcs51-large/spec.mk,
7428         * support/regression/ports/mcs51-stack-auto/spec.mk,
7429         * support/regression/ports/z80/spec.mk: use include and lib files from
7430           built version of sdcc instead of installed version
7431         * doc/sdccman.lyx: fixed typo in --nostdinc
7432
7433 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7434
7435         * src/pic/pcode.c,
7436         * src/pic/device.c,
7437         * src/pic/ralloc.c,
7438         * src/pic/gen.c : added support to generate code for struct bit fields.
7439
7440 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7441
7442         * as/xa51/xa_version.h,
7443         * device/include/errno.h,
7444         * device/include/regc515c.h,
7445         * device/lib/_itoa.c,
7446         * device/lib/_ltoa.c,
7447         * device/lib/ser_ir_cts_rts.c,
7448         * sim/ucsim/xa.src/glob.cc,
7449         * sim/ucsim/xa.src/inst_gen.cc,
7450         * sim/ucsim/xa.src/xa_bit.cc,
7451         * sim/ucsim/xa.src/xa_sfr.cc,
7452         * sim/ucsim/z80.src/inst_dd.cc,
7453         * sim/ucsim/z80.src/inst_fdcb.cc,
7454         * support/scripts/keil2sdcc.pl,
7455         * src/pic16/pic16.dsp,
7456         * src/pic16/pic16a.dsp: corrected cvs line endings
7457         * device/lib/printf_large.c: fixed bug 1057979
7458         * src/pic16/gen.c: fixed non-C standard code
7459         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7460         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7461         * support/regression/ports/mcs51/support.c: reload T1 asap
7462         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7463           pdata use and clear idata startup behaviour
7464         * support/regression/tests/bug1057979.c: added
7465
7466 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7467
7468         * device/examples/ds390/ow390/ad26.h,
7469         * device/examples/ds390/ow390/cnt1d.h,
7470         * device/examples/ds390/ow390/crcutil.c,
7471         * device/examples/ds390/ow390/ownet.h,
7472         * device/examples/ds390/ow390/owsesu.c,
7473         * device/examples/ds390/ow390/swt12.h,
7474         * device/examples/ds390/ow390/swtoper.c,
7475         * device/examples/ds390/ow390/temp10.h,
7476         * device/examples/ds390/ow390/thermodl.c,
7477         * device/examples/ds390/tinitalk/tinitalk.dsp,
7478         * device/examples/ds390/tinitalk/tinitalk.dsw,
7479         * device/examples/mcs51/clock/hw.h,
7480         * device/examples/mcs51/simple2/go.bat,
7481         * device/examples/serialcomm/windows/serial.h,
7482         * device/examples/xa51/dummy.c,
7483         * device/examples/xa51/hello.c,
7484         * device/include/80c51xa.h,
7485         * device/include/at89x051.h: corrected cvs line endings
7486
7487 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7488
7489         * src/pic16/main.c (options): added command line --gstack, to trace
7490         stack over/under flows,
7491         * added pragma 'wparam' to allow passing first byte of function
7492         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7493         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7494         call to __gstack_test function and sets up the symbol as extern,
7495         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7496         * popaop): added call to pic16_testStackOverflow,
7497         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7498         wparamList list,
7499         * (genCall, genPcall): now all parameters are passed via stack
7500         except in functions that are pass to wparam pragma in which WREG is
7501         used too,
7502         * (genPcall): REENTRANT flag is checked to see if variable prototype
7503         contains reentrant keyword, don't call a non-reentrant function, via
7504         a reentrant function pointer or vice versa, functions are never
7505         passed via WREG,
7506         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7507         D.Winkler,
7508         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7509         SIGSEGV when accessing a NULL register stucture,
7510         * (pic16_printGPointerType): modified to handle UPPER modifier for
7511         function initializers, changed prototype of function to simpler one,
7512         * (pic16_printIvalFuncPtr): check to see if function is already
7513         added in externs list,
7514         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7515         optimized a move from W to SFR with a move to the same register
7516         later after a CALL,
7517         * device/lib/pic16/debug: NEW directory, contains debug features
7518         which are enabled when linking with libdebug.lib, currently command
7519         line option --gstack enables stack pointer tracing for over/under
7520         flow, corresponding sources are in debug/gstack
7521
7522 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7523
7524         * doc/sdccman.lyx: updated SDCC version,
7525         * (PIC16 port): update list of command line options,
7526         * src/pic16/device.h (structure pic16_options_t): added field gstack
7527         to enable stack overflow tracing on push/pops,
7528         * src/pic16/device.c (statistics structure): added statistics
7529         structure,
7530         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7531         pic16_dump_int_registers): increase statistics counters for each
7532         * variable which is encountered
7533         * (pic16_dump_usection): emit each .udata variable to its own udata
7534         section,
7535         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7536         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7537         parameters via stack, otherwise use old scheme,
7538         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7539         assembler output file,
7540         * src/pic16/main.c: added command line options --gstack to enable
7541         push/pop tracing for stack overflow,
7542         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7543         instructions): added size of each instruction,
7544         * (pic16_countInstruction): estimate size of instructions in
7545         the_pFile list, inline assembly blocks are not counted,
7546         * (pic16_FixRegisterBanking): trace previous register usage, when
7547         banksel optimizations is greater than 0, don't emit a redudant
7548         banksel directive,
7549
7550 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7551
7552         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7553         * src/pic16/ralloc.c : applied same fix for pic16.
7554         * src/pic/gen.c : tidied it up a little.
7555
7556 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7557
7558         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7559         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7560
7561 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7562
7563         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7564
7565 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7566
7567         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7568         non-reentrant function __modsint in the interrupt function (thus
7569         corrupting math operations during serial I/O)
7570         * device/lib/ser_ir.c: as above, changed buffersize
7571         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7572         256.c,d for zeroing
7573         * doc/Makefile: added option -t for rsync
7574
7575 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7576
7577         * src/SDCCast.h (struct ast),
7578         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7579
7580 2004-10-20 Borut Razem <borut.razem AT siol.net>
7581
7582         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7583         package
7584
7585 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7586
7587         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7588         makefile targets,
7589         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7590         support functions to replace long sequences of MOVFF's from access
7591         bank registers to stack and vice versa,
7592         * src/pic16/device.h: added new field opt_flags, where optimization
7593         flags can be set to enable certain features,
7594         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7595         * pBlock, (genFunction, genEndFunction): surroung loop for
7596         saving/loading used registers in stack with PC_INFO pCodes,
7597         INF_LREGS. Code in between can then be optimized by pCode optimizer
7598         to support function calls,
7599         * (genDataPointerSet): fixed bug which loaded float fields in
7600         structures with corrupt data,
7601         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7602         in a standard way debug info on stderr. Feature used for developing
7603         and debugging only,
7604         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7605         obsolete chunks of code,
7606         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7607         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7608         * pic16/src/pcode.c (pic16_newpCodeInfo,
7609         * (pic16_newpCodeOpLocalRegs),
7610         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7611         feature,
7612         * (pic16_pCodeConstString): printing of the initial value of a
7613         symbol as a comment is inhibited since parsing was already done by
7614         copyStr and output is corrupt,
7615         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7616
7617 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7618
7619         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7620
7621 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7622
7623         * as/mcs51/lkarea.c: removed old K&R style,
7624           (lnksect): changed check on boundary error,
7625           (lnksect2): changed check on boundary error,
7626           (lnksect2): extend XSTK to end of page if size = 1
7627         * as/mcs51/lkmain.c: removed old K&R style,
7628           (Areas51): create l_IRAM symbol
7629         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7630         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7631           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7632         * device/lib/_mullong.c: added version to be compiled with xstack
7633         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7634         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7635         * device/lib/mcs51/crtxstack.asm: fixed comment
7636         * src/SDCCglue.c: maxInterrupts defaults to 0,
7637           (emitMaps): added pdata,
7638           (createInterruptVect): (re)moved default,
7639           (glue): added pdata,
7640           (glue): moved __start__xstack to XSTK with default size 1
7641         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7642           and options.float_rent when options.stackAuto is set,
7643           (linkEdit): only write XDATA_NAME if provided on command line
7644         * src/SDCCmem.h,
7645         * src/SDCCmem.c: added pdata
7646         * src/port.h: added pdata_name to PORT
7647         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7648           (saveRegisters, unsaveRegisters): removed usage of B,
7649           (genMinus): fixed accumulator clash,
7650           (genJumpTab): added comment, this needs another look
7651         * src/mcs51/gen.c: added check for "B in use" paranoia,
7652           added pushB() and popB()
7653         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7654           chance
7655         * src/avr/main.c,
7656         * src/ds390/main.c,
7657         * src/hc08/main.c,
7658         * src/mcs51/main.c,
7659         * src/pic/main.c,
7660         * src/pic16/main.c,
7661         * src/xa51/main.c,
7662         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7663           added PSEG (PAG,XDATA) or NULL to port specifier
7664         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7665         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7666           (_mcs51_genInitStartup): removed __start__xstack equ,
7667           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7668         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7669         * src/z80/gen.c (_rleAppend): fixed warnings
7670         * support/regression/tests/zeropad.c: added pdata test
7671         * .version: bumped to 2.4.6
7672
7673 2004-10-17 Borut Razem <borut.razem AT siol.net>
7674
7675         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7676         as a part of nightly build
7677
7678 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7679
7680         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7681         WREG holds the first byte function parameters,
7682         * (aopForSym): take special case for symbols which are in FARSPACE
7683         but in CODESPACE too,
7684         * (assignResultValue): modified to take into account _G.useWreg,
7685         * (genCall): don't use wreg for parameter passing when function is
7686         declared as reentrant, too, added optimization INCF to stack
7687         pointer when stack parameter count is 1,
7688         * (genFunction, genEndFunction): refurnished and fixed to not using
7689         wreg for passing parameters when function has varargs or is
7690         reentrant, fixed bug with symbol name compare for generating
7691         functions in absolute address,
7692         * (pic16_storeForReturn): refurnished,
7693         * (genCmp): began writing a new version of the function, not ready
7694         yet, therefore it is disabled,
7695         * (genAssign): do not read code memory when assigning a function to
7696         a pointer function,
7697         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7698         array of characters, not pointer,
7699         * (pic16initialComments): in debug mode emit an .ident directive for
7700         the assembler,
7701         * (_process_pragma): emit a new warning type (internal to pic16)
7702         when setting stack to default length, emit a similar warning when
7703         placing a function at absolute address and address is not word aligned
7704         * (_pic16_parseOptions): added 'return TRUE' statement,
7705         * (_pic16_linkEdit): if compiling a source, then add the source's
7706         file object, first in the list of objects to link,
7707
7708 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7709
7710         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7711         * src/pic/main.c : removed VC warning.
7712         * src/pic/gen.c : changed comment.
7713
7714 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7715
7716         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7717         reference to a deprecated symbol _GPTRREG was causing failure to
7718         link. Thanks G. M. Gallant for the info.
7719
7720 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7721
7722         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7723         comments for Bugs item #954788.
7724
7725 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7726
7727         * src/pic16/device.c (pic16_dump_gsection,
7728         * pic16_groupRegistersInSection): handle symbols declared to be in
7729         access bank differently,
7730         * src/pic16/gen.c (struct _G): added field resDirect,
7731         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7732         send values read from stack directly to result and don't allocate
7733         temporary values,
7734         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7735         same registers,
7736         * (pic16_sameRegsOfs): NEW,
7737         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7738         free because they were not allocated from temporary pool,
7739         * pic16_popRegFromString): workaround to fix a problem with
7740         allocating variables twice or never,
7741         * (genGenPointerGet): using PRODL instead of FSR0H,
7742         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7743         instead of FSR0H,
7744         * (genAssign): take advantage of the _G.resDirect flag,
7745         * (genCast): around line 11844, use mov2f instead of directly
7746         MOVFF'ing between operands to account for literal values,
7747         * src/pic16/genutils.c: some new debug functions for gpsim have been
7748         added,
7749         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7750         float with integer part only,
7751         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7752         place variables in access bank
7753         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7754         updated sources to reflect recent changes in gen.c
7755
7756 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7757
7758         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7759         sources that searched for headers in installation path, now the
7760         device/include/pic16 is used,
7761         * src/pic16/glue.c (pic16glue),
7762         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7763         .line directives if not in debug mode, this suppresses assembler's
7764         warnings for ignored directives
7765
7766 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7767
7768         * src/port.h: made reset_regparms prototype void parameter explicit.
7769         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7770         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7771         * doc/sdccman.lyx: documented warning disabling and how to use
7772           printf_large to make it print floats.
7773         * device/include/stdbool.h: NEW
7774         * device/lib/_atof.c,
7775         * device/lib/_divuint.c,
7776         * device/lib/_divulong.c,
7777         * device/lib/expf.c,
7778         * device/lib/printf_large.c,
7779         * device/lib/sincosf.c,
7780         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7781         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7782           a completely reentrant lib.
7783
7784 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7785
7786         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7787         * device/include/pic16/stdio.h: fixed bug with colon
7788
7789 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7790
7791         * device/include/pic16/stdio.h,
7792         * device/include/pic16/stdlib.h,
7793         * device/include/pic16/math.h: NEW
7794         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7795         declared as _naked to reduce overhead
7796         * device/lib/Makefile.in (target port-specific-objects-pic16):
7797         changed * to *.* so to ignore the CVS directory,
7798         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7799         stacked variables back in stack,
7800         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7801         corruption
7802
7803 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7804
7805         * .version: bumped version number to 2.4.5
7806         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7807         * support/Util/SDCCerr.c (messages structure): added entry for
7808         W_POSSBUG2
7809
7810         Large cumulative patch for pic16 port and libraries.
7811         * device/include/pic16/sdcc-lib.h,
7812         * device/include/pic16/stdarg.h,
7813         * device/include/asm/pic16/features.h,
7814         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7815         * device/include/pic16/float.h: changes reentrant keyword with
7816         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7817         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7818         updated target build-libraries to include objects from gptr,
7819         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7820         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7821         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7822         all function headings,
7823         * src/SDCCmain.c: added global parameter userIncDirsSet,
7824         * (parseCmdLine): when option -I is encountered add directory to
7825         userIncDirsSet too,
7826         * src/version.awk: added space between control and long,
7827         * src/pic16/NOTES: added some notes for the port,
7828         * src/pic16/gen.c: added prototype for mov2fp function,
7829         * (fReturnpic16[]): properly named return value registers,
7830         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7831         * (aopForSym): added code to handle symbols with onStack flag set,
7832         symbols onStack are allocated PTRSIZE bytes,
7833         * (aopFreeAsmop): handles special case where asmops are stack objects,
7834         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7835         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7836         added argument lock to trace flaws in allocating temporary registers
7837         when developing port,
7838         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7839         * (pic16_popRegFromString): reenabled allocating a direct register
7840         from string,
7841         * (assignResultValue): various beautifications,
7842         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7843         referenced function argument,
7844         * (genIpush): reenabled to allow stacked arguments, handles only
7845         ic->parmPush iCodes,
7846         * (genCall, genPcall): major changes to allow for variable argument
7847         functions, fixed a bug with falsely restoring stack pointer after
7848         returning from call,
7849         * (genFunction): pending code for critical function,
7850         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7851         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7852         * (genNearPointerGet): fixed bug with indirect reading, was always
7853         reading from INDF0
7854         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7855         pointers,
7856         * (genAddrOf): rewrote code to take address of a stacked function parameter
7857         * (genCast): fixed casting to generic pointer type,
7858         * src/pic16/gen.h: added AOP_STA,
7859         * (struct asmop): added field stk,
7860         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7861         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7862         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7863         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7864         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7865         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7866         generic pointers,
7867         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7868         and library paths,
7869         * (pic16_port structure): generic pointer size is set to 3,
7870         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7871         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7872         compiler warning,
7873         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7874         operand is an iTemp,
7875
7876 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7877
7878         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7879         * debugger/mcs51/simi.c: addapt new syntax of s51
7880
7881 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7882
7883         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7884         * src/pic16/pcode.c: commented out some calls to free() in order to
7885         fix bug #989576,
7886
7887 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7888
7889         * src/SDCCicode.h,
7890         * src/SDCCicode.c (isiCodeInFunctionCall),
7891         * src/avr/ralloc.c (selectSpil),
7892         * src/pic/ralloc.c (selectSpil),
7893         * src/pic16/ralloc.c (selectSpil),
7894         * src/ds390/ralloc.c (selectSpil),
7895         * src/hc08/ralloc.c (selectSpil),
7896         * src/xa51/ralloc.c (selectSpil),
7897         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7898         stack in the middle of a function call sequence (fixes bug #1020268)
7899         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7900         costs associated with the minimum switch case.
7901
7902 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7903
7904         * src/SDCC.lex: fixed bug #1030549
7905
7906 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7907
7908         * src/SDCCcse.h (struct cseDef),
7909         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7910         over a function call if the CSE is derived from a symbol whose
7911         address has been taken (fixes bug #1029883)
7912         * support/regression/tests/bug-1029883: a new regression test for
7913         this bug
7914
7915 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7916
7917         * src/hc08/gen.c (emitinline): fixed bug #1029778
7918         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7919         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7920         and starts toward RFE #905167)
7921
7922 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7923
7924         * src/pic16/gen.c (mov2f): New function to move an operand to
7925         another without considering if it is a literal or a register,
7926         * (pic16_sameRegs): don't check if they are both AOP_REG,
7927         * (AccRsh): removed andmask=0 lines,
7928         * (genLeftShift): duplicated to be improved in future versions,
7929         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7930         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7931         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7932         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7933         * (insertBankSwitch): fixed inserting banksel directives algorithm
7934         for instructions that follow a skip instruction, this fixes a report
7935         for broken subtraction code generation,
7936         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7937         iCode is a left op, just in case result and right share the same
7938         registers
7939
7940 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7941
7942         * src/hc08/main.c,
7943         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7944         preservation of HX
7945         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7946         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7947         on 2004-09-12; it was buggy
7948
7949 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7950
7951         * src/SDCCsymt.h: removed RESULT_CHECK
7952         * src/SDCCast.c,
7953         * src/SDCCglue.c,
7954         * src/SDCCval.c,
7955         * src/pic/glue.c,
7956         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7957
7958 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7959
7960         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7961         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7962         configuration values no more rejected by compiler, they are assigned
7963         to configuration registers with a warning message instead,
7964         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7965         the for-loop so last conf register is emitted too,
7966         * (_pic16_initPaths): link library libsdcc.lib by default,
7967         * (_hasNativeMulFor): modified test for multiplication according to
7968         Raphael Neider's remarks. Integer multiplication is also done with
7969         support functions,
7970         * device/include/pic16/pic18fregs.h: corrected type error in while
7971         testing and including 18f6720 header file
7972
7973 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7974
7975         * src/pic16/device.h (pic16_options): removed field use_crt,
7976         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7977         until an optimization to handle single bits is added,
7978         * (pic16_loadFSR0): moved before genUnpackBits,
7979         * (genAnd): some white lines removed,
7980         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7981         leave_reset flags in pic16_options when using crt modules,
7982
7983 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7984
7985         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7986           for bugs 898889 & 979599. Also used some safer print instructions.
7987
7988 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7989
7990         * src/pic16/device.h (pic16_options_t): added field use_crt,
7991         crt_name, no_crt,
7992         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7993         catch a probable future bug,
7994         * src/pic16/gen.c: aopIdx function commented out,
7995         * (genAssign): commented out old code which used aopIdx,
7996         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7997         code, added if conditionals to take into account the --use-crt
7998         command line options,
7999         * src/pic16/main.c (pic16_optionsTable): added new command line
8000         options, --use-crt= and --no-crt,
8001         * (_pic16_linkEdit): now the proper crt object is added in the
8002         linker command line except than when --no-crt is specified,
8003         * src/pic16/pcode.c,
8004         * src/pic16/pcode.h: added some structures and functions for a new
8005         optimization scheme to compansate for instruction overhead between
8006         same iCodes, this scheme is currently under development and is not
8007         working in any way,
8008         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8009         to && operator,
8010         * device/lib/pic16/startup/crt0i.c,
8011         * device/lib/pic16/startup/crt0iz.c: added global char variable
8012         __uflags to force the generation of an idata section
8013
8014 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8015
8016         * doc/Makefile,
8017         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8018         * doc/sdccman.lyx: updated sdcc version to 2.4.4
8019
8020 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8021
8022         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8023         Frieder) and clarified the default code optimization mode
8024
8025 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8026
8027         * src/SDCC.lex (doPragma, process_pragma),
8028         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8029         "opt_code_size", and "opt_code_balanced"
8030         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8031         regrouped options by category, added support for category headers
8032         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8033         and "--opt-code-size"
8034         * doc/sdccman.lyx: documented these new options and pragmas
8035         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8036         preference into account
8037
8038 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8039
8040         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8041           geniCodePreDec): Fixed bug 904237 by generating a warning
8042         * src/SDCCerr.h,
8043         * src/SDCCerr.c: added warning W_SIZEOF_VOID
8044
8045 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8046
8047         * src/pic/device.c : When no max ram set validate full memory range.
8048         * src/pic/pcode.c,
8049         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8050
8051 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8052
8053         * device/lib/_gptrget.c,
8054         * device/lib/_gptrput.c: updated comment
8055         * device/lib/calloc.c,
8056         * device/lib/free.c,
8057         * device/lib/malloc.c,
8058         * device/lib/realloc.c: added LGPL, made them reentrant-safe
8059         * src/SDCCcse.c (cseBBlock),
8060         * src/SDCCicode.c (printOperand, geniCodeArray),
8061         * src/SDCCicode.h (struct operand): fixed bug 868103
8062         * support/regression/tests/bug-868103.c: added
8063         * src/SDCCast.c (searchLitOp),
8064         * src/SDCCcse.h (struct cseDef),
8065         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8066         * src/SDCCicode.h (struct operand),
8067         * src/SDCCsymt.h (struct sym_link),
8068         * src/avr/gen.c (hasInc),
8069         * src/ds390/gen.c (hasInc),
8070         * src/hc08/gen.c (genPlusIncr, hasInc),
8071         * src/mcs51/gen.c (hasInc),
8072         * src/pic16/glue.c (pic16_printIvalChar),
8073         * src/pic16/ralloc.c (regWithIdx),
8074         * src/xa51/gen.c (hasInc) : removed warnings
8075         * src/SDCCast.c (createBlock): added comment ???
8076         * src/hc08/ralloc.c: updated comments
8077
8078 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8079
8080         * doc/sdccman.lyx: updated section on switch statements, added
8081         section about semaphore locking
8082         * doc/Makefile: added option -info for latex2html
8083         * device/lib/_gptrget.c,
8084         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8085
8086 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8087
8088         * src/pic/device.h,
8089         * src/pic/device.c,
8090         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8091          maxram is less than 0x100.
8092
8093 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8094
8095         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8096
8097 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8098
8099         * src/port.h,
8100         * src/mcs51/main.c,
8101         * src/ds390/main.c,
8102         * src/z80/main.c,
8103         * src/hc08/main.c,
8104         * src/pic/main.c,
8105         * src/pic16/main.c,
8106         * src/avr/main.c,
8107         * src/xa51/main.c
8108         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8109         a jump table is the best form for a switch statement, including
8110         automatic insertion of missing cases to make the case range
8111         continuous. Developed in collaboration with Frieder Ferlemann.
8112
8113 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8114
8115         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8116         accumulator result if it needs sign extension
8117
8118 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8119
8120         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8121
8122 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8123
8124         * device/lib/gbz80/printf.c,
8125         * device/lib/z80/printf.c: removed define for NULL
8126
8127 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8128
8129         * as/xa51/xa_link.c,
8130         * device/examples/ds390/ow390/ad26.c,
8131         * device/examples/ds390/ow390/cnt1d.c,
8132         * device/examples/ds390/ow390/counter.c,
8133         * device/examples/ds390/ow390/ds2480.h,
8134         * device/examples/ds390/ow390/ds2480ut.c,
8135         * device/examples/ds390/ow390/findtype.c,
8136         * device/examples/ds390/ow390/gethumd.c,
8137         * device/examples/ds390/ow390/owllu.c,
8138         * device/examples/ds390/ow390/ownetu.c,
8139         * device/examples/ds390/ow390/swt12.c,
8140         * device/examples/ds390/ow390/swtloop.c,
8141         * device/examples/ds390/ow390/temp.c,
8142         * device/examples/ds390/ow390/temp10.c,
8143         * device/examples/ds390/ow390/thermo21.c,
8144         * device/examples/ds390/ow390/tinilnk.c,
8145         * device/examples/ds390/ow390/tstfind.c,
8146         * device/examples/serialcomm/windows/serial.cpp,
8147         * device/examples/serialcomm/windows/test_serialcomm.cpp,
8148         * device/include/reg51.h: fixed line endings for cvs
8149
8150 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8151
8152         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8153         packRegsForAccUse, packRegisters): new accumulator register
8154         packing algorithm
8155         * support/regression/ports/hc08/support.c (_putchar): suppress
8156         warning of unused variable
8157         * src/SDCCicode.c: added SWAP entry to codeTable
8158
8159 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8160
8161         * device/lib/sprintf.c: forgot to add this file before previous commit
8162
8163 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8164
8165         * src/pic16/gen.c (genPackBits): added operand right in function
8166         parameters, load result directly if p_type is POINTER (that is
8167         called by genNearPointerSet)
8168         * (genUnPackBits): added operand left in function parameters,
8169         * (genNearPointerGet, genNearPointerSet): prevent the loading of
8170         FSR0 if accessing bitfields,
8171
8172 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8173
8174         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8175           _print_format; updated printf, sprintf, vsprintf
8176         * device/include/asm/default/features.h: corrected comment/define
8177         * device/lib/Makefile.in: added sprintf.c
8178         * device/lib/libsdcc.lib: added sprintf module
8179         * device/lib/printf_large.c,
8180         * device/lib/vprintf.c,
8181         * device/lib/sprintf.c: totally refactored printf_large and vprintf
8182           into these 3 files
8183         * support/regression/Makefile: changed ALL_PORTS into a usefull default
8184         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8185         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8186           hc08 test
8187         * support/regression/tests/zeropad.c: define idata as data for hc08
8188
8189 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8190
8191         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8192         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8193         labels are referenced at least once (even if a reference is not found)
8194         * src/hc08/gen.c (emitcode): set isComment flag for comments
8195         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8196         loads), rules 6a..6b (optimize jumps to return)
8197
8198 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8199
8200         * device/lib/acosf.c (acosf),
8201         * device/lib/asinf.c (asinf),
8202         * device/lib/atanf.c (atanf),
8203         * device/lib/ceilf.c (ceilf),
8204         * device/lib/cosf.c (cosf),
8205         * device/lib/coshf.c (coshf),
8206         * device/lib/cotf.c (cotf),
8207         * device/lib/fabsf.c (fabsf),
8208         * device/lib/floorf.c (floorf),
8209         * device/lib/log10f.c (log10f),
8210         * device/lib/logf.c (logf),
8211         * device/lib/sinf.c (sinf),
8212         * device/lib/sinhf.c (sinhf),
8213         * device/lib/sqrtf.c (sqrtf),
8214         * device/lib/tanf.c (tanf),
8215         * device/lib/tanhf.c (tanhf),
8216         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8217         replaced all instances of "reentrant" in the library functions
8218         defined in math.h with this macro.
8219         * support/regression/tests/float_trans.c: reenabled test for hc08
8220
8221 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8222
8223         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8224         erroneously deleted
8225
8226 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8227
8228         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8229         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8230         multi-byte volatile operands are used
8231         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8232         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8233         initialization to area GSINIT0 so that it would always precede
8234         any static initializers in GSINIT
8235         * support/regression/tests/zeropad.c: fixed idata define for hc08
8236         * support/regression/tests/bug-927659.c,
8237         * support/regression/tests/float_trans.c: disabled tests for hc08
8238         pending missing library routines
8239         * .version: increased version number to 2.4.4 - hc08 port now passes
8240         regression tests
8241
8242
8243 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8244
8245         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8246         * Makefile.common.in,
8247         * as/Makefile,
8248         * as/hc08/Makefile.in,
8249         * as/mcs51/Makefile.in,
8250         * as/z80/Makefile.in,
8251         * debugger/mcs51/Makefile.in,
8252         * device/include/Makefile.in,
8253         * device/lib/Makefile.in,
8254         * doc/Makefile,
8255         * link/Makefile,
8256         * link/z80/Makefile.in,
8257         * packihx/Makefile.in,
8258         * sim/ucsim/main_in.mk,
8259         * sim/ucsim/avr.src/Makefile.in,
8260         * sim/ucsim/doc/Makefile.in,
8261         * sim/ucsim/gui.src/serio.src/Makefile.in,
8262         * sim/ucsim/hc08.src/Makefile.in,
8263         * sim/ucsim/s51.src/Makefile.in,
8264         * sim/ucsim/xa.src/Makefile.in,
8265         * sim/ucsim/z80.src/Makefile.in,
8266         * src/Makefile.in,
8267         * support/cpp2/Makefile.in,
8268         * support/librarian/Makefile,
8269         * support/makebin/Makefile: added DESTDIR to the install path proposed
8270         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8271         * doc/sdccman.lyx: added DESTDIR documentation
8272
8273 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8274
8275         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8276         instruction for interrupt handlers, use fast returns when returning
8277         from high priority interrupts
8278
8279 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8280
8281         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8282         code generation
8283         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8284         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8285         bugs, ported much of Bernhard's code from mcs51
8286         * src/mcs51/gen.c (genSend),
8287         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8288         than one when calling a reentrant function
8289         * device/lib/_mullong.c: defined an alternate struct layout for big
8290         endian ports (hc08)
8291
8292 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8293
8294         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8295         test
8296
8297 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8298
8299         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8300         are sane and complete before asking the port its prefered parameter
8301         passing method (fixes bug #1017633)
8302         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8303         and _ret3
8304
8305 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8306
8307         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8308         problem in bitfields >= 8 bits.
8309
8310 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8311
8312         * src/SDCCsymt.c: undid changes that were not meant to be committed
8313
8314 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8315
8316         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8317
8318 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8319
8320         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8321           copied and wrong bit got inverted
8322
8323 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8324
8325         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8326         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8327         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8328         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8329         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8330         assignments to bitfields at known addresses
8331         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8332         reads from bitfields at known addresses
8333         * src/hc08/ralloc.c (packRegisters),
8334         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8335         genhc08Code): optimize pointer get values used as conditionals
8336         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8337         and branch
8338
8339 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8340
8341         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8342         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8343         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8344         as conditionals
8345
8346 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8347
8348         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8349
8350 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8351
8352         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8353         related problems
8354
8355 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8356
8357         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8358
8359 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8360
8361         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8362         mcs51 port
8363
8364 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8365
8366         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8367
8368 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8369
8370         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8371         cases use more compact code.
8372
8373 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8374
8375         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8376
8377 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8378
8379         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8380
8381 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8382
8383         * src/SDCCsymt.h,
8384         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8385         parameter of changePointer() from symbol* to sym_link*
8386         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8387         * src/SDCCsymt.c (compareType): void* type is castable to other
8388         pointers, but not necesarily an exact match.
8389         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8390         is no longer blindly treated as an exact match.
8391         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8392
8393 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8394
8395         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8396
8397 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8398
8399         * src/pic/gen.c,
8400         * src/pic/pcode.c,
8401         * src/pic/ralloc.h,
8402         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8403
8404 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8405
8406         * src/pic/device.c,
8407         * src/pic/device.h,
8408         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8409
8410 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8411
8412         * src/mcs51/gen.c (emitcode): fixed bug #992819
8413
8414 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8415
8416         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8417           there's no need to make it worse
8418
8419 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8420
8421         * src/mcs51/ralloc.c (deassignLR),
8422         * src/ds390/ralloc.c (deassignLR),
8423         * src/hc08/ralloc.c (deassignLR),
8424         * src/z80/ralloc.c (deassignLR),
8425         * src/pic/ralloc.c (deassignLR),
8426         * src/pic16/ralloc.c (deassignLR),
8427         * src/avr/ralloc.c (deassignLR),
8428         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8429         rlivePoint): fixed another part of bug #971834
8430
8431 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8432
8433         * src/z80/main.c: enabled "critical" keyword
8434         * src/z80/mappings.i,
8435         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8436         functions (fixes bug #979646)
8437         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8438
8439 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8440
8441         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8442           such as c:\mydir.
8443
8444 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8445
8446         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8447           doesn't disable too much optimizations
8448
8449 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8450
8451         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8452
8453 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8454
8455         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8456
8457 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8458
8459         * src/pic/gen.c tidied up tabs
8460         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8461         * src/pic/main.c tidied up tabs
8462         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8463         * src/pic/pcoderegs.c tidied up tabs
8464         * src/pic/ralloc.c tidied up tabs
8465
8466 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8467
8468         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8469         to S_FIXED for pic16 port and when symbol is not in level 0,
8470         allocate for S_REGISTER storage class and pic16 port, too,
8471         * src/pic16/device.h: prototype for checkSym,
8472         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8473         * (pic16_assignConfigWordValue): test the value and the mask to
8474         validate that the value is suitable for the configuration word,
8475         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8476         collect extern declared symbols, don't emit symbol twice, check
8477         first if symbol is in publics set first,
8478         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8479         * added command line '--fstack' which enables an experimental
8480         feature for stack access, too buggy to be used yet...
8481         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8482         * (pic16_allocDirReg): when register has storage class S_REGISTER
8483         allocate in pic16_dynAccessRegs,
8484         * device/include/pic16/pic18f????.h: modified configuration word
8485         naming convention, words started as CONFIG0H but should be CONFIG1H
8486
8487 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8488
8489         * device/include/mcs51reg.h: fixed bug 970993
8490
8491 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8492
8493         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8494         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8495         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8496         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8497         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8498         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8499           error/warning numbers,
8500           added function setWarningDisabled()
8501         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8502         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8503           _memcmp.c _memmove.c calloc.c realloc.c free.c
8504         * support/regression/tests/malloc.c: added tests for new functionality
8505         * support/regression/tests/zeropad.c: added tests for truncated initializers
8506           and initialized char arrays starting with '\x0'
8507         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8508
8509 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8510
8511         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8512
8513 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8514
8515         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8516         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8517         peephole 177.e. Thanks to anonymous
8518
8519 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8520
8521         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8522         function isn't used in the source but referenced as a
8523         variable initializer then declare it as extern in .asm file
8524
8525 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8526
8527         * .version: increased version number to 2.4.3
8528
8529         Adding version extension according to ChangeLog CVS revision
8530         * src/Makefile.in (target all): added dependency 'version.h'
8531         * (rule version.h): added rule to create version.h from ChangeLog,
8532         * (rule dep): added dependency version.h,
8533         * src/version.awk: AWK script to create version.h
8534         * src/SDCCdwarf2.c (dwWriteModule),
8535         * src/SDCCglue.c (initialComments),
8536         * src/SDCCmain.c (printVersionInfo): modified to write after
8537         version string the version extension number,
8538         * src/SDCCutil.c: included "version.h"
8539         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8540         number,
8541         * src/SDCCutil.h: added prototype for getBuildNumber
8542
8543         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8544         includeDirsSet, too,
8545         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8546         const char [] is found in function prototype...
8547
8548         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8549         moving to WREG with source is already in WREG,
8550         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8551         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8552         * (aopForSym): stack'ed symbols are partially supported, added
8553         if-clause to support symbols in FARSPACE,
8554         * (sameRegs): added test for AOP_ACC to see if registers are same,
8555         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8556         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8557         * (pic16_popRegFromString): will not allocate a new register if it
8558         doesn't find one by name, bug may have introduced...
8559         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8560         * (genIpush): revived to use pic16 port's stack,
8561         * (genAddrOf): added incomplete case for stack'ed operand,
8562         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8563         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8564         can handle multibyte operands,
8565         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8566         * (pic16initialComments): added message for MPLAB compatibility
8567         mode enabled,
8568         * src/pic16/main.h: prototype for pic16_mplab_comp,
8569         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8570         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8571         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8572         because of increased complexity of procedure,
8573         * (_process_pragma): stack pragma changed to format 'stack pos len',
8574         emit symbol '_stack_end' to conform with gplink,
8575         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8576         to search for register,
8577         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8578         PO_GPR_REGISTER,
8579         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8580         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8581         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8582         case for PO_GPR_REGISTER,
8583         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8584         dies, the new era is ahead !...
8585         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8586         pic16_dynInternalRegs,
8587         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8588         * (pic16_allocDirReg): minor optimizations and bug fixes,
8589         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8590
8591         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8592         load stack and frame pointer with address of 'stack_end' symbol
8593
8594 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8595
8596         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8597         without source code but only variable initializers
8598
8599 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8600
8601         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8602         external are not declared as extern to reduce overhead while linking
8603
8604 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8605
8606         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8607
8608 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8609
8610         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8611           Yee Keat for the patch
8612         * src/SDCCast.c (decorateType): fixed bug #979599
8613         * src/ds390/gen.h: removed local fReturnSizeDS390
8614         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8615         * src/ds390/gen.c (genAnd, genOr, genXor),
8616         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8617
8618 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8619
8620         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8621         add relFilesSet to $3, manipulate $2 to handle linking of object
8622         files without source files in command line,
8623         * device/include/pic16 (all headers): added ID location macros,
8624         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8625         entries for ID location bytes,
8626         * (pic16_assignIdByteValue): NEW,
8627         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8628         added field dumpcalltree to pic16_options_t,
8629         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8630         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8631         emitting rFalseIfx label after check_carry label,
8632         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8633         pic16_emitDIRegs), NEW
8634         * (pic16glue): dump .calltree file when option --calltree found,
8635         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8636         * (_pic16_genAssemblerPreamble): emit ID locations after
8637         configuration registers,
8638         * (pic16_linkCmd): modifications of the link command,
8639         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8640         * (pic16_pCodeInitRegisters): don't init stack registers,
8641         * (pic16_findPrevInstruction): fixed bug,
8642         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8643         bug with immediate registers,
8644         * (buildCallTree): traces stack push and pop,
8645         * (pct2): dump also stack usage for each function,
8646         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8647         * (pic16_allocDirReg): various modifications,
8648         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8649         fixed to 1,
8650
8651 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8652
8653         * src/pic16/pcode.c: removed buggy double colon
8654
8655 2004-07-01 Borut Razem <borut.razem AT siol.net>
8656
8657         * support/scripts/sdcc.nsi: added include/pic16 to setup
8658
8659 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8660
8661         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8662         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8663         target 'clean',
8664         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8665         specific command line arguments. Also added sample lkr script
8666         for placing a variable at a specific memory bank.
8667         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8668         at a specific memory bank,
8669         * (pic16_dump_isection): fixed bug which caused string literals to
8670         be omitted when dumping idata section,
8671         * (pic16_groupRegistersInSection): added code to handle registers
8672         in specific memory banks,
8673         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8674         public, all references are renamed too,
8675         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8676         AOP_DPTR2,
8677         * (pic16_storeForReturn): added case to handle when dest is WREG,
8678         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8679         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8680         pic16_rel_udata, check to see if that register is marked as being
8681         a member of a specific memory bank,
8682         * (pic16_printIvalCharPtr): added code to add string literals either
8683         to code or the idata sections,
8684         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8685         also accept the 'udata' pragma,
8686         * src/pic16/main.h: new structure types sectName and sectSym
8687         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8688         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8689         * (pic16_findPrevInstruction): fixed, it returned nothing,
8690         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8691         instruction combinations,
8692         * (pic16_FixRegisterBanking): heavily reorganised,
8693         * (pic16_AnalyzeBanking): if generating banksel directives is
8694         disabled, then don't call FixRegisterBanking at all,
8695         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8696         completely removed,
8697         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8698
8699 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8700
8701         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8702         Phuah Yee Keat <yk.phuah AT nestac.com>
8703
8704 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8705
8706         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8707         correctly the IVT even if it is relocated to some other location
8708
8709 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8710
8711         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8712         * device/include/pic16/pic18f2220.h: NEW,
8713         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8714         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8715         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8716         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8717         nodefaultlibs, ivt_loc is the location of the interrupt vector
8718         table, and nodefaultlibs signs that default libraries should not be
8719         linked in link stage,
8720         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8721         according to --ivt-loc argument,
8722         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8723         when pragma stack is found,
8724
8725 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8726
8727         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8728         256 (range check), 257 (do while), 258.a-f (bit banging
8729         f.e. on 3-wire SPI bus)
8730
8731 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8732
8733         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8734         variables used exclusively within a loop
8735
8736 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8737
8738         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8739
8740 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8741
8742         * src/SDCClrange.c (computeClash): fixed bug #971834
8743
8744 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8745
8746         * src/mcs51/gen.c (genCmp): fixed bug #975903
8747         * src/hc08/gen.c (operandsEqu),
8748         * src/ds390/gen.c (operandsEqu),
8749         * src/z80/gen.c (operandsEqu),
8750         * src/pic/gen.c (operandsEqu),
8751         * src/pic16/gen.c (operandsEqu),
8752         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8753         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8754
8755 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8756
8757         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8758
8759 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8760
8761         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8762         default case in switch statement,
8763         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8764         to eliminate problem with initialisation of pointers, but problem
8765         still exists,
8766         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8767         * (emitStaticSegment): removed various lines emitting debug info,
8768         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8769         added processor registers for utilizing EEPROM,
8770         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8771         configurable and set 8
8772
8773 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8774
8775         * .version: increased version number to 2.4.2,
8776
8777         Cumulative patch for pic16 port
8778         * src/pic16/device.c: changed scheme to dump initial values for
8779         variables in idata segment, all print_idata* functions were removed,
8780         now the pic16_printIval* will be called,
8781         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8782         * _pic16_printPointerType, pic16_printPointerType,
8783         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8784         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8785         NEW, similar to the respective functions in SDCCglue.c,
8786         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8787         way, emitting hex bytes,
8788         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8789
8790 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8791
8792         * src/avr/ralloc.c (serialRegAssign),
8793         * src/xa51/ralloc.c (serialRegAssign),
8794         * src/pic/ralloc.c (serialRegAssign),
8795         * src/pic16/ralloc.c (serialRegAssign),
8796         * src/hc08/ralloc.c (serialRegAssign),
8797         * src/z80/ralloc.c (serialRegAssign),
8798         * src/ds390/ralloc.c (serialRegAssign),
8799         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8800
8801 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8802
8803         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8804         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8805
8806 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8807
8808         Cumulative patch for pic16 port:
8809         * src/pic16/device.h (typedef PIC16_device) modified fields for
8810         defining microcontrollers,
8811         * src/pic16/device.c: added new info for all devices in Pics16 array,
8812         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8813         to be optimised out by the pCode optimiser,
8814         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8815         specially, bug reported by G.M. Gallant,
8816         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8817         as force'd so that cannot be optimised out by pCode optimiser,
8818         * src/pic16/pcode.c,
8819         * src/pic16/pcodepeeph.c,
8820         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8821         they are disabled by default, but can be enabled explicit with
8822         command argument --denable-peeps, for testing,
8823         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8824         --pomit-ivt in COMPILE_FLAGS
8825
8826 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8827
8828         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8829           compilation on MSVC
8830
8831 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8832
8833         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8834
8835 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8836
8837         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8838         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8839
8840 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8841
8842         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8843         would only assign 0x300001 register.
8844
8845 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8846
8847         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8848         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8849
8850 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8851
8852         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8853         for ds80c400
8854         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8855         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8856         added peephole 254 (left shift), 255 (jump table)
8857
8858 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8859
8860         * device/lib/Makefile.in: removed comment line with model-pic16,
8861         * (target port-specific-objects-pic16): the libraries and objects
8862         are copied to the build directory form the device/lib/pic16/bin
8863         directory
8864
8865         Cumulative patch concerning pic16 port:
8866         * library directory has been re-organized,
8867         * added support for PIC18F1220,
8868         * added headers and library sources for chips 18f1220,18f6520,
8869         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8870
8871         * configuration registers setting has changed, now each supported
8872         device has a complete description of the registers it uses,
8873         * all initialisations are moved to idata sections, these section
8874         can be absolute or relocatable,
8875         * fixed initialisation of codespace variables,
8876         * fixed warning about PCLATU and gpsim,
8877         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8878         * (genAssign): use table reads when assigning from variables in codespace,
8879         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8880         char/int variables placed in codespace,
8881         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8882         registers set in .asm file, no need for --pomit-config-words anymore,
8883         * (pic16glue): some 8051 legacy segments are commented out
8884         (to be removed completely),
8885         * added support for alternative assembler and linker with --asm=
8886         and --link= command line arguments,
8887         * peepholes are disabled automatically in the port, no need to
8888         specify on command line,
8889         * port supports natively char/int/long multiplication, but converts
8890         all divisions to support functions,
8891         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8892         to the file set in variable $2,
8893         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8894         strings in ASCII format and not in hex,
8895         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8896         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8897         allocate proper register if iCodes aren't temporary,
8898
8899 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8900
8901         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8902
8903 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8904
8905         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8906         is commented out
8907
8908 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8909
8910         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8911         computed address is reused
8912         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8913         multi-byte bitfields
8914
8915 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8916
8917         * src/z80/gen.c: (genArrayInit): must check for pointers too
8918
8919 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8920
8921         * support/regression/tests/zeropad.c: never meant to commit the
8922           nestedstruct test: removed, added check for GCC version
8923
8924 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8925
8926         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8927         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8928         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8929           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8930           bugs 928906 and 954082 half-empty initializers
8931         * src/SDCCsymt.h,
8932         * src/SDCCsymt.c (getAllocSize): added for above fix
8933         * src/z80/gen.c (genArrayInit): fixed bug 741044
8934         * support/regression/tests/zeropad.c: added tests
8935
8936 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8937
8938         * src/pic16/device.c (pic16_dump_section): corrected bug which
8939         caused some symbols of the libraries to be misplaced
8940
8941 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8942
8943         * src/pic16/glue.c,
8944         * src/pic16/ralloc.h,
8945         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8946         to fix conflict with pic port
8947
8948 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8949
8950         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8951         externs configuration variables,
8952         * src/pic16/ralloc.h,
8953         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8954         prototype in header, commented out some debug messages
8955
8956 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8957
8958         * src/pic16/glue.c,
8959         * src/pic16/main.c,
8960         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8961         for gpasm COFF object generation. Thanks to D. Hawkins for
8962         his patch info
8963
8964 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8965
8966         * src/ds390/main.c,
8967         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8968         Brock for spotting this)
8969         * src/ds390/gen.c (genEndFunction),
8970         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8971         interrupt handler and critical. Disable push/pop optimizations when
8972         peephole optimizations disabled.
8973
8974 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8975
8976         Updated pic16 library sources and headers.
8977         * device/lib/pic16/pic18f*/ ,
8978         * device/include/pic16/*.h: modified to handle structured SFR
8979         definitions
8980
8981 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8982
8983         * src/port.h (PORT structure): added hook initPaths, now each
8984         port can declare its own default search paths,
8985         which can been seen with the --print-search-dirs option,
8986         see pic16 port for example,
8987         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8988         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8989         * (doPrintSearchDirs): NEW, replaces in a central manner the
8990         printing of search dirs which was split in set*Paths functions,
8991         * (main): added call to port->initPaths and doPrintSearchDirs,
8992         * src/avr/main.c,
8993         * src/ds390/main.c,
8994         * src/hc08/main.c,
8995         * src/izt/i186.c,
8996         * src/izt/tlcs900h.c,
8997         * src/mcs51/main.c,
8998         * src/pic/main.c,
8999         * src/pic16/main.c: modified port structures to reflect addition of
9000         initPaths hook,
9001
9002         * src/pic16/device.c (regCompare): registers are finally sorted by name,
9003         * (pic16_dump_section): for registers in same address reserve memory once,
9004         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9005         to no_banksel,
9006         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9007         result is greater in size than right or left,
9008         * (pic16_genUMult8X8_8): there are some cases where the result can
9009         be 16 bits size, so handle these,
9010         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9011         * (pic16_outBitC): modified to emit pcodes,
9012         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9013         or not,
9014         * (genDivOneByte): implemented algorithm to divide 8-bits,
9015         * (genCmp): uncommented goto, but issues still exist,
9016         * (genAnd): fixed a bug with variables >8bits,
9017         * (genPackBits): optimization added that uses BCF/BSF to change a
9018         single bit,
9019         * (genAssign): fixed bug when assigning floating point literals,
9020         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9021         __sdcc_gsinit_startup label,
9022         * src/pic16/main.c (_pic16_init): removed search directory
9023         initialisations,
9024         * (_pic16_initPaths): NEW, used to initialise search directories,
9025         * (_hasNativeMulFor): support functions for all except char/int
9026         multiplication, and char division,
9027         * (PIC16_port struct): modified entry for native mul support,
9028         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9029         no_banksel option,
9030         * (buildCallTree): call to register_usage is ifdef'ed out,
9031
9032 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9033
9034         * device/include/string.h: applied Stas Sergeev's patch to make this
9035         header file compatible with the preprocessor -Wundef option
9036         * src/SDCCmain.c (main): abort compilation if preprocessor reports
9037         failure (fixes bug #941458)
9038
9039 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9040
9041         * src/SDCCopt.c (killDeadCode): fixed bug #907733
9042         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9043         that the variable, not the function, should be static
9044         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9045         to be consistent with non-literal case
9046
9047 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9048
9049         * src/SDCCast.c (isConformingBody): fixed bug #949967
9050         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9051         convilong): fixed bug #952086
9052
9053 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9054
9055         * src/SDCCmem.c (allocVariables): fixed bug #955321
9056
9057 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9058
9059         * src/hc08/main.c (_hc08_genAssemblerEnd),
9060         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9061         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9062         completely eliminated the use of a temporary file
9063         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9064         when more than one file linked
9065         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9066
9067 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9068
9069         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9070         which fixes bug #543481
9071         * support/regression/tests/bug-751703.c: fixed comments left from a
9072         cut and paste error
9073         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9074         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9075         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9076         scopes
9077         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9078         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9079         are now changed to underscores in moduleName
9080
9081 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9082
9083         * as/mcs51/lkmem.c: better fix for bug #954173
9084
9085 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9086         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9087
9088         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9089         * device/include/c8051f000.h,
9090         * device/include/c8051f120.h,
9091         * device/include/c8051f300.h,
9092         * device/include/c8051f310.h,
9093         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9094         PWM16) and detab'ed
9095
9096 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9097
9098         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9099         and mailing lists, doc'ed --no-peep-comments, removed reference
9100         to knoppix (newest version has no LyX/LaTeX), other minor changes
9101         * src/SDCCglue.c (glue): save 2 bytes stack space with
9102         option --main-return. The ljmp could probably be avoided too
9103
9104 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9105
9106         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9107
9108 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9109
9110         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9111         * src/SDCCopt.c (isLocalWithoutDef),
9112         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9113         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9114         (credit to Maarten Brock for patch #949363, on which this is based)
9115         * support/regression/tests/bug-751703.c: some test cases of extern used
9116         within inner scopes.
9117
9118 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9119
9120         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9121         SPEC_STRUCT
9122         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9123         struct definitions
9124         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9125         dwWriteLabel): fix to create valid debugger symbols even when
9126         the module name has non-alphanumeric symbols in it
9127         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9128         when a variable's allocation has been optimized away
9129
9130
9131 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9132
9133         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9134         * src/hc08/main.c,
9135         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9136         * src/mcs51/main.c,
9137         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9138         * src/ds390/main.c,
9139         * src/z80/gen.c (z80_emitDebuggerSymbol),
9140         * src/z80/main.c,
9141         * src/pic/gen.c (pic14_emitDebuggerSymbol),
9142         * src/pic/main.c,
9143         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9144         * src/pic16/main.c,
9145         * src/avr/gen.c (avr_emitDebuggerSymbol),
9146         * src/avr/main.c,
9147         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9148         * src/xa51/main.c,
9149         * src/SDCCdebug.c (emitDebuggerSymbol),
9150         * src/SDCCdebug.h,
9151         * src/port.h: added a debugger struct to the port struct. Added a
9152         callback for defining debugger symbols
9153
9154         * src/SDCCast.c (createLabel),
9155         * src/SDCC.y (labeled_statement): mark all compiler generated labels
9156         with isitmp = 1
9157         * src/SDCCicode.h,
9158         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9159         iCode back to the ast for the function
9160
9161         * src/hc08/ralloc.c (hc08_assignRegisters),
9162         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9163         unneeded fields from the regs struct.
9164         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9165         pushReg() & pullReg() functions instead of emitcode()
9166
9167         * src/hc08/gen.c (genLabel, genhc08Code),
9168         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9169
9170         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9171         debugger hooks
9172
9173         * src/hc08/gen.c (genEndFunction, genhc08Code),
9174         * src/hc08/gen.h,
9175         * src/mcs51/gen.c (genEndFunction, gen51Code),
9176         * src/mcs51/gen.h,
9177         * src/ds390/gen.c (genEndFunction, gen390Code),
9178         * src/ds390/gen.h,
9179         * src/z80/gen.c (genEndFunction, genZ80Code),
9180         * src/z80/gen.h,
9181         * src/z80/z80.h,
9182         * src/pic/gen.c (genEndFunction, genpic14Code),
9183         * src/pic/gen.h,
9184         * src/pic16/gen.c (genEndFunction, genpic16Code),
9185         * src/pic16/gen.h,
9186         * src/avr/gen.c (genEndFunction, genAVRCode),
9187         * src/avr/gen.h,
9188         * src/xa51/gen.c (genEndFunction, genXA51Code),
9189         * src/xa51/gen.h,
9190         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9191         specific code to cdbFile.c and out of the backend code generators
9192
9193         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9194         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9195         starting address is now 0
9196
9197         * as/hc08/asm.h,
9198         * as/hc08/m08pst.c,
9199         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9200         assembler directive for DWARF support
9201         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9202
9203         * src/src.dsp,
9204         * src/Makefile.in,
9205         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9206
9207 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208
9209         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9210         and inappropriate peephole optimization in jump tables
9211
9212 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9213
9214         * as/hc08/m08pst.c,
9215         * src/SDCCglue.c: sdccopt works for the hc08 port now
9216
9217 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9218
9219         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9220
9221 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9222
9223         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9224
9225 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9226
9227         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9228         rules
9229         * src/SDCCmain.c,
9230         * src/SDCCglobl.h,
9231         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9232         comments from the peephole optimizer replacement rules
9233         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9234         symbols
9235         * src/SDCCcse.c (updateSpillLocation),
9236         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9237         equivalents
9238         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9239         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9240         objects far pointers
9241
9242 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9243
9244         * src/SDCCsymt.h: a missing part of my last change
9245         * src/pic/ralloc.c (regTypeNum),
9246         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9247
9248 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9249
9250         * src/SDCCicode.h,
9251         * src/SDCCicode.c (aggrToPtrDclType),
9252         * src/SDCCptropt.h,
9253         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9254         ptrPseudoSymConvert),
9255         * src/pic/ralloc.c (regTypeNum),
9256         * src/pic16/ralloc.c (regTypeNum),
9257         * src/hc08/ralloc.c (regTypeNum),
9258         * src/ds390/ralloc.c (regTypeNum),
9259         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9260         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9261
9262 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9263
9264         * link/z80/lkmain.c (afile),
9265         * as/hc08/lkmain.c (afile),
9266         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9267         prevent a pointer problem when a filename has no directory and
9268         no extension specified.
9269
9270 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9271
9272         * link/z80/lkmain.c (afile): allow periods in directory names
9273         * link/z80/lkmain.c (afile),
9274         * as/mcs51/lkmain.c (afile),
9275         * as/hc08/lkmain.c (afile): allow linker script file to have an
9276         extension other than ".lnk"
9277         * link/z80/lklex.c (getfid),
9278         * link/z80/lkmain.c (parse),
9279         * as/mcs51/lklex.c (getfid),
9280         * as/mcs51/lkmain.c (parse),
9281         * as/hc08/lklex.c (getfid),
9282         * as/hc08/lkmain.c (parse): Support comments in the linker script
9283         file on lines by themselves and after filenames
9284
9285 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9286
9287         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9288
9289 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9290
9291         * src/z80/peeph-z80.def: removed some peephole rules that don't
9292         work with multibyte arithmetic (fixed bug #937126)
9293         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9294         to registers and not global variables
9295         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9296         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9297         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9298         checking for assignments not internally generated (fixed bug #931895)
9299         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9300         structure member (fixed bug #930072)
9301
9302 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9303
9304         * src/SDCCmain.c (linkEdit),
9305         * src/hc08/main.c (_hc08_parseOptions),
9306         * as/hc08/Makefile.in,
9307         * as/hc08/aslink.h,
9308         * as/hc08/asm.h,
9309         * as/hc08/m08pst.c,
9310         * as/hc08/lkrloc.c (relr, rele),
9311         * as/hc08/lkarea.c (lnkarea)
9312         * as/hc08/lkmain.c (afile, parse),
9313         * as/hc08/lkelf.c: support for ELF output
9314         * as/hc08/lks19.c (s19),
9315         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9316
9317 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9318
9319         * as/mcs51/lkihx.c: Fixed bug #899105.
9320
9321 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9322
9323         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9324         .dsp files from Unix to DOS.
9325
9326 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9327
9328         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9329         function pointers; we have been compliant for several months now.
9330         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9331         change that was accidently commented out
9332         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9333         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9334         bug #922319
9335
9336 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9337
9338         * src/hc08/gen.c: output of all of the internal debugging information
9339         is now controlled by the D() macro; it is disabled by default
9340
9341 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9342
9343         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9344         harder to keep the same registers during a CAST iCode
9345         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9346         long via int can be done in a single cast, if the signedness is
9347         correct.
9348         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9349         putchar() in tinibios.c in ds390's library
9350
9351 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9352
9353         * src/SDCCast.c (decorateType): fixed bug #898889,
9354         cast result of a literal complement too
9355         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9356         fixed check for bitfields
9357
9358 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9359
9360         * src/SDCCicode.c (geniCodeLogic): made it static,
9361         (geniCodeLogicAndOr): added in order to fix bug #905492,
9362         (ast2iCode): fixed bug #905492
9363         * support/regression/tests/bug-905492.c: added
9364         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9365         (processParms): fixed bug #927659: don't copy parms, this will clear
9366         decorated flag
9367         * support/regression/tests/bug-927659.c: added
9368
9369 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9370
9371         * src/SDCCast.c (addCast): don't cast float to char
9372         * device/lib/libsdcc.lib: added _memmove
9373
9374 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9375
9376         * device/lib/large/Makefile: fixed parallel execution by
9377         replacing `make` by `$(MAKE)`
9378
9379 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9380
9381         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9382         offsets (fixes bug #923936)
9383
9384 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9385
9386         * device/lib/small/Makefile: fixed parallel execution by
9387         replacing `make` by `$(MAKE)`
9388
9389 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9390
9391         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9392
9393 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9394
9395         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9396         * src/regression/Makefile: Regression test was not running.
9397
9398 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9399
9400         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9401         complement if possible
9402         * src/SDCCval.c (valComplement),
9403         * src/SDCCicode.c (operandOperation): fixed complement of literal
9404         * support/regression/tests/onebyte.c (testComplement): added
9405
9406 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9407
9408         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9409         return an optimized tree; actually replace actParm with the new tree
9410         * src/SDCCast.h: added some parantheses to remove side effects
9411         * support/regression/tests/bug-920866.c
9412
9413 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9414         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9415         Bit operands were not being handled properly in the pic14 port.
9416         (now src/regression/add.c passes again).
9417
9418 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9419
9420         * src/SDCC.y (labeled_statement): case and default no longer require
9421         a following statement (RFE #893037)
9422
9423 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9424
9425         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9426         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9427         disabled (fixes bug #916294)
9428         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9429         "mov a,acc"; patch provided by Lenny Story
9430         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9431
9432 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9433
9434         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9435         functions
9436         * src/ds390/gen.c (genFunction, genEndFunction),
9437         * src/ds390/ralloc.c (ds390_assignRegisters),
9438         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9439         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9440         pushed if there are parameters passed on the stack. Also, a cleaner
9441         way to decide if r0/r1 should be pushed/popped. (Together they fix
9442         bug #918693)
9443
9444 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9445
9446         * doc/sdccman.lyx,
9447         * device/lib/mcs51/crtpagesfr.asm,
9448         * device/lib/mcs51/crtxinit.asm,
9449         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9450         to avoid confusion with Si Lab's SFRPAGE register.
9451
9452 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9453
9454         * src/SDCCglue.c (emitMaps): allow public sfr variables
9455         * src/SDCCglue.c (initialComments): include compiler build date
9456         with compiler version and put the timestamp of the generated
9457         assembly file on a serperate line to be less confusing.
9458         * src/port.h: added genInitStartup hook
9459         * src/avr/main.c,
9460         * src/ds390/main.c,
9461         * src/hc08/main.c,
9462         * src/pic/main.c,
9463         * src/pic16/main.c,
9464         * src/xa51/main.c,
9465         * src/z80/main.c: genInitStartup initialize as NULL (default to
9466         historical behaviour)
9467         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9468         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9469         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9470         library instead of hard coding it into the compiler.
9471         * support/regression/ports/mcs51-stack-auto/spec.mk,
9472         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9473         * device/lib/mcs51/Makefile,
9474         * device/lib/small/Makefile,
9475         * device/lib/large/Makefile,
9476         * device/lib/mcs51/crtpagesfr.asm,
9477         * device/lib/mcs51/crtstart.asm,
9478         * device/lib/mcs51/crtxclear.asm,
9479         * device/lib/mcs51/crtxinit.asm,
9480         * device/lib/mcs51/crtclear.asm,
9481         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9482         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9483         and into user configurable files.
9484         * device/lib/clean.mk: clean mcs51 directory too
9485         * support/regression/tests/longlit.c: added static to T1 declaration
9486         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9487         accesses in the initialization code
9488
9489 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9490
9491         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9492         OSCTRIMVAL as noted in bug #916008
9493
9494 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9495
9496         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9497         in loops with multiple exits (reported as incorrect registers
9498         used by Martin Helmling in Sdcc-user list)
9499
9500 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9501
9502         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9503         made ds390 register extensions look less like error messages
9504
9505 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9506
9507         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9508         reported by Adam Wozniak in Sdcc-user list
9509
9510 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9511
9512         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9513         arithmetic optimizations, added debug output
9514
9515 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9516
9517         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9518         * sdcc.spec: updated and split sdcc into 3 rpms
9519         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9520         needed for literals of LEFT_OP and '+'
9521         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9522         introduced RESULT_TYPE_NOPROM
9523         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9524         left shift
9525         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9526         limited promotion to int only for '*'
9527         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9528
9529 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9530
9531         * src/pic16/gen.c (genSkip),
9532         (genc16bit2lit), (gencjneshort): commented out
9533         (is_LitOp): new helper function, checks operand type
9534         (genCmpEq): rewritten
9535
9536 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9537
9538         * support/regression/tests/bug-908454.c: added
9539
9540 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9541
9542         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9543         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9544         (geniCodeCast): cosmetic, don't preserve bit storage class
9545         (geniCodeLeftShift): added promotion
9546         (geniCodeLogic): fixed regression
9547         * src/SDCCsymt.c (computeTypeOr): accept bits too
9548         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9549
9550 2004-03-07  Borut Razem <borut.razem AT siol.net>
9551
9552         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9553
9554 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9555
9556         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9557         version of pic16_genPackRegisters which does not check if ic is a
9558         CAST operator,
9559         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9560         function cause string1.c regression test fails
9561
9562 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9563
9564         * sim/ucsim/configure.in,
9565         * sim/ucsim/configure,
9566         * sim/ucsim/doc/Makefile.in: use docdir
9567         * src/SDCC.y: fixed sbit atrributes
9568         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9569         * src/SDCCast.c (decorateType): |^& need special promotion handling
9570         * src/SDCCast.h,
9571         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9572         * src/SDCCsymt.h (computeType),
9573         * src/SDCCicode.c: computeType() needs op
9574         * src/SDCCsymt.c (checkTypeSanity),
9575         * doc/sddman.lyx: "plain" bitfields are unsigned
9576         * src/SDCCsymt.c (computeTypeOr): added
9577         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9578         |^& ops
9579         * src/SDCCval.c (val*): computeType() needs op
9580         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9581         * support/regression/tests/onebyte.c: added tests for |^&
9582
9583 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9584
9585         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9586         for writing icode into asm output.
9587
9588 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9589
9590         * src/pic16/device.c: added some debug lines enabled
9591         with macro DEBUG_CHECK,
9592         * src/pic16/genarith.c: more debug in genPlus,
9593         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9594         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9595         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9596         * (aopForSym): onStack symbols are re-placed in data memspace,
9597         and onStack flag is cleared,
9598         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9599         copy temporary pcodeop,
9600         * (genPcall): added warning for not updating PCLATU,
9601         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9602         always true for pic16 port,
9603         * (genMultOneWord): NEW, supports integer multiplication,
9604         * (genMult): modified to call genMultOneWord,
9605         * (ifxForOp): added warning when return NULL,
9606         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9607         flag is set before call to operandFromSymbol for implicit
9608         added structures,
9609         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9610         options.intlong_rent are set by default,
9611         * (_hasNativeMulFor): modified to allow port generation of integer
9612         multiplication,
9613         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9614         set regtype to REG_SFR for all registers, restricting seting the
9615         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9616
9617 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9618
9619         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9620         more than 500 times in the regression tests
9621
9622 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9623
9624         * support/Util/SDCCerr.h,
9625         * support/Util/SDCCerr.c,
9626         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9627         enumerator_list),
9628         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9629         for symbol conflicts.
9630         * support/valdiags/tests/enum.c,
9631         * support/valdiags/tests/tentdecl.c,
9632         * support/valdiags/tests/struct.c: expect possible error messages
9633         referring to original symbol definitions.
9634         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9635         * src/SDCCsymt.h,
9636         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9637
9638 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9639
9640         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9641
9642 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9643
9644         * src/pic16/ralloc.c (newReg): fixed bug #908929
9645
9646 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9647
9648         * src/ds390/gen.c: added missing #include "main.h"
9649
9650 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9651
9652         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9653         checking if symbol is already in set,
9654         * src/pic16/device.h: prototype for checkAddSym,
9655         * src/pic16/gen.c: (_G): added entry interruptvector,
9656         * (assignResultValue): removed some commented out lines,
9657         * (genFunction): check for ISR via sym->type, absolute section for
9658         interrupt code is created via a new pBlock, the goto instruction is
9659         placed now correctly at the interrupt vector position, changed all
9660         references from ivec to _G.interruptvector,
9661         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9662         is the interrupt is a high priority one, same for return from ISR,
9663         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9664         externs to calls of checkAddSym,
9665         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9666         pic16_pcode_verbose flag is set,
9667         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9668         * src/pic16/pcoderegs.c: message about how many registers are saved
9669         will only be emitted if pic16_pcode_verbose flag is set,
9670
9671 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9672
9673         * src/ds390/ralloc.h,
9674         * src/ds390/ralloc.c (ds390_regWithIdx),
9675         * src/ds390/gen.c (emitcode),
9676         * src/ds390/main.h,
9677         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9678         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9679         ds390operandCompare, getRegsRead, getRegsWritten,
9680         initializeAsmLineNode): customized instruction size calculation for
9681         ds390, started basis for some register optimizations
9682         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9683         corresponding assembly output
9684         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9685         missing push/pop of r0/r1. Optimized push/pops
9686
9687 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9688
9689         * src/mcs51/main.c (instructionSize): fixed ACALL size
9690         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9691
9692 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9693
9694         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9695         the sorting of rlist with NULL elements
9696         * (print_idataType, print_idata): NEW to create idata sections
9697         * src/pic16/device.h: idataSymSet new variable
9698         * src/pic16/gen.c (genFunction): fixed some bugs in string
9699         comparing, improved the absolute section creation for ISRs,
9700         added FSR0L/FSR0H in registers that are saved in an ISR,
9701         * (genInline): fixed the processing of inline snippets,
9702         now they undergo no process by the peephole optimizer
9703         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9704         are placed in idataSymSet,
9705         * (pic16emitStaticSeg): extern symbols are added in externs,
9706         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9707         switching when aboslute variables are placed in access bank memory
9708         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9709         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9710         commented out with #if,
9711         * (pic16_packRegisters): reintroduce the check for CAST because some
9712         symbols are not correctly handled,
9713         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9714         pCodeInstruction instead of pCode,
9715         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9716         pCodeAsmDir definition,
9717         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9718         directive, then the argument directive is emitted without the leading
9719         tab, hack for inline labels which must be in the first column,
9720         * (compareLabel,pic16_findNextInstruction),
9721         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9722         * (insertBankSwitch): modified for the new pCodeAsmDir,
9723
9724 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9725         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9726
9727         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9728         instance,
9729         * (pushSide): commented out with #if,
9730         * (assignResultValue): fixed some typos in saving
9731         registers,
9732         * (genPcall): FIXED and sync'ed with genCall,
9733         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9734         * (genNearPointerGet): fixed to handle some more cases,
9735         implementation scheme via table reads,
9736         * (genConstPointerGet): modified to access code memory correct,
9737         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9738         and improved to handle some cases
9739         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9740         instead of "RETLW" for init data
9741         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9742         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9743         variables are placed in access bank memory (<0x80 and >=0xf80),
9744         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9745         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9746         TBLWT_POSTDEC,TBLWT_PREINC
9747         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9748         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9749         directives
9750         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9751         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9752         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9753         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9754
9755 2004-02-29  Borut Razem <borut.razem AT siol.net>
9756
9757         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9758         support/Util/findme.h, support/Util/system.h: enhance binary relative
9759         search for lib and include by using findProgramPath()
9760
9761 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9762
9763         * src/SDCCpeeph.h,
9764         * src/SDCCpeeph.c (pcDistance),
9765         * src/port.h,
9766         * src/mcs51/ralloc.h,
9767         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9768         * src/mcs51/main.h,
9769         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9770         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9771         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9772         size calculation port specific, started basis for some register
9773         optimizations
9774         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9775         missing push/pop of r0/r1. Optimized push/pops
9776         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9777         * device/lib/_modsint.c (_modsint),
9778         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9779         and stack version so regression tests pass
9780
9781 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9782
9783         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9784         * src/SDCCast.c (decorateType): catch another small optimization
9785         with '?' operator
9786         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9787         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9788         modified to finally use computeType() all over SDCC,
9789         see Feature Request #877103
9790         * src/SDCCval.h: cosmetic
9791         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9792         valCompare(); regression tested in muldiv.c
9793         * support/regression/tests/muldiv.c (testMod): mod sign follows
9794         dividend only
9795
9796 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9797
9798         * src/SDCCast.c (decorateType): fixed bug #902362
9799         * doc/INSTALL.txt: fixed install instructions for win32
9800
9801 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9802
9803         * device/include/Makefile.in (install): fixed by replacing spaces
9804         by tabs
9805         * doc/README.txt,
9806         * doc/INSTALL.txt: updated for release
9807         * doc/sdccman.lyx: added warning for --xstack being buggy
9808
9809 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9810
9811         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9812         to eliminate build warnings.
9813         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9814
9815 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9816            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9817
9818         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9819         removed -penable-stack, added comment for stack pragma, added
9820         warning for not initializing the stack/frame registers, removed
9821         comment at interrupts section
9822
9823         Stack is made permanent, there is no ability to disable stack usage.
9824         * src/pic16/device.h,
9825         * src/pic16/device.c: removed all references to USE_STACK macro,
9826         * src/pic16/device.c (pic16_dump_section): when no elements in
9827         rlist, free rlist before return,
9828         * (pic16_dump_int_registers): NEW, internal registers are a new set
9829         of general purpose registers reused by each function,
9830         * (checkAddReg): returns 1 if registers is added to set,
9831         * (pic16_groupRegistersInSection): when a registers is of type
9832         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9833         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9834         SRCASECMP macro is moved here from device.c
9835         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9836         PO_PCLATU, PO_PRODL, PO_PRODH,
9837         * (pic16_pCodeOpType, genMinus,
9838         changed compares to "a" register, with AOP_ACC,
9839         * (pic16_genPlus): fixed some bugs and indented properly,
9840         * (pic16_addSign): changed size to size+offset in the MOVWF
9841         instruction,
9842         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9843         multiply 8-bit operand by literal, result is 8-bit,
9844         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9845         multiply 2 8-bit operand, result is 8-bit,
9846         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9847         genUMult8X*_16,
9848         * src/pic16/gen.c: changed accUse to contain WREG only,
9849         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9850         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9851         true, do not use immediate addressing any more unless sym is a
9852         pointer in codespace,
9853         * (aopForRemat): do not use immediate addressing when symbol not in
9854         codespace and when symbol's address is requested,
9855         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9856         accUse size (= 1),
9857         * (aopGet): added case for AOP_ACC and don't return "accumulator
9858         bug" but WREG instead,
9859         * (popGetTempReg): pushes contents of temporary register in stack,
9860         * (popReleaseTempReg): pops contents of temporary register from
9861         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9862         * (pic16_popGet): separated case AOP_ACC to return register WREG
9863         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9864         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9865         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9866         the use of immediate pointers to certain cases only.
9867
9868         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9869         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9870         * (assignResultValue, genCall, genRet): modified to use the new
9871         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9872         genPcall is still broken,
9873         * (genFunction): added code to create 'A' type pBlocks when
9874         interrupt functions are generated, code not extensively tested yet,
9875         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9876         * (genEndFunction): modified so ISRs pop stored registers from stack,
9877         * (genMultOneByte): cleanup,
9878         * (AccRsh): added flag andmask, to and result with appropriate mask,
9879         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9880         * (genDataPointerGet): fixed and reenabled its use,
9881         * (genNearDataPointerGet): bugs fixed,
9882         * (genDataPointerSet): bugs fixed,
9883         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9884         pic16_DumpSymbol, pic16_DumpOp,
9885         * src/pic16/genutils.h: function prototypes for the above functions,
9886         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9887         pointers,
9888         * (pic16emitRegularMap): many many many improvements, but needs a
9889         major cleanup,
9890         * src/pic16/main.c: enable_stack in pic16_options is removed,
9891         * (_pic16_parseOptions): removed command line options -penable-stack,
9892         * (_process_pragma): emit stack symbol only when stack pragma is
9893         processed,
9894         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9895         redirected to FSR0L/FSR0H pair,
9896         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9897         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9898         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9899         for immediates,
9900         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9901         * (dumpPicOptype): NEW,
9902         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9903         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9904         with movff instruction,
9905         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9906         added pic16_int_regs, some packRegsFor* functions are commented out,
9907         because produce errors,
9908         * src/pic16/NOTES: minor modifications
9909
9910 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9911
9912         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9913         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9914         --pack-iram.
9915         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9916         * as/mcs51/lkaomf51.c: fixed bug #895763
9917
9918 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9919
9920         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9921
9922 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9923
9924         * doc/sdccman.lyx: added details about the HC08 storage classes and
9925         interrupts, fixed the register usage info for z80 & gbz80
9926
9927 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9928
9929         * doc/sdccman.lyx: added more pic16 port documentation
9930         * device/include/pic16/: added header pic18fregs.h
9931
9932 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9933
9934         * doc/sdccman.lyx: added Vangelis' contribution
9935
9936 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9937
9938         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9939         extend to the next CALL or PCALL, not just to the next CALL.
9940
9941 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9942
9943         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9944
9945 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9946
9947         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9948         bug #895752 and a better fix for bug #716790
9949
9950 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9951
9952         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9953
9954 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9955
9956         * doc/sdccman.lyx: minor changes, minor changed
9957
9958 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9959
9960         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9961         which can't handle SDCC_NEWONEBYTEOPS,
9962         (geniCodeMultiply): removed conversion from mult to shift for pic14
9963         and pic16
9964
9965 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9966
9967         * src/hc08/gen.h,
9968         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9969         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9970         thus fixing bug #895406
9971
9972 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9973
9974         * device/lib/_modsint.c,
9975         * device/lib/_modslong.c: sign follows divisor only
9976         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9977         signs or signedness can be ignored
9978         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9979         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9980         added optimization for IFX,
9981         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9982         arguments;
9983         reenabled optimization for IFX, which was removed on 2004-01-11
9984         * src/SDCCast.h: added return type IFX
9985         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9986         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9987         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9988         SDCC_OLDONEBYTEOPS selects the old behaviour
9989         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9990         changed again and commented promotion rule
9991         * src/SDCCval.c (valDiv): promotion no longer necessary
9992         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9993         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9994         rewritten
9995         * support/regression/tests/onebyte.c: added
9996
9997 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9998
9999         * gen.c (genInline): reverted to old code for assemnling inline
10000         code because of bug reported James Chadd
10001
10002 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10003
10004         * ralloc.h: missing declarations from previous patch,
10005         seems that patch for ralloc.h was never applied, fixed
10006
10007 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10008            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10009
10010         * pcode.c,
10011         * pcode.h,
10012         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10013         indirect addressing. Marked FSR0 as deprecated
10014         * gen.c (pointerCode): commented out, not needed now
10015         (pic16_popGet2p): new MOVFF helper function
10016         (genGenPointerGet),
10017         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10018         (shiftRLong): removed duplicate debugging info
10019
10020 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10021
10022         * src/ds390/gen.c (genNearPointerGet),
10023         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10024         optimization with bits, but not bitfields.
10025         * src/ds390/ralloc.c (packRegisters),
10026         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10027
10028 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10029
10030         * src/SDCCcse.c (algebraicOpts): copy operands before modification
10031
10032 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10033
10034         * src/SDCCsymt.h,
10035         * src/SDCCicode.c (operandFromSymbol),
10036         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10037         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10038         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10039         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10040         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10041         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10042         bug #892038
10043         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10044         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10045         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10046         * src/SDCCsymt.c (newSymbol),
10047         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10048         enumerator_list),
10049         * src/SDCCval.h,
10050         * src/SDCCval.c (newiList): fixed bug #885705
10051
10052 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10053
10054         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10055         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10056
10057 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10058
10059         * device/include/c8051f120.h,
10060         * device/include/c8051f300.h,
10061         * device/include/c8051f310.h: added/updated header files for Silicon
10062         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10063         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10064         in new section Submitting patches
10065
10066 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10067
10068         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10069         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10070         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10071         genGenPointerSet),
10072         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10073         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10074         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10075         genGenPointerSet),
10076         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10077         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10078         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10079         genGenPointerSet),
10080         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10081         genFarPointerGet, genCodePointerGet, genGenPointerGet,
10082         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10083         genGenPointerSet): fixed bug #892400
10084         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10085         to eliminate build warnings.
10086         * src/SDCCast.c (processParms),
10087         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10088         fixed bug 751859
10089         * support/valdiag/valdiag.py: added GCC to the list of defines active
10090         when compiling with gcc
10091
10092 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10093
10094         * support/Util/SDCCerr.h,
10095         * support/Util/SDCCerr.c,
10096         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10097         with an incomplete type (fixed bug #883734)
10098         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10099
10100 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10101
10102         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10103
10104 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10105
10106         * src/SDCCast.c (decorateType),
10107         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10108         function pointer implementation
10109         * support/regression/tests/funptrs.c: added tests to verify both forms
10110         of function pointers work correctly. Added tests to verify parameters
10111         are passed in the correct order.
10112
10113 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
10114
10115         * device.c (regCompare): registers are sorted by ascending
10116         address and increasing size,
10117         * main.c (_pic16_finaliseOptions): removed the declaration
10118         of compiler macro MCU. Now a macro of the format pic18fxxxx
10119         will be defined from the command line
10120
10121 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10122             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10123
10124         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10125         PCOP_RLCF was overwritten!
10126         * gen.c (genSkip): commented out calls to pic16_emitcode,
10127         * (genCmpEQ): fixed "long" compares, only high word did get compared,
10128         * (genlshTwo),
10129         * (genRRC): added debugging info,
10130         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10131         overwritten while shifting,
10132         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10133         overwritten while shifting,
10134         * (AccLsh),
10135         * (AccRsh),
10136         * (shiftLLeftOrResult),
10137         * (shiftRLeftOrResult),
10138         * (shiftRLong),
10139         * (shiftLLong): Implemented with pic16_emitpcode
10140         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10141         * (genLeftShift): Fixed bug, operand for shift by variable always
10142         was "and"ed with 0x0f,
10143         * (genLeftShiftLiteral),
10144         * (genrshTwo),
10145         * (genRightShiftLiteral): added debugging info,
10146         * (genrshFour): added comment,
10147         * (genRightShift): determined signedness from operand "left"
10148         instead of "result"
10149
10150 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10151
10152         * src/SDCCicode.c (geniCodeParms),
10153         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10154         function pointers, fixed function pointer bugs #861242 and #861896
10155
10156 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10157
10158         * device/include/c8051f000.h,
10159         * device/include/c8051f120.h,
10160         * device/include/c8051f300.h: added header files for Silicon
10161         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10162
10163 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10164
10165         * src/SDCCast.c (processParams): added new type flow and restructured
10166         (gatherAutoInit): added new type flow
10167         (addCast): cosmetic changes
10168         (getLeftResultType): added new type flow for array indices, patch
10169         provided by Stas, see FR #877103
10170         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10171         array index patch by Stas
10172         * src/SDCCast.h: added prototype getResultTypeFromType()
10173         * src/SDCCval.h,
10174         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10175         * src/pic/glue.c (pic14emitStaticSeg),
10176         * src/pic16/glue.c (pic16emitStaticSeg),
10177         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10178         for initialization of symbols
10179         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10180         * support/Util/SDCCerr.h:
10181         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10182         * .version: bumped version number to 2.3.8
10183         * device/include/Makefile.in (install),
10184         * doc/Makefile (install): changed to 'rm `find ...`' construct to
10185         avoid warnings
10186
10187 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10188
10189         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10190         Slade Rich fixed an optimization bug
10191         * src/pic/pcodepeep.c,
10192         * src/pic/pcoderegs.c
10193         * doc/Makefile (install): added test for directory
10194
10195 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10196
10197         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10198         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10199         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10200         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10201         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10202         * as/mcs51/asexpr.c (term),
10203         * as/hc08/asexpr.c (term): fixed bug #887146
10204
10205 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10206
10207         * src/z80/gen.c (genMult): handle single byte result product
10208         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10209         DUMMY_READ_VOLATILE (fixed bug #886367)
10210
10211 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10212
10213         * support/regression/tests/libmullong.c: fixed logic, on little endian
10214         hosts we ended without a mullong_wrapper()
10215
10216 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10217
10218         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10219         virus/worm forged address usage.
10220
10221 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10222
10223         Fixed promotion, it should be done on AST level:
10224         * src/SDCCast.c (addCast): added promotion to int
10225         (decorateType): updated call to upCast()
10226         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10227         usualUnaryConversions()
10228
10229 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10230
10231         * support/regression/tests/literalop.c (mulWrapper): Added a
10232         wrapper to remove integer overflow warnings.
10233
10234         * support/regression/tests/float_trans.c: Made work on host.
10235
10236         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10237         location of sz80.
10238
10239         * support/regression/generate-cases.py (main): Changed from inline
10240         to a main method.
10241
10242         * doc/Makefile (install): Changed to depth first to get rid of
10243         missing directory install warning.
10244
10245         * as/Makefile (install-doc): Made work on Mac.
10246
10247 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10248
10249         * src/SDCCast.c: added an additional type flow in decorateType() of
10250         opposite direction, see feature request #860006; it's enabled at runtime
10251         by setting the environment variable SDCC_NEWTYPEFLOW
10252         * src/SDCCast.h: changed prototype of decorateType()
10253         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10254         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10255         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10256         see feature request #877103
10257         * src/SDCCval.c: updated call of decorateType()
10258         (valBitwise): fixed bug #882876
10259         (valMinus): added promotion
10260         (valLogicAndOr): result is unsigned
10261         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10262         * src/SDCCsymt.c (computeType),
10263         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10264         must not cause an unsigned operation
10265         * src/pic/glue (pic14emitRegularMap),
10266         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10267
10268 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10269
10270         * src/pic/pcode.c (PCodeID): commented out left over debug code
10271
10272 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10273
10274         * support/valdiag/tests/overflow.c: added shift tests
10275         * src/pic/device.c,
10276         * src/pic/gen.c,
10277         * src/pic/gen.h,
10278         * src/pic/glue.c,
10279         * src/pic/main.c,
10280         * src/pic/pcode.c,
10281         * src/pic/pcode.h,
10282         * src/pic/pcodepeep.c,
10283         * src/pic/pcoderegs.c,
10284         * src/pic/ralloc.c,
10285         * src/pic/ralloc.h: applied patch from Slade Rich;
10286         added support for multiple code pages and multiple RAM banks on the
10287         PIC 14 port. The ASM files now no longer simply assume all the
10288         code / RAM are in the same page / bank. This means the linker can
10289         safely allocate code/RAM of separate ASM files to different pages/banks.
10290         * doc/sdccman.lyx: added Slade's tips
10291         * src/mcs51/peeph.def: fixed bug #880768
10292
10293 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10294
10295         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10296         * src/SDCCast.c (decorateType): fixed bug #880197
10297
10298 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10299
10300         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10301         getopt.h.
10302
10303         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10304         strtof is not part of C89 and isn't included with Mac OS X.
10305
10306 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10307
10308         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10309         shiftL2Left2Result): fixed bug #879326
10310         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10311         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10312         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10313         address fetch for clr instruction
10314         * device/lib/hc08/_mulint.c: created optimized assembly version
10315         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10316
10317 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10318
10319         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10320         proposed in FR #877103
10321
10322 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10323
10324         * src/SDCCval.c (cheapestVal): added missing checks
10325         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10326         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10327
10328 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10329
10330         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10331         equal operands
10332
10333 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10334
10335         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10336         loaded with the linker search paths (-L arguments) and the libraries
10337         to be linked with the current source (-l arguments). Changes
10338         currently will affect only the pic16 port.
10339         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10340         include path the port specific paths and port specific libraries,
10341         * gplink command now contains the $3 argument,
10342         * src/pic16/device.h,
10343         * src/pic16/device.c,: structure PIC_device is made public and
10344         renamed to PIC16_device, the same for variable Pics which is renamed
10345         to Pics16. Updated all references to them.
10346         * src/pic16/glue.c (pic16glue): corrected bug with code
10347         initialization which bypassed the variable initializations block.
10348
10349         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10350         COMPILE_FLAGS and added the --nostdinc option
10351
10352 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10353
10354         * device/include/mc68hc908jb8.h: Register defs for another member
10355         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10356
10357 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10358
10359         Documenting changes from previous commits.
10360         * configure.in (version 1.56),
10361         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10362         when generating output files to configure the pic16 library,
10363         but now I've commented it out, since gputils aren't installed in the
10364         SF compile farm, so library won't compile
10365
10366         * device/lib/Makefile.in (version 1.56): initially I've added in
10367         target 'all' the prerequestive 'model-pic16' so it compiled the
10368         pic16 library, but now I've commented it out for the same reasons
10369         above,
10370         * added targets 'model-pic16' and 'objects-pic16' to compile the
10371         library
10372         * added target 'port-specific-objects-pic16' to handle the
10373         generated libraries and copy them into the build/ directory
10374         * added target 'clean-intermediate-pic16' to clean intermediate
10375         files into pic16 directory
10376         * in target 'installdirs' added line to create directory pic16 in
10377         the installation path
10378
10379         * device/include/Makefile.in (version 1.11): in target 'install'
10380         added lines to copy all header files to installation path,
10381         * in target 'installdirs' added line create directory for pic16
10382         headers in the installation path
10383
10384 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10385
10386         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10387          a function call
10388
10389 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10390
10391         * configure,
10392         * device/lib/configure.in,
10393         * device/lib/configure: fixed for autoconf 2.57
10394
10395 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10396
10397         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10398         option so that it actually works. Made it specific to the z80, since
10399         the gbz80 doesn't have these kinds of I/O ports.
10400
10401 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10402
10403         * device/include/z180.h,
10404         * device/lib/_memcpy.c,
10405         * device/lib/_memmove.c,
10406         * device/lib/_mulint.c,
10407         * device/lib/ser_ir.c,
10408         * device/lib/ser_ir_cts_rts.c,
10409         * device/lib/_strcmp.c,
10410         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10411         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10412         portmode; added deprecation warning for bank= and protmode= forms.
10413         Also, guard against buffer overflow.
10414         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10415
10416 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10417
10418         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10419         changed interrupt vector table generation to only emit declared vectors.
10420         * device/include/Makefile.in: added missing backslash
10421         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10422
10423 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10424
10425         Mainly changes to support compilation of the device libraries
10426         * src/pic16/device.c: stack is allocated via symbol and not
10427         via literal number. The symbol is placed in the corresponding
10428         position of the data ram
10429         * (pic16_dump_section): relocatable and absolute uninitialized
10430         data are now emitted in sorted order to reduce section naming,
10431         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10432         weren't marked as being in the access bank,
10433
10434 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10435
10436         Added portion of GNU PIC Library under the directory
10437         device/include/pic16 and device/lib/pic16. These files
10438         contain the declarations of SFRs for the PIC18Fxx2 devices.
10439         The directory is initialized via configure from toplevel.
10440
10441 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10442
10443         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10444         the spilllocations to be compared correctly
10445
10446 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10447
10448         * src/SDCCast.c (decorateType): fixed bug introduced today
10449
10450 2004-01-12  Borut Razem <borut.razem AT siol.net>
10451
10452         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10453         doc/sdccman.lyx: upper case pragmas are deprecated
10454
10455 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10456
10457         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10458         in simpler and even better code
10459
10460 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10461
10462         * src/SDCCicode.c (operandOperation): fixed bug #874819
10463         * src/SDCCast.c (decorateType): fixed
10464         char foo (unsigned long ul) { return ul > 0; }
10465
10466 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10467
10468         * doc/sdccman.lyx: Moved and added some sections, small changes
10469         all over. Telling LaTeX to be less strict with word spacing
10470         to better keep the right margin. Changed some notes about
10471         maintainance of the ports in section 3.2.1 - is it OK like this?
10472
10473 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10474
10475         SDCC source changes:
10476         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10477         convilong): modified to inform the pic16 port that builtin functions
10478         are external
10479
10480         PIC16 PORT specific changes:
10481         * src/pic16/device.c pic16_dump_equates() added,
10482         processor registers declared internally by the port are emitted in
10483         the translation as equates,
10484         * src/pic16/gen.c: inline code is passed unprocessed to the
10485         translation,
10486         * (pic16_popGetLit2): fnuction modified to take second operand as
10487         pCodeOp pointer and not as literal,
10488         * (popRegFromIdx): prefixed with pic16_,
10489         * (pic16_popCombine2): modified to receive already allocated pCode
10490         operands,
10491         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10492         * (genFunction): initializes local stack frame and pushes on stack
10493         all the registers used by this function,
10494         * (genEndFunction): restores all registers from stack and restores
10495         stack frame,
10496         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10497         improvements,
10498         * (pic16glue): changed the program startup sequence,
10499         * added new dbName code 'A' for functions placed in absolute section
10500         * src/pic16/main.c: added function attribute _naked,
10501         * added pragma 'code' to place a fnuction at an absolute address,
10502         * added command line arguments --debug-ralloc and --pcode-verbose,
10503         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10504         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10505         * (pic16_newpCodeOpLit2): modified to take the second operand as
10506         pCodeOp pointer,
10507         * (pic16_printpBlock): modified to emit each function in a separate
10508         section,
10509         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10510         UPPER for immediate operands,
10511         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10512         instruction,
10513         * src/pic16/peeph.def: all peepholes with movff are commented out,
10514         because there is a problem in the pcode peep optimizer,
10515         * src/pic16/ralloc.c: the register allocator can now reuse local
10516         function symbols for another function. This saves register usage.
10517         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10518
10519         Added file src/pic16/NOTES with information about program writing on
10520         the current port version.
10521
10522 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10523
10524         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10525         and peephole 252 (array access)
10526
10527 2004-01-09  Borut Razem <borut.razem AT siol.net>
10528
10529         * src/SDCCmain.c : fixed #872250: -l command line defined library
10530           files are scanned before standard library files
10531
10532 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10533
10534         * src/SDCCast.c (decorateType): fixed bug #874046
10535
10536 2004-01-09  Borut Razem <borut.razem AT siol.net>
10537
10538         * support/scripts/sdcc.nsi: remove previous installation
10539
10540 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10541
10542         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10543         bytes for last interrupt vector (mcs51)
10544         * sdcc.spec: fixed typo
10545
10546 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10547
10548         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10549         gen51Code): more efficient parameter receive for --model-large
10550         ("bug" #845294)
10551
10552 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10553
10554         * src/ds390/main.c,
10555         * src/z80/main.c: added missed needLinkerScript flags (more than
10556         one port structure defined in these file)
10557         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10558         bug #795325
10559
10560 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10561
10562         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10563         * src/port.h: added flag needLinkerScript in port->linker
10564         structure to inform whether to create a .lnk file or not,
10565         * src/avr/main.c,
10566         * src/ds390/main.c,
10567         * src/hc08/main.c,
10568         * src/mcs51/main.c,
10569         * src/pic/main.c,
10570         * src/pic16/main.c,
10571         * src/xa51/main.c,
10572         * src/z80/main.c: changed appropriately to configure
10573         needLinkerScript flag
10574         * src/pic/gen.c,
10575         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10576         * src/pic/glue.c: added variable udata_section_name to
10577         override default uninitialized data segment definition for
10578         devices only with SHAREBANK memory (reported from Erik Epetrich)
10579         * (pic14emitOverlay): modified to emit a commented overlay segment
10580         directive when no overlay data exist
10581         * (picglue): modified to emit uninitialized data segment
10582         according to udata_section_name
10583         * src/pic/main.c (_pic14_parseOptions): added command line
10584         options --udata-section-name=[name] to override default
10585         udata definition name
10586         * modified _linkCmd and _asmCmd to include compiler passed
10587         arguments via -W option
10588         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10589         object file from '.rel' to '.o' in port->linker structure,
10590         changed size of fptr from 2 to 3 in port structure
10591
10592 2004-01-07  Borut Razem <borut.razem AT siol.net>
10593
10594         * support/scripts/sdcc.nsi: update PATH
10595         * support/scripts/sdcc.ico: craeted
10596
10597 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10598
10599         * device/include/Makefile.in: fix install
10600         * doc/Makefile: fix install
10601
10602 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10603
10604         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10605         in bug #860505
10606         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10607         how the function variable allocation summary is displayed; also
10608         include information about variables allocated to the overlay
10609         segment
10610
10611 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10612
10613         * as/mcs51/lkmain.c: Help about -Y option
10614         * as/mcs51/lkarea.c: Fixed gcc warnings
10615
10616 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10617
10618         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10619         fixed warning
10620         * support/valdiag/tests/overflow.c: added
10621         * src/SDCCast.c (decorateType),
10622         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10623         LEFT_OP (left shift)
10624
10625 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10626
10627         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10628         (default behaviour).
10629
10630 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10631
10632         A python script to validate compiler diagnostic messages. It can be
10633         used to verify that sdcc complains about bad c source code and
10634         gives a good location of the error.
10635         * support/valdiag/Makefile,
10636         * support/valdiag/valdiag.py,
10637         * support/valdiag/tests/*
10638
10639 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10642         * src/SDCCsymt.c (newEnumType),
10643         * src/SDCCsymt.h
10644         * support/Util/SDCCerr.c,
10645         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10646         enum related bugs.
10647         * support/regression/tests/enum.c: added test for enum values that
10648         require at least 2 bytes of storage.
10649
10650 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10651
10652         * src/common.h: added ifndef/define/endif macros
10653         around the header file.
10654         Bug reported from Jesus Calvino-Fraga
10655
10656 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10657
10658         * sdcc.spec: updated
10659         * device/include/Makefile.in: don't install CVS directories
10660         * device/lib/Makefile.in: added removal of CVS directories after install
10661         * doc/Makefile: fixed install, added local_icons
10662         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10663         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10664         * src/ds390/gen.c (genRightShift): fixed bug #870788
10665         * src/SDCCast.c (decorateType): fixed bug #870781
10666
10667 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10668
10669         PIC16 port related changes:
10670         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10671         added variable stackPos,
10672
10673         * gen.c: genCall, assignResultValue: added support for
10674         pushing/retrieving function parameters to/from stack,
10675         genFunction,genEndFunction: setup stack frame for the
10676         generated function,
10677         genAddrOf: will be changed according to bug 863624
10678
10679         * added files genutils.c and genutils.h which contain gen*
10680         debugged and optimised functions extracted from gen.c
10681
10682         * glue.c: added variable 'externs' which holds extern symbols,
10683         pic16emitRegularMap: is modified to properly handle relocatable
10684          symbols under the new scheme,
10685         pic16createInterruptVect: is modified
10686         pic16printPublics: is modified to emit 'global' assembler directives,
10687         added pic16_printExterns to print extern symbols,
10688         pic16glue: initializes stack/frame pointer in the beginning of
10689         the assembly output. Temporary hack, will be corrected later,
10690         because gplink yet does not support stack and SDCC does not
10691         yet support a type of crt0.o object to create the final binary.
10692
10693         * Removed many lines that contain 8051 legacy code.
10694         * The code is finally placed under a 'code' directive.
10695         * Added port specific options.
10696
10697         * _process_pragma: simplified since now we do not need *special*
10698         include file to define SFR registers. But a separate header
10699         will be needed. This will be developed later.
10700         * _pic16_parseOptions: added, parses port specific options:
10701         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10702         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10703         --preplace-udata-with=
10704
10705         * _pic16_setDefaultOptions: modified to initialize section names,
10706         but hack is temporarly out of order since it needs improvement.
10707         * _pic16_genAssemblerPreamble: configuration words are emitted by
10708         their address instead of their name. This part is incomplete and
10709         supports only the 18Fxx2 devices. Other devices will emit an error
10710         during assembly since they do not contain the same set of config
10711         registers
10712         * _pic16_genIVT: is modified,
10713
10714         * pcode.c: added definitions for some hardware registers that are needed
10715         for stack support
10716         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10717         All PCI entries are updated. Now LFSR is supported.
10718         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10719         * added pic16_newpCodeOpLit2 to support instructions with
10720         two literal arguments
10721         * pic16_pCode2str: corrected code that emits assembler instructions
10722         with two literal operands and those that have an access bit modifier
10723         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10724         this fixes a bug which caused some labels to be lost, when an
10725         assembler directive was added, i.e. banksel,
10726         * pic16_FixRegisterBanking: improved logic that causes the insertion
10727         of bank switching,
10728         * InlineFunction: functions that are called once, are not any more
10729         inlined. This can be a port option in the future,
10730
10731         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10732
10733         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10734         hold the corresponding uninitialized symbols,
10735         * pic16_allocProcessorRegister: registers have explicit marked the
10736         accessBank field,
10737         * pic16_allocInternalRegister: registers are explicit marked as
10738         not used,
10739         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10740         processing list, so bit registers were lost,
10741         *
10742
10743         * ralloc.h: added field 'accessBank' and original symbol operand
10744         in register definition,
10745         * removed the field isMapped from register definition,
10746
10747         ** Several functions have been removed from various sources:
10748         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10749         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10750         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10751         pic16_assignRelocatableRegisters
10752
10753         ** others have been introduced:
10754         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10755         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10756
10757 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10758
10759         * support/scripts/inc2h.pl: changed definition of BIT_AT
10760         to emit 'sbit at' instead of 'bit at'. This was a request.
10761
10762         PIC16 port related preliminary changes:
10763         * gen.c: prefixed function popRegFromString with
10764         pic16_ and all references to it corrected
10765         * pcode.c: all pic16_pc_* hardware registers prefixed
10766         with underscore (_),
10767         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10768         * ralloc.c: newReg(): when register is REG_SFR then
10769         set address to rIdx,
10770         pic16_allocProcessorRegister(): marks register wasUsed=0
10771         pic16_writeUsedRegs(): added a call to assign processor
10772         registers via pic16_assignFixedRegisters
10773
10774 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10775
10776         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10777         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10778         variables in unused register banks.  Also the SSEG is placed
10779         wherever there is enough space for it, and IDATA can be anywhere
10780         in internal RAM.  For now compile using -Wl-Y[stack_size].
10781         The mem file is different for this option as well, since it
10782         makes no sense of talking about DSEG lenght.
10783
10784 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10785
10786         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10787         in certain cases, e.g. when ROM assignment, patch provided
10788         from Albert den Haan.
10789
10790 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10791
10792         Many signedness and type propagation fixes:
10793         * src/SDCCicode.c: made geniCodeCast() static
10794         replaced SPEC_ by IS_ (cosmetic)
10795         (operandOperation): fixed div and mod operation
10796         (usualBinaryConversions): added support for promotion of char
10797         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10798         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10799         (geniCodeAdd): an array index will stay unsigned, even if promoted
10800         from char to int
10801         (geniCodeArray): ditto
10802         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10803         * src/SDCCsymt.c (computeType): added more support for char;
10804         promotion of char is selectable by promoteCharToInt, fixed signedness
10805         for all cases
10806         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10807         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10808         * src/SDCCval (val*): replaced signedness calculation by
10809         computeType()
10810         rearranged if-branches (cosmetic)
10811         (valShift): added warning W_SHIFT_CHANGED
10812         (valCompare): fixed problem with different types
10813         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10814         * support/regression/tests/literalop.c: added many cases
10815         * support/regression/tests/ast_constant_folding.c: changed finally to
10816         'unsigned int'
10817         * .version: new year, new version: 2.3.7
10818         * src/SDCCmain.c (main): applied patch #866468
10819         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10820         provided by Scott Bronson
10821         * doc/sdccman.lyx: updated documentation for sdcdb
10822         updated and added chapter tips
10823
10824 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10825
10826         * src/SDCCsymt.h: missing from yesterday's commits
10827
10828 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10829
10830         * src/SDCC.y (struct_or_union_specifier),
10831         * support/Util/SDCCerr.c,
10832         * support/Util/SDCCerr.h: verify that struct & union tags are used
10833         as declared.
10834
10835 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10836
10837         * src/SDCCglobl.h: missing from yesterday's commits
10838
10839 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10840
10841         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10842         sft_attributes, struct_declaration, parameter_declaration,
10843         type_name, start_block, declaration_list),
10844         * src/SDCC.lex (check_type): support redefinition of typedef names
10845
10846 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10847
10848         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10849         aligned xdata arrays. Erik helped me with the if clause.
10850
10851 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10852
10853         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10854         warning
10855
10856 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10857
10858         * src/SDCCast.h,
10859         * src/SDCCast.c (newAst_),
10860         * src/SDCCicode.h,
10861         * src/SDCCicode.c (ast2iCode, newiCode),
10862         * src/SDCCglobl.h,
10863         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10864         expr, statement, expression_statement, selection_statement,
10865         iteration_statement, expr_opt, jump_statement): foundation for tracking
10866         sequence points
10867         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10868         point code too)
10869
10870 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10871
10872         * support/Util/SDCCerr.c,
10873         * src/SDCCast.h,
10874         * src/SDCCast.c (createCase, createDefault, decorateType),
10875         * src/SDCClabel.c (labelUnreach),
10876         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10877         to error messages.
10878         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10879         (with thanks to Stas Sergeev)
10880         * device/include/time.h,
10881         * device/lib/time.c (CheckTime): suppress unreachable code warning
10882
10883 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10884
10885         * src/SDCCast.c (createIvalCharPtr),
10886         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10887         bug #753752)
10888         * support/regression/tests/nullstring.c: tests for these two bugs
10889
10890 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10891
10892         * support/Util/SDCCerr.h,
10893         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10894         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10895         about storage class and 'at' used inside struct or union
10896         * src/SDCCBBlock.c (iCodeFromeBBlock),
10897         * src/SDCCcse.c (ifxOptimize),
10898         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10899         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10900         printIval, emitStaticSeg, emitOverlay),
10901         * src/SDCClabel.c (deleteIfx),
10902         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10903         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10904         gatherAutoInit, processParms),
10905         * support/Util/SDCCerr.h,
10906         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10907         reporting for post-parse errors.
10908
10909 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10910
10911         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10912         implicit casts via union; they don't work on big endian systems
10913         (possible fix for bug #861138)
10914
10915 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10916
10917         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10918         * src/mcs51/main.c: fixed the fix for bug #737001
10919
10920 2003-12-15  Borut Razem <borut.razem AT siol.net>
10921
10922         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10923
10924 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10925
10926         * support/makebin/makebin.c: put output in binary mode
10927
10928 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10929
10930         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10931         xdata and data memory on startup. Set the environment variable
10932         SDCC_NOGENRAMCLEAR to disable this.
10933         * src/mcs51/peephole.def,
10934         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10935         (allows non-interrupt and interrupt code to safely compete for a resource
10936         without the non-interrupt code having to disable interrupts)
10937
10938 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10939
10940         * src/SDCCicode.c (geniCodeAdd),
10941         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10942         with valFromType if type might be a pointer and host is big endian).
10943         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10944         types, not just integer types.
10945         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10946         multiply defined with mismatching "at" address.
10947
10948 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10949
10950         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10951         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10952         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10953         with embedded nulls (fixed bug #753752)
10954
10955 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10956
10957         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10958         Apparently this did not see much testing (endless loop)
10959
10960 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10961
10962         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10963
10964 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10965
10966         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10967         gracefully handle NULL memmap pointers
10968
10969 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10970
10971         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10972         instead of deleting the iCode when an operand is volatile
10973         * src/z80/gen.c (genDummyRead),
10974         * src/mcs51/gen.c (genDummyRead),
10975         * src/ds390/gen.c (genDummyRead),
10976         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10977         not just IC_RIGHT
10978         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10979         * src/SDCC.y: fixed bug #850420
10980
10981 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10982
10983         Applied z80 i/o port patch from Peter Townson and fixed some operators
10984         to better handle operands in A register.
10985         * device/include/z180.h
10986         * src/SDCC.y
10987         * src/SDCCglue.c
10988         * src/z80/gen.c
10989         * src/z80/gen.h
10990         * src/z80/main.c
10991         * src/z80/peeph-z80.def
10992         * src/z80/peeph.def
10993         * src/z80/z80.h
10994
10995 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10996
10997         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10998
10999 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11000
11001         * device/lib/hc08/_mullong.c: Removed extra #endif
11002
11003 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11004
11005         * sim/ucsim/hc08.src/inst.cc,
11006         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11007         carries from x to h
11008         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11009         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11010         * device/include/stdarg.h: fixed varargs for hc08
11011         * device/lib/Makefile.in,
11012         * device/lib/hc08/Makefile,
11013         * device/lib/hc08/_mulint.c,
11014         * device/lib/hc08/_mullong.c: fixed some endian problems
11015
11016 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11017
11018         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11019         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11020         * device/lib/_gptrget.c,
11021         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11022
11023 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11024
11025         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11026         * src/SDCCast.c (astErrors): fixed bug #846007
11027         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11028
11029 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11030
11031         * src/SDCCast.c (decorateType): disabled a transformation I added in
11032         revision 1.188 (access to fields of a structure at an absolute address);
11033         it breaks with bitfields, extern declarations, and gcse analysis.
11034         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11035         could be assigned through a pointer, so don't complain.
11036         * src/SDCCast.c (astErrors),
11037         * src/SDCCast.h,
11038         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11039
11040 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11041
11042         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11043         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11044         output of __config directives, since gpasm now supports them
11045         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11046         pre-processor macro, i.e. -DMCU=p18f452
11047         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11048         and modified to handle 'cast' icode similarly to '=' icode
11049         * src/pic16/device.h (typedef struct PIC_device): added field
11050         'extMIface' to indicate that chip has external memory interface
11051         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11052         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11053         18F8720
11054
11055 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11056
11057         * src/SDCC.y (pointer): fixed bug #846006
11058         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11059         * src/SDCCast.c (decorateType): fixed bug #846009
11060         * src/ds390/peeph.def,
11061         * src/ds390/gen.c (genAnd, genOr),
11062         * src/mcs51/peeph.def,
11063         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11064
11065 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11066
11067         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11068         * src/SDCCdflow.c
11069         * src/SDCCcse.c
11070         * src/SDCCcse.h
11071         * src/SDCCBBlock.h
11072         * src/SDCCBBlock.c
11073
11074 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11075
11076         fixed bug #845089
11077         * src/SDCCbitv.h,
11078         * src/SDCCbitv.c: added function to free a bitvector
11079         * src/SDCClrange.h,
11080         * src/SDCClrange.c: added function to recompute the liveranges
11081         * src/avr/ralloc.c,
11082         * src/ds390/ralloc.c,
11083         * src/hc08/ralloc.c,
11084         * src/mcs51/ralloc.c,
11085         * src/pic/ralloc.c,
11086         * src/pic16/ralloc.c,
11087         * src/xa51/ralloc.c,
11088         * src/z80/ralloc.c: recompute the liveranges after register packing
11089
11090 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11091
11092         * src/SDCCloop.c (newInduction): fixed bug #845630
11093
11094 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11095
11096         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11097         inadvertantly left behind from my 2003-11-12 change
11098
11099 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11100
11101         Updated headers I neglected to commit yesterday.
11102         * src/SDCClrange.h,
11103         * src/SDCCicode.h
11104
11105 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11106
11107         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11108         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11109         * src/SDCCopt.c (eBBlockFromiCode),
11110         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11111         the creation of the key hash table from the sequencing so it can be used
11112         earlier (for some GCSE bug fixes still pending)
11113
11114 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11115
11116         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11117         * support/regression/tests/addsub.c: testing genPlus shortcut
11118
11119 2003-11-15  Borut Razem <borut.razem AT siol.net>
11120
11121         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11122
11123 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11124
11125         * src/SDCCcse.c (cseBBlock): fixed bug #527779
11126         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11127         ordering is immaterial.
11128         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11129
11130 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11131
11132         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11133         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11134         (SIGSEV) of bug #840381
11135         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11136         unlink new file before rename if new and old filenames are the same)
11137
11138 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11139
11140         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11141         uninitialized variables) for the mcs51. Set environment variable
11142         SDCC_GENRAMCLEAR to test.
11143         xdata initialization slightly shorter
11144
11145 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11146
11147         * src/SDCCsymt.h,
11148         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11149         #838241 & 780691 (basicly the same bug)
11150         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11151         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11152
11153 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11154
11155         * src/SDCCmain.c (linkEdit): "fix" #834252
11156
11157 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11158
11159         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11160         * src/SDCCast.h,
11161         * src/SDCC.y: fixed bug #819403
11162
11163 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11164
11165         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11166         the reentrant attribute.
11167         * src/hc08/gen.c (genPackBits): added missing stack readjustment
11168         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11169         simulation
11170         * src/SDCCast.c (decorateType): fixed bug with storage class not being
11171         updated during pointer dereference; f.e. ~(((char *)1)*) was being
11172         erroneously reduced to a literal.
11173         * src/hc08/ralloc.c (packRegisters, rematStr),
11174         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11175         some cases
11176
11177 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11178
11179         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11180         * doc/sdccman.lyx: changed from 'article' to 'book'
11181         * doc/Makefile: readded test_suite_spec and cdbfileformat
11182
11183 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11184
11185         * device/include/stdlib.h: include malloc.h to comply with ANSI
11186         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11187
11188 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11189
11190         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11191         * doc/clean.mk: also remove *.out files
11192         * doc/sdccman.lyx: some additions, larger top/bottom margins
11193
11194 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11195
11196         * src/SDCC.y: fixed bug #837365
11197         * support/regression/tests/bitopcse.c
11198         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11199         a symbol (might be valop instead)
11200         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11201         * device/lib/clean.mk: added hc08 to the cleaning list
11202
11203 2003-11-04  Borut Razem <borut.razem AT siol.net>
11204
11205         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11206           made 2003-11-04
11207         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11208           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11209           malloc is declared in standard stdlib.h
11210
11211 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11212
11213         * device/lib/hc08/Makefile: need to clean .rel not .o files
11214         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11215
11216 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11217
11218         * src/port.h,
11219         * src/hc08/main.c,
11220         * src/mcs51/main.c,
11221         * src/ds390/main.c,
11222         * src/z80/main.c,
11223         * src/avr/main.c,
11224         * src/pic/main.c,
11225         * src/pic16/main.c,
11226         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11227         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11228         tests (which uses the port's oclsExpense function)
11229         * src/SDCC.y,
11230         * src/SDCCast.c,
11231         * src/SDCCicode.c,
11232         * src/hc08/gen.c,
11233         * src/ds390/gen.c,
11234         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11235
11236 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11237
11238         * src/SDCCcse.c (ifxOptimize),
11239         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11240         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11241         deleting the IFX iCode.
11242         * src/hc08/ralloc.c: reduced unneeded slocs
11243         * src/hc08/gen.c: fixed bug in asmopToBoolean
11244
11245 2003-11-04  Borut Razem <borut.razem AT siol.net>
11246
11247         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11248           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11249           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11250           transferred to configure
11251
11252 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11253
11254         Use headers defined in the C[++] standards:
11255         * sim/ucsim/gui.src/serio.src/fileio.cc
11256         * sim/ucsim/gui.src/serio.src/frontend.cc
11257         * sim/ucsim/gui.src/serio.src/main.cc
11258         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11259         * support/Util/NewAlloc.c
11260         * as/hc08/lklibr.c
11261         * as/mcs51/lklibr.c
11262         * as/z80/aslist.c
11263         * as/z80/assym.c
11264
11265 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11266
11267         * Added MSVC projects for hc08 assembler and linker:
11268         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11269         /as/hc08/link_hc08.dsp
11270
11271 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11272
11273         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11274
11275 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11276
11277         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11278
11279 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11280
11281         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11282
11283 2003-10-31  Borut Razem <borut.razem AT siol.net>
11284
11285         * support/cpp2/cpplib.h,
11286           support/cpp2/cpplib.c,
11287           support/cpp2/cpplex.c,
11288           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11289           to switch _asm block preprocessing on / off. Default is
11290           #pragma preproc_asm +
11291
11292 2003-10-31  Borut Razem <borut.razem AT siol.net>
11293
11294         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11295           when outputting comment blocks (when executed with -C option) and
11296           _asm (SDCPP specific) blocks
11297
11298 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11299
11300         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11301
11302 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11303
11304         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11305
11306 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11307
11308         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11309         * src/SDCCast.c (decorateType): fixed bug #832664
11310
11311 2003-10-31  Borut Razem <borut.razem AT siol.net>
11312
11313         * support/cpp2/cpplex.c: fixed for SDCPP:
11314           comments(when executed with -C option) and _asm blocks
11315           were included even if they where in skipped #if block.
11316           Applied solution from GCC cpp 3.3.2
11317
11318 2003-10-31  Borut Razem <borut.razem AT siol.net>
11319
11320         * src/SDCC.lex: sdcc now understands both formats:
11321           '# <line_number> <file_name>' and
11322           '#line <line_number> <file_name>'
11323         * support/cpp2/cppmain.c: sdcpp now generates the standard
11324           '# <line_number> <file_name>' instead of former
11325           '#line <line_number> <file_name>'
11326
11327 2003-10-30  Borut Razem <borut.razem AT siol.net>
11328
11329         * support/cpp2/cpphash.h,
11330         * support/cpp2/cpplib.h
11331         * support/cpp2/cpplex.c,
11332         * support/cpp2/cppmain.c,
11333         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11334
11335 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11336
11337         Fixed a number of problems revealed by bug #827883.
11338         * src/SDCCloop.c (loopInvariants): Spill location of the
11339         result operand should be recomputed if extracted from
11340         a loop. Also, don't extract assignments of an iTemp
11341         from a literal.
11342         * src/SDCCast.c (isConformingBody): loop reversal should
11343         not occur if the control variable is involved with a
11344         relational operator.
11345
11346 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11347
11348         * .version: bumped to 2.3.6 to reflect the big improvements
11349         made by Erik and Klaus. Thanks!
11350
11351 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11352
11353         Replaced the livrange code.
11354         * src/SDCClrange.c: added new LR code
11355         * src/SDCCloop.c,
11356         * src/SDCCBBlock.h: removed remainig parts from old LR code
11357         * src/ds390/ralloc.c,
11358         * src/ds390/gen.c: minor fixes to make it work with new code
11359
11360 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11361
11362         * as/hc08/asm.h,
11363         * as/hc08/lkrloc.c,
11364         * src/hc08/gen.c,
11365         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11366         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11367         (tweaked fix for bug #818696)
11368
11369 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11370
11371         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11372
11373 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11374
11375         * src/SDCCmain.c,
11376         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11377         * src/mcs51/gen.c (gencjneshort),
11378         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11379         more efficient (per Scott Bronson's suggestion)
11380
11381 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11382
11383         Extended the semantics of the critical keyword to include
11384         individual statements. See RFE #827755 and #799831
11385         * src/SDCC.y
11386         * src/SDCCicode.c
11387         * src/SDCCopt.c
11388         * src/SDCCast.c
11389         * support/Util/SDCCerr.c
11390         * support/Util/SDCCerr.h
11391         * src/mcs51/gen.c
11392         * src/ds390/gen.c
11393         * src/hc08/gen.c
11394
11395 2003-10-19  Borut Razem <borut.razem AT siol.net>
11396
11397         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11398
11399 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11400
11401         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11402         Fixed bug #818696
11403         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11404         and predecrement operand is displayed
11405
11406 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11407
11408         * src/SDCCval.c (valMinus): fixed bug #826041
11409
11410 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11411
11412         Some hc08 related updates that I missed earlier
11413         * sim/ucsim/stypes.h
11414         * support/regression/ports/hc08/spec.mk
11415
11416 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11417
11418         New target "hc08" for the Motorola 68hc08 family of micros
11419
11420         * configure
11421         * configure.in
11422         * Makefile
11423         * src/hc08/*
11424         * src/SDCCmain.c
11425         * src/port.h
11426         * sim/ucsim/hc08.src/*
11427         * sim/ucsim/configure.in
11428         * src/ucsim/configure
11429         * sim/ucsim/packages_in.mk
11430         * as/hc08/*
11431         * as/Makefile
11432         * device/include/mc68hc908qy.h
11433         * device/lib/hc08/*
11434         * device/lib/Makefile.in
11435         * support/regression/ports/hc08/*
11436         * support/regression/Makefile
11437
11438 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11439
11440         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11441         regression test
11442         * src/ds390/gen.c (genCast): fixed bug #821957
11443
11444 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11445
11446         * device/lib/logf.c: "fixed" overlay bug
11447         * support/regression/ports/host/spec.mk: added m library
11448         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11449         * support/regression/tests/float_trans: added (for Eric)
11450
11451 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11452
11453         * src/mcs51/gen.c (genCpl): fixed bug
11454         http://sf.net/mailarchive/message.php?msg_id=6263915
11455
11456 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11457
11458         * src/SDCCast.c (decorateType): added extended constant folding
11459         * src/SDCCsymt.c (computeType): cleanup
11460         * src/SDCCval.c (valShift): minor optimization
11461         * support/regression/tests/ast_constant_folding.c: added
11462
11463 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11464
11465         * src/SDCCmain.c: removed some unintended changes
11466
11467 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11468
11469         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11470         * src/z80/gen.c: fixed part of bug #817589
11471         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11472
11473 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11474
11475         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11476         * src/SDCCcflow.c
11477         * src/SDCCcse.c
11478         * src/SDCCdflow.c
11479         * src/SDCClabel.c
11480         * src/SDCClrange.c
11481         * src/SDCCmem.c
11482         * src/SDCCopt.c
11483         * src/SDCCpeeph.c
11484         * src/SDCCset.c
11485         * src/avr/ralloc.c
11486         * src/ds390/ralloc.c
11487         * src/izt/ralloc.c
11488         * src/mcs51/ralloc.c
11489         * src/pic/ralloc.c
11490         * src/pic16/ralloc.c
11491         * src/xa51/ralloc.c
11492         * src/z80/ralloc.c
11493         * src/z80/gen.c: removed unused label "release:"
11494
11495 2003-10-06  Borut Razem <borut.razem AT siol.net>
11496
11497         * src/SDCC.lex: removed definition of unused variables
11498           save_optimize and save_options
11499
11500 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11501
11502         * clean.mk: removed '=' in "-maxdepth=1"
11503         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11504         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11505
11506 2003-10-06  Borut Razem <borut.razem AT siol.net>
11507
11508         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11509           my_unput() replaced by unput()
11510
11511 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11512
11513         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11514         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11515         type-punned pointer will break strict-aliasing rules"
11516         Old LR behaviour is again default; Klaus' LR can be choosen by
11517         defining the environment variable LRKLAUS
11518         * src/SDCCBBlock.h
11519         * src/SDCCloop.c
11520         * src/SDCClrange.c
11521         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11522         * clean.mk: fixed removal of files in bin/CVS/
11523         * device/lib/clean.mk: fixed removal of directories small and large
11524         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11525         * src/SDCCicode.c,
11526         * src/SDCCval.c: removed superflous test for pedantic
11527
11528 2003-10-05  Borut Razem <borut.razem AT siol.net>
11529
11530         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11531           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11532           message "unmatched #pragma SAVE and #pragma RESTORE"
11533
11534 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11535
11536         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11537           assembly, critical functions, atomic, nojtbound)
11538
11539 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11540
11541         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11542         * src/SDCCBBlock.h
11543         * src/SDCCloop.c
11544         * src/SDCCloop.h
11545         * src/SDCClrange.c
11546
11547 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11548
11549         * src/z80/gen.h,
11550         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11551         * src/mcs51/gen.h
11552         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11553         * src/ds390/gen.h
11554         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11555         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11556         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11557
11558 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11559
11560         * src/z80/gen.c (genRet): fixed bug #524753
11561         * src/z80/gen.c (genCast): fixed internal error on cast from
11562         pointer to long
11563         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11564         fix for bug #477835 to the z80
11565         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11566         for tracking iCodes in the peephole optimizer for z80
11567
11568 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11569
11570         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11571         the other part of bug #814548
11572         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11573
11574 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11575
11576         * src/SDCCcse.c: fixed part of bug #814548
11577
11578 2003-09-28  Borut Razem <borut.razem AT siol.net>
11579
11580         * src/asm.c: rewrite of printILine() to use temporary file instead
11581           a pipe
11582         * src/xa51/main.c: commented out declaration of int rewinds
11583
11584 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11585
11586         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11587
11588 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11589
11590         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11591         * src/asm.c (printILine): Fixed bug #811015
11592
11593 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11594
11595         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11596         freeing.
11597
11598 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11599
11600         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11601         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11602         to correctly handle general case of AOP_PAIRPTR
11603         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11604
11605 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11606
11607         * src/mcs51/ralloc.c (fillGaps),
11608         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11609         register positioning bug)
11610
11611 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11612
11613         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11614
11615 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11616
11617         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11618         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11619         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11620         (ralloc doesn't intentionally do this now, but perhaps later)
11621         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11622         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11623         register positioning bugs (Fixed bug #762602 and #795325)
11624         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11625         (Fixed bug #808779)
11626         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11627         lines that --i-code-in-asm generates
11628
11629 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11630
11631         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11632         trying to fclose a FILE* that was already closed.
11633
11634 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11635
11636         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11637         of const struct should be treated as if const themselves)
11638
11639 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11640
11641         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11642
11643 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11644
11645         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11646         Unix (/n) and DOS (/r/n) line terminations.
11647
11648 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11649
11650         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11651         bug #613775
11652
11653 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11654
11655         * src/mcs51/gen.c (genFunction, genEndFunction),
11656         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11657         and restore of EA so that stack offsets to parameters are
11658         correct when using both critical and reentrant/stack-auto.
11659         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11660         size (can be triggered in error if sloc is shared between
11661         different sized objects)
11662         * device/include/float.h: fixed macros to explicitly use
11663         unsigned long where needed
11664
11665 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11666
11667         Feature req. 799831: added code to allow nesting of critical functions
11668         * src/mcs51/gen.c (genFunction, genEndFunction)
11669         * src/ds390/gen.c (genFunction, genEndFunction)
11670
11671 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11672
11673         * src/SDCCsymt.c (sclsFromPtr),
11674         * src/SDCCsymt.h,
11675         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11676         support for standard C idiom of memory mapped variables; for
11677         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11678         to xdata int at 0x1234 tempvar = 1.
11679         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11680         provided by Akiya ISHIDA
11681
11682 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11683
11684         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11685         * src/SDCCval.c (constVal): added reduction from int to char
11686         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11687         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11688         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11689         to ignore the sign
11690         * support/regression/tests/shifts.c: fixed
11691
11692 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11693
11694         * src/z80/gen.c (genXor): Fixed bug #805445
11695
11696 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11697
11698         Fixed bug #621531 (const & volatile confusion in the type chain).
11699         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11700         refer to the const or volatile state of the pointer itself.
11701
11702         * src/SDCCast.c
11703         * src/SDCCglue.c
11704         * src/SDCCicode.c
11705         * src/SDCCsymt.c
11706         * src/SDCCval.c
11707         * src/SDCC.y
11708         * src/SDCCsymt.h
11709         * src/pic/gen.c
11710         * src/pic/ralloc.c
11711         * src/pic16/gen.c
11712         * src/pic16/ralloc.c
11713         * support/regression/tests/const.c
11714
11715 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11716
11717         When checking for duplicated modules, use absolute paths
11718         instead of relative paths.  Files changed:
11719
11720         * as/mcs51/lklib.c
11721         * link/z80/lklib.c
11722
11723 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11724
11725         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11726
11727 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11728
11729         * device/include/string.h: added size_t typedef, changed
11730         prototypes to use size_t, eliminated separate reentrant and
11731         non-reentrant declarations, added _memmove declaration
11732         * device/lib/_memcpy.c: changed to use size_t instead of int,
11733         changed /4 to >>2 to avoid division library call
11734         * device/lib/_memcmp.c,
11735         * device/lib/_memset.c,
11736         * device/lib/_strncat.c,
11737         * device/lib/_strncpy.c,
11738         * device/lib/_strncmp.c: changed to use size_t instead of int
11739         * device/lib/_memmove.c: new file (fixed bug #772294)
11740         * device/lib/Makefile.in: added _memmove.c
11741         * device/lib/z80/asm_strings.s: fixed bug #772290
11742         * support/regression/tests/bitfields.c: attempt to fix host assertion
11743         failure on amd64-unknown-linux2.2
11744
11745 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11746
11747         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11748         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11749         * as/z80/asmain.c (main): fixed bug #801766
11750
11751 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11752
11753         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11754         compilers
11755
11756 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11757
11758         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11759         reported in bug #800609
11760
11761 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11762
11763         * Top header beautifications in src/pic16 directory:
11764           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11765           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11766           pcoderegs.h, ralloc.c, ralloc.h
11767         * main.c: added top header and GPL license notice
11768         * pcode.c: fixed the if-conditional warning
11769
11770 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11771
11772         * device/lib/_mullong.c: replaced int by short for gcc
11773
11774 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11775
11776         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11777         and JUMPTABLE iCodes properly now (worked by accident before)
11778         * src/mcs51/gen.c (leftRightUseAcc),
11779         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11780         iCode properly now. Use getSize instead of nRegs since a & b
11781         aren't part of the nRegs tally.
11782
11783 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11784
11785         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11786         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11787           before instructions that use the _STATUS register
11788
11789 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11790
11791         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11792         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11793         fetching of the pointer
11794         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11795         copied from genNearPointerSet()
11796         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11797         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11798         If they pop r0/r1 they must be called in the opposite order than aopOp().
11799         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11800         (resp. --stack-auto), prepared for --xstack
11801
11802 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11803
11804         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11805
11806 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11807
11808         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11809         these ports have their own __sdcc_external_start()
11810
11811 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11812
11813         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11814         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11815         type for bits was changed. It resulted in bit variables becoming
11816         global, which is not permitted in PIC 14 assembly output.
11817
11818 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11819
11820         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11821
11822 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11823
11824         Z80 and MCS51 linkers complaint if a public symbol is defined
11825         in more than one library module:
11826
11827         * as/mcs51/lklib.c
11828         * link/z80/lklib.c
11829         * as/mcs51/Makefile.in
11830
11831 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11832
11833         A few small changes that speed up the peephole optimizer.
11834
11835         * src/SDCCpeeph.c
11836
11837 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11838
11839         Try to make the peephole optimizer smarter by maintaining
11840         an association between the assembly source code and the
11841         iCodes that originated them. Put this information to use
11842         with a new peephole rule condition "notVolatile" so that
11843         the rules can be aggressive yet still safe.
11844
11845         * src/SDCCpeeph.c
11846         * src/SDCCpeeph.h
11847         * src/mcs51/gen.c
11848         * src/mcs51/peeph.def
11849
11850 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11851
11852         Fixed bug #741761
11853
11854         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11855         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11856         if the left or right operand symbols have the accuse flag set.
11857
11858 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11859
11860         Changed the type of the result of the ! (NOT) operator to char;
11861         previously it returned the same type as the source. This allows
11862         us to eliminate all the genFloatNot functions (all of its target
11863         implementations were very buggy) since !float can use the same
11864         code as !long now.
11865
11866         * src/SDCCicode.c (ast2iCode): ! returns char
11867         * src/mcs51/gen.c (genNot, genNotFloat),
11868         * src/ds390/gen.c (genNot, genNotFloat),
11869         * src/z80/gen.c (genNot, genNotFloat),
11870         * src/pic/gen.c (genNot, genNotFloat),
11871         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11872
11873 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11874
11875         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11876         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11877            during interrupts. Ensure WSAVE is located at a shared bank address.
11878         2. Fixed page selection in some places
11879         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11880            the registers name strings.
11881         4. Fixed "signed / unsigned compare" compiler warnings.
11882         5. The PIC port manages its own allocation of the general purpose
11883            registers, but makes no attempt to reuse them. As a result when
11884            compiling it soon runs out of general purpose registers. Some
11885            additional code was added to the files pcode.c and device.c to walk
11886            through the function call tree and rename the registers so that they
11887            get reused.
11888
11889         * src/pic/device.c
11890         * src/pic/gen.c
11891         * src/pic/glue.c
11892         * src/pic/pcode.c
11893         * src/pic/pcode.h
11894         * src/pic/ralloc.c
11895         * src/pic/ralloc.h
11896         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11897         genPlus() & genMinus() when the result is the same as left or right
11898
11899 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11900
11901         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11902
11903 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11904
11905         Made bitfield a distinct type from bit so that bitfields
11906         convert as per ANSI C and bits retain their traditional
11907         boolean style behaviour. Implemented bitfield support in
11908         the z80 port.
11909
11910         * src/SDCCsymt.h,
11911         * src/SDCCsymt.c,
11912         * src/SDCCast.c,
11913         * src/cdbFile.c,
11914         * src/mcs51/gen.c,
11915         * src/ds390/gen.c: bit v bitfield split
11916         * src/z80/gen.c: New support for bitfields
11917         * support/regression/tests/bitfields.c: reenabled z80,
11918         added more tests
11919
11920 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11921
11922         Rules 246.x, 247.x relate to bitfields, the others speed up
11923         access to xdata mapped I/O devices.
11924
11925         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11926
11927 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11928
11929         Cleaned up genPackBits and genUnpackBits and added two helper
11930         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11931         for literal assignments in genPackBits (thanks to Frieder for
11932         reminding me).
11933
11934         * src/mcs51/gen.c
11935         * src/ds390/gen.c
11936
11937 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11938
11939         Fixed bug #748310 (pointer to function type mishandled when the
11940         function name is omitted). Also fixed a SIGSEGV when a function
11941         attribute (reentrant, etc) is used on a non-function or on a
11942         function but misplaced before the parameter list.
11943
11944         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11945         bug #748310
11946         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11947         * support/Util/SDCCerr.h,
11948         * support/Util/SDCCerr.c: Added func attr misuse error msg
11949
11950 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11951
11952         Fixed bug #787649 by anonymous
11953         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11954         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11955
11956 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11957
11958         Fixed numerous bitfield problems.
11959
11960         * src/SDCC.y: More bitfield related error checking
11961         * src/SDCCsymt.h,
11962         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11963         * support/Util/SDCCerr.h,
11964         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11965         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11966         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11967         * support/regression/tests/bitfields.c: tests added
11968
11969 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11970
11971         Made the constant following the "interrupt" keyword optional. If
11972         omitted, the function will not automatically be given an entry
11973         in the interrupt vector table (similar to #pragma NOIV, but
11974         less syntacticly kludgy). The interrupt number is also now
11975         range checked. Also fixed a bug in the high order bit example
11976         in the manual.
11977
11978         * src/SDCC.y
11979         * src/SDCCmem.c
11980         * src/SDCCglue.c
11981         * src/SDCCsymt.h
11982         * support/Util/SDCCerr.c
11983         * support/Util/SDCCerr.h
11984         * doc/sdccman.lyx
11985
11986 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11987
11988         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11989         * src/SDCCicode.c (operandOperation): rewritten some ops
11990         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11991         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11992         other type
11993         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11994         be re-activated by defining REDUCE_LITERALS)
11995         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11996         unsigned, but are signed by default
11997         * src/SDCCval.c (constVal): rearranged
11998         * src/SDCCval.c (valMod): preliminary fix
11999         * src/SDCCval.c (valCastLiteral): use TYPE_* types
12000         * support/regression/literalop.c: added, work in progress
12001
12002 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12003
12004         Generate warnings for useless declarations like "char data;"
12005         that don't do what new users expect.
12006
12007         * src/SDCC.y
12008         * support/Util/SDCCerr.h
12009         * support/Util/SDCCerr.c
12010
12011 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
12012
12013         * src/SDCCval.c (valMult): fix overflow detection of negative int
12014
12015 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12016
12017         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12018
12019         Changes to support big endian targets:
12020
12021         * src/ports.h
12022         * src/SDCCglue.c
12023         * src/avr/main.c
12024         * src/ds390/main.c
12025         * src/izt/i186.c
12026         * src/mcs51/main.c
12027         * src/pic/main.c
12028         * src/pic16/main.c
12029         * src/xa51/main.c
12030         * src/z80/main.c
12031
12032 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
12033
12034         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12035         * device/lib/time.c: fixed warning "integer overflow in expression"
12036
12037 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
12038
12039         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12040         * src/SDCCval.c (constVal): changed default to signed; hex and octal
12041         constants are unsigned; added recognition of "u" flag for unsigned
12042         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12043         * src/SDCCval.c (valDiv, valMod): fixed signdness
12044         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12045         signedness of modulo, left and right shift
12046         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12047         * support/Util/SDCCerr.h: added warning W_INT_OVL
12048         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12049         * src/SDCCast.c (ast_print): improved output of constants
12050
12051 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12052
12053         Fixed some warnings when building with MSVC:
12054
12055         * as/mcs51/asdata.c
12056         * as/z80/asdata.c
12057         * as/mcs51/asm.h
12058         * as/z80/asm.h
12059         * link/z80/aslink.h
12060         * link/z80/lkdata.c
12061         * link/z80/lkeval.c
12062         * link/z80/lkgb.c
12063         * link/z80/lkihx.c
12064         * link/z80/lks19.c
12065         * link/z80/lksym.c
12066         * support/cpp2/cpplib.c
12067         * src/ds390/gen.c
12068         * src/mcs51/gen.c
12069
12070 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
12071
12072         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12073
12074 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12075
12076         * support/librarian/clean.mk: Do not remove Makefile.
12077         * support/librarian/Makefile: added.
12078
12079 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12080
12081         Added librarian to MSVC build:
12082         * all.dsp
12083         * sdcc.dsw
12084         * support/librarian/librarian.dsp
12085
12086         'configure' not needed for librarian, removed:
12087         * support/librarian/configure
12088         * support/librarian/configure.in
12089         * support/librarian/config_in.h
12090         * support/librarian/Makefile.in
12091
12092         Hopefully these ones built the librarian and the rest of sdcc properly:
12093         * Makefile
12094         * Makefile.common.in
12095
12096         Messed up 'configure', so revert to previous version:
12097         * configure
12098         * configure.in
12099
12100 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
12101
12102         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12103         there, while the mantissa of a double is "only" 53 bits wide.
12104
12105 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12106
12107         Adding sdcclib to the build.  MSVC project coming soon.
12108         Files added/changed:
12109
12110         * support/librarian/clean.mk
12111         * support/librarian/configure
12112         * support/librarian/configure.in
12113         * support/librarian/config_in.h
12114         * support/librarian/Makefile.bcc
12115         * support/librarian/Makefile.in
12116         * support/librarian/sdcclib.c
12117         * Makefile.bcc
12118         * Makefile
12119         * Makefile.common.in
12120         * configure
12121         * configure.in
12122
12123 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12124
12125         Linker now complaints if linked modules have conflicting options, for
12126         example, one compiled using --model-large and another one compiled with
12127         --model-small.  The following files were modified:
12128
12129         * as/mcs51/asdata.c
12130         * as/mcs51/aslink.h
12131         * as/mcs51/asm.h
12132         * as/mcs51/asmain.c
12133         * as/mcs51/asout.c
12134         * as/mcs51/i51pst.c
12135         * as/mcs51/lkdata.c
12136         * as/mcs51/lklibr.c
12137         * as/mcs51/lkmain.c
12138         * as/z80/asdata.c
12139         * as/z80/asm.h
12140         * as/z80/asmain.c
12141         * as/z80/asout.c
12142         * as/z80/z80pst.c
12143         * link/z80/aslink.h
12144         * link/z80/lkdata.c
12145         * link/z80/lklibr.c
12146         * link/z80/lkmain.c
12147         * src/SDCCglue.c
12148
12149 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12150
12151         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12152         as/mcs51/lklibr.c: Generate a warning when a library is not found.
12153
12154 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
12155
12156         * src/z80/mappings.i: fix _mul[us][int,long] entries
12157
12158 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12159
12160         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12161
12162 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12163
12164         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12165         * support/regression/tests/bitopcse.c: added
12166         fixed warning:
12167         * src/avr/gen.c:
12168         * src/pic/gen.c:
12169         * src/pic16/gen.c:
12170         * src/z80/gen.c:
12171         * src/xa51/gen.c:
12172
12173 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12174
12175         added support for new library format to z80, gbz80 linkers:
12176         *link/z80/aslink.h
12177         *link/z80/lklex.c
12178         *link/z80/lklib.c
12179         *link/z80/lklist.c
12180
12181 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
12182
12183         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12184         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12185
12186 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
12187
12188         added DUMMY_READ_VOLATILE:
12189         * src/SDCC.y:
12190         * src/avr/gen.c:
12191         * src/xa51/gen.c:
12192         * src/z80/gen.c:
12193         * src/pic/gen.c:
12194         * src/pic16/gen.c:
12195         * src/mcs51/gen.c:
12196         * src/ds390/gen.c:
12197         * src/SDCCcse.c (algebraicOpts): many improvements
12198         * src/SDCCcse.h: removed algebraicOpts()
12199         * src/SDCCicode.c (picDummyRead): added
12200
12201 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12202
12203         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12204         "Insufficient space in data memory".
12205
12206 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12207
12208         * src/mcs51/gen.c: fixed bug #771358
12209         * src/z80/gen.c: fixed bug #759087
12210
12211 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12212
12213         * src/pic16/glue.c: minor cleanup by Vangelis
12214
12215 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12216
12217         * device/include/regc515c.h: fixed #758477
12218         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12219         * device/lib/_gptrput.c: saved a few bytes
12220         * my tab spacing is 8, yours too?)
12221         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12222         * device/lib/serial.c: process RX bytes earlier than TX bytes
12223         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12224
12225 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12226
12227         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12228
12229 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12230
12231     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12232
12233 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12234
12235         * device/lib/Makefile.in: bad fix, reverted to 1.43
12236
12237 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12238
12239         * device/lib/Makefile.in: added missing z80 object files
12240
12241 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12242
12243         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12244         pic16 progress by Vangelis:
12245         * src/SDCCglobl.h:
12246         * src/SDCCmain.c:
12247         * src/pic/Makefile:
12248         * src/pic:
12249         * pic/Makefile:
12250         * pic16/device.c:
12251         * pic16/device.h:
12252         * pic16/gen.c:
12253         * pic16/gen.h:
12254         * pic16/genarith.c:
12255         * pic16/glue.c:
12256         * pic16/main.c:
12257         * pic16/pcode.c:
12258         * pic16/pcode.h:
12259         * pic16/pcodepeep.c:
12260         * pic16/peeph.def:
12261
12262 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12263
12264     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12265
12266 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12267
12268     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12269     added gbz80 build to MSVC project.
12270     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12271     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12272     from 8051 stuff and setup so it links using a .lnk file.
12273
12274 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12275
12276     * support/librarian/sdcclib.c: sdcc librarian.
12277     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12278     with sdcclib.
12279
12280 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12281
12282     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12283
12284 2003-07-02  Borut Razem <borut.razem AT siol.net>
12285
12286         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12287         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12288         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12289         src/xa51/main.c, src/z80/main.c:
12290         virtualization of glue() function: each port has it's own glue function,
12291         which is accessed by do_glue function pointer in PORT.general structure
12292
12293 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12294
12295         * DS800C400 fun, improved ROM interface and tinibios.
12296
12297 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12298
12299         * More support for DS80C400. Now includes beginning of interface to ROM.
12300
12301 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12302
12303         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12304
12305 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12306
12307         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12308
12309 2003-06-19  Borut Razem <borut.razem AT siol.net>
12310
12311         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12312
12313 2003-06-19  Borut Razem <borut.razem AT siol.net>
12314
12315         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12316         fixed Z80 port - crt0.o: cannot open.
12317
12318 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12319
12320         * support/Util/MySystem.c (merge_command): revert bad fix
12321
12322 2003-06-18  Borut Razem <borut.razem AT siol.net>
12323
12324         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12325
12326 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12327
12328         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12329         option --use-stdout sends errors to stdout instead of stderr.
12330
12331 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12332
12333         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12334
12335 2003-06-15  Borut Razem <borut.razem AT siol.net>
12336
12337         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12338         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12339         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12340         fixed width array of pointers replaced with sets;
12341         multiple include and lib paths ared transferred to preprocessor and linker
12342         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12343         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12344         fixed width array of pointers
12345         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12346         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12347         fixupPath(), getPathDifference()
12348         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12349         fixed width array of pointers
12350
12351 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12352
12353         * src/pic16/ralloc.c: fix warnings
12354         * src/pic16/pcode.c: fix warning
12355
12356 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12357
12358          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12359         know all the details, but essentially this set of changes enable
12360         the pic16 port to generate movff instructions and generate assembler
12361         directives,
12362         * src/SDCCmain.c:
12363         * src/pic16/gen.c:
12364         * src/pic16/glue.c:
12365         * src/pic16/pcode.c:
12366         * src/pic16/device.c:
12367         * src/pic16/main.c:
12368         * src/pic16/pcode.h:
12369         * src/pic16/pcoderegs.c:
12370         * src/pic16/ralloc.c:
12371         * src/pic16/ralloc.h:
12372
12373 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12374
12375         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12376         added option --vc, so sdcc errors and warnings are compatible with
12377         Microsoft Visual Studio.
12378
12379 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12380
12381         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12382           device/lib/libfloat.lib: added atof function.
12383
12384 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12385
12386         * doc/sdccman.lyx: updated to Lyx 1.3
12387         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12388         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12389         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12390
12391 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12392
12393         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12394
12395 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12396
12397         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12398           additions to the "related tools/documentation" section
12399
12400 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12401
12402         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12403
12404 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12405
12406         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12407         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12408
12409 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12410
12411         * doc/sdccman.lyx: fix double dash and other minor things
12412         * doc/Makefile: fix double dash
12413
12414 2003-05-28  Karl Bongers(patches from Martin Helmling)
12415         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12416           condition and ignore commands.
12417
12418 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12419
12420         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12421           is in parts still quite out of date, I did changes as far as I felt makes sense
12422           for a non-native english speaker.
12423           Please feel free to add to the manual or to correct my changes.
12424         * doc/Makefile: undid touching the date of intermediate tex files.
12425
12426 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12427
12428         * doc/sdccman.lyx: Manual has an index now
12429
12430 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12431
12432         Finalize muluint/mulsint and mululong/mulslong merging:
12433         * device/lib/_mulint.c
12434         * device/lib/_mullong.c
12435         * device/lib/gbz80/mul.s
12436         * device/lib/gbz80/stubs.s
12437         * device/lib/z80/mul.s
12438         * device/lib/z80/stubs.s
12439         * src/SDCCsymt.c (initCSupport)
12440
12441 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12442
12443         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12444         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12445           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12446           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12447           instead of /Zm500.
12448
12449 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12450
12451         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12452           the regression tests I'm not brave enough to enable 245.b, 245.c
12453         * doc/sdccman.lyx: added latex preamble for hyperref package.
12454           Using pdflatex this will give you a hyperlinked pdf file with
12455           bookmarks. (prepend '%' before /usepackage if this breaks something)
12456
12457 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12458
12459          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12460
12461 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12462
12463         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12464
12465 2003-05-21    <johan AT balder>
12466
12467         * src/SDCCglue.c (printIval): fixed bug #739934
12468
12469 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12470
12471         Applied patch from bug 737905 (renamed yylineo to mylineno):
12472         * src/altlex.c
12473         * src/SDCCast.c
12474         * src/SDCglobl.h
12475         * src/SDCC.lex
12476         * src/SDCCsymt.c
12477         * src/SDCCval.c
12478         * src/pic16/pcode.c: Cleaned warnings
12479         * src/pic16/pcodeflow.c: Cleaned warnings
12480         * src/pic16/pcoderegs.c: Cleaned warnings
12481
12482 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12483
12484         * src/pic16/pcode.c: Cleaned warnings
12485         * src/pic16/pcodepeep.c: Cleaned warnings
12486         * src/pic16/ralloc.c: Cleaned warnings
12487
12488 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12489
12490         * doc/sdccman.lyx: fixed bug 739745
12491         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12492
12493 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12494
12495         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12496         it can be defined with CFLAGS when running configure
12497         * src/SDCCmain.c: fixed compiling + linking with object files
12498
12499 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12500
12501         * configure.in: configure for pic16 port,
12502             added --disable-pic16-port
12503         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12504         * src/SDCCmain.c: linkOptions is changed to set *,
12505             added if/endif conditional macros to remove options help
12506             messages from optionsTable when a port is not configured, added
12507             support for the PIc16 port in the ports table, when executing
12508             the compiler with no port specified on command line, a default
12509             port is selected with the new macro DEFAULT_PORT which is
12510             defined in port.h, in setDefaultOptions() linkOptions is removed
12511             from initialization assignment, since now it is a set,
12512             parseCmdLine uses setParseWithComma for linkOptions, in
12513             linkEdit() linkOptions are accessed with new function indexSet()
12514             which returns the i'th item of a set variable. See SDCCset.c, in
12515             linkEdit() when calling buildCmdLine(), added linkOptions as
12516             last argument. Now users can pass arguments to gplink via the
12517             -Wl option, main() uses pic16glue() to glue up pic16 programs
12518         * src/SDCCpeeph.c: various changes to support pic16
12519         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12520             return the i'th item of the set
12521         * src/SDCCset.h: added function prototype for indexSet()
12522         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12523         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12524         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12525             added macro DEFAULT_PORT
12526         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12527         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12528             generated
12529         * src/pic16/glue.c: commented out some error producing lines
12530         * src/pic16/main.c: __config directives are commented out to stop
12531             gpasm complaining and test the linkage with gplink, _linkCmd and
12532             _asmCmd changed to be more gplink and gpasm friendly
12533         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12534             produced an error when parsed, peep rule 12 is added to utilize
12535             movff, but it is commented out since the pCode does not support
12536             yet a command with 2 address arguments
12537
12538 2003-05-18    <johan AT balder>
12539
12540         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12541         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12542 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12543
12544         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12545   Added feature to script commands from file.
12546
12547 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12548
12549         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12550         * src/SDCCutil.c: include ctype.h for win32
12551
12552 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12553
12554         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12555
12556 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12557
12558         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12559   Fixed so you can set breakpoints prior to run, run does not stop
12560   on entry now.  Add tbreak.  Other enhancements and fixes for use
12561   with ddd.
12562
12563 2003-05-12  Borut Razem <borut.razem AT siol.net>
12564
12565         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12566
12567 2003-05-11  Borut Razem <borut.razem AT siol.net>
12568
12569         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12570         the path of bin directory, so that PATH is the only env. variable, which has to be set
12571         in case of standard installation.
12572         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12573         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12574         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12575
12576 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12577
12578         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12579         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12580         temp files are in the port dir; clean the gen/test directory when
12581         generating new test.c
12582         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12583         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12584         * support/regression/tests/zeropad.c: added
12585
12586 2003-05-09    <johan AT balder>
12587
12588         * src/SDCCglue.c: fixed bug #597940
12589
12590 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12591
12592         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12593   cache sfr, optimize next,step, fix off by one sourceline,
12594   support ddd list function.
12595         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12596
12597 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12598
12599         * support/regression/HTMLgen.py: added compare_s2f()
12600         * support/regression/Makefile: redo 1.27
12601         * support/regression/generate-cases.py: redo 1.5
12602
12603 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12604
12605         * support/regression/tests/float.c: workaround 33 bit hex constant
12606         * support/regression/tests/simplefloat.c: fix division for host
12607
12608 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12609
12610         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12611         that tame's the PIC's over-aggressive optimizer.
12612
12613 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12614
12615          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12616          support for MSVC.
12617
12618 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12619
12620         Initial support for DS80C400. "Hello world" runs on TINIm400
12621         (with polled I/O).
12622
12623 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12624
12625          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12626          * Some notes on ddd usage added in debugger/README
12627          Martin Helmling adding more features and fixes for ddd GUI debugger.
12628          Code added for nexti, stepi, up, down, and other adjustments.
12629
12630 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12631
12632         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12633         * src/pic/peeph.def Added two rules to optimize carry manipulation
12634         * src/pic/* removed debug printfs
12635
12636 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12637
12638         * debugger/mcs51/cmd.c: added header newalloc.h
12639
12640 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12641
12642         * as/Makefile: new EXEEXT
12643         * as/z80/Makefile: remove trailing slash of BUILDIR
12644         * as/z80/clean.mk: new EXEEXT
12645         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12646         * support/cpp2/Makefile.in: new EXEEXT
12647         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12648
12649 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12650
12651         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12652         EXEEXT was introduced to fix all related problems with targets
12653         "clean", "install" and "uninstall"; a couple of further flaws
12654         especially with "clean" have been fixed too
12655         * as/mcs51/Makefile.in
12656         * as/mcs51/clean.mk
12657         * as/z80/Makefile
12658         * Makefile
12659         * clean.mk
12660         * debugger/mcs51/Makefile.in
12661         * debugger/mcs51/clean.mk
12662         * link/z80/Makefile
12663         * link/z80/Makefile.in
12664         * link/z80/clean.mk
12665         * link/Makefile
12666         * packihx/Makefile.in
12667         * packihx/clean.mk
12668         * sim/ucsim/Makefile
12669         * sim/ucsim/clean.mk
12670         * sim/ucsim/avr.src/Makefile.in
12671         * sim/ucsim/avr.src/clean.mk
12672         * sim/ucsim/s51.src/Makefile.in
12673         * sim/ucsim/s51.src/clean.mk
12674         * sim/ucsim/xa.src/Makefile.in
12675         * sim/ucsim/xa.src/clean.mk
12676         * sim/ucsim/z80.src/Makefile.in
12677         * sim/ucsim/z80.src/clean.mk
12678         * sim/ucsim/main_in.mk
12679         * sim/ucsim/packages_in.mk
12680         * sim/ucsim/gui.src/Makefile.in
12681         * sim/ucsim/gui.src/serio.src/Makefile.in
12682         * sim/ucsim/gui.src/serio.src/clean.mk
12683         * src/Makefile.in
12684         * src/clean.mk
12685         * support/cpp2/Makefile.in
12686         * support/cpp2/clean.mk
12687         * support/makebin/Makefile
12688         * support/makebin/clean.mk
12689         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12690         * doc/sdccman.lyx: --program-suffix no longer needed
12691
12692 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12693
12694          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12695          Martin Helmling added support for ddd GUI debugger.
12696          Code added to display assembly, set variables, and other commands
12697          to interface to ddd.
12698
12699 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12700
12701         * as/Makefile: fix target clean
12702         * as/clean.mk: fix target clean
12703         * as/z80/clean.mk: fix target clean
12704
12705 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12706
12707         * Makefile.common.in: added  AT EXEEXT AT
12708         * configure.in: removed all mingw32 stuff
12709         * configure: rebuilt from configure.in
12710         * doc/sdccman.lyx: updated section "installation"
12711         * support/scripts/sdcc_mingw32: adapted to configure
12712         * support/scripts/sdcc_cygwin_mingw32: added
12713
12714 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12715
12716         * src/pic Added object file support for the PIC port
12717         * src/pic Applied patch from Craig Franklin (this started the object file support)
12718         * src/regression Updated the PIC regression tests for object files
12719
12720 2003-04-20  Borut Razem <borut.razem AT siol.net>
12721
12722         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12723           lklex.c: In function `getfid':
12724           lklex.c:203: warning: array subscript has type `char'
12725         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12726           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12727         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12728           stack handling macros
12729
12730 2003-04-19  Borut Razem <borut.razem AT siol.net>
12731
12732         * "handling space characters in file path" task:
12733         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12734         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12735         * support/Util/MySystem.h: make it self-sufficient
12736         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12737           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12738           handling space characters in file path
12739         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12740           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12741         * support/Util/MySystem.c: handling space characters in executable's path
12742
12743 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12744
12745         * as/z80/Makefile: fix permanent rebuild of z80
12746         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12747         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12748
12749 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12750
12751         * src/SDCCopt.c: add special case optimization to replace modulo by
12752           a power of two with a bitwise AND.
12753
12754 2003-04-18    <johan AT balder>
12755
12756         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12757
12758 2003-04-17    <johan AT balder>
12759
12760         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12761         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12762
12763 2003-04-13  Borut Razem <borut.razem AT siol.net>
12764
12765         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12766         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12767           fixed mingw problem in adl_NORMALIZE_PATH
12768
12769 2003-04-12  Borut Razem <borut.razem AT siol.net>
12770
12771         * fixed "#pragma SAVE/RESTORE can not be nested":
12772         * src/SDCC.lex: reworked pragma handling functions
12773         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12774         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12775
12776 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12777
12778         * src/SDCCutil.c (pathEquivalent): defined but not used
12779         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12780         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12781         * configure: rebuilt from configure.in
12782         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12783         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12784         * device/include/Makefile.in: replace sdcc_datadir
12785         * device/lib/Makefile.in: replace sdcc_datadir
12786         * Makefile.common.in: add LDFLAGS from configure
12787         * packihx/Makefile.in: use LDFLAGS
12788         * src/Makefile.in: use LDFLAGS
12789         * support/cpp2/Makefile.in: add LDFLAGS from configure
12790         * support/makebin/Makefile: use LDFLAGS
12791         * .version: bumped version number to 2.3.5
12792
12793 2003-04-12  Borut Razem <borut.razem AT siol.net>
12794
12795         * completed "different paths" task:
12796         * src/SDCCmacro.c: fixed bug in handling quotes
12797         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12798         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12799
12800 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12801
12802         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12803
12804 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12805
12806         * ds390/gen.c ds390/peeph.def: fix bug 706781
12807
12808 2003-04-11  Borut Razem <borut.razem AT siol.net>
12809
12810         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12811
12812 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12813
12814         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12815         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12816          set - this bit used to not be set...).
12817         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12818           bad code in PIC Port
12819         * src/regression/and2.c added to test bug 609268
12820         * src/regression/Makefile added and2.c to regression test
12821
12822
12823 2003-04-08    <johan AT CP255758-A>
12824
12825         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12826         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12827         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12828
12829 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12830
12831         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12832         fix bug #487815
12833         * support/cpp2/Makefile.in: fix bug #487815
12834         * configure: rebuilt from configure.in
12835         * Makefile.common.in: docdir changed, new path suffixes
12836         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12837         * sdcc_vc_in.h: reflect changes from sdccconf.h
12838         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12839         * src/SDCCutil.h: remove BINDIR hack
12840         * doc/sdccman.lyx: update new path hierarchy
12841
12842 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12843
12844         * src/SDCCpeeph.c: added okToRemoveSLOC test
12845
12846 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12847
12848         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12849
12850 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12851
12852         * src/SDCCpeeph.c: added labelIsReturnOnly test
12853         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12854
12855 2003-04-05    <johan AT balder>
12856
12857         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12858         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12859         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12860         * src/SDCCast.c: fixed a warning
12861         * src/SDCCast.h: fixed a warning
12862         * src/SDCCicode.c (operandFromAst): fixed a warning
12863
12864 2003-04-04    <johan AT balder>
12865
12866         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12867         * src/SDCCast.c (decorateType): fixed bug #715076
12868         * src/SDCC.y: fixed bug #702907
12869
12870 2003-04-03    <johan AT balder>
12871
12872         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12873         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12874         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12875         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12876         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12877
12878 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12879
12880         * _decdptr.c: fix return values
12881         * _gptrget.c: fix return values
12882         * _gptrgetc.c: fix return values
12883         * _gptrput.c: fix return values
12884         * _mulint.c: fix return values
12885         * as/z80/Makefile: fix 'make -j' problem
12886
12887 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12888
12889         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12890         * configure.in: big cleanup, updated to autoconf 2.5x
12891         * configure: rebuilt from configure.in
12892         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12893         * sdcc_vc_in.h: reflect changes from sdccconf.h
12894         * doc/Makefile: fixed a flaw in "make install"
12895
12896 2003-04-02    <johan AT balder>
12897
12898         * src/ds390/gen.c (genCmp): no comments
12899         * src/mcs51/gen.c (genCmp): no comments
12900         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12901         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12902
12903 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12904
12905         * support/regression/generate-cases.py: place generated file in given sub directory
12906         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12907         * support/regression/Makefile: improvements for 'make -j';
12908         side effect: it's simpler and faster now
12909
12910 2003-03-31  Borut Razem <borut.razem AT siol.net>
12911
12912         * src/z80/main.c: link-{port} and as-{port} defined without path
12913         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12914
12915 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12916
12917         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12918
12919 2003-03-30  Borut Razem <borut.razem AT siol.net>
12920
12921         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12922           changed type of list parameter to set
12923         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12924         * src/port.h: changed type of do_assemble() parameter to set
12925         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12926           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12927           definition of "cppoutfilename" macro with NULL value in preProcess()
12928         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12929         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12930         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12931           replaced with set *binPathSet
12932         * shash_add() deallocates the item, if allready exsists, before adding the new one
12933         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12934
12935 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12936
12937         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12938           a nested for loop bug in the PIC port
12939         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12940           for loops
12941
12942 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12943
12944         * support/Util/dbuf.h: remove C++ stuff to make it portable
12945
12946 2003-03-28  Borut Razem <borut.razem AT siol.net>
12947
12948         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12949           literal strings in stringLiteral()
12950         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12951         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12952           to the project
12953
12954 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12955
12956         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12957
12958 2003-03-26    <johan AT balder>
12959
12960         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12961         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12962         * src/SDCCast.c (decorateType): fixed " -v < 3"
12963
12964 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12965
12966         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12967         Added Lenny Story's debug infrastructure changes:
12968         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12969         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12970         * src/cdbFile.c: added
12971         * src/SDCCdebug.c: added
12972         * src/SDCCdebug.h: added
12973         * src/SDCCast.c (createFunction)
12974         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12975         * src/SDCCmain.c (parseCmdLine, main)
12976         * src/SDCCmem.c (redoStackOffsets)
12977         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12978         * src/SDCCsymt.h
12979         * src/common.h
12980         * src/avr/gen.c (genAVRCode)
12981         * src/ds390/gen.c (gen390Code)
12982         * src/mcs51/gen.c (gen51Code)
12983         * src/pic/gen.c (genpic14Code)
12984         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12985         * src/xa51/gen.c (genXA51Code)
12986         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12987
12988 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12989
12990         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12991         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12992
12993 2003-03-22    <johan AT balder>
12994
12995         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12996
12997 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12998
12999         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13000         * doc/cdbfileformat.lyx: added, written by Lenny Story
13001         * doc/Makefile: added cdbfileformat.lyx
13002         * doc/clean.mk: added cdbfileformat.lyx
13003
13004 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
13005
13006         * src/mcs51/peeph.def: fix bug #705773
13007
13008 2003-03-20    <johan AT balder>
13009
13010         An sfr/sbit can have an "at #" AND an initializer
13011         * src/SDCCsymt.c (checkSClass):
13012         * src/SDCCmem.c (allocGlobal):
13013         * src/SDCCmem.c (allocLocal):
13014         * src/SDCCast.c (createBlock):
13015
13016 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
13017
13018         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13019
13020 2003-03-16    <johan AT balder>
13021
13022         Undid the hackup of const and volatile, the problem is much bigger
13023         * src/SDCC.y:1.65
13024         * src/SDCCast.c:1.171
13025         * src/SDCCglue.c:1.138
13026         * src/SDCCicode.c:1.146
13027         * src/SDCCsymt.c:1.150
13028         * src/SDCCval.c:1.65
13029
13030 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
13031
13032         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13033         * src/ds390/gen.c (genAddrOf): fixed bug #704087
13034
13035 2003-03-13    <johan AT balder>
13036
13037         Hackup const and volatile modifiers in type chains a bit:
13038         * src/SDCC.y:1.63
13039         * src/SDCCast.c:1.169
13040         * src/SDCCglue.c:1.136
13041         * src/SDCCicode.c:1.143
13042         * src/SDCCsymt.c1.146
13043         * src/SDCCsymt.h1.59
13044         * src/SDCCval.c:1.63
13045
13046 2003-03-12    <johan AT balder>
13047
13048         * src/SDCCBBlock.h: more LRH debugging junk
13049         * src/SDCCcflow.h: more LRH debugging junk
13050         * src/SDCCloop.c: more LRH debugging junk
13051         * src/SDCC.y (struct_declaration): fixed bug #697590
13052         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13053         * src/ds390/gen.c (aopForRemat): fixed bug #700031
13054         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13055
13056 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13057         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13058         test function names must now match exactly).
13059         * src/SDCCcse.c: added special case in findCheaperOp to allow
13060         extending a short integer. Makes less awful code for bug 700121 test case.
13061
13062 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13063
13064         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13065         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13066
13067 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13068
13069         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13070         actually called (operandsNotEqual() was called for all
13071         operandsNotEqualX tests).
13072
13073 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13074
13075         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13076         with shorter literals. Fixes bug 700121.
13077
13078 2003-03-11    <johan AT balder>
13079
13080         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13081
13082 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
13083
13084         * src/SDCCloop.c (mergeRegions): an evil beast is dead
13085         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13086
13087 2003-03-10  Borut Razem <borut.razem AT siol.net>
13088
13089         * src/SDCCmain.c: pipe preprocessor's output
13090         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13091         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13092         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13093         which closes all pipes in pipeSet set
13094         * src/SDCCset.c: free deleted item in function deleteSetItem()
13095         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13096         moved from z80 to src subproject
13097         * .version: increased version number to 2.3.4
13098
13099 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
13100
13101         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13102         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13103         * support/regression/ports/xa51/spec.mk: fix typo
13104
13105 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
13106
13107         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13108
13109 2003-03-09  Borut Razem <borut.razem AT siol.net>
13110
13111         * src/SDCCmain.c: pipe preprocessor's output
13112         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13113         * sdcc_vc_in.h: define pclose as _pclose for WIN32
13114         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13115         which closes all pipes in pipeSet set
13116         * src/SDCCset.c: free deleted item in function deleteSetItem()
13117         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13118         moved from z80 to src subproject
13119
13120 2003-03-09  Borut Razem <borut.razem AT siol.net>
13121
13122         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13123         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13124         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13125         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13126         * src/SDCCglobl.h: unification of WIN32 native definitions
13127
13128 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13129
13130         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13131
13132 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13133
13134         * src/configure.in:   check for endianess (even while cross-compiling)
13135         * src/configure:      check for endianess (even while cross-compiling)
13136         * src/configure_in.h: check for endianess (even while cross-compiling)
13137         * src/avr/gen.c:        remove old endianess stuff
13138         * src/mcs51/gen.c:      remove old endianess stuff
13139         * src/ds390/gen.c:      remove old endianess stuff
13140         * src/pic/gen.c:        remove old endianess stuff
13141         * src/pic/genarith.c:   remove old endianess stuff
13142         * src/pic/glue.c:       fix endianess check
13143         * src/pic16/gen.c:      remove old endianess stuff
13144         * src/pic16/genarith.c: remove old endianess stuff
13145         * src/pic16/glue.c:     fix endianess check
13146         * src/xa51/gen.c:       remove old endianess stuff
13147         * src/z80/gen.c:        fix endianess check
13148         * src/SDCCglue.c:       fix endianess check
13149         * src/ds390/peeph.def: fix bug 700036
13150
13151 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
13152
13153         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13154         * src/configure: find appropriate data-types on host for SDCC's int and long
13155         * src/configure.in: find appropriate data-types on host for SDCC's int and long
13156         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13157         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13158
13159 2003-03-07    <johan AT balder>
13160
13161         Just a big NOOP:
13162                 some minor cleanups before the big shot
13163                 OP_DEFS and OP_USES now use Kevin's protection
13164                 new option --nolabelopt
13165
13166         * src/SDCCBBlock.c:
13167         * src/SDCCast.c,:
13168         * src/SDCCcflow.c:
13169         * src/SDCCcse.c:
13170         * src/SDCCicode.c:
13171         * src/SDCCicode.h:
13172         * src/SDCClabel.c:
13173         * src/SDCCloop.c:
13174         * src/SDCCmain.c:
13175         * src/ds390/ralloc.c:
13176         * src/mcs51/ralloc.c:
13177         * src/pic/ralloc.c:
13178         * src/xa51/ralloc.c:
13179         * src/z80/ralloc.c:
13180
13181 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
13182
13183         * src/pic/pcode.c (get_op): fix 64 bit warnings
13184         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13185         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13186         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13187         * support/regression/tests/malloc.c: fix 64 bit warnings
13188
13189 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13190
13191         * src/mcs51/gen.c (genMinus): fixed bug 696436
13192
13193 2003-03-02  Borut Razem <borut.razem AT siol.net>
13194
13195         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13196
13197 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13198
13199         * configure.in: test for mkstemp
13200         * sdccconf_in.h: add HAVE_MKSTEMP
13201
13202 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13203
13204         * device/include/ctype.h: removed warning while using --stack-auto
13205         * device/include/malloc.h: removed warning while using --stack-auto
13206         * device/include/string.h: removed warning while using --stack-auto
13207
13208 2003-02-23  Borut Razem <borut.razem AT siol.net>
13209
13210         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13211         because NDEBUG is defined (see man assert)
13212         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13213
13214 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13215
13216         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13217         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13218
13219 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13220
13221         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13222         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13223
13224 2003-02-18    <johan AT balder>
13225
13226         * as/mcs51/asmain.c (asmbl): module can start with a digit
13227         * as/z80/asmain.c (asmbl): module can start with a digit
13228
13229 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13230
13231         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13232         * src/asm.c: fix pipe() for Mingw32
13233
13234 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13235
13236         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13237         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13238         make -V work again; --c1mode reads now from stdin
13239         * doc/sdccman.lyx: added --c1mode
13240         * support/Util/SDCCerr.c: new messages for c1 mode
13241         * support/Util/SDCCerr.h: new messages for c1 mode
13242         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13243
13244 2003-02-15    <johan AT balder>
13245
13246         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13247
13248 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13249
13250         * doc/sdccman.lyx: Environment variables, -o and other minor things
13251
13252 2003-02-14    <johan AT balder>
13253
13254         * src/xa51/main.c: before anyone really tries to use it :)
13255
13256         * Install doc's in share/sdcc/doc
13257         * removed some obsolete files
13258         * Do a proper make distclean and uninstall
13259         M Makefile.common.in
13260         R sdccbuild.sh
13261         M as/Makefile
13262         M device/include/Makefile.in
13263         M device/lib/Makefile.in
13264         M doc/sdccman.lyx
13265         M link/Makefile
13266         M sim/ucsim/doc/Makefile.in
13267         M src/clean.mk
13268         R src/avr/peeph.rul
13269         R src/xa51/peeph.rul
13270         M support/cpp2/Makefile.in
13271         M support/makebin/Makefile
13272
13273
13274 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13275
13276         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13277
13278 2003-02-10  Borut Razem <borut.razem AT siol.net>
13279
13280         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13281         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13282         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13283         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13284         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13285         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13286         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13287         src/z80/Makefile.bcc: Borland Makefile cleanup
13288         * as/z80/Makefile.bcc: Added Borland Makefile
13289         * support/cpp2/borland.h: Removed
13290
13291 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13292
13293         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13294         * src/SDCC.lex: new pragma NOIV
13295         * src/SDCCglobl.h: new pragma NOIV
13296         * src/SDCCmem.c: new pragma NOIV
13297
13298 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13299
13300         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13301
13302 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13303
13304         * src/SDCCmain.c: signal handling is switched off by --debug
13305         * doc/Makefile: small fix for install; use clean.mk again
13306         * doc/clean.mk: clean *.pdf and *.html too
13307
13308 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13309
13310         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13311         * device/lib/printfl.c: fix a ds390 bug by making it portable
13312         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13313         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13314         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13315         * debugger/mcs51/cmd.c: converted multi-line string literals
13316         * sim/ucsim/globals.cc: converted multi-line string literals
13317         * src/SDCCmain.c: introduced signal handler to remove temp files
13318         * doc/Makefile: small tweaks, implement clean
13319         * doc: removed generated files
13320
13321 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13322
13323         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13324         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13325         Address Record is not correctly generated for DS390."
13326
13327 2003-02-02  Borut Razem <borut.razem AT siol.net>
13328
13329         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13330         * as/mcs51/asm.h: fixed compilation with Borland C
13331         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13332         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13333         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13334         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13335         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13336         src/z80/Makefile.bcc: delete $(LIB) only if exist
13337         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13338
13339 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13340
13341         * device/include/malloc.h: introduced NULL
13342         * device/include/string.h: introduced NULL
13343         * device/include/stdlib.h: introduced NULL
13344         * device/lib/_memcpy.c: removed NULL
13345         * device/lib/_strcat.c: removed NULL
13346         * device/lib/_strchr.c: removed NULL
13347         * device/lib/_strcmp.c: removed NULL
13348         * device/lib/_strcpy.c: removed NULL
13349         * device/lib/_strcspn.c: removed NULL
13350         * device/lib/_strlen.c: removed NULL
13351         * device/lib/_strncat.c: removed NULL
13352         * device/lib/_strncmp.c: removed NULL
13353         * device/lib/_strncpy.c: removed NULL
13354         * device/lib/_strpbrk.c: removed NULL
13355         * device/lib/_strrchr.c: removed NULL
13356         * device/lib/_strspn.c: removed NULL
13357         * device/lib/_strstr.c: removed NULL
13358         * device/lib/_strtok.c: removed NULL
13359         * device/lib/malloc.c: removed NULL, include own header
13360
13361 2003-02-02    <johan AT balder>
13362
13363         * 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
13364         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13365         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13366         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13367         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13368         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13369
13370 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13371
13372         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13373         area 'DATA'"
13374
13375 2003-02-01    <johan AT balder>
13376
13377         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13378
13379 2003-01-31    <johan AT CP255758-A>
13380
13381         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13382
13383 2003-01-30    <johan AT balder>
13384
13385         * src/SDCCBBlock.c: automatic bug detection
13386         * src/SDCCicode.c: automatic bug detection
13387
13388 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13389
13390         * src/SDCCglobl.h:   now --xram-size 0 works
13391         * src/SDCCmain.c:    now --xram-size 0 works
13392
13393 2003-01-29    <johan AT balder>
13394
13395         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13396
13397 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13398
13399         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13400         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13401         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13402         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13403         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13404         * src/SDCCmain.c:    Added options --xram-size and --code-size
13405
13406 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13407
13408         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13409         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13410
13411 2003-01-27    <johan AT balder>
13412
13413         * src/SDCC.y: fixed bug #613764
13414
13415 2003-01-26    <johan AT balder>
13416
13417         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13418         * src/SDCCsymt.h: fixed bug #673374
13419         * src/SDCCglue.c: fixed bug #661910
13420         * src/SDCCast.c: fixed bug #458099 and 673374
13421
13422 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13423
13424         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13425         * as/mcs51/strcmpi.h: added
13426         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13427         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13428         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13429         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13430         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13431         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13432         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13433         * as/mcs51/Makefile.aslink: new module strcmpi
13434         * as/mcs51/Makefile.asx8051: new module strcmpi
13435         * as/mcs51/Makefil.bcc: new module strcmpi
13436         * as/mcs51/Makefile.in: new module strcmpi
13437         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13438
13439 2003-01-26    <johan AT balder>
13440
13441         * src/SDCCglue.c: reverted back to 1.124
13442         * src/SDCCast.c: reverted back to 1.156
13443         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13444
13445 2003-01-25    <johan AT balder>
13446
13447         * src/SDCCglue.c: A better fix for bug #661910
13448         * src/SDCCast.c: A better fix for bug #661910
13449         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13450
13451 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13452
13453         * src/Makefile.in: remove spawn.o
13454         * src/SDCCmain.c: remove spawn.h
13455         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13456         * src/spawn.c: removed
13457         * src/spawn.h: removed
13458         * support/regression/ports/ds390/spec.mk: link with -r
13459
13460 2003-01-24    <johan AT CP255758-A>
13461
13462         * src/ds390/gen.c (aopOp): fixed bug #667458
13463         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13464         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13465         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13466
13467 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13468
13469         * src/mcs51/peeph.def: better assembler identation by Frieder
13470         * src/mcs51/gen.c: better assembler identation by Frieder
13471
13472 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13473
13474         * as/z80/string.h: removed for gcc 3.2
13475         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13476         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13477
13478 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13479
13480         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13481         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13482         * support/regression/Makefile: separate temp files for ports
13483         * support/regression/generate-cases.py: separate temp files for ports
13484         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13485         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13486
13487 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13488
13489         * moved tinitalk to device/examples/ds390
13490
13491 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13492
13493         * as/mcs51/lkmem.c: rflag is for DS390
13494         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13495         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13496                          (linkEdit): move mem- and map-files the same way as ihx-files
13497         * src/z80/main.c (_setDefaultOptions): removed --generic
13498         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13499         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13500         * src/pic/glue.c (picglue): --c1mode works again
13501         * src/pic16/glue.c (pic16glue): --c1mode works again
13502         * src/asm.c (printCLine): fix #660034
13503
13504 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13505
13506         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13507         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13508         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13509         * as/mcs51/lkmem (summary): better fix for sp problem
13510         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13511         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13512         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13513                                               remove --stack-after-data
13514
13515 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13516
13517         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13518         * src/SDCCutil.c (join): ugly bug: missing '\0'
13519         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13520
13521 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13522
13523         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13524         * src/port.h: typo
13525         * src/pic/main.c (_asmCmd): gpasm supports -o
13526         * src/z80/main.c: more general macros
13527         * device/lib/Makefile.in: remove intermediate files
13528
13529 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13530
13531         * .version: Bumped version number to 2.3.3
13532         * src/SDCCBBlock.c: new option -o
13533         * src/SDCCglobl.h: new option -o
13534         * src/SDCCglue.c: new option -o
13535         * src/SDCCmain.c: new option -o
13536         * src/asm.c: new option -o
13537         * src/ds390/main.c: new option -o
13538         * src/pic/glue.c: new option -o
13539         * src/pic/pcode.c: new option -o
13540         * src/pic/ralloc.c: new option -o
13541         * src/pic16/glue.c: new option -o
13542         * src/pic16/pcode.c: new option -o
13543         * src/pic16/ralloc.c: new option -o
13544         * src/z80/main.c: new option -o
13545         * device/lib/Makefile.in: use -o
13546         * support/regression/ports/ds390/spec.mk: use -o
13547         * support/regression/ports/gbz80/spec.mk: use -o
13548         * support/regression/ports/mcs51/spec.mk: use -o
13549         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13550         * support/regression/ports/z80/spec.mk: use -o
13551         * support/regression/ports/ucz80/spec.mk: use -o
13552         * support/regression/ports/xa51/spec.mk: use -o
13553         * support/regression/fwk/lib/timeout.c: fix usage string
13554
13555 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13556         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13557
13558 2003-01-07    <johan AT balder>
13559
13560         * src/SDCCast.c (decorateType): fixed bug #600035
13561
13562 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13563         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13564         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13565         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13566         * src/pic/pcode.c: outcommented unused variable to remove warnings
13567         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13568
13569 2003-01-06    <karl AT turbobit.com>
13570         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13571    regression tests.
13572
13573 2003-01-06    <johan AT balder>
13574
13575         * src/SDCCicode.c: fixed array add
13576
13577 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13578         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13579         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13580
13581 2003-01-04    <johan AT balder>
13582
13583         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13584
13585 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13586         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13587
13588 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13589         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13590         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13591
13592 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13593         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13594
13595 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13596         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13597
13598 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13599         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13600
13601 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13602
13603     * in /sdcc/as/mcs51/ changed these files in order to create an
13604     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13605     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13606     following files to include the previous two files: aslink.dsp,
13607     Makefile.aslink, Makefile.bcc, and Makefile.in.
13608
13609     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13610     .adb instead of .cdb
13611
13612 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13613
13614         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13615         value from option --iram-size.
13616
13617 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13618
13619         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13620         dram[] array.
13621
13622 2002-09-18    <wiml AT hhhh.org>
13623
13624         * SDCClrange.h: exposed setFromRange() and setToRange()
13625         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13626           packRegsForAccUse() (bug 542397)
13627         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13628           multiple times and emitting the fetch operations more than once
13629           added aopGetUsesAcc() function to allow binary operators to
13630           fetch their operands in the correct order; made genMinus() emit
13631           compact code for X = LITERAL - Y
13632
13633 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13634         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13635         sprintf() in line 1267.
13636
13637 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13638         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13639         like ports.
13640
13641 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13642         Changes to aslink (All the changes are marked with 'JCF'):
13643
13644         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13645         summary().
13646
13647         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13648         area BSEG.  Also moves, if possible, the DATA area down into the internal
13649         ram so more space is available.
13650
13651         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13652         sflag.
13653
13654         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13655         not bytes.  Function summary() which creates a memory usage summary
13656         file with extension .mem.  Reports of overlaping stack and small stack
13657         size.  If the space for the stack is less than 16 bytes aslink trows a
13658         warning.
13659
13660         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13661         the 8051.  Option 'y' for memory summary output file.
13662
13663         Changes to sdcc (All the changes are marked with 'JCF'):
13664
13665         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13666
13667         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13668         overlaying area for it (uses RegBankUsed[4]).
13669
13670         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13671         bank zero as used by default.  By default aslink locates the stack
13672         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13673         the creation of the .mem file.  Delegates the allocation of data area
13674         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13675         the begining of the stack area to aslink.
13676
13677         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13678         glue() in SDCCglue.c creates an area for it.
13679
13680 2002-09-03  Borut Razem <borut.razem AT siol.net>
13681         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13682         sdcc/src/pic/glue.c:
13683         introduced atexit() handler for teporay files removal in case of
13684         errors, assertions, ...
13685
13686 2002-08-29  Borut Razem <borut.razem AT siol.net>
13687         * sdcc/support/cpp2/auto-host_vc_in.h:
13688         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13689         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13690         Maybe there is a similar problem with BORLANDC? It should be checked!
13691
13692         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13693         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13694         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13695         was not executed, and the compiler (cl) launched a warning:
13696         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13697
13698 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13699         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13700
13701 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13702         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13703
13704         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13705           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13706           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13707           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13708           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13709           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13710           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13711         - added Release configuration in VS projects
13712         - review of compiler an linker options
13713         - VC .exe files are generated in bin_vc directory, not to interfere
13714           with binaries generated from other projects (cygwin, mingw, bcc ...)
13715
13716         * sdcc/src/yacc.dsp: added
13717
13718         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13719         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13720         and insert the version number definitions from .version
13721
13722         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13723
13724         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13725         added - genarate auto-host.h using auto-host_vc_in.h as template
13726
13727         * sdcc/sdcc_vc.h,
13728         removed from CVS, generated automatically
13729
13730 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13731         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13732
13733 2002-08-11  Borut Razem <borut.razem AT siol.net>
13734         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13735
13736 2002-08-10  Borut Razem <borut.razem AT siol.net>
13737         * src/SDCCmain.c (main):
13738         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13739         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13740         The consequence was that some temporary files were not removed.
13741
13742         * src/SDCCglue.c:
13743         unification of code in functions tempfilename() and tempfile():
13744         function tempnam() is defined in Visual Studio 6.0 and .NET
13745
13746         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13747
13748         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13749           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13750         - removed compiler command line option /WX: Treats all warnings as errors
13751         - update a list of source files, included into the project
13752
13753         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13754           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13755         changed project type to Generic Project so that can be correcly converted to VS.NET project
13756
13757         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13758
13759         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13760
13761         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13762
13763         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13764         added return 0 statements after assert() to make compiler happy
13765
13766         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13767         added newline in the def file to keep MSC compiler satisfied
13768
13769         * sdcc/src/z80/gen.c:
13770         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13771           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13772         - solved MSC error in function aopDump()
13773
13774         * sdcc_vc.h: define PREFIX as "\\sdcc"
13775
13776 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13777         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13778
13779 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13780         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13781         - Rewrote the register banking algorithm.
13782         - Added pCode live-range analysis to registers (for now, only non-used and
13783         singly-used registers optimized away)
13784
13785         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13786
13787         * 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.
13788
13789 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13790         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13791
13792 2002-04-22  Michael Hope  <michaelh AT vroom>
13793
13794         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13795
13796         * configure.in (DD_COPT): Added include support required for gbdk.
13797
13798         * .version: Bumped version number just to increase it.
13799
13800         * src/SDCCmain.c: Added -nostdinc to the default options.
13801
13802 2002-04-15  Michael Hope  <michaelh AT vroom>
13803
13804         * device/lib/z80/printf.c (sprintf): Added.
13805
13806         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13807
13808         * src/z80/peeph.def: Added transpose redundent load rule.
13809
13810         * src/z80/main.c: Added force callee saves for jaune.
13811
13812         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13813
13814         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13815
13816 2002-03-28  Johan Knol  <johan AT balder>
13817
13818         * src/SDCCval.c: fixed bug #532436
13819
13820 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13821         * /src/port.h:
13822         Added "char *Processor" field to the port structure.
13823
13824         * /src/SDCCmain.c:
13825         Added -p option. Allows port dependent processor to be specified.
13826
13827         * all ports:
13828         Initialized the new field char *Processor field to NULL in all ports
13829
13830         * /src/pic/*:
13831         Compiler generated registers for interrupt context saving
13832         were not getting allocated.
13833
13834 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13835
13836         * /src/SDCCast.c:
13837         Fixed left shift. Will promote the left side of a left shift
13838         if a) left shifting more than size of operand or b) when assigned
13839         to something size > size of left side
13840
13841 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13842         * src/pic/*
13843         tons of changes. Register allocation has been
13844         rewritten. Added customization for the various PICs. Flow
13845         analysis is restructured. ...
13846
13847         * src/pic/device.h:
13848         Added
13849
13850         * src/pic/device.c:
13851         Added. device.c is a PIC port hack to accomodate variations
13852         in PIC devices.
13853
13854 2002-03-13  Michael Hope  <michaelh AT vroom>
13855
13856         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13857
13858 2002-03-04  johanknol  <johanknol AT manik>
13859
13860         * /src/SDCCval.c: fixed
13861
13862         const unsigned char arr[][2] = { { 0, 1 } };
13863         t18.c:1: error: Initializer element is not constant
13864
13865 2002-03-04  bela  <bela AT manik>
13866
13867         * /device/include/mcs51reg.h:
13868         ds89c420 register definition update
13869
13870 2002-03-03    <johan AT FRIJA>
13871
13872         * support/Util/SDCCerr.c: did something, but don't no why anymore
13873
13874         * support/regression/tests/bug-524691.c: made it a little less shy
13875
13876         * src/SDCCast.c (decorateType): fixed bug #524697
13877
13878         * src/SDCCast.c: made some lineno improvements
13879
13880         * src/SDCCval.c (getNelements): changed warning to error
13881
13882         * src/SDCCglue.c (printIvalArray): changed warning to error
13883
13884         * src/SDCCicode.c: fixed a warning for mingw
13885
13886         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13887
13888         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13889
13890 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13891
13892         * src/ds390/peeph.def:
13893         Added some more peephole rules
13894
13895         * src/ds390/gen.c: Various fixes & enhancements
13896
13897         * src/SDCClrange.c, src/SDCClrange.h:
13898         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13899
13900         * src/ds390/ralloc.c:
13901         various fixes & enhancements (ds390) specific
13902
13903         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13904         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13905         from rallocs.
13906
13907         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13908
13909 2002-03-02    <johan AT FRIJA>
13910
13911         * src/SDCCast.c (decorateType): fixed bug #524708
13912
13913         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13914
13915         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13916
13917 2002-03-01  Michael Hope  <michaelh AT vroom>
13918
13919         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13920
13921         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13922
13923 2002-03-01    <johan AT FRIJA>
13924
13925         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13926
13927         * src/SDCCast.c (decorateType): fixed bug #524209
13928
13929         * src/SDCCval.c (valNot): fixed bug #524195
13930
13931 2002-02-26    <johan AT balder>
13932
13933         * src/xa51/gen.c: fixed a warning
13934
13935         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13936
13937         * src/SDCCast.c (decorateType): fixed bug #522534
13938
13939 2002-02-23    <johan AT balder>
13940
13941         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13942
13943 2002-02-22    <johan AT balder>
13944
13945         * src/SDCCast.c: fixed bug #514865
13946
13947         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13948
13949 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13950
13951         * sdcc/src/SDCCloop.c:
13952         Previous fix was not good. basic blocks that have "break" or "return" are
13953         not really partof a loop , but live ranges used in these blocks should
13954         be live thru the entire loop, so set partOfLoop but don't add them to
13955         loop region
13956
13957 2002-02-21    <johan AT FRIJA>
13958
13959         * src/SDCCcse.c: fixed bug #514308
13960
13961 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13962
13963         * src/SDCCloop.c:
13964         Fixed BUG #519583. If a conditional block ended in a return/break
13965         statement inside a loop, it was not being considered part of the loop.
13966
13967         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13968
13969 2002-02-10  Karl Bongers <karl AT turbobit.com>
13970
13971         * debugger/*:
13972         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13973         with lots of comments and notes.
13974
13975         * device/examples/test2.c:
13976         Fix bug, "red" variable not being initialized(compiler complained).
13977
13978         * device/examples/Makefile, examples/test3.c:
13979         Add Makefile in device/examples folder, compiles test3.c
13980         for use as a multiple module SDCDB test case.
13981
13982         * sim/ucsim/cmd.src/cmdset.cc:
13983         Took out debug printfs in ucsim "next" command.
13984
13985         * sim/ucsim/xa.src:
13986         Karl and Johan start ucsim XA support.  Most dissassembly working,
13987         about 75% emulation done(plenty of work remaining).
13988
13989         * sim/ucsim/z80.src:
13990         Add Z80 support to ucsim, add test-ucz80 regression test,
13991         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13992         Notice z80 compiler fails on examples/test3.c/crc code.
13993
13994 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13995
13996         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13997         Added support for --parms-in-bank1
13998
13999         * src/ds390/peeph.def:
14000         added a few more peephole optimzations
14001
14002         * src/ds390/main.c:
14003         1) added __builtin_inp & __builtin_outp used to read in data of given length
14004            from a memory mapped port
14005         2) added __builtin_memcmp
14006         3) added __builtin_swapw swap bytes of a short
14007
14008         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14009         1) handle multiple send & receives from register bank1
14010         2) ralloc can now allocate DPTR1 to some liveRanges
14011
14012         * src/SDCCsymt.c, src/SDCCsymt.h:
14013         changes to handle multiple sends & receives
14014
14015         * src/SDCCptropt.h:
14016         added some pointer arithmetic optimization
14017
14018         * src/SDCCptropt.c:
14019         added some pointer arithmetic optimizations but not stable yet so not
14020         called from anywhere (will get this working shortly)
14021
14022         * src/SDCCopt.c: fixed for multiple sends & receives
14023
14024         * src/SDCCmain.c:
14025         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14026         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14027            set preprocessor defines (depending on options)
14028
14029         * src/SDCCicode.c, src/SDCCicode.h:
14030         changes made to handle multiple sends & receives
14031
14032         * src/SDCCglobl.h:
14033         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14034
14035         * src/SDCCcse.c, src/SDCCcse.h:
14036         added function findbackward def (to be used in upcoming optimization)
14037
14038         * src/SDCCcflow.c, src/SDCCcflow.h:
14039         added function returnAtEnd - to determine if a basic block terminates with
14040         a RETURN iCode
14041
14042         * src/SDCCast.c, src/SDCCast.h:
14043         added option parms-in-bank1
14044
14045         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14046         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14047         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14048         adjusted for --parms-in-bank1 option
14049
14050         * device/include/string.h:
14051         donot redefine "reentrant" keyword
14052
14053         * device/include/ds80c390.h: Added some more SFRs
14054
14055 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
14056
14057         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14058
14059 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
14060
14061         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14062
14063 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
14064
14065         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14066
14067 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
14068
14069         * Added --xram-movc option
14070
14071 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
14072
14073         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14074
14075 2002-01-11  Johan Knol
14076
14077         * Added math lib of Jesus Calvino-Fraga
14078
14079 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
14080
14081         * src/SDCCmain.c (processFile): fix processing of ../../src.c
14082         * support/regression/Makefile: new target test-mcs51-stack-auto
14083         * support/regression/ports/mcs51-stack-auto/spec.mk: added
14084
14085 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14086
14087         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14088
14089 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
14090
14091         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14092
14093 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
14094
14095         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14096
14097         * src/SDCCglue.h: add definition for printIvalChar()
14098
14099 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14100
14101         * src/SDCCast.c: fix #498138 by Johan
14102
14103         * src/SDCCglue.c: fix #498138 by Johan
14104
14105 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
14106
14107         * support/regression/Makefile: fix clean
14108
14109         * support/regression/ports/ds390/support.c: fix transmission of last character
14110
14111 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
14112
14113         * /sdcc/src/ds390/gen.c:
14114         a) improved computing address of stack variable
14115         b) took out some #if 0 code
14116         c) improved parmBytes adjustment
14117         d) improved genPlusIncr & genMinusIncr
14118         e) genCmp could generate bad code (when left assigned to DPTR)
14119         f) Fixed bug in hasInc
14120
14121         * /sdcc/src/ds390/ralloc.c:
14122         a) packRegsForSupport could mess up live information (Fixed)
14123         b) packRegsDPTRuse could be incorrect for left & right shift
14124
14125         * /sdcc/src/mcs51/ralloc.c:
14126         packRegsForSupport could mess up the live information (Fixed)
14127
14128         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14129
14130         * /sdcc/src/SDCCast.c:
14131         can reverse a loop even if function call is present as long
14132         as the loop control variable is local & is not passed as parameter
14133
14134 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14135
14136         * /sdcc/ChangeLog: *** empty log message ***
14137
14138         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14139         More builtin function additions for TININative
14140
14141         * /sdcc/src/ds390/ralloc.c:
14142         Had broken the regression testsuite
14143
14144         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14145
14146         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14147         Added funcattr hasStackParms will be set for reentrant functions when there
14148         are paramteres on the stack, this helps in minimizing frame pointer generation
14149         typeFromStr can handle function pointers now
14150
14151         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14152         *** empty log message ***
14153
14154 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14155
14156         * /src/ds390/gen.c, /src/ds390/main.c:
14157         More builtin function additions for TININative
14158
14159         * /src/ds390/ralloc.c:
14160         Had broken the regression testsuite
14161
14162         * /src/SDCCast.c: Fixed a bug in dumptree
14163
14164         * /src/SDCCsymt.c, /src/SDCCsymt.h:
14165         Added funcattr hasStackParms will be set for reentrant functions when there
14166         are paramteres on the stack, this helps in minimizing frame pointer generation
14167         typeFromStr can handle function pointers now
14168
14169         * /doc/builtins.txt, /doc/TININative.txt:
14170         *** empty log message ***
14171
14172
14173 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
14174
14175         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14176         ALPHA version for -mTININative
14177
14178         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14179         updated to reflect changes in the port structure
14180
14181         * /src/port.h:
14182         added function do_assemble (similar to do_link) if non-null this function
14183         will be called to do assembly (-mTININative) requires a multi command
14184         assembly
14185         added function genAssemblerEnd will be called to generate assembler Epilogue
14186
14187         * /src/SDCCsymt.c:
14188         added _JavaNative to debug info printing
14189
14190         * /src/SDCCmain.c: added option --tini-libid
14191         added port->do_assemble function (-mTININative) has a multi command assemble
14192
14193         * /src/SDCCglue.c: Disabled "constExpr" check
14194         added port->genAssemblerEnd function
14195
14196         * /src/SDCCglobl.h: Added option --tini-libid value
14197
14198         * /src/SDCCast.h:
14199         tookout optimizeCompare from the header (has no external references)
14200
14201         * /src/SDCCast.c: made one more function "static"
14202
14203 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14204
14205         * src/z80/mappings.i: Added z80asm support.
14206
14207         * src/z80/main.c: Added z80asm support on --asm=z80asm
14208
14209         * src/z80/gen.c: Fixed asm portability issues.
14210
14211         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14212
14213         * src/SDCCglue.c (printExterns): Added global/extern split.
14214
14215 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14216
14217         * support/regression/Makefile: added test for mcs51 model large
14218
14219         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14220
14221         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14222
14223 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14224
14225         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14226
14227 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14228
14229         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14230
14231         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14232
14233 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14234
14235         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14236
14237         * support/regression/tests/simplefloat.c: Port to mcs51.
14238
14239 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14240         * support/regression/tests/bug-485362.c: Added.
14241
14242         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14243
14244         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14245
14246         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14247
14248         * src/z80/gen.c (aopDump): Added a dump function.
14249
14250 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14251         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14252
14253         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14254
14255         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14256
14257         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14258
14259         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14260
14261         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14262
14263         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14264
14265         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14266
14267         * support/regression/ports/ds390/support.c: Use tinibios.
14268
14269         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14270
14271 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14272
14273         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14274         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14275
14276         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14277
14278         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14279
14280 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14281
14282         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14283
14284         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14285         (packRegsForIYUse): Created and optimised.
14286
14287 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14288
14289         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14290 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14291
14292         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14293
14294         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14295
14296         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14297
14298 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14299
14300         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14301
14302         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14303
14304 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14305
14306         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14307
14308         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14309
14310         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14311
14312 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14313
14314         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14315         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14316         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14317
14318         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14319
14320         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14321         (genNotFloat): Added.
14322         (genUminusFloat): Added.
14323
14324         * device/lib/z80/Makefile: Added floating pt stubs.
14325
14326         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14327
14328         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14329
14330         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14331
14332 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14333
14334         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14335
14336         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14337
14338         * sdcc/support/regression/Makefile: Add port ds390.
14339
14340         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14341
14342         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14343
14344         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14345
14346         * sdcc/support/regression/ports/ds390/support.c: Added.
14347
14348         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14349
14350         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14351
14352         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14353
14354 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14355
14356         * device/include/malloc.h: Added z80 and gbz80 support.
14357
14358         * device/lib/gbz80/heap.s: Added.
14359
14360         * device/lib/z80/heap.s: Added.
14361
14362         * device/lib/malloc.c: Added z80 and gbz80 support.
14363
14364         * support/regression/tests/malloc.c (testMalloc): Added.
14365
14366         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14367
14368         * support/regression/tests/bug-478094.c: Added.
14369
14370         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14371
14372 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14373
14374         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14375
14376         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14377
14378         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14379
14380         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14381
14382         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14383
14384 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14385
14386         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14387
14388 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14389
14390         * support/regression/tests/bug-477927.c: Added.
14391
14392         * src/z80/peeph.def: Added minor rules.
14393
14394         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14395
14396         * src/z80/peeph.def: Added jump optimisation modification.
14397
14398 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14399
14400         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14401
14402 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14403
14404         * support/regression/tests/funptrs.c: Added.
14405
14406 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14407
14408         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14409
14410 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14411
14412         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14413
14414         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14415
14416         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14417         (movLeft2ResultLong): Created.
14418
14419         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14420         (joinPushes): Added.  Joins two char pushes into a word push.
14421
14422 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14423
14424         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14425
14426         * support/makebin/Makefile (install): Added creation of dest dir.
14427
14428 2001-10-24 Karl Bongers <karl AT turbobit.com>
14429
14430         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14431
14432 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14433
14434         * src/z80/ralloc.c: Turned off faulty pack for one use.
14435
14436         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14437
14438         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14439
14440 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14441
14442         * support/regression/Makefile: Improved clean
14443
14444         * support/regression/ports/gbz80/spec.mk: Added clean
14445
14446         * support/regression/ports/host/spec.mk: Added clean
14447
14448         * support/regression/ports/z80/spec.mk: Added clean
14449
14450         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14451
14452         * support/regression/ports/mcs51/timeout.c: little improvements
14453
14454 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14455
14456         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14457
14458         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14459
14460         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14461
14462 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14463
14464         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14465
14466         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14467
14468 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14469         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14470
14471         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14472
14473         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14474
14475         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14476
14477         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14478
14479         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14480
14481         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14482
14483         * support/regression/tests/longor.c: Added.
14484
14485 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14486
14487         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14488
14489         * as/mcs51/aslink.h: define PATH_MAX
14490
14491         * as/mcs51/asm.h: define PATH_MAX
14492
14493         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14494
14495         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14496
14497         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14498
14499         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14500
14501         * src/SDCCglobl.h: define PATH_MAX
14502
14503         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14504
14505         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14506
14507 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14508
14509         * src/z80/gen.c (gencjneshort): Fixed
14510
14511         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14512
14513 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14514
14515         * support/regression/tests/bug-469671.c: Added.
14516
14517         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14518
14519 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14520
14521         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14522
14523         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14524
14525 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14526
14527         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14528
14529         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14530
14531         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14532
14533         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14534
14535         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14536
14537         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14538
14539         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14540
14541 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14542
14543         * 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.
14544
14545         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14546
14547         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14548
14549 2001-10-07    <johan AT FRIJA>
14550
14551         * device/lib/gets.c (gets): fixed the return value.
14552
14553 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14554         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14555
14556         * 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.
14557
14558         * 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.
14559
14560         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14561
14562         * src/pic/gen.c: Removed Safe_strdup.
14563
14564         * configure.in: Added option to enable libgc support.
14565
14566         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14567         (bitVectUnion): Optimised.
14568         (bitVectIntersect): Optimised.
14569         (bitVectBitsInCommon): Optimised.
14570         (bitVectCplAnd): Optimised.
14571
14572         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14573
14574 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14575
14576         * src/SDCCmain.c: distinguish between assembler debug and plain options
14577
14578         * src/avr/main.c:   remove standard assembler options
14579
14580         * src/ds390/main.c: remove standard assembler options
14581
14582         * src/mcs51/main.c: remove standard assembler options
14583
14584         * src/port.h: removed "PENDING" comment
14585
14586 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14587
14588         * src/device/lib/_mulint.c  : new, with assember functions
14589
14590         * src/device/lib/_mullong.c : new, with assember functions
14591
14592         * src/device/lib/_divuint.c : with assember functions
14593
14594         * src/device/lib/_divsint.c : with assember functions
14595
14596         * src/device/lib/_divulong.c: with assember functions
14597
14598         * src/device/lib/_divslong.c: with assember functions
14599
14600         * src/device/lib/_moduint.c : with assember functions
14601
14602         * src/device/lib/_modsint.c : with assember functions
14603
14604         * src/device/lib/_modulong.c: with assember functions
14605
14606         * src/device/lib/_modslong.c: with assember functions
14607
14608         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14609
14610         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14611
14612         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14613                                       replaced _mululong.c and _mulslong.c by _mullong.c
14614
14615 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14616
14617         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14618
14619 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14620
14621         * src/SDCCglue.c: test, if win32api is available for MINGW
14622
14623 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14624
14625         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14626         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14627         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14628         * support/regression/ports/host/spec.mk: removed GENERIC
14629         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14630         * support/regression/ports/z80/spec.mk: removed GENERIC
14631
14632 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14633
14634         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14635
14636         * support/regression/tests/bug-467035.c: Created.
14637
14638 2001-10-01    <johan AT FRIJA>
14639
14640         * src/SDCC.y: fixed bug #466586 part 1
14641
14642 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14643
14644         * SDCCicode.c: z80 has no generic pointers
14645         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14646
14647 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14648
14649         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14650
14651 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14652
14653         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14654
14655         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14656
14657 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14658
14659         * configure.in: Fixed up so that ucsim is only configured once.
14660
14661         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14662
14663         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14664         (getPathDifference): As above.
14665
14666         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14667
14668         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14669
14670 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14671         * .version: Updated to 2.3.1
14672
14673         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14674         Added copyright header.
14675
14676         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14677         (assemble): Added support for macro based assembler commands.
14678         (linkEdit): Added support for macro based linker commands.
14679         (preProcess): Changed the pre-processor to use macros.
14680         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14681         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14682
14683         * device/lib/z80/crt0.s: Added module name for debugging.
14684
14685 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14686
14687         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14688
14689         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14690
14691         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14692
14693         * src/Makefile.in: Added SDCCmacro and SDCCutil
14694
14695 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14696
14697         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14698
14699 2001-09-16    <johan AT FRIJA>
14700
14701         * 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.
14702
14703 2001-09-15    <johan AT FRIJA>
14704
14705         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14706         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14707
14708 2001-09-11    <johan AT FRIJA>
14709
14710         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14711
14712 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14713
14714         * support/regression/tests/bug-460444.c: Added test case.
14715
14716         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14717         (genCast): Added justification for all of the asserts.
14718
14719 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14720
14721         * support/regression/support.c: _xdata replaced by xdata
14722
14723         * support/regression/spec.mk: removed _generic
14724
14725 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14726
14727         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14728
14729         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14730         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14731
14732         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14733
14734         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14735
14736         * support/regression/tests/bug-460010.c: Added test case.
14737
14738         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14739
14740 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14741
14742         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14743
14744         * support/regression/testfwk.c: removed workaround for bug #436344
14745
14746         * support/regression/tests/bp.c: use less memory with mcs51
14747
14748         * support/regression/tests/bug-441448.c: use less memory
14749
14750         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14751
14752         * support/regression/collate-results.py: typo
14753
14754 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14755
14756         * support/regression/tests/fetchoverlap.c: Added new test case.
14757
14758         * support/regression/tests/bp.c: Added new test case.
14759
14760         * support/regression/tests/bug-448984.c: Added new test case.
14761
14762         * support/regression/tests/pow2shifts.c: Added new test case.
14763
14764         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14765         (genlshTwo): Fixed right shift for count > 8.
14766
14767         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14768
14769 2001-09-08    <johan AT FRIJA>
14770
14771         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14772
14773 2001-09-07    <johan AT FRIJA>
14774
14775         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14776
14777         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14778
14779 2001-09-06    <johan AT FRIJA>
14780
14781         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14782         * bernhard noted me at this: "() equals to (void)" (1.38)
14783
14784 2001-09-05    <johan AT FRIJA>
14785
14786         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14787
14788 2001-09-04    <johan AT FRIJA>
14789
14790         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14791
14792
14793 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14794
14795         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14796
14797 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14798
14799         * link/z80/aslink.h: Fixed path for PATH_MAX
14800
14801 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14802
14803         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14804
14805         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14806
14807         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14808
14809         * 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.
14810
14811 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14812
14813         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14814         (genCmp): Fixed up genCmp for the GB with longs.
14815
14816         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14817
14818         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14819
14820         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14821
14822         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14823
14824 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14825
14826         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14827
14828 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14829
14830         * 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.
14831
14832         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14833
14834 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14835
14836         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14837
14838         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14839
14840 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14841
14842   * sim/ucsim/configure:    little improvement of Cygwin-detection
14843   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14844   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14845   * support/regression/tests/bug-221100.c: small changes for mcs51
14846   * support/regression/tests/bug-221168.c: small changes for mcs51
14847   * support/regression/tests/bug-227710.c: small changes for mcs51
14848   * support/regression/tests/staticinit.c: small changes for mcs51
14849   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14850   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14851   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14852
14853 $Revision$