1 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3 * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
4 * support/regression/tests/bug1734654.c: added
6 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
8 * src/SDCCast.c (decorateType): optimized '?' for equal operands
9 * src/SDCCicode.c (geniCodeConditional): optimization for bit result
12 2007-06-10 Borut Razem <borut.razem AT siol.net>
14 * as/link/z80/lklibr.c: fixed mingw build warning
15 lklibr.c:575: warning: implicit declaration of function 'tolower'
16 * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
17 src/z80/main.c: move target specific options from src/SDCCmain.c
18 to src/<target>/main.c
20 2007-06-09 Borut Razem <borut.razem AT siol.net>
22 * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
23 removed unused swap_sense; removed outBitCLong, replaced with outBitC
24 * support/regression/tests/bug-1294691.c: added
26 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
28 * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
29 can also be static, fixes bug 1733438
30 * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
31 have absolute address too
32 (computeType): added optimization for 'cond ? true : false'
33 * support/regression/tests/absolute.c: added test for static absolute var
35 2007-06-08 Raphael Neider <rneider AT web.de>
37 * src/regression/Makefile: suppress parallel builds, allow easy
38 switching between pic14/pic16 ports
39 * src/regression/picregs.h: added pic14/16 header file switch
40 * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
41 inline.c,nestfor.c,string1.c}: include "picregs.h"
43 2007-06-07 Borut Razem <borut.razem AT siol.net>
45 * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
46 permanent solution to suppress GCC 4.2.0 c++ warning:
47 deprecated conversion from string constant to `char *'
48 use 'const char *' where ever required
49 * support/regression/generate-cases.py: implemented more flexible rule
50 for detection of testing functions, allowing white-spaces surrounding
51 the function name and the 'void' parameter.
52 * support/regression/tests/constantRange.c,
53 support/regression/tests/scott-compare3.c: fixed failing regression
54 tests, uncovered by implementation of more flexible rule for detection
57 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
59 * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
61 2007-06-04 Borut Razem <borut.razem AT siol.net>
63 * configure.in, configure, config_vc.awk: sdcc version number is now
64 stored in configure.in; removed .version
65 * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
66 doc/INSTALL.txt: version bumped to 2.7.2
67 * sim/ucsim/configure.in, sim/ucsim/configure:
68 use "read" to read from .version
70 2007-06-03 Borut Razem <borut.razem AT siol.net>
72 * */Makefile.in: removed annoying warning:
73 Makefile:xx: Makefile.dep: No such file or directory
75 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
77 * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
78 (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
79 * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
80 * src/SDCCast.c (resultTypePropagate): propagate for '!',
81 (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
82 bugfix: only use newBoolLink for bit result type
83 * src/SDCCicode.c (geniCodeLogic): added param tree,
84 bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
85 (geniCodeLogicAndOr): use IS_BIT,
86 (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
87 (ast2iCode): added tree param to geniCodeLogic for comparisons
88 * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
89 * support/regression/tests/bug1723128.c: added test NotZero
91 2007-06-01 Borut Razem <borut.razem AT siol.net>
93 * SDCPP synchronized with GCC CPP release version 4.2.0,
94 currently the latest release:
95 * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
96 support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
97 support/cpp2/cppdefault.h, support/cpp2/except.h,
98 support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
99 support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
100 support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
101 support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
102 support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
103 support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
104 support/cpp2/opth-gen.awk, support/cpp2/opts.c,
105 support/cpp2/opts.h, support/cpp2/output.h,
106 support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
107 support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
108 support/cpp2/system.h, support/cpp2/version.c,
109 support/cpp2/Makefile.in: modified
110 * support/cpp2/opts-common.c: added
111 * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
112 * device/lib/pic16/libdev/pic18f[24]5j10.c:
113 search for included source file in local directory
114 * sim/ucsim/configure, sim/ucsim/configure.in:
115 temporary solution to suppress GCC 4.2.0 c++ warning:
116 deprecated conversion from string constant to `char *'
118 2007-06-01 Raphael Neider <rneider AT web.de>
120 * device/lib/pic/libdev/pic12f683.c,
121 * device/include/pic/pic12f683.h: added GPIO bits
123 2007-06-01 Raphael Neider <rneider AT web.de>
125 * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
126 quotation marks, clarified role of PIC14 vs. PIC16 ports
127 * src/pic16/devices.inc,
128 * device/include/pic16/pic18fregs.h,
129 * device/include/pic16/pic18f[24][45]j10.h,
130 * device/lib/pic16/pics.all,
131 * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
132 18f24j10, 18f25j10, 18f44j10, and 18f45j10
133 * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
134 for new devices as they are not yet supported by gputils
136 2007-05-31 Borut Razem <borut.razem AT siol.net>
138 * Small Device C Compiler 2.7.0 released
139 * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
140 changed sdcc version to 2.7.1
141 * support/scripts/sdcc.nsi: added How to create WIN32 release
144 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
146 * doc/sdccman.lyx: documented initialization and allocation of absolute
147 variables, bit parameter passing, the need for function pointers to be
148 reentrant and alpha quality support of inline and retrict
150 2007-05-26 Borut Razem <borut.razem AT siol.net>
152 * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
153 support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
154 * docs/knownbugs.html: updated
156 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
158 * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
160 * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
162 (gencjneshort): optimized when left is AOP_DIR
163 * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
164 initializing unions in a struct/array
165 * support/regression/fwk/include/testfwk.h: added defines for data, near
166 and far for host and z80
167 * support/regression/tests/bug1723128.c: new, added
169 2007-05-22 Borut Razem <borut.razem AT siol.net>
171 * doc/knownbugs.html: updated
173 2007-05-21 Raphael Neider <rneider AT web.de>
175 * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
176 error message instead
177 * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
179 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
181 * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
183 2007-05-21 Raphael Neider <rneider AT web.de>
185 * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
187 * src/regression/gpsim_assert.h,
188 * src/regression/Makefile,
189 * src/regression/pcodeopt.c: regression test for the above fix
191 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
193 * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
194 jumps to self, fixed bug 1717281
196 2007-05-10 Borut Razem <borut.razem AT siol.net>
198 * support/scripts/gen_known_bugs.pl: cosmetic fix
199 * doc/knownbugs.html: generated by gen_known_bugs.pl
201 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
203 * src/SDCCast.c (createFunction): also generate non-inlined version of
204 function for functions declared as "static inline"
205 * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
206 function can be inlined after non-inlined version generated.
208 2007-05-10 Borut Razem <borut.razem AT siol.net>
210 * support/scripts/gen_known_bugs.pl: added script
211 which generates knownbugs.html
213 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
215 * doc/knownbugs.html: updated for release 2.7.0
217 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
219 * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
221 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
223 * src/ds390/gen.c (emitcode): don't change properties of previous lines,
224 (throughout): updated generating comments
225 * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
226 (throughout): updated generating comments
227 * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
228 rule instead of at the second, or it might skip lines when removing the
230 * support/regression/tests/bug1714204.c: changed test to foo
232 2007-05-08 Borut Razem <borut.razem AT siol.net>
234 * doc/sdccman.lyx: changed sdcc version to 2.7.0,
235 thanks to SDCC Distributed Compile Farm members,
236 added Z80 and GBZ80 command line options
237 * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
239 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
241 * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
242 * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
243 * support/regression/tests/longlit.c: modified to be tested at all and
244 to pass the actual test
246 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
248 * device/include/mcs51/uPSD33xx.h: Added.
250 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
252 * device/lib/_gptrput.c,
253 * device/lib/_gptrget.c: removed old code,
255 * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
256 * support/regression/tests/bug1714204.c: new, added
258 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
260 * support/regression/tests/regtrack.c: test was never executed
261 because of the regression test being picky about white spaces.
262 * device/lib/mcs51/crtclear.asm: added comment
264 2007-05-06 Raphael Neider <rneider AT web.de>
266 * device/lib/pic/Makefile.rules,
267 * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
268 made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
270 2007-05-06 Raphael Neider <rneider AT web.de>
272 * src/pic16/device.h,
274 * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
275 _pic16_setDefaultOptions): removed/reordered command-line args
276 * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
277 devices, regrouped command line args, environment variables),
278 clarified sone points, added sections on how to add devices to the
281 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
283 * src/z80/peeph.def: fixed bug in rule 2
285 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
287 * src/port.h: added TARGET_MCS51_LIKE
288 * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
289 take advantage of it too
290 * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
291 (shiftR2Left2Result): Optimized: don't check shifting by 0
292 * src/z80/peeph-z80.def,
293 * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
294 modifications, see patch 1700823
295 * src/mcs51/peep.c (): fixed bug 1712928
296 * support/regression/tests/bug1712928.c: new, added
298 2007-05-05 Borut Razem <borut.razem AT siol.net>
300 * device/lib/pic16/Makefile.common.in,
301 device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
302 removed bash dependencies
304 2007-05-01 Borut Razem <borut.razem AT siol.net>
307 fixed bug #1710507: --i-code-in-asm makes compile fail
308 all iCode comments are now one liners
309 * src/mcs51/gen.c: fixed memory leak
311 2007-05-01 Raphael Neider <rneider AT web.de>
313 * device/lib/pic/libdev/*.c
314 * device/include/pic/*.h: regenerated all device libs from updated
316 * support/scripts/inc2h.pl: documented usage, now uses strict to
319 2007-04-30 Borut Razem <borut.razem AT siol.net>
322 fixed bug #1669175: Problem with space in output paths
323 documented how to use paths with spaces for Windows users
325 2007-04-29 Borut Razem <borut.razem AT siol.net>
327 * Fixed svn:eol-style and svn:keywords properties
328 * src/SDCCval.c: fixed bug
329 #1592871: Segfault with "large" const arrays of characters
330 replaced recursion with iteration
331 * Removed svn:executable property from non-executable files
333 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
335 * src/mcs51/gen.c (genRet): fixed bug 1707003
337 2007-04-27 Raphael Neider <rneider AT web.de>
339 * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
340 createReachingDefinitions,assignValnums,pic16_destructDF,
341 pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
342 prevent NULL pointer dereferences
343 * device/lib/pic/libdev/pic16f886.c,
344 * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
345 prevent building them, gputils do not really support them yet
347 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
349 * device/lib/_ltoa.c: 36 bytes less __data mem. This really
350 helps printf_small. 32 bytes more __idata mem.
352 2007-04-27 Raphael Neider <rneider AT web.de>
354 * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
355 return early when pb or pb->pcHead is NULL (patch #1708427)
356 * src/regression/empty.c,
357 * src/regression/Makefile: added test with empty functions
358 * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
360 2007-04-27 Borut Razem <borut.razem AT siol.net>
362 * src/SDCCast.c: fixed feature request
363 #1547512: Redundant strings linked when using sizeof("abc")
365 2007-04-23 Borut Razem <borut.razem AT siol.net>
367 * doc/sdccman.lyx, src/SDCCmain.c:
368 peep-hole comments are generated only if --fverbose-asm option is
369 specified and --no-peep-comments is not, as proposed by Frieder.
370 * support/regression/Makefile.in: compile regression tests with
371 --fverbose-asm option so one can "grep" whether a new (or an old)
372 peephole is (still) applied; requested by Frieder.
374 2007-04-23 Kevin Buettner <kevin AT buettner.to>
376 * device/include/pic/pic16f886.h,
377 * device/include/pic/pic16f887.h,
378 * device/lib/pic/libdev/pic16f886.c,
379 * device/lib/pic/libdev/pic16f887.c,
380 * device/include/pic/pic14devices.txt,
381 * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
383 2007-04-23 Kevin Buettner <kevin AT buettner.to>
385 * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
388 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
390 * device/lib/_memset.c: assembler version for mcs51
392 2007-04-22 Borut Razem <borut.razem AT siol.net>
394 * support/scripts/listerr.c: program to create the list of errors and
395 warnings list from - added
396 * doc/sdccman.lyx: removed the note
397 "For list of warnings and corresponding codes, see err_warn.txt"
398 * src/SDCCsymt.c: fixed bug #1699804:
399 Bug with some uses of sizeof(static local array) (MCS51)
400 * support/regression/tests/bug-1699804.c: added
402 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
404 * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
405 (main): added option -i,
406 (asmbl, case S_INCL): use search_path_fopen,
407 mostly from patch 1579668 by Peter Miller, thanks
408 * src/z80/main.c: fixed typo --callee-saves-bc
409 * device/include/mcs51/compiler.h: added sfrword for Tasking
411 2007-04-20 Borut Razem <borut.razem AT siol.net>
413 * src/z80/main.c: replaced reserved keyword asm with asmblr
415 2007-04-19 Borut Razem <borut.razem AT siol.net>
417 * src/port.h: use const pointers to strings
418 * src/SDCCargs.h: declared getStringArg() and getIntArg()
419 * src/pic16/main.c: include SDCCargs.h
420 * src/SDCCglobl.h: code_seg and const_seg are not pointers to
421 const char, since the strings are dynamically allocated
422 * src/SDCCmain.c: options.code_seg and options.const_seg are
423 dynamically allocated; check port specific command line options
424 before the general ones
425 * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
427 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
429 * device/include/ds400rom.h,
430 * device/lib/ds390/lcd390.c,
431 * device/lib/ds390/memcpyx.c,
432 * device/lib/ds390/rtc390.c,
433 * device/lib/ds400/ds400rom.c,
434 * device/lib/ds400/memcpyx.c,
435 * device/lib/hc08/_ret.c: more replacements of keywords with their
436 double underscore equivalents
437 * device/lib/ds390/Makefile.in,
438 * device/lib/ds400/Makefile.in,
439 * device/lib/gbz80/Makefile.in,
440 * device/lib/hc08/Makefile.in,
441 * device/lib/mcs51/Makefile.in,
442 * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
444 2007-04-17 Borut Razem <borut.razem AT siol.net>
446 * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
447 src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
448 fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
449 to --fverbose-asm, to be gcc'ish
451 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
453 * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
455 2007-04-17 Borut Razem <borut.razem AT siol.net>
457 * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
458 * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
459 device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
460 with their double underscore equivalent
462 2007-04-14 Borut Razem <borut.razem AT siol.net>
464 * doc/sdccman.lyx: some additional "freeware" replaced with "free open
467 2007-04-13 Borut Razem <borut.razem AT siol.net>
469 * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
471 * device/examples/serialcomm/windows/serial.[ch],
472 device/examples/serialcomm/windows/test_serialcomm.cpp:
473 updated by Bela Torok
474 * device/examples/serialcomm/windows/serialcomm.dsw,
475 device/examples/serialcomm/windows/serialcomm.dsp: added
477 2007-04-13 Jan Waclawek <wek AT efton.sk>
479 * doc/sdccman.lyx: additions and changes at various places
480 (submitted as #1697136).
481 (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
483 2007-04-10 Borut Razem <borut.razem AT siol.net>
485 * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
486 LyX file format changed to 245
487 * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
488 "FreeWare" replaced with "free open source"
490 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
492 * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
494 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
496 * device/include/pic16/pic18fregs.h,
498 * device/lib/_decdptr.c,
499 * device/lib/_divsint.c,
500 * device/lib/_divslong.c,
501 * device/lib/_divuint.c,
502 * device/lib/_divulong.c,
503 * device/lib/_fs2schar.c,
504 * device/lib/_fs2sint.c,
505 * device/lib/_fs2slong.c,
506 * device/lib/_fs2uchar.c,
507 * device/lib/_fs2uint.c,
508 * device/lib/_fs2ulong.c,
509 * device/lib/_fsadd.c,
510 * device/lib/_fscmp.c,
511 * device/lib/_fsdiv.c,
512 * device/lib/_fseq.c,
513 * device/lib/_fsget1arg.c,
514 * device/lib/_fsget2args.c,
515 * device/lib/_fsgt.c,
516 * device/lib/_fslt.c,
517 * device/lib/_fsmul.c,
518 * device/lib/_fsneq.c,
519 * device/lib/_fsnormalize.c,
520 * device/lib/_fsreturnval.c,
521 * device/lib/_fsrshift.c,
522 * device/lib/_fssub.c,
523 * device/lib/_fsswapargs.c,
524 * device/lib/_gptrget.c,
525 * device/lib/_gptrgetc.c,
526 * device/lib/_gptrput.c,
527 * device/lib/_logexpf.c,
528 * device/lib/_modsint.c,
529 * device/lib/_modslong.c,
530 * device/lib/_moduint.c,
531 * device/lib/_modulong.c,
532 * device/lib/_mulint.c,
533 * device/lib/_mullong.c,
534 * device/lib/_schar2fs.c,
536 * device/lib/_setjmp.c,
537 * device/lib/_sint2fs.c,
538 * device/lib/_slong2fs.c,
540 * device/lib/_uchar2fs.c,
541 * device/lib/_uint2fs.c,
542 * device/lib/_ulong2fs.c,
543 * device/lib/asincosf.c,
544 * device/lib/atanf.c,
545 * device/lib/calloc.c,
546 * device/lib/ds390/tinibios.c,
547 * device/lib/ds400/tinibios.c,
550 * device/lib/hc08/_mulint.c,
552 * device/lib/malloc.c,
553 * device/lib/printf_fast.c,
554 * device/lib/printf_tiny.c,
555 * device/lib/printfl.c,
556 * device/lib/realloc.c,
557 * device/lib/ser_ir.c,
558 * device/lib/serial.c,
559 * support/regression/tests/libmullong.c: replaced all special keywords
560 with their double underscore equivalent
561 * support/regression/ports/mcs51-xstack-auto/spec.mk,
562 * device/lib/Makefile.in: compile libs with --std-c99 instead of
564 * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
565 (genRet): if the bit-symbol is ruonly it already is in the carry
566 * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
567 * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
568 * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
569 type UCHAR if dest is not bit
571 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
573 * device/include/math.h,
576 * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
578 2007-04-01 Borut Razem <borut.razem AT siol.net>
580 * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
581 fixed bug #1692042: input buffer overflow...scanner uses REJECT
582 * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
583 gcc_unreachable() called internal_error()...
585 2007-03-30 Raphael Neider <rneider AT web.de>
587 * src/pic/ralloc.c (isData): suppress garbage debug output
589 2007-03-28 Borut Razem <borut.razem AT siol.net>
592 "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
593 is developed, built and used worldwide, and the word "night" doesn't
596 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
598 * device/include/mcs51/C8051F360.h: new, added
599 * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
601 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
603 * src/SDCC.y (declaration_specifiers, function_specifier),
604 * support/Util/SDCCerr.c,
605 * support/Util/SDCCerr.h,
607 * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
609 * src/SDCCmem.c (deallocParms),
610 * src/SDCCast.c: support for function inlining, not quite complete
611 * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
614 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
616 * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
617 (saveRBank, unsaveRBank): don't save bits,
618 (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
619 * support/regression/tests/bug1535242.c: new, added
620 * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
621 thanks Alexey Shamrin <shamrin AT gmail.com>,
622 made assert.h header ANSI compliant (added a check for NDEBUG macro,
623 removed header guard)
625 * sdcc.spec: bumped version to 2.6.5
626 * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
628 2007-03-22 Borut Razem <borut.razem AT siol.net>
630 * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
631 fixed bug #1653671: sdcdb integration into ddd is broken
633 2007-03-22 Raphael Neider <rneider AT web.de>
635 * src/pic/gen.c (popGetExternal): augmented to also create references
636 to external variables (not only labels),
637 (genCall): comment on plan to reduce PAGESEL overhead,
638 (genFunction, genEndFunction): also save/restore FSR around interrupt
639 handling code, removed lots of unused code
640 (genDivOneByte): release acquired temp register
641 * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
643 * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
644 for registers that need to be saved during interrupts (FSR, STATUS,
645 PCLATH; W needs special handling), currently only FSR is used
647 2007-03-22 Raphael Neider <rneider AT web.de>
649 * device/include/pic/pic14devices.txt: 16f688 has only one config word
651 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
653 * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
655 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
657 * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
659 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
661 * as/link/aslink.h: added LKOBJEXT
662 * as/link/hc08/link_hc08.dsp,
663 * as/link/hc08/Makefile.bcc,
664 * as/link/hc08/Makefile.in,
665 * as/link/mcs51/aslink.dsp,
666 * as/link/mcs51/Makefile.bcc,
667 * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
668 * as/link/hc08/lkaomf51.c, as/link/mcs51/lkaomf51.c,
669 * as/link/lkaomf51.c: merged and moved
670 * as/link/hc08/lkdata.c, as/link/mcs51/lkdata.c,
671 * as/link/z80/lkdata.c,
672 * as/link/lkdata.c: merged and moved
673 * as/link/hc08/lkmain.c,
674 * as/link/mcs51/lkmain.c: cosmetic changes
675 * as/link/z80/lkeval.c, as/link/lkeval.c: merged
676 * as/link/lklex.c: use LKOBJEXT
677 * as/link/z80/lklist.c, as/link/lklist.c: merged,
678 ANSI-fied functions, removed bubble-sorts
679 * as/link/z80/lksym.c as/link/lksym.c: merged,
681 * as/link/z80/linkgbz80.dsp,
682 * as/link/z80/linkz80.dsp,
683 * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
684 moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
685 * as/link/z80/lkhead.c,
686 * as/link/z80/lklex.c: deleted
687 * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
688 * as/link/z80/lkmain.c: added copyfile()
690 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
692 * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
694 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
696 * device/lib/_strlen.c: assembler version for mcs51
698 2007-03-13 Raphael Neider <rneider AT web.de>
700 * device/include/pic16/pic18f2221.h,
701 * device/include/pic16/pic18f2321.h,
702 * device/include/pic16/pic18f2331.h,
703 * device/include/pic16/pic18f4221.h,
704 * device/include/pic16/pic18f4321.h,
705 * device/include/pic16/pic18f4331.h: fixed config byte location names
706 * support/scripts/inc2h-pic16.pl: removed debug output, emit
707 consistently named config byte locations
709 2007-03-13 Borut Razem <borut.razem AT siol.net>
711 * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
712 sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
713 sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
714 as/link/z80/Makefile.in, as/z80/Makefile.in:
717 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
719 * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
720 * device/lib/printf_large.c: pointer was converted to generic
721 pointer for mcs51 models other than model-small (Maarten noticed)
723 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
725 * device/include/mcs51/ADuC84x.h: Added.
727 2007-03-10 Borut Razem <borut.razem AT siol.net>
729 * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
730 fixed RFE #1624219: double backslashes in filenames;
731 functions hexEscape(), octalEscape() and copyStr() moved from
732 SDCCval.c to SDCCutil.c and made them glovbally available
734 2007-03-09 Borut Razem <borut.razem AT siol.net>
736 * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
737 src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
738 1673361: Missaligned comments in output files
740 2007-03-09 Raphael Neider <rneider AT web.de>
742 * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
744 2007-03-09 Raphael Neider <rneider AT web.de>
748 * src/pic/ralloc.c: suppress undesired debug output
749 * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
751 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
753 * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
755 2007-03-07 Borut Razem <borut.razem AT siol.net>
757 * device/lib/pic16/libdev/pic18f[24][34]31.c:
758 search include files in the current directory
760 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
762 * src/SDCCglue.c (emitMaps, glue),
763 * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
765 * support/regression/tests/absolute.c: added xdata test
767 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
769 * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
770 added condition to macro, fixes bug 1666080
772 2007-03-02 Raphael Neider <rneider AT web.de>
774 * src/pic/gen.c (genGenPointerSet): removed bogus assertion
776 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
778 * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
779 be cleared. Unconditionally set __XPAGE
780 * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
782 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
787 * src/mcs51/rtrack.c,
789 * doc/sdccman.lyx: added --no-gen-comments
790 * src/mcs51/peeph.def: added 192.b, disabled 185
792 2007-02-25 Raphael Neider <rneider AT web.de>
794 * src/pic16/gen.c (genCast): fixed typo
795 * device/lib/pic16/Makefile.subdir: only install existing files
796 * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
798 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
800 * device/lib/mcs51/crtcall.asm: new, added for indirect calls
801 * device/lib/mcs51/crtclear.asm,
802 * device/lib/mcs51/crtxclear.asm: renumbered labels
803 * device/lib/mcs51/Makefile.in: added crtcall.asm
804 * doc/sdccman.lyx: documented mcs51 crt* library startup code
805 * src/mcs51/gen.c (movc): removed,
806 (aopGet, genPlusBits): clear a after loading the carry (possibly from
808 (toCarry, genSend, genRet): added function toCarry,
809 (genPcall): use "lcall @a+dptr" for functions w/o parameters,
810 (assignBit, genAssign, genCast): added function assignBit
811 * src/mcs51/Makefile.bcc: added rtrack.c
812 * src/mcs51/ralloc.h: made valueKnown a bitfield
813 * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
814 fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
815 disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
816 * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
817 * src/z80/gen.c: added AOP_IS_PAIRPTR,
818 (_pop): only pop valid pairs, see gencjneshort,
819 (gencjneshort): return pair that still needs to be popped, restructured,
820 (gencjne, genCmpEq): call _pop
822 2007-02-23 Raphael Neider <rneider AT web.de>
824 * device/include/pic/pic14devices.txt: 16f684 has only one config word
826 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
828 * device/include/mcs51/P89LPC925.h: Added.
830 2007-02-18 Raphael Neider <rneider AT web.de>
832 * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
834 2007-02-17 Borut Razem <borut.razem AT siol.net>
836 * support/cpp2/directives.c, support/cpp2/version.c:
837 synchronized with GCC CPP 4.1.2
839 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
841 * src/mcs51/rtrack.h,
842 * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
843 by checking the strings passed by emitcode() to the assembler.
844 Feel free to change. This in part addresses RFE #482179.
845 Set environment variable SDCC_RTRACK to enable.
846 * src/mcs51/gen.c: inserted hooks
847 * src/mcs51/ralloc.h: added two members to struct regs
848 * support/regression/tests/regtrack.c: added
850 2007-02-14 Borut Razem <borut.razem AT siol.net>
852 * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
853 * Makefile.in: applied patch from Makefile related part of
854 #1469393: Compiler does not initialize static data
856 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
858 * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
859 for better fix of bug 1273984, compiles pic16 rand.c
861 2007-02-12 Borut Razem <borut.razem AT siol.net>
863 * src/pic16/main.c: fixed pic16 standard library directory bug
865 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
867 * src/hc08/gen.c (genSwap): fix swap regression test
869 2007-02-10 Borut Razem <borut.razem AT siol.net>
871 * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
873 * support/regression/tests/bug-1654060.c: added regression test for
876 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
878 * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
879 bit moves in return statement
881 2007-02-09 Borut Razem <borut.razem AT siol.net>
883 * src/SDCC.y: fixed bug #1654060 typedef within function causes
886 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
888 * src/mcs51/gen.c (aopPut): use direct name for pushing registers
889 * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
891 2007-02-07 Raphael Neider <rneider AT web.de>
893 * src/pic16/devices.inc,
894 * device/include/pic16/pic18fregs.h,
895 * device/include/pic16/pic18f[24][34]31.h,
896 * device/lib/pic16/libdev/pic18f[24][34]31.c,
897 * device/lib/pic16/pics.all: added 18f[24][34]31 family
898 * device/lib/pic16/libio/i2c.ignore: do not build i2c
900 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
902 * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
903 can this have lived here for so many years?
904 * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
905 fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
906 * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
908 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
910 * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
911 appended by loop induction must be at the very end of the eBBlock
913 2007-02-05 Kevin Vigor
915 * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
917 2007-02-05 Borut Razem <borut.razem AT siol.net>
919 * support/regression/fwk/lib/timeout.c: native WIN32 port,
920 implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
922 2007-02-03 Borut Razem <borut.razem AT siol.net>
924 * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
925 applied patch #1646602 option to set default signedness of char to
926 unsigned, added -funsigned-char command line option,
927 thanks to Gunther Jehle
928 * device/lib/Makefile.in: added the -f option to rm so it doesn't
929 prompt for file deletion a few hundred times (especially the
930 subversion files, which have ro permissions so it asks for
931 confirmation), thanks to Simon McAuliffe;
932 added {} + option to find in order to remove multiple files from a
935 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
937 * device/include/mcs51/SST89x5xRDx.h: Added.
939 2007-02-02 Raphael Neider <rneider AT web.de>
941 * src/pic/glue.c (emitSymbolSet): check sym->etype before use
942 * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
944 2007-02-01 Raphael Neider <rneider AT web.de>
946 * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
949 2007-01-31 Borut Razem <borut.razem AT siol.net>
951 * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
952 if compiled with GCC. Thanks to Raphael Neider
954 2007-01-31 Raphael Neider <rneider AT web.de>
956 * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
957 operand names, handles name and (name + n) for all n,
958 (sameBank): restructured, also check bank allocation policy,
959 * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
960 (pic14_operandsAllocatedInSameBank): check whether to operands
961 will be allocated into the same bank (i.e., section) to reduce
962 BANKSEL overhead, queried from pcode.c:sameBank,
963 (pic14printLocals): reintroduced clustering registers into a single
964 section: all compiler generated symbols will now reside in one
965 bank (per file), reducing BANKSEL overhead and code size,
966 (showAllMemmaps): use local dbuf where possible
968 2007-01-29 Raphael Neider <rneider AT web.de>
970 * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
971 (call_libraryfunc): retrieve/create symbol and mark as used,
972 (genFunction): mark defined functions as non-extern and add again
973 to code memmap for later output
974 * src/pic/glue.c (emitPseudoStack): put into own subroutine,
975 (pic14printLocals): reworked for new symbol emission,
976 (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
977 showAllMemmaps): reworked symbol output using dbufs, added handling
978 of string literals (still incomplete),
979 (picglue): removed symbol emission, moved into showAllMemmaps,
980 (emitSymbolSet): new workhorse for symbol output,
981 (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
983 2007-01-29 Borut Razem <borut.razem AT siol.net>
985 * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
986 component contains the extension separator.
988 2007-01-28 Borut Razem <borut.razem AT siol.net>
990 * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
992 * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
993 src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
994 src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
995 src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
996 src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
997 src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
998 src/z80/gen.c, support/Util/MySystem.c:
999 accept slash and backslash as directory separator on WIN32 and
1002 2007-01-28 Raphael Neider <rneider AT web.de>
1004 * src/pic16/devices.inc,
1005 * device/include/pic16/pic18f[24][23]21.h,
1006 * device/include/pic16/pic18fregs.h,
1007 * device/lib/pic16/libdev/pic18f[24][23]21.c,
1008 * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
1009 * device/lib/pic16/libio/adc.ignore,
1010 * device/lib/pic16/libio/i2c.ignore,
1011 * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
1012 family, as gputils do not yet support the devices
1013 * device/lib/pic16/Makefile.subdir: ignore errors on install
1014 * support/scripts/inc2h-pic16.pl: script to generate pic16 device
1015 headers and libraries from gputils .inc files
1017 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1019 * doc/sdccman.lyx: add printf_fast_f precision limitation note
1021 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
1023 * doc/sdccman.lyx: add printf benchmarks
1025 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1027 * device/lib/printf_fast.c: fix %c, char promoted to int
1028 * device/lib/printf_tiny.c: fix %c, char promoted to int
1030 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
1032 * device/lib/printf_fast.c: fix float overflow check, bug #1525093
1034 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1036 * support/regression/tests/swap.c: 64 bit hosts failed
1037 * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
1039 2007-01-25 Raphael Neider <rneider AT web.de>
1041 * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
1042 based on absolute register address, patch by Alex Blond
1044 2007-01-22 Raphael Neider <rneider AT web.de>
1046 * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
1047 emitted, do not emit them again...
1049 2007-01-22 Raphael Neider <rneider AT web.de>
1051 * src/regression/bank1.c, src/regression/compare6.c,
1052 src/regression/add.c: cosmetic changes
1053 * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
1054 * src/pic/gen.c: fixed global zero and one,
1055 (aopForSym): removed unued code,
1056 (aopGet): assert aop is defined, check and use `index' of
1057 pCodeImmd operands (fixes #1630908),
1058 * src/pic/pcode.c (get_op): added output of generic pointer tag,
1059 (register_reassign): prevent accidental register unification,
1060 (ReuseReg): cosmetic changes (also above)
1061 * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
1062 pic14emitStaticSeg): do not emit initialized data,
1063 (printIval*): replaced with working versions,
1064 (pic14createInterruptVect,picglue): use idata for initialized data,
1065 now init data should work in all modules (not only main()),
1066 * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
1068 2007-01-21 Borut Razem <borut.razem AT siol.net>
1070 * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
1071 use -fPIC or -fpic if they are supported and not ignored
1072 * src/SDCCval.c: fixed bug introduced by me in rev. #4577
1073 * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
1075 2007-01-20 Borut Razem <borut.razem AT siol.net>
1077 * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
1078 implemented RFE #1470316: allow "$" in variable names
1080 2007-01-20 Raphael Neider <rneider AT web.de>
1082 * device/include/pic/pic14regs.h: reverted accidental wipe of the file
1084 2007-01-20 Raphael Neider <rneider AT web.de>
1086 * device/lib/pic/libdev/devices.txt: device list for mkall.sh
1087 * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
1088 * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
1089 * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
1090 applied patch from Robert Tate (#1629249) to add PORTs and TRISs
1091 * device/lib/pic/libdev/pic*.c,
1092 * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
1093 * device/lib/pic/libdev/Makefile.in: show progress
1095 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1097 * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
1098 * support/scripts/sdcc_cygwin_mingw32,
1099 * support/scripts/sdcc_mingw32,
1100 * support/scripts/build.mak: replaced --datadir by --datarootdir for
1101 conformance with autoconf 2.6
1103 2007-01-19 Raphael Neider <rneider AT web.de>
1105 * src/pic/device.c (register_map): fixed list construction
1106 * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
1107 (genMod): removed case for genModbits,
1108 (genModbits): removed as now unused/unimplemented
1109 * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
1111 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1113 * support/regression/tests/swap.c: added in response to #1638622
1114 * doc/sdccman.lyx: synced version, minor changes
1116 2007-01-18 Borut Razem <borut.razem AT siol.net>
1118 * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
1119 thanks to Gunther Jehle
1120 * src/asm.c: don't die if the file drfined in #line couldn't be opened
1121 * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
1122 src/SDCCval.c: removed redundant definitions of currFname and mylineno;
1123 use filename in lineno instead.
1124 * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
1125 print the file name in ast_print()
1127 2007-01-18 Borut Razem <borut.razem AT siol.net>
1129 * support/Util/dbuf_string.c: removed (PTR) cast since it is not
1131 * src/SDCC.lex: stringLiteral() returns const char pointer,
1132 EOF detection in stringLiteral(), fixed asmbuf memory leak,
1133 fixed column counting
1134 * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
1135 accept const char pointer as parameter
1136 * src/SDCCdwarf2.c: corrected buffer size
1138 2007-01-17 Borut Razem <borut.razem AT siol.net>
1140 * support/Util/dbuf_string.c: fixed for amd64
1142 2007-01-15 Borut Razem <borut.razem AT siol.net>
1144 * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
1145 removed terminal symbol ELIPSIS, since it was never generated by the
1146 lexer and it was wrongly used in parameter_identifier_list rule
1148 2007-01-15 Raphael Neider <rneider AT web.de>
1150 * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
1151 code page and data banking description
1152 * src/pic/genarith.c,
1153 * src/pic/gen.h: removed bit arithmetic functions,
1154 updated exit(1) to exit(EXIT_FAILURE)
1155 * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
1156 * device/include/pic16/pic18f2455.h,
1157 * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
1158 TRISD and TRISE, fixed/added some bit names
1159 * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
1160 * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
1161 updated pic18f2455.{c,h} instead of duplicating them
1163 2007-01-14 Borut Razem <borut.razem AT siol.net>
1165 * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
1166 Cannot debug files that contain spaces in the path name
1167 by converting spaces in asm file name to underscores
1169 2007-01-13 Borut Razem <borut.razem AT siol.net>
1171 * doc/sdccman.lyx: fixed format errors
1173 2007-01-10 Borut Razem <borut.razem AT siol.net>
1175 * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
1176 codeseg/constseg #pragma fail
1177 * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
1178 * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
1179 suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
1180 suppoprt/cpp2/sdcpp.[ch]: house cleaning
1182 2007-01-09 Borut Razem <borut.razem AT siol.net>
1184 * get rid of diagnistic.[ch], pretty-print.[ch],
1185 c-pretty-print.[ch], ... used just for error, warning, ...
1187 * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
1188 suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
1189 suppoprt/cpp2/pretty-print.[ch]:
1191 * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
1192 suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
1193 suppoprt/cpp2/sdcpp.dsp:
1196 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
1198 * device/lib/printf_large.c (output_float): removed recursion,
1199 use smaller buffer on stack for mcs51,
1200 fixed bug printing 1.96
1201 * support/regression/tests/snprintf.c: added test
1203 2007-01-07 Borut Razem <borut.razem AT siol.net>
1205 * use dynamic memory buffers instead temporary files
1206 * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1208 * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1209 src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1210 src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1211 src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1212 src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1213 src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1214 src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1215 src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1216 src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1217 src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1218 src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1219 support/Util/dbuf.c, support/Util/dbuf.h:
1221 * .version, sdcc.spec: bumped version to 2.6.4
1223 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1225 * src/port.h: added TARGET_Z80_LIKE macro
1226 * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1227 output PSEG location if --xram-loc or --xstack-loc was used
1228 * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1230 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1232 * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1233 * as/as_z80.dsp, as/z80/as_z80.dsp,
1234 * as/asx8051.dsp, as/mcs51/asx8051.dsp,
1235 * sdcc.dsw: moved project files into subdir
1236 * as/hc08/as_hc08.dsp,
1237 * as/hc08/Makefile.bcc,
1238 * as/hc08/Makefile.in,
1239 * as/mcs51/Makefile.bcc,
1240 * as/mcs51/Makefile.in,
1241 * as/z80/Makefile.bcc,
1242 * as/z80/Makefile.in,
1243 * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1246 * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1249 * as/mcs51/asmain.c,
1251 * as/z80/assym.c: removed include "strcmpi.h"
1252 * as/hc08/strcmpi.c,
1253 * as/hc08/strcmpi.h,
1254 * as/mcs51/strcmpi.c,
1255 * as/mcs51/strcmpi.h,
1256 * support/Util/strcmpi.c,
1257 * support/Util/strcmpi.h: removed files
1258 * as/strcmpi.c: added as_strncmpi()
1260 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1262 * sdcc.dsw: Added some dependencies on project config.dsp
1264 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1266 * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1267 with [di]ram_start to fix a regresion
1269 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1271 * configure.in: added missing mcs51 in status output
1272 * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1274 * debugger/mcs51/clean.mk (distclean): remove config.h
1275 * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1276 * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1277 options.h, s-options-h and options.c
1278 * support/cpp2/clean.mk: unused, removed
1279 * Makefile.common.in,
1282 * as/hc08/Makefile.in,
1284 * as/mcs51/Makefile.in,
1285 * as/mcs51/clean.mk,
1288 * as/z80/Makefile.in,
1290 * as/link/Makefile.in,
1291 * as/link/hc08/Makefile.in,
1292 * as/link/hc08/clean.mk,
1293 * as/link/mcs51/Makefile.in,
1294 * as/link/mcs51/clean.mk,
1295 * as/link/z80/Makefile.in,
1296 * as/link/z80/clean.mk,
1297 * as/link/z80/conf.mk,
1298 * debugger/mcs51/Makefile.in,
1299 * debugger/mcs51/clean.mk,
1300 * device/include/Makefile.in,
1301 * device/lib/Makefile.in,
1302 * device/lib/mcs51/Makefile.in,
1303 * device/lib/pic/Makefile.in,
1304 * device/lib/pic/Makefile.common.in,
1305 * device/lib/pic/Makefile.subdir,
1306 * device/lib/pic/Makefile.rules,
1307 * device/lib/pic16/libio/Makefile.in,
1308 * device/lib/pic16/Makefile.subdir,
1309 * device/lib/pic16/libdev/Makefile.in,
1310 * device/lib/pic16/Makefile.rules,
1311 * device/lib/pic16/Makefile.common.in,
1312 * sim/ucsim/avr.src/Makefile.in,
1313 * sim/ucsim/main_in.mk,
1314 * sim/ucsim/cmd.src/Makefile.in,
1315 * sim/ucsim/doc/Makefile.in,
1316 * sim/ucsim/gui.src/Makefile.in,
1317 * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1318 * sim/ucsim/gui.src/serio.src/Makefile.in,
1319 * sim/ucsim/hc08.src/Makefile.in,
1320 * sim/ucsim/libltdl/Makefile.in,
1321 * sim/ucsim/s51.src/Makefile.in,
1322 * sim/ucsim/sim.src/Makefile.in,
1323 * sim/ucsim/sim.src/conf.mk,
1324 * sim/ucsim/xa.src/Makefile.in,
1325 * sim/ucsim/z80.src/Makefile.in,
1329 * support/cpp2/Makefile.in,
1330 * support/librarian/Makefile.in,
1331 * support/librarian/clean.mk,
1332 * support/makebin/Makefile.in,
1333 * support/makebin/clean.mk,
1334 * support/packihx/Makefile.in,
1335 * support/regression/Makefile.in,
1336 * support/regression/ports/ds390/spec.mk,
1337 * support/regression/ports/gbz80/spec.mk,
1338 * support/regression/ports/hc08/spec.mk,
1339 * support/regression/ports/mcs51/spec.mk,
1340 * support/regression/ports/mcs51-large/spec.mk,
1341 * support/regression/ports/mcs51-medium/spec.mk,
1342 * support/regression/ports/mcs51-xstack-auto/spec.mk,
1343 * support/regression/ports/pic14/spec.mk,
1344 * support/regression/ports/pic16/spec.mk,
1345 * support/regression/ports/mcs51-stack-auto/spec.mk,
1346 * support/regression/ports/ucz80/spec.mk,
1347 * support/regression/ports/xa51/spec.mk,
1348 * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1349 adding a slash after $(top_builddir) and/or adding @datarootdir@
1351 * debugger/mcs51/configure.in,
1352 * device/lib/pic/configure.in,
1353 * device/lib/pic16/configure.in,
1354 * sim/ucsim/configure.in,
1355 * support/cpp2/configure.in,
1356 * support/packihx/configure.in: changed AC_PREREQ to 2.60
1358 * debugger/mcs51/configure,
1359 * device/lib/pic/configure,
1360 * device/lib/pic16/configure,
1361 * sim/ucsim/configure,
1362 * support/cpp2/configure,
1363 * support/packihx/configure: generated with autoconf 2.60
1365 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1367 * as/link/hc08/lkihx.c (newArea),
1368 * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1370 2007-01-02 Borut Razem <borut.razem AT siol.net>
1372 * doc/sdccman.lyx: documented #pragma sdcc_hash
1373 * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1375 * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1377 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1379 * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1380 empty 'while'-loop to work correctly, see regression test 'while.c'
1381 * support/regression/tests/while.c: added
1383 2007-01-01 Borut Razem <borut.razem AT siol.net>
1385 * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1386 support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1387 support/cpp2/libcpp/sdcpp.c:
1388 sdcpp specific pragma/directive/option handling moved to sdcpp.c
1389 * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1390 * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1392 2006-12-31 Borut Razem <borut.razem AT siol.net>
1394 * SDCPP synchronized with GCC CPP release version 4.1.1,
1395 currently the latest release:
1396 * support/cpp2/libcpp, support/cpp2/libcpp/include,
1397 support/cpp2/libcpp/include/cpp-id-data.h
1398 support/cpp2/libiberty/fopen_unlocked.c
1399 support/cpp2/libiberty/md5.c
1401 support/cpp2/opt-functions.awk
1402 support/cpp2/opt-gather.awk
1403 support/cpp2/optc-gen.awk
1404 support/cpp2/opth-gen.awk:
1406 * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1407 support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1408 support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1409 support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1410 support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1411 support/cpp2/diagnostic.h, support/cpp2/except.h,
1412 support/cpp2/hwint.h, support/cpp2/input.h,
1413 support/cpp2/intl.h, support/cpp2/move-if-change,
1414 support/cpp2/opts.c, support/cpp2/opts.h,
1415 support/cpp2/output.h, support/cpp2/prefix.c,
1416 support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1417 support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1418 support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1419 support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1420 support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1421 support/cpp2/version.c:
1423 * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1424 support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1425 support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1426 support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1427 support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1428 support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1429 support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1430 support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1431 support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1432 support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1433 support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1435 * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1436 support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1437 support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1438 support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1439 support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1440 support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1441 support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1442 support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1443 support/cpp2/hashtable.h, support/cpp2/line-map.c,
1444 support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1445 support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1446 support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1447 support/cpp2/system.h:
1450 2006-12-31 Borut Razem <borut.razem AT siol.net>
1452 * configure.in, configure: fixed bug #1538756: configure dies if bison
1453 and flex are not installed, 2nd try
1455 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1457 * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1458 400.x for better code in RFE 899102
1460 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1462 * src/SDCCpeeph.c (deadMove),
1464 * src/mcs51/peep.h: renamed 'op' by 'reg'
1465 * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1466 (scan4op): small change for removeDeadMove(), added support for
1467 'callee saves' and/or PACLL function calls,
1468 (removeDeadMove): added, removes superflous 'mov r%1,%2',
1469 (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1470 left in new dispatcher mcs51DeadMove()
1471 (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1473 * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1475 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1477 * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1478 support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1480 2006-12-30 Borut Razem <borut.razem AT siol.net>
1482 * support/cpp2/spacs.h: deleted from svn
1483 * configure.in, configure: fixed bug #1538756: configure dies if bison
1484 and flex are not installed
1486 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1488 * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1489 with this z80 passes printf float test when enabled
1490 * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1492 2006-12-28 Borut Razem <borut.razem AT siol.net>
1494 * support/cpp2/config.in, support/cpp2/configure.in,
1495 support/cpp2/configure, support/cpp2/Makefile.in:
1496 fix for the solaris build
1498 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1500 * src/SDCC.y (type_specifier2, pointer),
1502 * src/SDCCsymt.c (mergeSpec, checkSClass),
1503 * support/Util/SDCCerr.c,
1504 * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1505 * support/valdiag/valdiag.py: Allow test cases to specify
1506 required language standard
1507 * support/valdiag/tests/restrict.c: New file to test restrict keyword
1508 * support/valdiag/tests/tentdecl.c: Supress empty source file error
1510 2006-12-27 Borut Razem <borut.razem AT siol.net>
1512 * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1513 * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1515 * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1517 * support/cpp2/libiberty/Makefile.bcc: updated
1518 * src/pic16/main.c: fixed #pragma udata handling
1519 * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1521 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1523 * src/SDCCpeeph.c: made labelHashEntry global,
1524 made pcDistance, FBYNAME static,
1525 (pcDistance): made static, use isComment and isLabel,
1527 (getLabelRef): added, extracted from labelRefCount(),
1528 (labelRefCount): use new getLabelRef(),
1529 (callFuncByName): made static, added deadMove,
1530 use isComment and isLabel,
1531 (newPeepRule): made static, set isLabel,
1532 (isLabelDefinition): added parameter isPeepRule to allow '%' in
1533 labels from peephole rules,
1534 (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1535 when isComment or isLabel is set
1536 * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1537 added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1539 * src/mcs51/peep.h: added
1540 * src/mcs51/peep.c: added, implements mcs51DeadMove()
1541 * src/port.h: added peep->deadMove to port structure
1542 * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1543 * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1544 deadMove, finally removed no. 1 and 2
1551 * src/hc08/gen.c: mark lines with isComment or isLabel
1552 * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1554 * sdcc.spec: bumped version to 2.6.3
1556 2006-12-26 Borut Razem <borut.razem AT siol.net>
1558 * support/cpp2/Makefile.in: added dependency on options.h
1559 * configure: regenerated
1560 * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1561 * support/cpp2/Makefile.in: added vasprintf.c
1563 2006-12-25 Borut Razem <borut.razem AT siol.net>
1565 * SDCPP synchronized with GCC CPP release version 3.4.6,
1566 the latest release before 4.x:
1567 * support/cpp2/Makefile.in, support/cpp2/config.h,
1568 support/cpp2/configure, support/cpp2/configure.in,
1569 support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1570 support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1571 support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1572 support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1573 support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1574 support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1575 support/cpp2/cpptrad.c, support/cpp2/except.h,
1576 support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1577 support/cpp2/hwint.h, support/cpp2/intl.h,
1578 support/cpp2/line-map.c, support/cpp2/line-map.h,
1579 support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1580 support/cpp2/output.h, support/cpp2/prefix.c,
1581 support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1582 support/cpp2/system.h, support/cpp2/version.c:
1584 * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1585 support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1586 support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1587 support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1588 support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1589 support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1590 support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1591 support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1592 support/cpp2/move-if-change, support/cpp2/opts.c,
1593 support/cpp2/opts.h, support/cpp2/opts.sh,
1594 support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1595 support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1596 support/cpp2/win32, support/cpp2/win32/dirent.c,
1597 support/cpp2/win32/dirent.h:
1599 * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1600 * support/cpp2/sdcpp.h: renamed from sdcc.h
1601 * sdcppinit.c: deleted
1603 2006-12-23 Borut Razem <borut.razem AT siol.net>
1605 * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1606 support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1607 preproc.c: an other try to fix bug #982435: introduced
1608 -pedantic-parse-number command line option and pedantic_parse_number
1611 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1613 * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1615 (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1616 corrected overlayed areax addresses, warn about memory overlaps
1617 * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1626 * src/port.h: added xabs_name and iabs_name
1627 * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1628 (glue, emitMaps): create and emit maps d_abs and i_abs
1629 * src/SDCCglue.h: cosmetic changes
1630 * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1632 * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1633 (allocDefault): put absolute, initialized globals in them
1634 * support/regression/tests/absolute.c: added absolute bdata test
1635 * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1637 2006-12-20 Borut Razem <borut.razem AT siol.net>
1639 * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1640 * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1641 added regression test for bug #982435
1643 2006-12-18 Borut Razem <borut.razem AT siol.net>
1645 * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1646 * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1647 small cosmetic changes
1648 * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1649 * support/regression/tests/bug-1351710.c: added regression test
1651 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1653 * doc/sdccman.lyx: added the long missed iCode table
1654 "<where is figure II?>", added links to wiki
1656 2006-12-17 Borut Razem <borut.razem AT siol.net>
1658 * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1659 src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1660 support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1661 unified table driven pragma handling, pragma argument type checking
1662 * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1663 current one - version 1.1.3
1664 * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1666 2006-12-13 Raphael Neider <rneider AT web.de>
1668 * src/pic/device.h: removed AssignedMemory structure and macros
1669 * src/pic/device.c: removed global finalMapping (linker assigns
1671 (register_map): add SFRs to remembered memRanges
1672 (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1673 assignFixedRegisters,assignRelocatableRegisters): removed,
1674 (setMaxRAM,validAddress): adapted accordingly,
1675 (pic14_hasSharebank,pic14_getSharedStack): only report and use
1676 reasonably sized sharebanks,
1677 * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1678 (allDefsOutOfRange): removed unused code,
1679 * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1681 * src/pic/pcode.c (register_reassign): removed recursion warning,
1682 fired far too often,
1683 * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1684 to use existing pic14_stringInSet() to avoid duplicate symbols,
1685 tidied up the code a bit,
1686 (pic14printLocals): added in symmetry to printExterns, replaces
1687 writeUsedRegs more or less,
1688 (picglue): call new pic14_printLocals(),
1689 * device/include/pic/pic*.h: removed #pragma memmap directives,
1690 information gathered from include/pic/pic14devices.txt
1691 * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1693 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1695 * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1697 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1699 * device/include/mcs51/cc2430.h: fixed missing ';'
1701 2006-12-10 Raphael Neider <rneider AT web.de>
1703 * device/lib/pic16/libc/stdio/vfprintf.c,
1704 * device/lib/pic16/libc/stdio/printf_small.c,
1705 * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1706 char arguments, as char varargs are cast to int by the caller,
1707 hopefully fixes #1604915 (other device libraries are still affected)
1709 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1711 * src/mcs51/ralloc.c (packRegsForAssign),
1712 * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1714 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1716 * device/include/malloc.h: removed init_dynamic_memory
1717 * device/lib/malloc.c: made init_dynamic_memory static and automatically
1718 call it once from malloc. Also use _sdcc_heap[] from _heap.c
1719 * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1720 * device/lib/libsdcc.lib,
1721 * device/lib/Makefile.in,
1722 * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1723 * doc/sdccman.lyx: documented use of new _heap.c
1724 * support/regression/tests/malloc.c: removed init_dynamic_memory
1725 * src/cdbFile.c(spacesToUnderscores): new function,
1726 (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1728 * device/include/tinibios.h: removed defines for putchar and getchar
1729 * device/lib/ds390/Makefile.in: added putchar.c
1730 * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1732 2006-12-09 Borut Razem <borut.razem AT siol.net>
1734 * support/cpp2/sdcc.h: prevent multiple inclusion
1735 * support/cpp2/options.h: deleted
1737 2006-12-08 Borut Razem <borut.razem AT siol.net>
1739 * support/cpp2/sdcc.h: removed x*alloc() macros
1740 * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1741 * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1742 support/cpp2/sdcpp.sdc: x*alloc files added to the project
1743 * support/cpp2/system.h: moved #include "sdcc.h"
1744 * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1745 support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1747 * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1748 -funsigned-char options
1749 * support/cpp2/sdcppmain.c: fixed bug 1611411
1751 2006-12-07 Borut Razem <borut.razem AT siol.net>
1753 * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1756 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1758 * src/SDCCsymt.c (addDecl): fixed bug 1609244
1759 * src/SDCCmain.c (linkEdit): fixed bug 1609279
1761 * .version: bumped to 2.6.2 because a) it's been a while
1762 b) the linker sources have moved c) the preprocessor is upgraded
1764 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1766 * support/regression/tests/snprintf.c: some checks
1767 * lib/src/printf_large.c: %bc: read char instead of int from stack
1769 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1771 * device/include/mcs51/cc2430.h: inserted _XPAGE
1773 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1775 * device/include/mcs51/cc2430.h: added
1777 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1779 * device/include/asm/default/features.h,
1780 * device/include/asm/ds390/features.h,
1781 * device/include/mcs51/at89s53.h,
1782 * device/include/ser.h,
1783 * device/include/ser_ir.h,
1784 * device/include/serial.h: changed keywords to double underscore variants,
1785 fixes bug 1590261 some more, thanks Steven Borley
1787 2006-12-01 Raphael Neider <rneider AT web.de>
1789 * src/pic/pcode.c (register_reassign): do not crash on recursive code
1790 but emit warning (recursion is not supported for pic14)
1792 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1794 * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1795 * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1797 2006-11-30 Raphael Neider <rneider AT web.de>
1799 * src/pic/device.c (dump_sfr): always emit symbols
1800 * src/pic/glue.c (pic14printPublics): fixed typo
1802 2006-11-30 Raphael Neider <rneider AT web.de>
1804 * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1805 (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1806 (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1807 pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1808 a sharebank, use a non-shared bank for the stack if none available
1809 * src/pic/device.h (struct memRange): added linked list next field,
1810 added prototypes for above functions
1811 * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1812 (typeRegWithIdx): accept fixed and unfixed stack registers
1813 * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1814 the stack, handle shared and banked stack (except for WSAVE),
1815 (insertBankSel): removed useless optimization (will never fire),
1816 (FixRegisterBanking): added optimization for devices with only one
1817 possibly aliased bank of memory, like 16f84
1818 * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1819 devices have no SHAREBANK in the linker script
1820 * device/include/pic/pic14devices.txt: documented memmap
1821 * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1823 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1825 * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1826 storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1827 genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1828 genhc08Code): switched most of the D (debug) macros to DD (detailed
1829 debug) macros to better control clutter in the generated .asm file.
1830 * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1831 genRightShift): fixed bug with non-constant bit shift stored to
1832 a volatile result (SF Open Discussion forum thread #1616749).
1833 Single byte case is not yet optimized.
1835 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1837 * device/include/asm/mcs51/features.h,
1838 * device/include/malloc.h,
1839 * device/include/stdio.h: changed keywords to double underscore variants,
1842 2006-11-27 Borut Razem <borut.razem AT siol.net>
1844 * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1845 support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1846 support/cpp2/output.h, support/cpp2/cppinit.c,
1847 support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1848 support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1849 support/cpp2/cppdefault.c, support/cpp2/system.h,
1850 support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1851 support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1852 support/cpp2/prefix.c, support/cpp2/except.h,
1853 support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1854 support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1855 support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1856 support/cpp2/version.c, support/cpp2/cppmain.c,
1857 support/cpp2/version.h, support/cpp2/hashtable.c,
1858 support/cpp2/cpperror.c:
1859 synchronized with GCC CPP release version 3.3.6,
1860 the latest where cppmain.c still exists.
1861 * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1862 support/cpp2/sdcppinit.c: added
1864 2006-11-27 Borut Razem <borut.razem AT siol.net>
1866 * support/cpp2/cpplex.c:
1867 fixed _asm ... _endasm handling bug, introduce with GCC CPP
1869 * support/cpp2/cpplib.c: removed definitions of unused variables
1871 2006-11-26 Borut Razem <borut.razem AT siol.net>
1873 * support/cpp2/libiberty.h: commented out x*alloc() declarations
1874 since they are redefined by macros in support/cpp2/sdcc.h
1875 * support/cpp2/sdcc.h: x*alloc macro redefinition
1877 2006-11-25 Borut Razem <borut.razem AT siol.net>
1879 * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1880 support/cpp2/configure, support/cpp2/Makefile.in,
1881 support/cpp2/cppfiles.c, support/cpp2/output.h,
1882 support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1883 support/cpp2/config.h, support/cpp2/cpplib.h,
1884 support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1885 support/cpp2/cppdefault.c, support/cpp2/config.in,
1886 support/cpp2/system.h, support/cpp2/cpplex.c,
1887 support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1888 support/cpp2/cppdefault.h, support/cpp2/prefix.c
1889 support/cpp2/hwint.h, support/cpp2/mbchar.h,
1890 support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1891 support/cpp2/configure.in, support/cpp2/intl.h,
1892 support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1893 support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1894 support/cpp2/version.c, support/cpp2/cppmain.c,
1895 support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1896 support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1897 support/cpp2/cpperror.c,
1898 support/cpp2/libiberty/safe-ctype.c,
1899 support/cpp2/libiberty/safe-ctype.h,
1900 support/cpp2/libiberty/splay-tree.c,
1901 support/cpp2/libiberty/obstack.c,
1902 support/cpp2/libiberty/lbasename.c,
1903 support/cpp2/libiberty/splay-tree.h,
1904 support/cpp2/libiberty/obstack.h:
1905 synchronized with GCC CPP release version 3.2.3,
1906 the latest before integration of cpp into gcc
1907 * support/cpp2/except.h, support/cpp2/line-map.c,
1908 support/cpp2/line-map.h,
1909 support/cpp2/libiberty/hex.c,
1910 support/cpp2/libiberty/concat.c,
1911 support/cpp2/libiberty/filenames.h: added
1912 * support/cpp2/intl.c: deleted
1914 2006-11-24 Borut Razem <borut.razem AT siol.net>
1916 * src/SDCC.y: enabled compilation of empty source file
1917 * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1918 "ISO C forbids an empty source file"
1919 * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1920 if all the code is ifdefed out.
1922 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1924 * src/hc08/gen.c (genPcall): fix for bug #1601032
1926 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1928 * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1929 * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1930 * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1931 * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1932 * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1933 * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1934 * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1935 * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1936 * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1937 * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1938 * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1939 * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1940 * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1941 * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1942 * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1943 Renamed to all upper case as per the standard set by SiLabs
1945 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1947 * device/include/mcs51/C8051F520.h: new, added
1948 * device/include/mcs51/compiler.h: added link about predefined macros
1950 2006-11-23 Raphael Neider <rneider AT web.de>
1952 * src/regression/Makefile: add -L path to fresh library
1953 * src/regression/simulate: emphasize FAILED output
1954 * src/regression/create_stc: output _failures from gpsim
1955 * src/regression/compare4.c,
1956 * src/regression/rotate6.c: fixed char literals,
1957 all compile, all run =8-D
1959 * src/pic/pcode.h: added isPCASMDIR macro
1960 * src/pic/gen.c (genAnd): fixed bit offset
1961 * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1962 packBits): unified register numbering schemes,
1963 (newReg): do not insert stack registers into hash table,
1964 (initStack): unpinned pseudo stack, simplified,
1965 (typeRegWithIdx): fixed retrieval of stack registers,
1966 * src/pic/pcode.c (addpCodeComment,sameBank): added,
1967 (pCodeReplace): removed invalid assertion,
1968 (insertPCodeInstruction): fixed newly added labels,
1969 (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1970 FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1971 DumpFlow): removed unsed (broken?) code,
1972 (insertBankSel): prevent STATUS from being BANKSELed,
1973 (FixRegisterBanking): rewritten from scratch, implemented generic
1974 optimizations (suppress BANKSELs to same register and to registers
1975 present in all banks),
1976 (AnalyzeBanking): update flow after BANKSELection
1978 * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1979 sharebank, let linker place it, mark STKxx symbols as emitted
1981 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1983 * src/regression/arrays.c,
1984 * src/regression/bank1.c,
1985 * src/regression/bool2.c,
1986 * src/regression/compare7.c,
1987 * src/regression/compare8.c,
1988 * src/regression/compare9.c,
1989 * src/regression/compare10.c,
1990 * src/regression/configword.c,
1991 * src/regression/for.c,
1992 * src/regression/mult1.c,
1993 * src/regression/pointer1.c,
1994 * src/regression/rotate6.c,
1995 * src/regression/string1.c,
1996 * src/regression/struct1.c,
1997 * src/regression/Makefile: make PIC14 regression tests run again
1998 (3 fail, 6 won't compile)
2000 2006-11-21 Raphael Neider <rneider AT web.de>
2002 * device/include/pic16/pic18f4550.h,
2003 * device/include/pic16/pic18f4455.h,
2004 * device/lib/pic16/libdev/pic18f4550.c,
2005 * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
2006 * configure.in: removed superfluous closing bracket
2008 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2010 * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
2013 2006-11-21 Raphael Neider <rneider AT web.de>
2015 * src/pic/device.{c,h}: added pic14_getPIC()
2016 * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
2017 (genAnd): added PIC code for one case, fixes #1597044
2018 * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
2019 SFRs that are present in all banks (e.g., STATUS)
2021 2006-11-20 Raphael Neider <rneider AT web.de>
2023 * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
2024 INCFSZ/INCFSZW and declared them as changing Z bit,
2025 (insertPCodeInstruction): correctly invert the above instructions,
2027 (DoBankSelect): don't panic on po_immediates
2029 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2032 * as/link/mcs51/lkihx.c (newArea),
2033 * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
2034 * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
2036 2006-11-11 Raphael Neider <rneider AT web.de>
2038 * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
2039 bitfield symbols, fixes #1579535 (once more...).
2041 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2043 * support/regression/generate-cases.py,
2044 * support/regression/fwk/include/testfwk.h,
2045 * support/regression/fwk/lib/testfwk.c: used code pointers,
2046 (about 50kByte less code generated for mcs51)
2048 2006-11-06 Borut Razem <borut.razem AT siol.net>
2050 * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2051 debugger/mcs51/configure: fixed failed check because the function
2052 rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
2053 who submitted the patch for gpsim.
2054 * debugger/mcs51/configure.in: removed the result message
2055 * debugger/mcs51/Makefile.in: fixed the config.status warning
2056 "... seems to ignore the --datarootdir setting"
2058 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
2060 * device/include/mcs51/c8051f020.h,
2061 * device/include/mcs51/c8051f040.h,
2062 * device/include/mcs51/c8051f060.h,
2063 * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
2064 * src/z80/gen.c (gencjneshort),
2065 * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
2067 2006-10-31 Borut Razem <borut.razem AT siol.net>
2069 * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2070 debugger/mcs51/configure: get readline version
2072 2006-10-30 Borut Razem <borut.razem AT siol.net>
2074 * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
2075 * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
2076 debugger/mcs51/configure: locate readline even when cross compiling
2077 * support/scripts/sdcc.nsi: include readline5.dll into the setup package
2079 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2081 * device/include/mcs51/serial_IO.h: putchar() and getchar() using
2084 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2086 * device/include/malloc.h,
2087 * device/lib/calloc.c,
2088 * device/lib/free.c,
2089 * device/lib/malloc.c,
2090 * device/lib/realloc.c: moved definition of struct into sources
2091 * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
2093 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
2095 * as/asx8051.dsp: corrected output directories
2096 * as/link/hc08: new directory for hc08 linker
2097 * as/hc08/aslink.h, as/link/aslink.h,
2098 * as/hc08/aslink.mak, as/link/hc08/aslink.mak,
2099 * as/hc08/clean.mk, as/link/hc08/clean.mk,
2100 * as/hc08/link_hc08.dsp, as/link/hc08/link_hc08.dsp,
2101 * as/hc08/lkaomf51.c, as/link/hc08/lkaomf51.c,
2102 * as/hc08/lkarea.c, as/link/hc08/lkarea.c,
2103 * as/hc08/lkdata.c, as/link/hc08/lkdata.c,
2104 * as/hc08/lkelf.c, as/link/hc08/lkelf.c,
2105 * as/hc08/lkihx.c, as/link/hc08/lkihx.c,
2106 * as/hc08/lklibr.c, as/link/hc08/lklibr.c,
2107 * as/hc08/lkmain.c, as/link/hc08/lkmain.c,
2108 * as/hc08/lkmem.c, as/link/hc08/lkmem.c,
2109 * as/hc08/lkrloc.c, as/link/hc08/lkrloc.c,
2110 * as/hc08/lks19.c, as/link/hc08/lks19.c,
2111 * as/hc08/Makefile.aslink, as/link/hc08/Makefile.aslink,
2112 * as/hc08/Makefile.bcc, as/link/hc08/Makefile.bcc,
2113 * as/hc08/Makefile.in, as/link/hc08/Makefile.in,
2114 * as/link/hc08/conf.mk,
2118 * sdcc.dsw: moved hc08 linker to as/link/hc08
2119 * as/hc08/lkeval.c, as/link/mcs51/lkeval.c, as/link/lkeval.c,
2120 * as/hc08/lkhead.c, as/link/mcs51/lkhead.c, as/link/lkhead.c,
2121 * as/hc08/lklex.c, as/link/mcs51/lklex.c, as/link/lklex.c,
2122 * as/hc08/lklist.c, as/link/mcs51/lklist.c, as/link/lklist.c,
2123 * as/hc08/lknoice.c, as/link/mcs51/lknoice.c, as/link/lknoice.c,
2124 * as/hc08/lksym.c, as/link/mcs51/lksym.c, as/link/lksym.c,
2125 * as/link/mcs51/aslink.dsp,
2126 * as/link/mcs51/Makefile.in: factored out the common files
2127 * as/hc08/lkstore.c: deleted, use the one already in as/link/
2128 * as/clean.mk: extra cleaning common files
2129 * as/link/mcs51/strcmpi.c, as/strcmpi.c: moved
2130 * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
2131 * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
2133 2006-10-29 Raphael Neider <rneider AT web.de>
2135 * src/pic/ralloc.c (newReg): create aliases for registers with
2136 multiple names to fix #1579535 and #1584001,
2137 (regWithIdx,dirregWithName): resolve aliases on lookup
2138 * src/pic/pcode.c (DoBankSelect): die with error message on failing
2140 * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
2141 to prevent build errors on small devices
2143 2006-10-28 Raphael Neider <rneider AT web.de>
2145 * src/pic/gen.c (genFunction,genCall): drop "same code page"
2146 assumption within interrupt handlers, fixes #1584940
2147 * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
2148 "emitted" to avoid emitting them again in udata
2150 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2152 * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2155 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2157 * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
2158 Initialize uart only if SM0 and SM1 are zero. Also, use flag to turn
2159 on/off CR to CRLF conversion.
2161 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2163 * doc/sdccman.lyx: updated IRQ section
2165 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2167 * device/lib/serial_io.c: removed
2168 * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
2169 replacements for serial_io.c
2171 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
2173 * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
2175 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2177 * device/lib/serial_io.c: Default putchar() and getchar() for
2178 mcs51 uses serial port.
2180 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
2182 * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
2184 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2186 * support/regression/ports/mcs51/support.c: smaller
2187 _sdcc_external_startup()
2188 * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
2190 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2192 * device/lib/gbz80/crt0.s,
2193 * device/lib/gbz80/crt0_rle.s,
2194 * device/lib/gbz80/div.s,
2195 * device/lib/gbz80/fstubs.s,
2196 * device/lib/gbz80/heap.s,
2197 * device/lib/gbz80/mul.s,
2198 * device/lib/gbz80/putchar.s,
2199 * device/lib/gbz80/stubs.s,
2200 * device/lib/z80/crt0.s,
2201 * device/lib/z80/crt0_rle.s,
2202 * device/lib/z80/div.s,
2203 * device/lib/z80/fstubs.s,
2204 * device/lib/z80/heap.s,
2205 * device/lib/z80/mul.s,
2206 * device/lib/z80/putchar.s,
2207 * device/lib/z80/stubs.s: reverted, I was mistaken
2209 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2211 * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2212 * support/regression/ports/mcs51/support.c: removed race
2213 condition on TI in _putchar allowing to use serial port mode 0
2215 2006-10-20 Borut Razem <borut.razem AT siol.net>
2217 * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2219 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2221 * device/lib/gbz80/crt0.s,
2222 * device/lib/gbz80/crt0_rle.s,
2223 * device/lib/gbz80/div.s,
2224 * device/lib/gbz80/fstubs.s,
2225 * device/lib/gbz80/heap.s,
2226 * device/lib/gbz80/mul.s,
2227 * device/lib/gbz80/putchar.s,
2228 * device/lib/gbz80/stubs.s,
2229 * device/lib/z80/crt0.s,
2230 * device/lib/z80/crt0_rle.s,
2231 * device/lib/z80/div.s,
2232 * device/lib/z80/fstubs.s,
2233 * device/lib/z80/heap.s,
2234 * device/lib/z80/mul.s,
2235 * device/lib/z80/putchar.s,
2236 * device/lib/z80/stubs.s: removed all leading underscores from area names
2238 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2240 * support/regression/ports/mcs51/support.c: use highest baudrate so the
2241 regression tests are not waiting in the simulator for simulated
2242 transmission of debug output
2244 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2246 * device/lib/printf_large.c: slightly smaller
2247 * doc/sdccman.lyx: do not use spaces within html links
2249 2006-10-16 Borut Razem <borut.razem AT siol.net>
2251 * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2252 debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2253 debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2254 debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2255 debugger/mcs51/configure:
2256 [ 1185668 ] add gnu readline support to sdcdb - enabled
2258 2006-10-16 Raphael Neider <rneider AT web.de>
2260 * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2261 fixes #1577882, removes close to all banking optimizations
2263 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2265 * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2266 variables in code memory
2267 * support/regression/tests/absolute.c: added test for this
2269 2006-10-15 Raphael Neider <rneider AT web.de>
2271 * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2273 (BankSelect): emit BANKSEL before touching linker-placed regs,
2276 2006-10-10 Raphael Neider <rneider AT web.de>
2278 * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2279 * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2280 * src/pic/main.c (_pic14_parseOptions),
2281 * src/pic/main.h: mostly reverted to previous state, now use results
2282 from SDCCmain.c's argument parsing
2284 2006-10-10 Borut Razem <borut.razem AT siol.net>
2286 * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2287 debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2288 [ 1185668 ] add gnu readline support to sdcdb -
2289 prepared for READLINE, not enabled yet,
2290 thanks to <tal.bav AT gmail.com>
2292 2006-10-10 Raphael Neider <rneider AT web.de>
2294 * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2295 * src/pic16/devices.inc,
2296 * device/include/pic16 (pic18f[24]620.h),
2297 * device/include/pic18fregs.h,
2298 * device/lib/pic16/pics.all,
2299 * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2300 18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2301 Gary Plumbridge and Anton Strobl
2303 2006-10-10 Raphael Neider <rneider AT web.de>
2305 * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2306 --stack-siz=NUM options to configure the argument passing stack
2307 * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2308 * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2309 (pic14_getSharebankSize): obey --stack-siz=NUM,
2310 (pic14_getSharebankAddress): obey --stack-loc=NUM
2312 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2314 * doc/sdccman.lyx: added to the manual
2315 * doc/figures/ddd_example.png: added (neither pdflatex nor
2316 most browsers seem to like the .eps file)
2318 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2320 * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2321 to /tmp and /var/tmp acc. LSB
2322 * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2324 * support/regression/tests/onebyte.c: added test
2326 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2328 * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2330 2006-10-05 Borut Razem <borut.razem AT siol.net>
2332 * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2334 - sdcc.dsw: changed property eol-style to CRLF
2335 - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2337 2006-10-04 Raphael Neider <rneider AT web.de>
2339 * device/include/pic/{pic16f84.h,pic16f84a.h},
2340 * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2341 from patch #1522504, thanks to Robas Teodor
2343 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2345 * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2348 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2350 * src/pic16/glue.c (pic16emitMaps),
2351 * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2352 * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2353 * device/lib/pic16/libc/string/memcpypgm2ram.c,
2354 * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2356 * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2357 * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2359 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2361 * support/librarian/sdcclib.c: Added option -l.
2362 * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2364 * device/lib/make51lib.bat: added. Allows building mcs51 libraries easily
2365 using Windows command prompt.
2367 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2369 * device/lib/libsdcc.lib: added module rand
2370 * src/ds390/ralloc.c (rematStr),
2371 * src/hc08/ralloc.c (rematStr),
2372 * src/mcs51/ralloc.c (rematStr),
2373 * src/z80/ralloc.c (rematStr): made output more consistent
2374 * src/mcs51/gen.c: cosmetic changes
2376 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2378 * src/port.h: added mem.cabs_name to PORT
2385 * src/z80/main.c: added cabs_name initializers
2386 * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2388 (emitMaps): emit absolutes in code memory into cabs_name
2390 * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2391 * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2392 * support/regression/fwk/include/testfwk.h: added define for at
2393 * support/regression/tests/absolute.c: added, new
2395 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2397 * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2398 optimizations, see also patch 887161 by Stas Sergeev
2399 * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2400 to be necessary anymore,
2401 (102, 103, 104, 127): renamed all occurances of bp to _bp
2403 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2405 * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2406 thanks Weston T. Schmidt for patch 1555221
2407 * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2408 * src/SDCCicode.c(geniCodeMultiply): small optimization
2410 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2412 * device/include/stdlib.h: added rand prototypes
2413 * device/lib/rand.c: new, added
2414 * device/lib/Makefile.in: added rand.c
2415 * src/z80/peeph.def,
2416 * src/z80/peeph-gbz80.def,
2417 * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2419 2006-09-20 Raphael Neider <rneider AT web.de>
2421 * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2423 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2425 * as/link/aslink.h: cosmetic changes
2426 * as/link/mcs51/Makefile.in,
2427 * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2429 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2432 * as/link/mcs51/aslink.h,
2433 * as/link/z80/aslink.h: merged and moved to as/link/
2434 * as/link/lkstore.c,
2435 * as/link/mcs51/lkstore.c: moved to as/link/
2436 * as/link/clean.mk: remove *.o
2437 * as/link/mcs51/alloc.h: deleted
2438 * as/link/mcs51/lkarea.c: added lnksect prototype
2439 * as/link/mcs51/lkdata.c,
2440 * as/link/mcs51/lklex.c,
2441 * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2442 * as/link/mcs51/lkmem.c,
2443 * as/link/mcs51/lknoice.c: removed include strcmpi.h
2444 * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2445 * as/link/mcs51/aslink.dsp,
2446 * as/link/mcs51/Makefile.aslink,
2447 * as/link/mcs51/Makefile.bcc,
2448 * as/link/mcs51/Makefile.in: updated for moved files
2449 * as/link/z80/lkarea.c,
2450 * as/link/z80/lkhead.c,
2451 * as/link/z80/lklex.c,
2452 * as/link/z80/lklibr.c,
2453 * as/link/z80/lklist.c,
2454 * as/link/z80/lkmain.c,
2455 * as/link/z80/lkrloc.c,
2456 * as/link/z80/lksym.c: synced with mcs51
2457 * as/link/z80/lkdata.c,
2458 * as/link/z80/lkeval.c,
2459 * as/link/z80/lkihx.c,
2460 * as/link/z80/lks19.c: cosmetic changes
2461 * as/link/z80/Makefile.in,
2462 * as/link/z80/linkgbz80.dsp,
2463 * as/link/z80/linkz80.dsp: updated for moved files
2465 2006-09-16 Borut Razem <borut.razem AT siol.net>
2467 * debugger/mcs51/sdcdb.c: partially fixed
2468 [ 1203664 ] sdcdb fails to open files w. two "." periods
2469 * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2470 debugger/mcs51/symtab.h: fixed indenting
2471 * configure.in, configure: up to date with latest Maarten's changes
2473 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2476 as/aslink.dsp, as/link/mcs51/aslink.dsp,
2477 as/link/mcs51/aslink.h, as/mcs51/aslink.h,
2478 as/link/mcs51/aslink.mak, as/mcs51/aslink.mak,
2479 as/link/mcs51/lkaomf51.c, as/mcs51/lkaomf51.c,
2480 as/link/mcs51/lkarea.c, as/mcs51/lkarea.c,
2481 as/link/mcs51/lkdata.c, as/mcs51/lkdata.c,
2482 as/link/mcs51/lkeval.c, as/mcs51/lkeval.c,
2483 as/link/mcs51/lkhead.c, as/mcs51/lkhead.c,
2484 as/link/mcs51/lkihx.c, as/mcs51/lkihx.c,
2485 as/link/mcs51/lklex.c, as/mcs51/lklex.c,
2486 as/link/mcs51/lklibr.c, as/mcs51/lklibr.c,
2487 as/link/mcs51/lklist.c, as/mcs51/lklist.c,
2488 as/link/mcs51/lkmain.c, as/mcs51/lkmain.c,
2489 as/link/mcs51/lkmem.c, as/mcs51/lkmem.c,
2490 as/link/mcs51/lknoice.c, as/mcs51/lknoice.c,
2491 as/link/mcs51/lkrloc.c, as/mcs51/lkrloc.c,
2492 as/link/mcs51/lks19.c, as/mcs51/lks19.c,
2493 as/link/mcs51/lkstore.c, as/mcs51/lkstore.c,
2494 as/link/mcs51/lksym.c, as/mcs51/lksym.c,
2495 as/link/mcs51/Makefile.aslink, as/mcs51/Makefile.aslink,
2496 as/link/mcs51/alloc.h,
2497 as/link/mcs51/clean.mk,
2498 as/link/mcs51/conf.mk,
2499 as/link/mcs51/Makefile.bcc,
2500 as/link/mcs51/Makefile.in,
2501 as/link/mcs51/readme.390,
2502 as/link/mcs51/strcmpi.c,
2503 as/link/mcs51/strcmpi.h,
2505 as/mcs51/Makefile.bcc,
2506 as/mcs51/Makefile.in,
2509 sdcc.dsw: moved mcs51 linker to as/link/mcs51
2511 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2514 * as/link/Makefile.in,
2515 * as/link/z80/linkgbz80.dsp,
2516 * as/link/z80/linkz80.dsp,
2523 * link/z80/aslink.h,
2524 * link/z80/clean.mk,
2526 * link/z80/linkgbz80.dsp,
2527 * link/z80/linkz80.dsp,
2528 * link/z80/lkarea.c,
2529 * link/z80/lkdata.c,
2530 * link/z80/lkeval.c,
2533 * link/z80/lkhead.c,
2536 * link/z80/lklibr.c,
2537 * link/z80/lklist.c,
2538 * link/z80/lkmain.c,
2539 * link/z80/lkrloc.c,
2542 * link/z80/Makefile.in,
2544 * sdcc.dsw: moved link/ to as/link/
2546 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2548 * as/mcs51/i51mch.c (machine): fixed warning
2550 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2552 * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2554 2006-09-09 Borut Razem <borut.razem AT siol.net>
2556 * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2557 sdcdb WIN32 native port
2558 * src/clean.mk: fixed
2560 2006-09-08 Borut Razem <borut.razem AT siol.net>
2562 * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2564 2006-09-08 Raphael Neider <rneider AT web.de>
2566 * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2567 * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2568 to gplink to disable processor mismatch warning and to allow
2569 the use of devices with only aliased (shared) memory banks,
2570 (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2572 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2574 * doc/sdccman.lyx: Some re-formating plus example on using
2575 #pragma preproc_asm +/-
2577 2006-09-07 Borut Razem <borut.razem AT siol.net>
2579 * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2582 2006-09-06 Borut Razem <borut.razem AT siol.net>
2584 * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2585 line at sdcc.nsi:153
2586 * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2588 2006-09-05 Borut Razem <borut.razem AT siol.net>
2590 * configure.in, configure: support for winsock2
2591 * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2592 debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2593 debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2594 debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2595 debugger/mcs51/symtab.h: sdcdb WIN32 native port
2597 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2599 * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2601 * support/regression/tests/bug1551947.c: new, added
2602 * src/SDCCsymt.h: strings are char* not byte*
2604 2006-09-05 Raphael Neider <rneider AT web.de>
2606 * device/lib/pic16/libdev/pic18f4550.c,
2607 device/include/pic16/pic18f4550.h: added PORTD/TRISD
2608 declarations/definitions from patch #1520949
2610 2006-09-05 Raphael Neider <rneider AT web.de>
2612 * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2613 byte-aligned bitfields, fixes #1539278
2615 2006-09-05 Raphael Neider <rneider AT web.de>
2617 * src/pic/gen.c (genReceive): skip unreferenced arguments,
2620 2006-09-04 Borut Razem <borut.razem AT siol.net>
2622 * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2623 * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2624 -mno-cygwin is a part of the compiler name
2625 * support/scripts/sdcc_mingw32: don't disable ucsim
2627 2006-09-03 Borut Razem <borut.razem AT siol.net>
2629 * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2630 * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2632 2006-09-03 Raphael Neider <rneider AT web.de>
2635 * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2636 indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2639 2006-09-01 Borut Razem <borut.razem AT siol.net>
2641 * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2642 to make ppc-osx happy
2644 2006-08-31 Borut Razem <borut.razem AT siol.net>
2646 * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2647 * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2648 * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2649 * support/regression/ports/ds390/spec.mk,
2650 support/regression/ports/mcs51/spec.mk,
2651 support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2652 To run regression tests in mingw environment:
2653 make DEV_NULL=NUL CC=gcc
2655 2006-08-30 Borut Razem <borut.razem AT siol.net>
2657 * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2658 sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2659 sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2660 sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2661 sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2662 sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2663 sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2664 sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2665 sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2666 sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2667 sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2668 sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2669 sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2670 sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2671 sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2672 sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2673 sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2674 sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2675 sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2676 sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2677 sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2678 sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2679 sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2680 sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2681 sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2682 sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2683 sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2684 sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2685 sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2686 sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2687 sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2688 sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2689 sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2690 sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2691 sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2692 sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2693 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2694 sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2695 sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2696 ucsim WIN32 native port
2698 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2700 * doc/sdccman.lyx: added note on dynamic memory heap initialization
2702 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2704 * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2705 * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2707 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2709 * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2710 * support/regression/tests/bug1546986.c: new, added
2711 * as/mcs51/.cvsignore,
2712 * debugger/mcs51/.cvsignore,
2713 * src/.cvsignore: deleted
2715 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2717 * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2720 2006-08-20 Borut Razem <borut.razem AT siol.net>
2722 * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2723 removed cl_listen_console::match(), cl_console::match(),
2724 restructured cl_commander::proc_input()
2726 2006-08-16 Borut Razem <borut.razem AT siol.net>
2728 * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2729 sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2730 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2732 2006-08-14 Borut Razem <borut.razem AT siol.net>
2734 * support/regression/Makefile.in,
2735 support/regression/ports/pic14/gpsim.cmd,
2736 support/regression/ports/pic14/spec.mk,
2737 support/regression/ports/pic14/support.c:
2738 added pic14 regression test
2740 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2742 * as/doc/asxhtm.html: documented changed ABS behaviour
2743 * as/doc/README: fixed some typos
2745 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2747 * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2750 2006-08-12 Borut Razem <borut.razem AT siol.net>
2752 * support/regression/fwk/include/testfwk.h,
2753 support/regression/fwk/lib/testfwk.c,
2754 support/regression/generate-cases.py,
2755 support/regression/Makefile.in:
2756 regression test framework does not depend on function pointers and
2759 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2761 * device/include/stddef.h: c temporary hack to fix bug 1518273
2763 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2765 * device/include/mcs51/cc2510fx.h: added
2766 * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2769 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2771 * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2772 * as/z80/Makefile.in: added strcmpi.c
2773 * as/z80/z80adr.c: added upper case registers and lower case conditionals
2774 * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2776 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2778 * device/lib/gbz80/asm_strings.s,
2779 * device/lib/gbz80/crt0_rle.s,
2780 * device/lib/gbz80/div.s,
2781 * device/lib/gbz80/mul.s,
2782 * device/lib/gbz80/shift.s,
2783 * device/lib/z80/asm_strings.s,
2784 * device/lib/z80/crt0_rle.s,
2785 * device/lib/z80/div.s,
2786 * device/lib/z80/mul.s,
2787 * device/lib/z80/shift.s: changed to all lower case menmonics except the
2788 flags which are all upper case
2790 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2792 * as/z80/asm.h: made CASE_SENSITIVE 1
2793 * link/z80/aslink.h: made CASE_SENSITIVE 1
2794 * src/z80/gen.c (throughout): made all conditionals upper case
2795 * support/regression/tests/bug1503067.c: new
2797 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2799 * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2800 (shiftIntoPair): added case 2 for PAIR_IY,
2801 (setupToPreserveCarry): replaced parameters with iCode and check if
2802 PAIR_DE is in use to fix bug 1399290,
2803 (genPlus, genMinus): updated call to setupToPreserveCarry
2804 * support/regression/tests/bug1399290.c: new
2806 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2808 * device/lib/Makefile.in (Z80SOURCES): enabled float support
2809 * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2810 * src/ds390/gen.c (shiftRLong),
2811 * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2812 * src/mcs51/gen.c (sameReg): changed to sameByte,
2813 (xch_a_aopGet): new,
2814 (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2815 shiftRLong): fixed bug 1533966
2816 * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2817 genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2818 * support/regression/Makefile.in: disabled z80, enabled ucz80
2819 * support/regression/tests/float_trans.c: enabled test for z80 and host
2820 * support/regression/tests/shifts2.c: new, for testing bug 1533966
2822 2006-08-01 Borut Razem <borut.razem AT siol.net>
2824 * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2825 comparison is always false due to limited range of data type
2826 on PPC64 machine (openpower-linux1) where "char = unsigned char"
2828 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2830 * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2831 * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2832 * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2833 * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2835 2006-07-31 Borut Razem <borut.razem AT siol.net>
2837 * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2838 sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2839 sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2840 sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2841 sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2842 sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2843 sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2844 sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2845 enable ucsim mingw compilation. Serial port is disabled,
2846 since it uses termios.h API, which is not available on native
2849 2006-07-31 Borut Razem <borut.razem AT siol.net>
2851 * Small Device C Compiler 2.6.0 released
2852 * support/scripts/sdcc.nsi: added FULL_DOC option
2853 * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2855 2006-07-28 Borut Razem <borut.razem AT siol.net>
2857 * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2858 * doc/INSTALL.txt: updated
2860 2006-07-27 Borut Razem <borut.razem AT siol.net>
2862 * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2863 device/lib/pic/libdev/Makefile.in: fixed bug
2864 [ 1438354 ] pic libsdcc: distclean doesn't work
2865 * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2866 device/lib/pic16/libio/Makefile.in: fixed bug
2867 [ 1438344 ] pic16 lib: clean doesn't work properly
2868 * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2870 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2872 * device/lib/pic/libsdcc/fsdiv.c,
2873 * device/lib/pic/libsdcc/fsmul.c,
2874 * device/lib/pic16/libsdcc/float/fsdiv.c,
2875 * device/lib/pic16/libsdcc/float/fsmul.c,
2876 * device/lib/_fsdiv.c,
2877 * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2878 * support/regression/tests/bug1520966.c: added
2879 * doc/knownbugs.html: removed [ 1520966 ] from the list
2881 2006-07-25 Borut Razem <borut.razem AT siol.net>
2883 * configure.in, configure, sdccconf_in.h: fixed bug
2884 [ 1519095 ] regression test onebyte.c fails on ppc64 host
2885 * doc/knownbugs.html: removed [ 1519095 ] from the list
2887 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2889 * doc/knownbugs.html: added, contains list of known bugs at release
2890 * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2892 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2894 * device/include/mcs51/compiler.h: added SFRX for xdata based special
2895 function registers and corrected defaults with additional warning
2896 * device/lib/malloc.c: cosmetic changes
2897 * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2898 * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2899 (fillGaps): and used it
2901 2006-07-20 Raphael Neider <rneider AT web.de>
2903 * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2904 output unless SDCCPICDEBUG is set
2905 * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2906 output if SILENT is set
2908 2006-07-11 Borut Razem <borut.razem AT siol.net>
2910 * doc/README.txt: updated
2912 2006-07-10 Borut Razem <borut.razem AT siol.net>
2914 * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2915 device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2916 in WIN32 installation
2917 * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2920 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2922 * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2923 * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2925 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2927 * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2929 2006-07-06 Borut Razem <borut.razem AT siol.net>
2931 * support/regression/tests/bitfields.c:
2932 fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2933 * support/regression/tests/constantRange.c:
2934 fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2936 2006-07-04 Borut Razem <borut.razem AT siol.net>
2938 * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2940 src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2941 src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2942 src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2943 reverted changes from 2006-07-03
2944 * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2945 * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2946 added CPPFLAGS, used by the host port
2948 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2950 * support/regression/valdiag/tests/switch.c,
2951 * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2952 * support/regression/tests/libmullong.c: fixed for host
2953 * support/regression/ports/host/spec.mk: disable all warnings for host,
2954 SDCC runs with --less-pedantic too
2956 2006-07-03 Borut Razem <borut.razem AT siol.net>
2958 * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2960 * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2961 * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2962 src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2963 src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2965 * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2966 sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2967 sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2968 sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2970 2006-07-02 Raphael Neider <rneider AT web.de>
2972 * src/pic16/devices.inc,
2973 * device/include/pic16/pic18fregs.h,
2974 * device/include/pic16/pic18f4550.h,
2975 * device/lib/pic16/pics.all,
2976 * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2978 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2980 * as/hc08/lkaomf51.c (OutputName),
2981 * as/mcs51/lkaomf51.c (OutputName),
2982 * as/z80/asmain.c (asmbl),
2983 * src/ds390/main.c (asmLineNodeFromLineNode),
2984 * src/hc08/ralloc.c (hc08_assignRegisters),
2985 * src/mcs51/main.c (asmLineNodeFromLineNode),
2986 * src/xa51/ralloc.c (checkRegMask),
2987 * src/xa51/gen.c (emitcode),
2988 * src/z80/gen.c (_emit2),
2989 * src/SDCCast.c (searchLitOp),
2991 * support/packihx/packihx.c,
2992 * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2993 * src/ds390/gen.c (aopPutUsesAcc),
2994 * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2995 * support/regression/tests/libmullong.c (mullong_wrapper),
2996 * src/SDCCsymt.c (powof2),
2998 * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2999 * src/SDCCsymt.h: added TYPE_TARGET_*
3000 * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
3001 * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
3002 SDCCast because 1) header problems 2) this is the right place
3003 * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
3004 * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
3007 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
3009 * src/SDCCicode.h: removed buggy semicolon in unused macro
3010 * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
3011 search for previous definiton of auto symbols too,
3012 (findPrevUse): fixed logic of emitWarnings
3014 2006-06-26 Raphael Neider <rneider AT web.de>
3016 * src/pic16/gen.c (genFunction, genEndFunction): also preserve
3017 PCLATH and PCLATU on interrupts, potentially fixes #1505141
3019 2006-06-25 Raphael Neider <rneider AT web.de>
3021 * device/lib/pic/libm: NEW, added math library functions
3022 * device/lib/pic/libsdcc: NEW; added float support functions
3023 * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
3024 * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
3025 NEW, added math related headers
3026 * device/include/asm/pic/features.h: NEW
3027 * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
3028 (popGet): allow larger offsets for AOP_PCODE,
3029 (genDataPointerSet): handle literals explicitly, more debug output,
3030 (genAssign): fixed for float using aopLiteral ;-)
3031 * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
3032 GOTO initialisation routine
3033 * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
3034 flag on registers, fixes #1469043 (local variables do not work)
3035 * src/pic/main.c (_pic14_do_link),
3036 * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
3039 2006-06-25 Borut Razem <borut.razem AT siol.net>
3041 * device/lib/pic16/libc/stdio/sprintf.c: return the number of
3042 characters printed (not including the trailing '\0' used to end
3043 output to strings). Problem detected in regression test bug-927659.c.
3044 NOTE: printf() family functions should return int instead
3046 * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
3047 specifier are printed as themselves
3048 * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
3049 support flags, width and precision specifiers
3051 2006-06-24 Borut Razem <borut.razem AT siol.net>
3053 * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
3054 to the list of sdcc tagrets not supporting bit type
3055 * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
3056 testfor pic16 due to bug:
3057 [ 1511794 ] pic16: regression test bug-895992.c fails
3059 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
3061 * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
3062 * src/SDCCglue.c (initPointer), fixed bug 1496419
3063 * support/regression/tests/bug1496419.c: new, added
3065 2006-06-22 Borut Razem <borut.razem AT siol.net>
3067 * support/regression/ports/pic16/support.c: use gpsim usart module from
3068 libgpsim_modules library
3070 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3072 * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
3075 2006-06-19 Raphael Neider <rneider AT web.de>
3077 * src/pic/glue.h,src/pic16/glue.h: added prototypes
3078 * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
3079 pic1x_emitSymbolIfNew): NEW, check for a string in a set,
3080 (pic14printExterns,pic14printPublics,pic16printPublics,
3081 pic16_printExterns): use new functions to emit symbols
3082 (picglue,pic16glue): emit publics before emitting externs
3083 * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
3084 locally defined functions to avoid bug #1443651
3085 * support/regression/tests/bug-716242.c: removed pic16 workaround
3086 * support/regression/ports/pic16/spec.mk: ignore errors during build
3088 2006-06-19 Raphael Neider <rneider AT web.de>
3090 * src/pic/glue.h: added pic14aopLiteral prototype
3091 * src/pic/glue.c (pic14aopLiteral): return unsigned int
3092 * src/pic/gen.c: removed stdint.h dependency
3093 (aopGet): use Safe_strdup()
3094 (bitpatternFromVal): removed, replaced use with pic14aopLiteral
3095 (genDataPointerSet): use pic14aopLiteral()
3096 * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
3097 for pic16; thanks to Bernhard and Maarten
3099 2006-06-18 Borut Razem <borut.razem AT siol.net>
3101 * support/regression/tests/structflexarray.c: flexible array members
3102 not supported by gcc < 3
3103 * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
3105 * src/pic/gen.c: don't include [p]strdin.h on solaris
3106 * support/Util/pstdint.h: addad svn attributes
3107 * support/regression/tests/constantRange.c,
3108 support/regression/tests/rotate.c: include inttypes.h instead
3109 stdint.h on solaris, addad svn attributes
3111 2006-06-18 Raphael Neider <rneider AT web.de>
3113 * src/SDCCsymt.c (initCSupport): change return type of divschar to
3115 * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
3116 (pic16_genMinusBits): simplified sign-extension
3117 (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
3118 pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
3119 adjusted to correctly handle mixed-signed operands, disabled
3120 now unused multiplciation routines
3121 * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
3122 (assignResultValue): added argument denoting the size of the result
3123 as returned by the function (fixes upcasts in assigning from
3124 function calls: char foo(); int i = foo();)
3125 (genCall,genPcall,genGenPointerGet,genReceive): pass size of
3126 function result to assignResultValue
3127 (genMult): disabled inlined multiplication code
3128 (genDiv): augmented to also handle the modulus operator, fixed to
3129 handle mixed-signed operands correctly
3130 (genMod): simply call genDiv, disabled unused code
3131 (genAssign): fixed missing (sign-)extension on result
3132 * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
3133 valid char operands, allow signed operands for native code, added
3134 division and modulo operator handling
3135 * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
3137 As a consequence, onebyte.c (if split into two files) and muldiv.c
3138 pass regression tests.
3140 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3142 * doc/Makefile.in: two runs of makeindex seem needed to get
3143 correct page references in the index of sdccman.pdf
3144 * doc/sdccman.lyx: mentioned cmon51, added links, small changes
3146 2006-06-17 Borut Razem <borut.razem AT siol.net>
3148 * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
3150 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3152 * doc/sdccman.lyx: updated, added (porting source code, debugging),
3153 mentioned ec2drv and paulmon
3155 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
3157 * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
3158 consecutive abs areas
3159 (find_empty_space, allocate_space): added map to handle codemap or
3161 (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
3162 absolute idata and xdata
3163 * as/mcs51/lkmem.c (summary2): updated legend
3165 2006-06-16 Raphael Neider <rneider AT web.de>
3167 * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
3169 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
3171 * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
3173 * src/SDCClrange.c (findPrevUse): fixed bug 1294475
3175 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
3177 * src/port.h (struct PORT): added field gp_tags, to hold the tag
3178 value of generic pointers,
3188 src/z80/main.c: PORT structure, added elements for gp_tags field,
3189 * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
3190 fields in the PORT structure of each port,
3191 * src/SDCCast.c (decorateType): allow processing of generic pointers
3192 for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
3195 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
3201 * src/pic16/pcode.c,
3203 * src/pic/pcoderegs.c,
3206 * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3207 bug 1504689 on minGW
3209 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3211 * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3213 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3215 * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3217 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3219 * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3222 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3224 * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3225 to a char variable. Fixed bug #1504211
3226 * device/include/pic16/adc.h,
3227 device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3228 and fixed bug #1364390
3230 2006-06-10 Borut Razem <borut.razem AT siol.net>
3232 * CVSROOT: removed the CVS left-over
3234 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3236 * as/hc08/asmain.c (asexit),
3237 * as/hc08/lkmain.c (lkexit),
3238 * as/mcs51/asmain.c (asexit),
3239 * as/mcs51/lkmain.c (lkexit),
3240 * src/SDCCglue.c (DEFSETFUNC),
3241 * src/SDCCmain.c (linkEdit, assemble),
3242 * support/librarian/sdcclib.c (AddRel),
3243 replaced unlink() by standard C remove()
3244 * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3245 * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3246 gatherImplicitVariables): new, added to fix bug 608752,
3247 (createFunction): added gatherImplicitVariables()
3248 * src/SDCCast.h: added createRMW prototype
3249 * src/SDCCsymt.h (struct symbol): added infertype
3250 * support/regression/tests/bug608752.c: new, added
3252 2006-06-10 Raphael Neider <rneider AT web.de>
3254 * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3255 multibyte dummy reads (fixes #1503234)
3257 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3259 * device/include/mcs51/compiler.h: new, added header file to enable
3260 creating common sfr definition header files for different compilers
3262 2006-06-05 Raphael Neider <rneider AT web.de>
3264 * src/pic16/{pcode.h,genarith.c}:
3265 introduced pCodeOp combining any two pCodeOps (previously only
3266 two register operands could be combined), removed pcop2 from
3267 pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3268 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3269 * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3270 rewritten to use new PO_TWO_OPS
3271 * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3272 * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3273 (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3274 (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3275 (pic16_get_op): embraced return arg to allow #define return(x),
3276 added new case for combined opcodes
3277 (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3278 (pic16_pCode2str,pic16_getRegFrompCodeOp,
3279 pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3281 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3283 * src/SDCCval.c (checkConstantRange): added
3284 * src/SDCCval.h: added checkConstantRange
3285 * support/Util/SDCCerr.c,
3286 * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3287 W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3288 * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3289 * src/SDCCast.c (decorateType): added checkConstantRange,
3290 added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3291 can be emitted with the correct always true/false warning,
3292 added optimization for double '!';
3293 result of decorateType() must be assigned back to the tree, because
3294 decorateType() can change the tree
3295 * src/SDCCicode.c (geniCodeLogic),
3296 (geniCodeAssign): replaced new checkConstantRange, added warnings,
3297 (checkConstantRange): removed, it was only a fragment which never
3299 * src/SDCCsymt.c (computeType): fixed promotion for
3300 "-1 < (unsigned bit) b"
3301 * src/pic/ralloc.c (packRegsForAssign),
3302 * src/pic16/ralloc.c (packRegsForAssign),
3303 * src/hc08/ralloc.c (packRegsForAssign),
3304 * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3306 * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3307 * support/regression/tests/constantRange.c: added
3308 * support/valdiag/tests/constantRange.c: added
3309 * support/valdiag/valdiag.py: added -DPORT_HOST=1
3311 2006-06-02 Borut Razem <borut.razem AT siol.net>
3313 * support/regression/ports/pic16/support.c: increase stack size
3315 * support/regression/Makefile.in: sort tests by name so that the
3316 resutlts can be compared on different machines / platforms
3318 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3320 * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3321 * src/ds390/gen.c (emitLabel): new, added,
3322 (genDjnz): fixed stack overflow bug,
3323 (throughout): cosmetic changes to sync with mcs51/gen.c,
3324 replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3325 * src/mcs51/gen.c (genEndFunction): small optimization,
3326 (throughout): cosmetic changes to sync with ds390/gen.c
3328 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3330 * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3331 (_print_format): fixed printing pointers
3332 * src/mcs51/gen.c (emitLabel, movb): new, added,
3333 (genAssign): small optimization,
3334 (genDjnz): fixed stack overflow bug,
3335 (throughout): replaced sprintf with SNPRINTF,
3336 replaced mcs51_regWithIdx with REG_WITH_INDEX,
3337 replaced emitcode("mov", "b,...") with MOVB(...),
3338 replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3339 replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3340 * src/mcs51/peeph.def: added rules 140 and 264
3341 * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3342 so they may get optimized into registers
3344 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3346 * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3347 immediately when encountered,
3348 (printUsage): always use stderr even on windows
3350 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3352 * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3353 (processParms): fixed bug #1247551
3354 * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3355 parseCmdLine, main): print '--version' to stdout,
3356 print 'help' to stdout if --help is given,
3357 print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3358 arguments are given; fixed --help
3360 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3362 * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3363 * support/regression/tests/bug-1493710.c: added
3365 2006-05-27 Borut Razem <borut.razem AT siol.net>
3367 * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3369 * support/regression/ports/pic16/support.c: increase stack size
3370 from default 64 bytes to 128 bytes
3371 * support/regression/tests/staticinit.c,
3372 support/regression/tests/float.c: regression tests fully enabled
3373 for pic16 port by putting the initialized data arrays into the code
3375 * support/regression/ports/pic16/spec.mk: don't link default libraries.
3376 This was changed by mistake in the previous version.
3378 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3380 * src/pic16/gen.c (genFunction, genEndFunction): some
3381 beautifications, fixed bug with falsely restoring FSR2 in large
3382 stack model, thanks to Beau E. Cox for reporting the bug
3384 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3386 * debugger/mcs51/break.c,
3387 * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3388 use %p to print pointers, made address variables unsigned
3389 * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3390 * debugger/mcs51/symtab.c (parseSymbol): must return something
3391 * src/mcs51/gen.c (aopForSym): small optimization,
3392 moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3393 (freeAsmop): added missing break,
3394 (aopPut): removed parameter bvolatile, determine it inside the function,
3395 (saveRegisters, unsaveRegisters): small optimization,
3396 (genIpush): removed pointless check,
3397 (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3398 replaced sprintf with SNPRINTF,
3399 replaced strcpy with strncpyz,
3400 updated aopPut calls,
3401 replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3402 * src/mcs51/ralloc.h: added declarations mcs51_ptrRegReq and mcs51_nRegs
3404 2006-05-24 Borut Razem <borut.razem AT siol.net>
3406 * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3407 modification of test for the pic16 port, put the array to the code
3408 memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3410 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3412 * src/pic/gen.c: MSC 6 does not have <stdint.h>. Use pstdint.h instead.
3413 * support/Util/pstdint.h: added
3415 2006-05-22 Borut Razem <borut.razem AT siol.net>
3417 * src/regression/Makefile: removed bool2.c test, added -q linker option
3418 * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3419 src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3420 src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3421 src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3422 src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3423 src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3424 src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3425 src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3426 define SUPPORT_BIT_TYPES 0, removed unused bit variables
3428 2006-05-22 Raphael Neider <rneider AT web.de>
3430 * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3431 bug #1492360 (problematic due to generic pointers, see code)
3433 2006-05-22 Borut Razem <borut.razem AT siol.net>
3435 * support/regression/ports/pic16/specs.mk: removed stack size linker
3437 * support/regression/tests/array.c,
3438 support/regression/tests/bitopcse.c,
3439 support/regression/tests/bug-908454.c,
3440 support/regression/tests/malloc.c: modified for pic16 regression test
3441 * support/regression/tests/bitfields.c:
3442 pic16 - excluded bitfileds of size > 8
3443 * support/regression/tests/bp.c: pic16 - reduced data size
3444 * support/regression/tests/bug-221100.c: pic16 - reduced data size
3445 * support/regression/tests/bug-460010.c:
3446 pic16 - used the absolute address the fits in memory
3447 * support/regression/tests/bug-716242.c:
3448 bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3449 * support/regression/tests/float.c:
3450 pic16 - excluded - data size too big
3451 * support/regression/tests/onebyte.c:
3452 pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3453 * support/regression/tests/shifts.c:
3454 pic16 - function names probably have to differ in first X characters
3456 * support/regression/tests/staticinit.c:
3457 pic16 - excluded some tests due error: no target memory available for
3460 2006-05-22 Borut Razem <borut.razem AT siol.net>
3462 * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3463 second try. Thanks Stas Sergeev once more.
3465 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3467 * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3468 (genLeftShift, genRightShift): fixed bug 1491627
3469 * src/hc08/peeph.def (rules 7, 8.x): added
3470 * support/regression/tests/shifts.c (ShiftLeftByParam,
3471 ShiftRightByParam, testShiftByParam): added to test variable shifting
3473 2006-05-20 Raphael Neider <rneider AT web.de>
3475 * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3476 * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3477 (allocReg): add only new registers to dynAllocRegs,
3478 (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3479 #1489055, #1445850, and probably #1483693
3481 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3483 * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3484 bug in for-loop that didn't emit the last of CONFIG and ID registers
3486 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3488 * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3490 * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3491 1489016, 1434401 and 1490124
3492 * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3493 1489016, 1434401 and 1490124
3495 2006-05-17 Borut Razem <borut.razem AT siol.net>
3497 * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3500 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3502 * device/include/mcs51/P89c51RD2.h,
3503 * device/include/mcs51/P89LPC901.h,
3504 * device/include/mcs51/P89LPC922.h,
3505 * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3507 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3509 * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3510 to fix missing stack pragma in compiled binary object file,
3512 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3514 * support/packihx/configure.in,
3515 * support/packihx/configure: removed warning, autoconf >= 2.5x can
3516 determine sizeof basic types even while cross compiling
3518 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3520 * src/avr/gen.c (aopop),
3521 * src/ds390/gen.c (aopOp),
3522 * src/hc08/gen.c (aopOp),
3523 * src/mcs51/gen.c (aopop),
3524 * src/pic16/gen.c (pic16_aopOp),
3525 * src/pic/gen.c (aopOp),
3526 * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3527 if size of operand is smaller than spill location
3529 2006-05-12 Borut Razem <borut.razem AT siol.net>
3531 * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3532 have to have CR/LF line endings even if they are checked out on *nix
3533 or on WIN32 in cygwin binmode
3535 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3537 * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3538 * device/include/ds80c390.h: added sfr16 definitions
3542 * src/ds390/ralloc.c,
3543 * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3544 fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3545 bit returning functions
3546 * support/regression/tests/sfr16.c: enabled test on ds390
3548 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3550 * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3551 * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3553 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3555 * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3556 * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3557 (cl_address_space constructor): removed expensive initialization,
3558 (cl_address_space::get_cell): extended for late initialization,
3559 (cl_address_space::*): use late initialization,
3560 (cl_address_decoder::activate): removed expensive initialization,
3561 This reduced regression test running time by 25%
3563 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3571 * support/packihx/Makefile.in,
3572 * support/packihx/clean.mk,
3573 * support/packihx/Makefile.bcc,
3574 * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3576 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3578 * src/SDCCval.c (valNot): fix for regression test failure
3579 of not.c on big endian hosts
3581 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3583 * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3585 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3587 * device/lib/mcs51/Makefile.in: changed string comparison operator
3588 to = for POSIX compliance; == is bash extension
3590 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3592 * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3595 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3597 * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3598 allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3599 * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3600 * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3601 bug report #1478657,
3603 2006-05-05 Borut Razem <borut.razem AT siol.net>
3605 * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3608 2006-05-02 Borut Razem <borut.razem AT siol.net>
3610 * doc/Makefile.in: removed *.ind dependency since there is no rule to
3611 create *.ind, which made make to fail if invoked with -j 2
3613 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3615 * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3616 Hubert Sack for patch 1479782
3618 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3620 * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3622 2006-05-01 Raphael Neider <rneider AT web.de>
3624 * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3625 (create_pic): store only prefix-free device name,
3626 (init_pic): check for device names with "16" prefix,
3628 * src/pic/device.h (struct PIC_device),
3629 * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3631 * device/include/pic/pic12f{635,675,629,683}.h,
3632 * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3633 * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3634 * device/include/pic/pic16f505.h,
3635 * device/lib/pic/libdev/pic16f505.c: removed
3636 * device/include/pic/pic14devices.txt: added support for pic12f
3637 devices, removed unsupported non 16-bit devices
3638 [above changes provided by patch from Zik Saleeba]
3639 * src/pic/*, src/pic16/*, device/include/pic16/*,
3640 device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3642 2006-05-01 Borut Razem <borut.razem AT siol.net>
3644 * configure.in, configure, doc/Makefile.in:
3645 sync with nightly build makefile - latex, dvipdf and dvips
3648 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3650 * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3651 in the library source
3653 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3655 * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3657 2006-04-28 Raphael Neider <rneider AT web.de>
3659 * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3660 * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3661 (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3662 * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3664 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3666 * device/lib/pic/libdev/Makefile.in,
3667 * device/lib/hc08/Makefile.in,
3668 * device/lib/gbz80/Makefile.in,
3669 * device/lib/z80/Makefile.in,
3670 * device/lib/ds390/Makefile.in,
3671 * device/lib/ds400/Makefile.in: added srcdir to include search path,
3672 thanks to Borut for the bug report
3674 * configure: always create doc/Makefile independent from --enable-doc
3675 * Makefile.in: always install from directory doc independent from
3677 * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3679 * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3680 * doc/Makefile.in: install *.txt if present
3681 * device/include/Makefile.in (install): added installation of pic/*.inc
3682 and pic/*.txt files again, they were erroneously removed
3684 2006-04-28 Raphael Neider <rneider AT web.de>
3686 * src/pic/{gen.c,main.h,pcode.c},
3687 * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3688 concerning signedness with casts
3690 2006-04-28 Raphael Neider <rneider AT web.de>
3692 * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3693 definition of an interrupt handler,
3694 * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3695 interrupt handler stuff from picglue() to separate routine,
3696 (picglue): enabled definition of intr handlers in files w/o main()
3698 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3700 * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3701 compilation with MSVC 2005 Express Edition (VC8)
3703 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3705 * device/lib/Makefile: fixed build of gbz80 lib
3707 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3709 * support/regression/tests/bug-460010.c,
3710 * support/regression/tests/bug-524691.c,
3711 * support/regression/tests/bug-716242.c: removed conditional defines
3712 that are already in testfwk.h
3714 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3716 * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3717 (AccAXRsh1): added, shift right by 1,
3718 (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3720 * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3722 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3724 * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3725 remove cast to same type
3726 * src/SDCCast.c (decorateType): fix for RFE 1475742,
3727 optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3729 * link/z80/Makefile: removed, they have moved to
3732 * configure.in: replaced duplicate message about ucsim by missing sdcpp
3733 * install-sh: fix bug #1204398 by setting umask 0022
3734 * device/lib/Makefile: separate build of z80 and gbz80 lib
3736 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3738 Enabled VPATH feature: changed nearly all Makefiles (149 files).
3739 See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3741 One basic decision: e.g. src/clean.mk includes further files. In order
3742 to make this work there are two solutions:
3743 - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3744 run configure on them. This way they can use
3745 'include $(srcdir)/port-clean.mk'
3746 - always include clean.mk by the Makefile at the same level. To avoid
3747 that `make clean` tries to include and build Makefile.dep the
3748 MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3749 implemented, because now even `make uninstall` doesn't create
3750 Makefile.in. clean.mk could be eliminated by pasting it in
3753 * debugger/mcs51/Makefile.in: build own objects from library sources
3754 (SLIB, SDCC) in current directory
3756 * configure, configure.in: renamed --disable-device-lib-build in
3757 --disable-device-lib; added --enable-doc, the required tools are
3758 searched by configure; added result message; the toolchain for the
3759 belonging ports are now only built, if the port is enabled.
3761 * support/regression/*: all output is written in directory gen, because
3762 the fwk and ports directories don't livet in the build tree using vpath
3764 * doc/sdccman.lyx: renamed --disable-device-lib-build to
3765 --disable-device-lib, added --enable-doc, added section VPATH
3767 * sim/ucsim/configure.in,
3768 * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3769 z80 are enabled by default
3771 2006-04-24 Raphael Neider <rneider AT web.de>
3773 * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3774 to config word, "pic14_"-prefixed some extern functions
3775 (pic14_emitConfigWord): emit __config directive(s) if assignment to
3776 config word has been found
3777 * src/pic/device.h: added prototypes
3778 * src/pic/pcode.c: added "pic14_"-prefix where needed
3779 * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3781 * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3783 (pic14emitRegularMap): ignore config words,
3784 (pic14createInterruptVect): moved generating __config directives away
3785 (picglue): have __config directives emitted
3787 2006-04-24 Borut Razem <borut.razem AT siol.net>
3789 * doc/Makefile: sync with nightly build makefile
3791 2006-04-24 Raphael Neider <rneider AT web.de>
3793 * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3794 registers that have not been assigned proper liveranges,
3795 fixes #1469504 and #1474602,
3796 (pCodeRegOptimizeRegUsage): fixed typo in comment
3798 2006-04-24 Borut Razem <borut.razem AT siol.net>
3800 * device/examples/main8051.c: deleted - it was removed from CVS
3801 24.mar.2000 and after that modified 18.feb.2001, so it reappered
3802 after the transition to Subversion
3803 * src/SDCCalloc.h: deleted - it was removed from CVS
3804 3.feb.2001 and after that modified 18.feb.2001, so it reappered
3805 after the transition to Subversion
3806 * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3807 sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3808 sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3809 sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3811 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3813 * as/asx8051.dsp: added mcs51/strcmpi.h
3814 * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3815 * as/hc08/aslink.h: updated lnksect prototype
3817 * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3819 * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3820 (newdot): handle A_ABS
3822 * as/mcs51/asout.c (outarea): output address
3823 * as/hc08/lkaomf51.c,
3824 * as/mcs51/lkaomf51.c: disabled unused array UsageType
3826 * as/mcs51/i51pst.c,
3827 * as/z80/z80pst.c: "ABS" is not A_OVR
3828 * as/hc08/lkarea.c (newarea): read a_addr,
3829 (lnkarea): added codemap array, sort absolute areas to the front,
3830 combine all GSINITx/GSFINAL,
3831 (find_empty_space, allocate_space): new functions,
3832 (lnksect): return next address, handle absolute sections
3833 * as/mcs51/lkarea.c (newarea): read a_addr,
3834 lnksect2 prototype changed,
3835 (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3836 (find_empty_space, allocate_space): new, factored out of lnksect2,
3837 (lnksect2): return next address, handle absolute sections
3839 * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3840 * as/hc08/lklibr.c (addfile, fndsym),
3841 * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3842 index out of range and detect both '\' and '/'
3843 * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3844 * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3845 regression tests (ds390 cannot return bool yet)
3846 * doc/sdccman.lyx: changed version number, document changed --no-peep,
3847 document critical interrupts on z80, document changed SDCC define
3848 * src/asm.c (_asxxxx_mapping): fixed .org directive,
3849 (_a390_mapping): added .org directive
3850 * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3851 (genMultOneByte): fixed warnings
3852 * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3854 * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3855 * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3856 (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3857 * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3858 * src/pic16/main.c: removed newReg prototype
3859 * src/pic16/pcode.c,
3860 * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3862 * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3864 * src/pic16/ralloc.c
3865 * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3867 * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3868 from short to PIC_OPTYPE
3869 * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3870 * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3871 optype from short to PIC_OPTYPE
3872 * src/port.h: made int_size unsigned to fix warnings
3873 * src/SDCC.y: fixed warning on MSVC
3874 * src/SDCCicode.c (getArraySizePtr): return unsigned int
3875 * src/SDCCopt.c (convertToFcall): fixed warnings
3876 * src/SDCCsymt.h: removed double prototype for genSymName
3877 * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3878 offset int to fix warnings
3880 2006-04-22 Borut Razem <borut.razem AT siol.net>
3882 * doc/sdccman.lyx, */Makefile, */Makefile.in:
3883 references to CVS replaced with Subversion
3885 2006-04-21 Borut Razem <borut.razem AT siol.net>
3887 * doc/sdccman.lyx, */Makefile, */Makefile.in:
3888 references to CVS replaced with Subversion
3890 2006-04-19 Borut Razem <borut.razem AT siol.net>
3892 * src/version.awk: adapted for svn
3893 * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3894 sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3895 sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3896 /binutils-avr/etc/*.vi, *.jin: removed all properties
3897 support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3899 2006-04-19 Borut Razem <borut.razem AT siol.net>
3901 * CVS to Subversion migration completed
3903 2006-04-18 Borut Razem <borut.razem AT siol.net>
3905 * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3906 ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3908 2006-04-17 Borut Razem <borut.razem AT siol.net>
3910 * device/include/Makefile.in: added pic/*.inc to the installation
3912 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3914 * support/regression/collate-results.py: fixed output in case of
3916 * support/regression/generate-cases.py: fixed splitting of pathnames
3918 * as/hc08/lklibr.c (addfile),
3919 * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3921 2006-04-11 Raphael Neider <rneider AT web.de>
3923 * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3924 * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3925 * src/pic16/pcode.c (assignValnums): fixed #1460578
3927 2006-04-11 Raphael Neider <rneider AT web.de>
3929 * device/lib/pic/libdev/*.c,
3930 * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3931 fixes #1468739, enables compilation in --std-c99 mode
3932 * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3934 2006-04-11 Raphael Neider <rneider AT web.de>
3936 * src/pic/device.c (find_device): removed debug output
3937 (list_valid_pics): enabled verbose listing of supported devices
3938 * device/include/stdbool.h: define bool as char for pic14/16 as well
3940 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3942 * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3944 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3946 * .version: bumped version to 2.5.6
3947 * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3949 2006-04-06 Raphael Neider <rneider AT web.de>
3951 * .version: bumped version to 2.5.6 (pic14 ABI changed)
3952 * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3953 * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3954 pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3955 pic14_constructAbsMap
3956 (pic14printPublics): declare absolute global symbols as global
3957 (pic14createInterruptVect),
3958 * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3959 (newReg): assume new registers unused, use correct name in
3960 hashtable (reg->name instead of name), more debugLog output
3961 * src/pic/device.h (PIC_device): added fields for verbose output
3962 * src/pic/device.c: moved device definition to pic14devices.txt,
3963 added routines for runtime parsing of pic14devices.txt,
3964 added support for second config word
3965 * src/pic/main.c (_process_pragma): removed #pragma maxram,
3966 (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3967 (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3968 (_pic14_parseOptions): moved pCodeInitRegisters here
3969 (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3970 * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3971 (pCodeInitRegisters): rewrapped comments, perpared new approach to
3972 handling the pseudo stack
3973 * device/lib/Makefile.in: ignore failures in objects-pic16,
3974 * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3975 * device/lib/pic/NEWS: document new dependency on picXXX.lib
3976 * device/lib/pic/Makefile.subdir,
3977 * device/lib/pic16/Makefile.subdir: improved clean rules
3978 * device/lib/pic/libdev/: NEW, pic14 device libraries
3979 * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3980 * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3981 * device/include/Makefile.in: create subdir and install pic14 headers
3982 * device/include/pic/p16f_common.inc: removed unused declarations
3983 * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3984 PICs from inc2h.pl v1.6,
3985 replaced BIT_AT macros with struct declarations
3986 * device/include/pic/pic14devices.txt: definition of supported devices,
3987 all above improvements contributed by Zik Saleeba, thanks
3988 * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3989 * support/scripts/sdcc.nsi: also install pic14 device libraries and
3992 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3994 * device/include/mcs51/c8051f410.h: added interrupt numbers,
3995 * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3996 thanks to Charles Olds
3998 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4000 * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
4002 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4004 * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
4005 * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
4006 * support/regression/bug1464657.c: added, new test
4008 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4010 * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
4013 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4015 * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
4016 --no-peep and --peep-file <file> are used don't use default rules but
4019 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
4021 * src/mcs51/gen.c (genCall): fixed bug 1457608
4023 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4025 * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
4026 changes seem to cause (trigger?) problems with the build system.
4028 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
4030 * src/SDCCpeeph.c (operandsLiteral): new, added,
4031 (callFuncByName): inserted operandsLiteral
4032 * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
4034 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4036 * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
4037 * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
4039 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4041 * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
4042 implemented patch 1120823 Thanks to Willy De la Court (normal
4043 interrupts need an interrupt number now if they are made critical),
4044 and enabled nesting of critical functions though not for gbz80
4045 (genCritical, genEndCritical): added functions
4046 (genZ80Code): added cases for CRITICAL and ENDCRITICAL
4047 * src/z80/mappings.i: added "ei" to all mappings
4049 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4051 * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
4052 submitted by the Debian SDCC maintainer Aurelien Jarno:
4053 "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
4054 archive with gcc 4.1 on mips and wrote the patch"
4056 2006-03-16 Raphael Neider <rneider AT web.de>
4058 * src/pic16/genarith.c (genAddLit): simplified and fixed case where
4059 the left operand is shorter than the result (c* = lit-c* + int),
4061 * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
4064 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4066 * src/.version: increased version number to 2.5.5
4067 * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
4068 linking is done manually in pic16 port's _linkEdit,
4069 * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
4070 PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
4071 * src/pic16/gen.c (aopForSym): when direct register name is WREG then
4072 allocate asmop as AOP_ACC,
4073 (aopForRemat): added parameter 'bool result' in function declaration,
4074 (pic16_aopGet): return AOP_ACC when accessing WREG,
4075 (pic16_popGetTempReg): minor modification,
4076 (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
4077 'pic16_allocWithIdx',
4078 (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
4079 calling function in absolute addresses,
4080 (genAssign): take into account AOP_ACC asmop,
4081 * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
4082 * src/pic16/pcoderegs.c: some debug functions and lines added,
4083 * src/pic16/ralloc.c (decodeRegType): added but commented out,
4084 * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
4086 * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
4087 call to allocReg, not by manually allocating a new one,
4088 (pic16_assignRegisters): now before going through the register
4089 allocating functions mark all registers as free. This eliminates some
4090 side effects resulting from peephole parser done earlier in the backbone
4092 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
4094 * src/SDCCicode.c (geniCodeLogic),
4095 * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
4097 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
4099 * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
4100 (genSend): bugfix, do not allocate and free twice,
4101 (shiftRLong): handle partially overlapping aops
4102 * support/regression/tests/bitopcse.c: fixed warning redefined idata
4104 2006-03-08 Borut Razem <borut.razem AT siol.net>
4106 * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
4109 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
4111 * support/regression/tests/bug1409955.c: new, added
4112 * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
4113 * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
4114 (aopForSym, aopOp): increment asmop.allocated if reused,
4115 (freeAsmop): decrement asmop.allocated and check for zero instead of
4117 (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
4118 (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
4119 genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
4120 genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
4121 genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
4122 genSignedRightShift, genRightShift, genDataPointerGet,
4123 genPagedPointerGet, genFarPointerGet, genCodePointerGet,
4124 genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
4125 in reverse order from allocation,
4126 (genPlus, genCmpEq): free asmop's in reverse order from allocation and
4127 added swappedLR to keep track
4128 * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
4129 pdata & code for GCC, z80, gbz80 & hc08
4130 * support/regression/tests/zeropad.c: moved defines to testfwk.h
4132 2006-03-08 Raphael Neider <rneider AT web.de>
4134 * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
4136 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
4138 * device/include/mcs51/c8051f410.h: new SiLabs mcu
4139 * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
4140 * support/regression/tests/array.c: added parenthesis, made arrays unsigned
4142 2006-03-06 Borut Razem <borut.razem AT siol.net>
4144 * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
4145 made the linker quiet
4147 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4149 * src/pic16/gen.c (genPcall): fixed bug #1443644
4150 * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
4151 which dumps before the function entry point a data byte which represents
4152 the number of the local variables used by the specified function, added
4153 'xinst' for initial support for Extended Instruction Support,
4154 * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
4155 (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
4156 port->fun_prefix anymore (may change later),
4157 (genFunction, genEndFunction): do not store/restore local registers for
4158 _main (this should take care the --main-return command line option in
4160 (genOr): removed some legacy pic-port instructions,
4161 * src/pic16/genarith.c (genAddLit): re-enabled old code because
4162 performing operations with SFR's causes data to be written more than
4163 once to each SFR. Perhaps SFRs should be handled in special cases...
4164 * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
4166 * src/pic16/main.c (_process_pragma): stack bound checking did not take
4167 into account for stack starting position,
4168 (struct OPTIONS pic16_optionsTable): added command line argument
4169 --extended or -y for Extended Instruction Support,
4170 * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
4171 (deassignLRs): *** perhaps the most important change, old 'for' code
4172 (commented out for reference), didn't account for some registers which
4173 were left marked 'not free' after a pointer operation. The change
4174 reduces register usage a lot in some cases
4176 2006-03-04 Borut Razem <borut.razem AT siol.net>
4178 * support/regression/ports/hc08/spec.mk: remove *.asm in traget
4180 * support/regression/tests/bug-524697.c: decreased array size for
4181 mcs51 to fit into the internal RAM
4182 * support/regression/Makefile.in: a little bit more verbose
4184 2006-03-03 Borut Razem <borut.razem AT siol.net>
4186 * support/regression/fwk/lib/testfwk.c,
4187 support/regression/fwk/include/testfwk.h: introduced function
4188 _prints(), nonrecursive _printn(), call _initEmu() from main()
4189 * support/regression/ports/gbz80/support.asm,
4190 support/regression/ports/ucz80/support.asm,
4191 support/regression/ports/z80/support.asm,
4192 support/regression/ports/ds390/support.c,
4193 support/regression/ports/hc08/support.c,
4194 support/regression/ports/host/support.c,
4195 support/regression/ports/mcs51/support.c,
4196 support/regression/ports/xa51/support.c: added empty _initEmu()
4198 * support/regression/ports/pic16/gpsim.cmd,
4199 support/regression/ports/pic16/spec.mk,
4200 support/regression/ports/pic16/support.c,
4201 support/regression/Makefile.in: added pic16 regression test
4203 2006-03-01 Raphael Neider <rneider AT web.de>
4205 * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4206 genConstPointerGet): use safe way of generating MOVFF to cover
4207 literals as well as registers, fixes bug #1440527
4208 * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4210 (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4211 more correctly, fixes bug #1232186
4212 (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4213 * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4214 gplink guess the correct processor in more cases, applied patch
4215 from Till Riedel attached to and fixing bug #1436552
4217 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4219 * support/regression/tests/array.c: added, contains check for #1434401
4220 * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4222 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4224 * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4225 * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4226 * device/include/mcs51/c8051f326.h,
4227 * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4228 * device/include/mcs51/c8051f000.h,
4229 * device/include/mcs51/c8051f018.h,
4230 * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4231 PCON_IDLE,PCON_STOP and added sfr16 definitions
4233 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4235 * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4236 genGetWord): fixed bug 1409955
4238 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4240 * device/include/hc08/mc68hc908gp32.h,
4241 * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4243 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4245 * src/SDCCast.c (constExprValue): return NULL if not a value
4246 * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4247 * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4248 * support/regression/tests/bitfields.c: enabled signed bitfield for all
4250 2006-02-13 Borut Razem <borut.razem AT siol.net>
4252 * src/regression/ptrarg.c: added, fails due to bug #1430967
4253 * src/regression/Makefile: ptrarg.c added, ...
4255 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4257 * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4258 * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4260 2006-02-11 Borut Razem <borut.razem AT siol.net>
4262 * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4263 print "Processor: xxx" message to stdout only if --verbose
4265 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4267 * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4268 * support/regression/tests/bug1426356.c: added
4269 * support/regression/tests/bitfields.c: removed 2 tests
4271 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4273 * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4274 * device/include/mcs51/c8051f330.h,
4275 * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4276 PCON_IDLE,PCON_STOP and added sfr16 definitions
4277 * device/lib/_divsint.c,
4278 * device/lib/_divuint.c,
4279 * device/lib/_divulong.c,
4280 * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4281 register bank bug for small stackauto
4283 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4285 * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4287 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4289 * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4290 * all.dsp: corrected several bin paths
4291 * device/include/mcs51/c8051f120.h,
4292 * device/include/mcs51/c8051f300.h,
4293 * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4294 to PCON_IDLE,PCON_STOP
4295 * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4296 * device/lib/printf_large.c (output_float): fixed bug 1388703
4297 * support/regression/tests/bug1057979.c: added test for bug 1388703
4299 2006-02-08 Raphael Neider <rneider AT web.de>
4301 * src/pic/pcode.c (pciTRIS): fixed typo,
4302 (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4303 (LinkFlow): fixed handling of flows that end in a call,
4304 (ReuseReg): perform safety check earlier
4305 * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4306 to work with flows at the beginning of a pBlock,
4307 fixes #1426557 (Symbol not previously defined),
4308 (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4310 (RemoveUnusedRegisters): update register usage info
4311 * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4312 created, reuse existing ones instead
4313 * src/pic/gen.c (genPcall): fixed #1424719
4315 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4317 * link/z80/lkmain.c,
4319 * link/z80/lkdata.c,
4320 * link/z80/aslink.h: fixed build on current cygwin:
4321 replaced getline() by lk_getline()
4323 2006-02-01 Borut Razem <borut.razem AT siol.net>
4325 * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4326 src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4327 src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4328 src/regression/bool1.c, src/regression/bool2.c,
4329 src/regression/bool3.c, src/regression/call1.c,
4330 src/regression/compare.c, src/regression/compare10.c,
4331 src/regression/compare2.c, src/regression/compare3.c,
4332 src/regression/compare4.c, src/regression/compare5.c,
4333 src/regression/compare6.c, src/regression/compare7.c,
4334 src/regression/compare8.c, src/regression/compare9.c,
4335 src/regression/configword.c, src/regression/for.c,
4336 src/regression/inline.c, src/regression/mult1.c,
4337 src/regression/nestfor.c, src/regression/or1.c,
4338 src/regression/pointer1.c, src/regression/ptrfunc.c,
4339 src/regression/rotate1.c, src/regression/rotate2.c,
4340 src/regression/rotate3.c, src/regression/rotate4.c,
4341 src/regression/rotate5.c, src/regression/rotate6.c,
4342 src/regression/rotate7.c, src/regression/string1.c,
4343 src/regression/struct1.c, src/regression/sub.c,
4344 src/regression/sub2.c, src/regression/switch1.c,
4345 src/regression/while.c, src/regression/xor.c,
4346 src/regression/create_stc, src/regression/simulate,
4347 src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4349 * src/regression/gpsim_assert.h: added
4351 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4353 * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4354 ((void (code *) (void)) 0) ();
4363 * as/mcs51/aslink.h,
4365 * as/mcs51/asmain.c,
4366 * as/mcs51/lkdata.c,
4368 * as/mcs51/lkmain.c,
4371 * as/z80/asmain.c: fixed build on current cygwin:
4372 replaced getline() by as_getline()
4374 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4376 * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4377 declarator in the symbol chain
4379 * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4380 parameter list for function pointers
4381 * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4382 * support/regression/tests/bug-716242.c: added
4384 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4386 * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4388 * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4390 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4392 * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4393 inifinitely recurseable, added static
4394 * support/regression/tests/bug-1408066.c: added
4396 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4399 * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4400 renamed, added possibility to create "postLoopLbl"-labels
4401 * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4402 newiTempLoopHeaderLabel
4403 * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4404 isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4405 addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4406 hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4407 findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4408 (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4409 (basicInduction): fixed bug #136564, made static,
4410 (loopInduction): changed parameter of basicInduction, made static,
4411 (addPostLoopBlock): added
4412 * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4413 loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4415 * support/regression/tests/bug-136564.c: added
4416 * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4417 --std-sdcc99 to LIBSDCCFLAGS
4419 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4421 * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4423 * support/regression/tests/bug-1406131.c: added
4425 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4427 * src/SDCCast.c (decorateType): fix promotion of unary minus
4428 * src/SDCCsymt.c (computeType): beautified
4429 * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4430 (valUnaryPM, valComplement): fix sign and promotion,
4431 (valNot): ANSI: result type is int (SDCC: unsigned char)
4432 * support/regression/tests/uminus.c: speedup by removing superflous
4434 * support/regression/tests/onebyte.c: added promotion and signedness
4435 tests for unary minus
4436 * support/regressions/tests/bug-477927.c: disable warning about
4437 uninitialized variables
4438 * support/regression/tests/not.c: added
4440 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4442 * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4443 * src/mcs51/gen.c (gen51Code): show final register usage after
4444 fillGaps in asm with --i-code-in-asm
4445 * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4446 markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4447 incUsed, rliveClear, adjustIChain): made static,
4448 (setFromRange): excluded because it's unused,
4449 (findPrevUseSym, markWholeLoop): added,
4450 (findPrevUse): rewritten; fixes bug 895992; now a complete search
4451 through all branches of predecessors enables sdcc to emit the warning
4452 W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4453 (rlivePoint): made static, added parameter emitWarnings which is only
4454 true during the first run out of two,
4455 (findRecursiveSucc, findRecursivePred): removed,
4456 (computeLiveRanges): made static, added parameter emitWarnings,
4457 (dumpIcRlive): added for debugging only
4458 * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4459 removed prototype of setFromRange()
4460 * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4461 in call of computeLiveRanges()
4462 * support/regression/tests/bug-895992.c: added
4463 * support/regression/tests/bug-971834.c: added
4464 * support/valdiag/tests/bug-895992.c: added
4465 * support/valdiag/tests/bug-971834.c: added
4467 2005-12-18 Raphael Neider <rneider AT web.de>
4469 * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4470 (genUnpackBits): improved code for direct operands,
4471 (genPackBits): improved code for literal assignment to bitfields
4472 and for direct destination operands (no FSR indirection),
4473 prevented redundant AND, fixes #1362800,
4474 (AccLsh): added parameter to disable masking of the result
4475 * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4476 skip instructions with side-effects (like incfsz),
4477 (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4478 * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4479 * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4482 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4484 * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4485 volatile variables as spill location
4487 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4489 * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4491 * support/regression/tests/bug-1376320.c: added
4493 2005-12-08 Raphael Neider <rneider AT web.de>
4495 * src/pic/device.c: renamed is_shared to pic14_is_shared
4496 * src/pic/gen.c (genIfx): re-enabled handling of sbits
4497 * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4498 (is_valid_identifier): added for above workaround
4500 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4502 * device/lib/Makefile.in: fixed to enable port-specific-objects
4503 * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4504 char, thanks Hubert Sack
4505 * doc/sdccman.lyx: documented --xstack-loc,
4506 elaborated a bit more on interrupts and pitfalls,
4507 removed "setjmp/longjmp unsupported",
4508 documented some unsupported C99 features
4509 * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4510 * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4511 if, thanks Hubert Sack
4512 * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4513 * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4515 * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4516 regression tests can report resource usage (rfe 700441)
4517 * support/regression/collate-results.py: report resource usage
4518 * support/regression/ports/ds390/spec.mk,
4519 * support/regression/ports/hc08/spec.mk,
4520 * support/regression/ports/mcs51/spec.mk,
4521 * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4522 * support/regression/ports/ds390/uCsim.cmd,
4523 * support/regression/ports/hc08/uCsim.cmd,
4524 * support/regression/ports/mcs51/uCsim.cmd,
4525 * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4526 * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4527 library, use the default one
4528 * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4529 building the library
4531 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4533 * config.dsp: added dependency on .version and configure_vc.awk
4534 * device/include/setjmp.h: updated for --stack-auto and --xstack
4535 * device/include/mcs51/at89c51snd1c.h: corrected line endings
4536 * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4537 * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4538 * device/lib/libsdcc.lib: added _setjmp
4539 * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4540 (decorateType): fixed bug 1372851,
4541 (optimizeGetHbit): fixed warning
4542 * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4543 array initialisation
4544 * support/regression/tests/bug1057979.c: added test for bug 1358192
4545 * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4547 2005-12-03 Borut Razem <borut.razem AT siol.net>
4549 * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4550 command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4552 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4554 * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4555 createIval): implement symbol independant "flexible array member",
4556 (createIvalCharPtr): implemented flexible array initialisation with a
4558 * src/SDCCsymt.c (copyStruct): removed,
4559 (getSize): fixed misleading comment,
4560 (getAllocSize): removed, the additional allocation size is now in
4561 sym->flexArrayLength,
4562 (checkStructFlexArray): new, syntax checks for flexible array members,
4563 (compStructSize): added syntax checks for "flexible array members"
4564 (copyStruct): removed,
4565 (copyLinkChain): removed inefficient fix for bug 770487
4566 * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4567 * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4568 symbol->flexArrayLength
4570 * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4571 E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4572 * support/regression/tests/structflexarray.c: added
4573 * support/valdiag/tests/structflexiblearray.c: added
4575 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4577 * src/SDCCast.c (decorateType): fixed bug 1368489
4578 * support/Util/SDCCerr.c,
4579 * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4581 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4583 * device/include/mcs51/at89c51snd1c.h: added file submitted by
4584 Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4586 2005-11-27 Borut Razem <borut.razem AT siol.net>
4588 * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4589 support/cpp2/mkdeps.h: added command line option
4590 -obj-ext=<extension> to SDCPP to define object file externion, used
4591 for generation of make dependencies (-M)
4592 * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4594 2005-11-26 Borut Razem <borut.razem AT siol.net>
4596 * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4597 added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4598 added pic and pic16 libraries
4600 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4602 * device/include/float.h: Corrected typo in prototype of __fsgt
4604 2005-11-25 Borut Razem <borut.razem AT siol.net>
4606 * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4607 added creation of model-mcs51-stack-auto libraries
4609 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4611 * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4613 * src/SDCCast.c (createIvalArray): removed obsolete comment
4615 2005-11-24 Borut Razem <borut.razem AT siol.net>
4617 * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4618 added missing device/lib/mcs51/crt*.asm sources
4620 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4622 * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4624 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4626 * device/lib/_fs2schar.c,
4627 * device/lib/_fs2sint.c,
4628 * device/lib/_fs2slong.c: optimized inline asm
4630 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4632 * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4633 Better handling of floats between -1.0 and 0.0.
4635 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4637 * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4638 (the missing "if"s prohibited removal of redundant labels)
4640 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4642 * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4643 Properly convert floats between -1.0 and 0.0 to long, int, and char
4644 types (max integer value of negative floats tends to zero).
4645 * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4646 Removed changes made so to work properly with floats between
4647 -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4650 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4652 * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4653 * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4654 (genCast) cosmetic change
4655 * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4656 * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4658 * support/regression/tests/bitfields (testSignedBitfields): added
4660 2005-11-18 Borut Razem <borut.razem AT siol.net>
4662 * sdcc/device/lib/Makefile.in: remove all unnecessary files
4663 * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4664 introduced SILENT option to make building of pic16 libraries less
4666 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4668 * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4669 Now they work properly with floats between -1.0 and 0.0
4670 * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4672 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4674 * src/SDCCicode.c (printOperand): added missing else
4676 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4678 * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4679 reformatted for better readability
4680 * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4683 2005-11-17 Borut Razem <borut.razem AT siol.net>
4685 * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4686 introduced SILENT option to make building of pic16 libraries less
4687 verbose - used for nightly snapshot build
4688 * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4689 available on Win32 platforms.
4690 * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4691 medium, large, pic and pic16
4693 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4695 * device/lib/printf_large.c: Temporary patch for bug 1358192:
4696 printf("%f"...) sets fraction to zero.
4698 2005-11-16 Raphael Neider <rneider AT web.de>
4700 * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4702 * src/pic/gen.c (genIfx): implemented for CARRY bit
4703 * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4704 to generic pointers, fixes #1357332,
4705 (pic16_movLit2f): NEW,
4706 (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4708 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4710 * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4712 2005-11-11 Raphael Neider <rneider AT web.de>
4714 * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4715 * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4716 compute pointer's type from operand,
4717 (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4718 improved single bit reads, fixes bug #1353379
4720 2005-11-09 Borut Razem <borut.razem AT siol.net>
4722 * support/scripts/sdcc.nsi: added lib/pic to the package
4724 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4726 * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4728 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4730 * support/regression/tests/bug1348008.c: added
4731 * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4732 * support/regression/tests/bug1337835.c: updated comment
4734 2005-11-06 Borut Razem <borut.razem AT siol.net>
4736 * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4737 sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4738 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4739 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4740 sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4741 dynamic construction of cl_error_class and derivates - 2.nd try
4743 2005-11-05 Borut Razem <borut.razem AT siol.net>
4745 * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4746 bug, which caused Bus Errors on sparc solaris
4748 2005-11-04 Borut Razem <borut.razem AT siol.net>
4750 * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4751 sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4752 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4753 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4754 sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4755 and derivates to resolve the initialization problem on OSX
4757 2005-11-02 Borut Razem <borut.razem AT siol.net>
4759 * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4760 corrected typo - #include <winsock2.h>
4762 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4764 * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4765 (_asxxxx_mapping): added org directive for future enhancements
4767 2005-11-01 Borut Razem <borut.razem AT siol.net>
4769 * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4770 enabled sockets on WIN32
4771 * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4773 2005-10-31 Borut Razem <borut.razem AT siol.net>
4775 * support/regression/generate-cases.py: escape backslashes in {testcase}:
4776 WIN32 backslash path delimiters should be escaped when used in C strings
4777 * support/regression/tests/bitfields.c: exclude failing assertions for
4778 __CYGWIN32__ and __MINGW32__ hosts
4780 2005-10-30 Borut Razem <borut.razem AT siol.net>
4782 * src/SDCCutil.c: corrected double comparison typo
4784 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4786 * device/lib/medium/Makefile: added for new memory model medium
4787 * device/include/asm/mcs51/features.h: updated for medium/pdata
4788 * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4789 added Multiply & Accumulate sbit's and MAC0_PAGE define
4790 * device/include/mcs51/c8051f300.h: added sfr16 definitions
4791 * device/include/mcs51/c8051f310.h: added sfr16 definitions
4792 * device/lib/_mullong.c: update for medium model
4793 * device/lib/incl.mk: added medium model
4794 * doc/sdccman.lyx: documented medium model
4795 * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4796 * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4797 * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4798 * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4799 (allocParms): set SCLS and OCLS to pdata for medium model
4800 * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4802 (powof2): return <0 if not power of 2
4803 * src/avr/gen.c (genBitWise): use updated powof2
4804 * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4805 (shiftR2Left2Result): small optimization in setup, save acc when storing,
4806 (shiftLLeftOrResult): use B if necessary
4807 * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4808 * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4809 * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4810 * support/regression/Makefile.in: added test-mcs51-medium
4811 * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4813 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4815 * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4817 * device/lib/time.c (mktime): fixed bug 1334315
4819 2005-10-28 Raphael Neider <rneider AT web.de>
4821 * device/include/pic/p16f_common.inc: added common declarations
4822 * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4824 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4826 * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4827 (aopPutUsesAcc): added to predict accumulator use,
4828 (assignResultValue): save acc if necessary,
4829 (genMinusDec): store result if indirectly addressed,
4830 (genDivOneByte): save acc if necessary,
4831 (movLeft2Result): bugfix if left already in acc,
4832 (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4833 attention to accumulator use (esp. pdata),
4834 (genReceive): receive pdata correctly
4835 * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4836 * src/SDCCicode.h: added isOperandInPagedSpace prototype
4838 2005-10-27 Raphael Neider <rneider AT web.de>
4840 * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4842 2005-10-27 Raphael Neider <rneider AT web.de>
4844 * .version: changed version to 2.5.4
4845 * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4846 * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4847 (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4848 arithmetics support routines
4849 * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4850 * device/lib/Makefile.in: also create installdir for pic
4852 * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4854 * src/pic/device.c (dump_sfr): rewritten to delegate register
4855 placement to the linker (use `extern sym' rather than sym EQU addr),
4856 (validAddress): fixed to check last specified address
4857 * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4858 (popGetLit): truncate literal value to 8 bit,
4859 (popGet): moved assert to more appropriate place
4860 (popGetExternal): create pCode operand from and mark the according
4861 symbol as being `extern'
4862 (popGetAddr): added sanity check on immediate's offset, provide
4863 GPOINTER tag on demand
4864 (aopPut): fixed for immediates,
4865 (mov2w_op): move operand's address or contents to WREG (depending on
4866 operand type), safer variant of mov2w,
4867 (movwf,call_libraryfunc): NEW, handy abbreviations,
4868 (get_argument_pcop,get_return_val_pcop,pass_argument,
4869 get_returnvalue): interface for accessing function parameters and
4871 (assignResultValuei,genRet): use new parameter/return value interface
4872 (pic14_getDataSize): back to old version handling generic pointers,
4873 (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4874 provided implementation and/or fixed old one,
4875 (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4876 calls, removed legacy 8051 reference code
4877 (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4878 (loadSignToC): NEW, move the operands sign bit to CARRY,
4879 (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4880 genRightShiftSigned, accepts negative shift counts,
4881 (setup_fsr): load FSR and adjust IRP (indirect memory access),
4882 (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4883 generic pointers, __data pointers and __code pointers,
4884 (genUnpackBits,genPackBits): rewritten to work with generic pointers
4885 and signed bitfields, limit bitfields to 8 bit,
4886 (genDataPointerGet): fixed number of bytes read,
4887 (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4888 (genPointerGet,genPointerSet): fixed handling of __code pointers,
4889 pointers to constant data are no longer assumed to point to __code
4890 space, removed invalid pointer types,
4891 (bitpatternFromVal): retrieve the PICs representation of an integer
4893 (genDataPointerSet): fixed assigning to po_immediate operands,
4894 (genGenPointerSet): implemented as library call,
4895 (genIfx): fixed incorrect condition,
4896 (genAddrOf): limit generic pointers' addresses to 2 bytes,
4897 provide GPOINTER tag according to destination's storage class,
4898 (genCast): added code to handle casting to generic pointers, added
4899 sign-/zero extension of the result
4900 (aop_isLitLike,op_isLitLike): fixed handling of immediates
4901 * src/pic/gen.h: added macros to access IRP bit in STATUS register
4902 * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4904 * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4905 address/register resides in the shared banks
4906 (emitSymbolToFile): improved to handle global and `pinned' symbols,
4907 put all variables into separate sections (have the linker arrange
4909 (picglue): put init code and interrupt handlers in separate sections
4910 * src/pic/main.c: added port specific options table, modified to PORT
4911 structure to make GPOINTERs 3 byte, added pic14_options
4912 (_pic14_do_link): private linking routine (update paths to libraries,
4913 add libsdcc.lib by default)
4914 * src/pic/main.h: declare pic14_options
4915 * src/pic/pcode.c: fixed instructions i/o relations,
4916 (RegCond): reverted to correct version,
4917 (newpCodeOpLit): truncate literals to 8 bit,
4918 (genericPrint): added debug output,
4919 (getRegFromInstruction): fixed for various operand types, simplified
4920 (BuildFlow): fixed broken handling of isntructions with labels
4921 (LinkFlow): start at last instruction in flow (skip trailing comments),
4922 pass the flow on to the next instruction after CALL
4923 (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4924 (insertPCodeInstruction): fixed inserting after a skip instruction,
4925 (DoBankSelect): fixed for labeled instructions
4926 (OptimizepBlock): honor --nopeep switch
4927 (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4928 * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4929 * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4930 (pCodeOptime2pCodes): allow disabling this optimization via
4931 --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4932 but is still buggy), started implementation of a dataflow based
4933 pCode optimization (CSE + dead code elimination)
4934 (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4935 * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4936 names are independant of the stack location and therefore portable across
4939 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4941 * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4942 (selectSpil): fixed bug 1337835 by not spilling bit variables
4943 * support/regression/tests/bug1337835.c: added test for this bug
4944 * src/mcs51/peeph.def: restart after rule 3.c,
4945 addded rules 263.x to optimize loading constants
4947 2005-10-26 Raphael Neider <rneider AT web.de>
4949 * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4950 * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4951 (genAssign): emit warning when casting literals to generic pointer
4952 type, also applies when taking the address of a fixed variable,
4953 (genCast): improved casting to generic pointers
4954 * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4955 extern variables, added verbose error message
4956 * device/include/pic16/{string.h,errno.h}: added #pragma library c
4958 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4960 * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4961 carry must be complemented too
4962 * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4963 could be emitted by genMinus
4964 * src/SDCCval.c (constVal): fixed bug 1305065
4966 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4968 * src/SDCCast.c (addCast): added promotion for bit variables
4969 (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4970 promotion casts + optimisation
4971 (optimizeGetWord): fix warning 'i' might be used uninitialized
4972 * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4973 * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4975 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4977 * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4978 all chars are promoted to int; promotion should be handled in SDCCast.c
4980 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4982 * device/lib/_strcmp.c: Fixed bug 1326457
4984 2005-10-11 Raphael Neider <rneider AT web.de>
4986 * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4987 * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4989 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4991 * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4992 * support/regression/tests/sfr16.c: added test for the sfr32 bug
4994 2005-10-04 Raphael Neider <rneider AT web.de>
4996 * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4997 device/lib/pic16/pics.all: added pic18f1320
4998 * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
5000 2005-09-30 Raphael Neider <rneider AT web.de>
5002 * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
5003 * src/pic16/devices.inc: NEW, provides device descriptions
5004 * src/pic16/gen.c (genInline): fixed handling of ';'-comments
5006 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
5008 * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
5011 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
5013 * doc/sdccman.lyx: updated Highest Order Bit documentation,
5014 documented Any Order Bit, Higher Order Byte and Higher Order Word
5015 * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
5016 * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
5017 (optimizeGetAbit): new, to get any bit, not only the high bit,
5018 (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
5019 (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
5020 (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
5021 (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
5022 RIGHT_OP: also try GETBYTE, GETWORD optimization,
5023 GETABIT, GETBYTE, GETWORD: decorate them,
5024 (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
5025 (ast_print): added GETABIT, GETBYTE, GETWORD
5026 * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
5027 * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
5028 (geniCodeBinary): new generic binary icode,
5029 (ast2iCode): added GETABIT, GETBYTE, GETWORD
5030 * src/port.h: updated comment for PORT.hasExtBitOp
5031 * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
5032 (genGetByte): new, to get a single byte,
5033 (genGetWord): new, to get a word from a long,
5034 (gen51Code): added GETABIT, GETBYTE, GETWORD
5035 * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
5037 2005-09-23 Raphael Neider <rneider AT web.de>
5039 * configure.in, configure: have device/lib/pic configured
5040 * device/lib/Makefile.in: added model-pic14
5041 * device/lib/clean.mk: added pic/ to clean rule
5042 * device/lib/pic: added rudimentary pic14 library providing support
5043 functions for multiplication/division/generic pointer access
5044 * src/SDCCopt.c (convilong): mark support functions as extern
5045 for pic14 port as well
5046 * src/pic/gen.c (genMult): added assertions,
5047 (genpic14Code): emit warning on unhandled iCodes
5048 * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
5049 * src/pic/pcode.c (pCodeOpCopy),
5050 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
5051 pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
5052 SFR_REGISTER}), made safe for future extensions
5053 * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
5054 instructions even if preceeded by SKIP instructions (also remove
5055 them); removed unused code
5056 * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
5057 prevents leaving parts of the structure uninitialized after copying
5059 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
5061 * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
5063 * support/regression/tests/addsub.c: added test for the bug
5065 2005-09-21 Raphael Neider <rneider AT web.de>
5067 * device/include/pic16/pic18f1220.h,
5068 device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
5069 * device/lib/pic16/Makefile.rules: added missing opening paren
5070 * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
5071 are provided in genutils.c,
5072 (genUminusFloat,genUminus,genCmpEq): added asserts on different
5073 operand/result sizes,
5074 (genCmp): assert on NULL pointers first, then check deref'ed values
5075 * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
5078 2005-09-18 Raphael Neider <rneider AT web.de>
5080 * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
5081 as these are now unused,
5082 (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
5083 * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
5084 local, avoids uninitialized pointer dereference on r->name
5085 * src/pic16/ralloc.c (newReg): fixed indentation
5087 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
5089 * src/SDCCval.c (constVal): fixed bug 730366
5090 * support/Util/SDCCerr.c,
5091 * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
5093 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
5095 * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
5097 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
5099 * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
5101 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5103 * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
5104 (hex2dec): made hex_digit unsigned char, removed ascii dependance
5105 * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
5106 (hex2dec): made hex_digit unsigned char, removed ascii dependance
5107 * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
5108 * packihx/packihx.c (hexDigit): made c unsigned char
5109 * as/mcs51/lklibr.c (fndsym),
5110 * link/z80/lkgb.c (gb),
5111 * link/z80/lklibr.c (fndsym),
5112 * link/z80/lkrloc.c (relr),
5113 * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
5114 * src/SDCC.lex (checkCurrFile, process_pragma),
5115 * src/SDCCglue.c (spacesToUnderscores),
5116 * src/SDCCmain.c (setParseWithComma, processFile),
5117 * src/asm.c (tvsprintf, printCLine),
5118 * src/avr/gen.c (emitcode, aopPut),
5119 * src/ds390/gen.c (emitcode),
5120 * src/hc08/gen.c (emitcode, emitinline),
5121 * src/mcs51/gen.c (emitcode, genInline),
5122 * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5124 * src/pic/ralloc.c (debugLog),
5125 * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
5127 * src/pic16/ralloc.c (debugLog),
5128 * src/z80/main.c (_process_pragma):
5129 made all ctype.h function calls safe
5130 * src/SDCCopt.c: include math.h for fabs
5131 * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
5132 and used them throughout the code to make ctype.h function calls safe
5133 * src/ds390/main.c (asmLineNodeFromLineNode),
5134 * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
5135 * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
5137 * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
5138 (newpCodeAsmDir): made ctype.h function calls safe
5139 * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
5140 pic16_emitcode): made lbp unsigned char*
5141 * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
5142 (pic16_newpCodeAsmDir): made ctype.h function calls safe
5143 * src/xa51/gen.c (emitcode),
5144 * src/z80/gen.c (_emit2): made lbp unsigned char*
5145 * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
5148 2005-09-05 Raphael Neider <rneider AT web.de>
5150 * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
5151 access bank splitpoint
5153 2005-09-05 Raphael Neider <rneider AT web.de>
5155 * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
5157 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
5159 * .version: changed to version 2.5.3
5160 * doc/sdccman.lyx: changed version to 2.5.3,
5161 documented --codeseg and --constseg and pragma codeseg and constseg,
5162 documented bit parameters (reentrant) and bit returning
5163 * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
5164 currFunc->recvSize, but is this ok for all ports?
5165 (ast2iCode): result of ~ on unsigned char must be cast to int for
5167 * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
5168 function pointers in bit space
5169 * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
5170 (processFuncArgs): call port.reg_parm() with reentrancy info
5178 * src/z80/main.c: port.reg_parm prototype extended with
5179 "bool reentrant" parameter
5180 * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
5181 options.stackAuto for allocating bit register parameters
5182 * src/mcs51/gen.c (genNot): optimized complementing direct bit,
5183 (genSend): set BitBankUsed if it is,
5184 (selectRegBank): factored out of genCall for use in genPcall,
5185 (genCall): removed redundant dtype assignmen, use selectRegBank,
5186 (genPcall): handle returning in Carry properly, save in F0 if needed,
5187 (genReceive): handle bit register parameters
5188 * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
5189 (mcs51_assignRegisters): enable bit registers for all reentrant
5190 functions and don't set BitBankUsed unconditionally
5191 * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
5192 * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
5193 * support/regression/tests/funptrs.c: added tests for BOOL and for return
5195 2005-08-27 Borut Razem <borut.razem AT siol.net>
5197 * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
5198 ppc-osx (Darwin) does not support -u option. It seems that it is
5199 supported only on Linux - GNU cp
5201 2005-08-25 Borut Razem <borut.razem AT siol.net>
5203 * sim/ucsim/gui.src/serio.src/Makefile.in,
5204 sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5205 sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5206 sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5207 install and strip, since the strip at /usr/ccs/bin should be used
5210 2005-08-24 Borut Razem <borut.razem AT siol.net>
5212 * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5214 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5216 * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5219 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5221 * as/mcs51/aslink.h: completed lkrloc.c prototypes
5222 * as/mcs51/lkmain.c (link_main): fixed warning
5223 * device/include/stdbool.h: ds390 has no advanced bit support yet
5224 * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5225 * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5226 * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5227 and updated their macros
5228 * src/SDCCval.c (constVal): updated comment for renamed b_long
5230 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5232 * as/mcs51/asdata.c: changed ctype['['] to BINOP
5233 * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5234 (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5235 (oprio): set priority for '['
5236 * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5238 * as/mcs51/asm.h: added defines R_BIT and S_BIT
5239 * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5240 * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5241 * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5242 added overlayable BIT_BANK area
5243 * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5244 (summary2): explain 'T' in legenda
5245 * as/mcs51/lkrloc.c: replaced old K&R style,
5246 (relr): added R_BIT processing,
5247 (errmsg): added "Bit-addressable relocation error",
5248 (adb_bit): added for converting from byte- to bit-addressable space,
5249 (adb_24_bit): added for converting from byte- to bit-addressable space
5250 * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5251 used in reentrant functions now even as return value
5252 * device/lib/_gptrput.c (_gptrput): removed obsolete code
5253 * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5254 (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5255 * src/SDCCglobl.h: added indicator BitBankUsed
5256 * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5257 the bit registers b0-b7
5258 * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5259 (geniCodeCast): fixed bug 1263853,
5260 (geniCodeLogicAndOr): put result in bool or char,
5261 (geniCodeReceive): added parameter func for accessing the return type,
5262 (geniCodeFunctionBody): pass func to geniCodeReceive
5263 * src/SDCCmain.c: added indicator BitBankUsed
5264 * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5265 * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5266 (checkSClass): don't put automatic bool/bit on stack,
5267 (checkFunction): removed check on function cannot return bit
5268 * src/SDCCsymt.h: added newBoolLink prototype
5269 * src/mcs51/gen.c (rb1regs): added bit registers,
5270 (movc): created for assigning to carry,
5271 (pushReg, popReg): created for pushing registers,
5272 (sameRegs): check both AOP_REG and AOP_CRY types,
5273 (aopOp): handle bit registers,
5274 (aopPut): optimization no self-assign,
5275 (saveRegisters): push reg->base (bits) only once for bit registers,
5277 (unsaveRegisters): pop reg->base only once and use popReg,
5278 (assignResultValue): added parameter func and return in carry for bits,
5279 (genIpush): optimization no reload in A if not changed,
5280 (genSend): bit parameters in reentrant functions are passed in bit
5281 registers by first assigning to bits in B, then save registers and
5283 (genCall): handle returning in Carry properly, save it in F0 if needed,
5284 (genPcall): updated assignResultValue call, this is not safe yet for bit
5285 returning function !!!
5286 (genFunction): don't generate equ's for bit registers and use pushReg,
5287 (genEndFunction): take care of bit returning functions and use popReg,
5288 (genRet): return bit in Carry,
5289 (genIfx): optimize bit registers and other directly addressable bits,
5290 (genReceive): updated assignResultValue call
5291 * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5292 (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5293 registers when using stack-auto
5294 * src/mcs51/ralloc.c (_G): added allBitregs,
5295 (regs8051): added the bit registers,
5296 (createStackSpil): use macro IS_BIT,
5297 (getRegBit): added to allocate a bit register, else spill,
5298 (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5299 (updateRegUsage): factored out to ease stepping while debugging,
5300 (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5301 also allocate bit registers,
5302 (fillGaps): handle bit registers,
5303 (findAllBitregs): added to create bit vector with all bit registers,
5304 (mcs51_allBitregs): returns this bit vector,
5305 (mcs51_assignRegisters): when using stack-auto use bit registers for
5306 passing parameters and creating local variables
5307 * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5309 2005-08-22 Borut Razem <borut.razem AT siol.net>
5311 * device/lib/Makefile.in: replaced find option -or with -o
5312 to make it run on solaris
5314 2005-08-22 Raphael Neider <rneider AT web.de>
5316 * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5317 fixes #1265442 (crash on Solaris)
5319 2005-08-20 Borut Razem <borut.razem AT siol.net>
5321 * configure, configure.in: added tests for libsocket and libnsl libraries,
5322 requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5323 from support/regression/Makefile.in
5324 * support/regression/Makefile.in: added
5325 * device/lib/pic16/Makefile.common.in: force make to use bash shell
5326 * sim/ucsim/libtool: regenerated on sparc-solaris
5327 * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5328 sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5329 sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5330 -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5331 sparc-solaris, which doesn't use GNU ld linker
5332 * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5333 * as/Makefile: find on sparc-solaris does not support -maxdepth option
5335 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5337 * src/mcs51/peeph.def: updated comments
5339 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5341 * device/lib/_gptrget.c,
5342 * device/lib/_gptrput.c: slightly shorter
5343 * doc/sdccman.lyx: incremented version
5344 * src/mcs51/peeph.def: moved peephole comments to the line of first
5345 change to better keep line correlation, reanimated 186.e
5346 * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5348 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5350 * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5351 David Saxton with quotes around file name.
5353 2005-08-15 Borut Razem <borut.razem AT siol.net>
5355 * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5356 support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5357 support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5358 make tests run on x86_64 platform
5360 2005-08-13 Raphael Neider <rneider AT web.de>
5362 * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5363 as it might be executed DURING a build (parallel make is wonderful)
5365 2005-08-13 Raphael Neider <rneider AT web.de>
5367 * device/lib/Makefile.in (port-specific-objects-pic16):
5368 revert to cp $(PORT)/bin/*.* $(PORTDIR)
5369 * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5371 * device/lib/pic16/Makefile.rules: build subdirs before creating
5372 the library, removed builddir rule, create $(builddir) early in
5373 recurse rule, use empty recurse rule for leaf directories
5374 * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5375 mkdir errors (race condition), removed duplicate suffix "hex"
5377 * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5378 * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5379 prevents mkdir -p from aborting on Alpha
5381 2005-08-12 Raphael Neider <rneider AT web.de>
5383 * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5384 db-statements in order to allow for arrays of pointers in code
5385 sections to be placed without interspersed 0-padding, fixes
5387 * (emitStatistics): fixed division by zero for pic18f1220
5388 * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5389 unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5390 * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5391 * (pic16_pCodeConstString): keep track of already emitted string
5392 literals to prevent "duplicate definitions of symbol _str_NR"
5393 * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5395 * device/lib/Makefile.in: ignore failing PIC16 library builds
5396 * device/lib/pic16/Makefile: do not build if gputils are missing
5397 * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5399 2005-08-10 Raphael Neider <rneider AT web.de>
5401 * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5404 2005-08-10 Raphael Neider <rneider AT web.de>
5406 * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5407 Rokas' patch to add the new fixed point type "__fixed16x16"
5408 * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5409 functions for __fixed16x16 arithmetics
5410 * device/lib/pic16: reimplemented the build system to support
5411 a separate build directory, better handling of libio (create
5412 the library in a separate subdir for each architecture) and
5413 easier configuration (centralized in Makefile.common)
5415 2005-08-07 Raphael Neider <rneider AT web.de>
5417 * src/pic16/gen.c (genrshTwo): fixed sign extension
5418 * src/pic16/device.c: added pic18f2320, 4220 and 4320
5419 * device/include/pic16/pic18f2220.h: changed some bit definitions,
5421 * device/include/pic16/pic18f4220.h: NEW, header for
5422 pic18f4220 and pic18f4320
5423 * device/include/pic16/pic18fregs.h: added new devices,
5424 embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5425 * device/include/pic16/signal.h: resolved name clashes
5426 on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5427 to also allow testing for interrupt enable bits, added
5428 comments on how to use the macros
5429 * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5430 * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5431 register definitions for the devices
5432 * device/lib/pic16/pics.all: added new devices
5433 * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5435 * device/lib/pic16/libc/stdlib/memfree: do not count
5436 the block header as free memory
5437 * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5438 simplified and added missing end-of-blocklist-marker
5439 (reported by Peter Onion, fixes #1252814)
5440 * (_mergeHeapBlock): fixed loop condition
5441 * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5442 len==0, restructured code
5443 * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5444 up a bit, reduced bitfield accesses, prevent endless loops
5445 in case of heap corruption
5446 * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5447 "unreferenced arguments/must return a value" warnings
5448 * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5449 replaced BAUDREG with SPBRG
5450 * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5451 device/lib/pic16/debug/gstack/gstack.c: replaced
5452 _naked, _asm, _endasm with __naked, __asm, __endasm
5454 2005-08-05 Raphael Neider <rneider AT web.de>
5456 * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5457 AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5459 2005-08-05 Borut Razem <borut.razem AT siol.net>
5461 * device/lib/Makefile.in: added missing ';'
5462 * configure: removed ^M characters
5464 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5466 * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5467 device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5470 2005-08-04 Borut Razem <borut.razem AT siol.net>
5472 * configure.in: pic16 libraries build 2nd try - enable running
5473 configure in device/lib/pic16
5474 * configure: regenerated from configure.in
5475 * device/lib/Makefile.in: create $(PORT)/bin directory
5477 2005-08-03 Raphael Neider <rneider AT web.de>
5479 * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5480 to get/set values via pointers
5481 * (genUnpackBits,genPackBits): changed detection of
5482 ptr->bitfield vs. sym.bitfield, fixed access via generic
5483 pointers, removed dead (wrong) code for multibyte bitfields
5484 * (genNearPointerGet, genGenPointerGet): removed useless code,
5485 fixed bitfield detection, fixes #1250594
5486 * (genNearPointerSet): removed useless code
5487 * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5488 and introduced macro pic16_emitpcode that conditionally emits
5489 the origin of the following pCode (useful for debugging SDCC)
5490 * src/pic16/pcode.c: changed (and disabled) some debug outputs
5491 * (createDefmap): fixed handling of LFSR for --optimize-df
5493 2005-08-02 Borut Razem <borut.razem AT siol.net>
5495 * device/lib/Makefile.in: pic16 libraries build enabled since
5496 gputils-0.13.2 are now localy installed at sourceforge's compile farm
5498 2005-08-02 Raphael Neider <rneider AT web.de>
5500 * src/pic16/gen.c (genPackBits): removed deprecated warning
5501 * (genGenPointerSet): fixed bitfield detection
5503 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5505 * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5507 2005-07-31 Raphael Neider <rneider AT web.de>
5509 * device/lib/pic16/libdev/pic18f458.c,
5510 device/include/pic16/pic18f458.h: added missing T0CONbits
5512 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5514 * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5516 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5518 * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5520 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5522 * device/include/mcs51/at89c51ed2.h: added.
5524 2005-07-23 Raphael Neider <rneider AT web.de>
5526 * src/pic/gen.h: added emitpcode macro for debugging
5527 * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5528 and replace by macro adding debug information on demand
5529 * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5530 * (gencjne): tried to fix; replaced with correct (slower) code
5531 * (gen{Unp,P}ackBits): fixed single bit access
5532 * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5533 * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5534 previous instruction
5535 * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5536 register has to be handled with care (forbidding movement
5537 of assignments/uses, removing assignments completely, ...)
5538 * (pCodeOptime2pCodes): make use of regIsSpecial
5539 * added lots of debugging output (commented out)
5540 * src/pic/rallloc.c (deassignLRs): prevent operand registers
5541 from being reused as result UNLESS it is known to work
5543 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5545 * support/Util/dbuf.h: include <stddef.h> for size_t
5546 * .version: changed to version 2.5.2
5548 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5550 * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5552 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5554 * src/hc08/gen.c (genMinus): fixed bug #1241835,
5555 (genModOneByte): removed needless psha/pula
5557 2005-07-22 Raphael Neider <rneider AT web.de>
5559 * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5560 have PIC14 handled like PIC16, fixes broken pic14 linker calls
5561 * src/pic/gen.c (resolveIfx): do not "invent" labels
5562 * (genSkipc): changed to positive logic
5563 * (genSkipCond): removed as no longer needed
5564 * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5566 * (genLeftShift): check operands are in different registers
5567 * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5568 INCF does not update CARRY...
5569 * src/pic/main.c: fixed _linkCmd
5570 * src/pic/pcode.c (unlinkpCode): added inactive code
5571 * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5572 alive (do not assign result and operand overlapping registers)
5574 2005-07-22 Raphael Neider <rneider AT web.de>
5576 * src/pic/device.c (dump_sfr): replaced register declaration with
5577 call to emitSymbolToFile() to avoid duplicate symbols
5578 * (assignRelocatableRegisters): do not declare external symbols
5579 * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5580 right (take size of type, not etype)
5581 * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5582 * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5583 * (packRegsForAccUse): disabled assignment of WREG as
5584 the result reg to prevent occurence of just fixed #1235003,
5586 * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5587 symbols (avoids duplicate symbols in .asm file)
5588 * (pic14emitRegularMap): use emitSymbolToFile()
5589 * src/pic/gen.c (aopOp): fixed spillLocation handling
5590 * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5591 * (genDataPointerSet): removed unneccessary variables/output
5593 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5595 * as/mcs51/lkarea.c: enlarged codemap for banked memory
5596 * device/lib/mcs51/crtbank.asm: added # to 0x0F
5598 2005-07-21 Raphael Neider <rneider AT web.de>
5600 * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5601 architecture cannot handle them efficiently, fixes bug #1235003
5602 * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5603 check for empty sets before using them (fixes bug #1232190)
5605 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5607 * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5608 (lnksect2): generate warnings for memory overlap
5609 * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5610 constseg to set the name of these segments so you can instruct the linker
5611 to place them in banks
5612 * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5613 * src/SDCCglobl.h: added MODEL_HUGE to enum,
5614 added code_seg and const_seg to options
5615 * src/SDCCglue.c (emitMaps): use options.const_seg,
5616 (createInterruptVect): put interrupt vectors in segment HOME,
5617 (glue): put HOME before static segment and put the main glue in HOME,
5618 (glue): use options.code_seg
5619 * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5620 * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5621 these segments so you can instruct the linker to place them in banks
5622 (linkEdit): use code_loc for HOME segment which should be the first
5623 segment in code memory now
5624 * src/SDCCmem.c: fixed more stuff like bug 1238386
5625 * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5626 (changePointer): don't change function pointers to code pointers for
5628 (compareType): added exceptional check for banked function pointers
5629 * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5630 * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5631 after static in code memory
5632 * src/mcs51/gen.c: added aopLiteralLong prototype,
5633 (aopForSym): use getSize for functions,
5634 (genCall): generate banked calls over one trampoline __sdcc_banked_call
5635 in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5636 -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5638 (genPcall): use call for literal function pointers and generate banked
5639 calls over the one trampoline so there's only one place for the user to
5640 modify according to his/hers hardware,
5641 (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5642 (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5643 * src/mcs51/main.c: added keyword banked,
5644 (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5645 * support/Util/SDCCerr.c,
5646 * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5647 needed for passing the bank and address to the trampoline
5648 * device/lib/mcs51/crtbank.asm: added for bankswitching
5649 * device/lib/mcs51/Makefile: added crtbank
5651 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5653 * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5654 for fields at offset 0 of a struct or union as reported
5655 on 2005-07-07 in the developer mailing list.
5657 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5659 * src/SDCCmem.c: fixed bug 1238386
5661 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5663 * src/mcs51/peeph.def: added labelrefcounting for peepholes
5664 (patch #1144962), added peephole 300, enabled 259.x
5665 * doc/sdccman.lyx: removed screenshot and provided link instead
5667 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5669 * doc/sdccman.lyx: added section about debugging with ddd
5670 * doc/figures/ddd_example.eps: screenshot of debugging session
5672 2005-07-04 Raphael Neider <rneider AT web.de>
5674 * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5675 like CODE pointers, fixes #1115683
5676 * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5677 call, fixes bugs #1232211, #1228110,
5678 fixed wrong casts to pCodeFlow from pCodeInstructions
5680 2005-07-04 Raphael Neider <rneider AT web.de>
5682 * src/pic/gen.c (popGet): changed assert to allow for
5684 * (popGetAddr): changed signature to provide
5685 an additional index, patched all call sites
5686 * (genCmpEq): handle literal-like operands correctly
5687 * (genAddrOf): added sanity checks on __code/__data pointers
5688 * (genAssign): added handling of symbols from __code section
5689 * (gencjne): do not generate code for comparisons whose result
5690 is neither stored nor used, fixes bug #1171114
5691 * (AccLsh, AccRsh): operate on operand instead of WREG
5692 * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5693 replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5695 * rewrote complete shift-by-literal logic, commented unused
5697 * (genConstPointerGet): get multiple bytes (if result size > 1),
5698 fixed handling of non-immediate addresses
5699 * (genPointerGet): handle CODE pointers like CONST pointers
5700 * (genpic14Code): insert C-SRC lines as Cource-pCodes
5701 * ({aop,op}_isLitLike): NEW, single place to decide whether an
5702 operand is to be treated as a literal or not
5703 * (mov2w,genPcall,genCmpEq),
5704 src/pic/genarith.c: use aop_isLitLike() to decide between
5705 literal/register contents
5706 * (addSign): added missing offset
5707 * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5708 only emit comment in debug-mode,
5709 use {aop,op}_isLitLike throughout the file
5710 * src/pic/glue.c: fix initializers for pointers (work in progress)
5711 * src/pic/pcode.c (get_op): honor index on _const symbols
5712 * ({reset,dump}pCodeStatistics): NEW, estimate code size
5713 * (dumppBlock): added pCode size estimation
5714 * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5715 check for IS_SYMOP before OP_SYMBOL'ing
5716 * fixed indentation, compacted switch-statements
5717 * (allocReg): find free register and allocate it instead of
5718 allocating new registers all the time
5719 * (deassignLRs): prevent POINTER_GET's from being assigned the same
5720 registers as its operands (necessary only for multibyte GETs)
5722 2005-07-01 Raphael Neider <rneider AT web.de>
5724 * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5725 debugging .asm-output macros FENTRY + FEXIT
5726 * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5728 * (emitpComment): NEW, printf to pCode
5729 * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5731 * (popGetAddr): NEW, variant of popGet to access an immediates
5732 high(er) bytes instead of the n'th byte of memory they reference,
5733 replaced popGet with popGetAddr where neccessary
5734 * (genDataPointerGet): reactivated and fixed implementation
5735 * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5737 * (genDataPointerSet): fixed multibyte assignments
5738 * (genpic14Code): fixed --i-code-in-asm handling
5739 * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5740 * (genPlus): fixed index-out-of-bounds error
5741 * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5742 * src/pic/ralloc.c: added debugging output macro FENTRY2
5743 * (spillThis): fixed indentation, enbraced for-body for clarity
5744 * (rematStr): commented out as now unused
5745 * (regTypeNum): commented out special spill case (overwrites
5747 * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5749 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5751 * doc/sdccman.lyx: documented sfr16/sfr32,
5752 added example for using storage class with function pointers
5753 * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5755 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5757 * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5758 * device/lib/_itoa.c,
5759 * device/lib/_ltoa.c: optimized codesize
5760 * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5761 but don't know how to suppress the double warning.
5762 * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5763 * support/Util/SDCCerr.c,
5764 * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5766 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5768 * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5769 fixed old K&R prototypes
5770 * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5771 * device/lib/_gptrget.c,
5772 * device/lib/_gptrgetc.c,
5773 * device/lib/_gptrput.c: changed versions for new memory indicator values,
5774 also new versions for small generic pointers and banked generic pointers
5775 * src/port.h: added const_name
5776 * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5777 * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5778 * src/SDCCcse.c (findPrevIc): check all associative operators
5779 * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5780 * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5781 * src/SDCCmem.c: updated comments,
5782 set far-space to 0 for pdata, results in optimized code
5783 * src/SDCCmem.h: added macro CONST_NAME
5784 * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5785 moving the info into the highest bits, see also gptrget/gptrput
5786 * src/src.dsp: added sdcc.ico to project files
5787 * src/avr/gen.c (genCast): fixed bug 0x%d
5788 * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5789 * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5790 relation between ptr_type and DCL_TYPE,
5791 (genCast): fixed bug 0x%d
5792 * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5793 (CODE)" for const_name
5794 * src/hc08/gen.c (genCast): fixed bug 0x%d
5795 * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5796 (hc08_port): added "CONST (CODE)" for const_name
5797 * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5798 (aopForRemat, adjustArithmeticResult): disconnected direct relation
5799 between ptr_type and DCL_TYPE,
5800 (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5801 operand* and took AOP() inside function so sfr-ness can be checked,
5802 (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5804 (genFunction, genEndFunction): optimized stack setup,
5805 (genMinus): optimized for literals with ending zeroes (in bytes),
5806 (genCast): fixed bug 0x%d
5807 * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5808 (mcs51_port): added "CONST (CODE)" for const_name
5809 * src/mcs51/peeph.def: made rule 226 more generic
5810 * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5811 * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5812 * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5813 * src/z80/main.c (z80_port): added NULL for const_name,
5814 (gbz80_port): added NULL for const_name
5815 * support/regression/tests/bug663539.c,
5816 * support/regression/tests/sfr16.c: new tests
5818 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5820 * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5822 2005-06-24 Raphael Neider <rneider AT web.de>
5824 * device/lib/pic16/libdev/pic18f[68][567]20.c:
5826 * device/include/pic16/signal.h: added USBIF
5829 2005-06-24 Raphael Neider <rneider AT web.de>
5831 * device/lib/pic16/libdev/pic18f2455.c,
5832 device/include/pic16/pic18f2455.h: NEW
5833 * device/include/pic16/pic18fregs.h,
5834 device/lib/pic16/pics.all,
5835 src/pic16/device.c: added 18f2455
5836 * device/lib/pic16/libdev/pic18f[68][567]20.c,
5837 device/include/pic16/{pic18f[68][567].h,usart.h}:
5838 replaced MULTIPLE_USARTS define with more relaible
5839 compatibility sfrs (for USART access)
5841 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5843 * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5844 and the output asm file line is printed on two lines.
5846 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5848 * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5849 BGT, BLE, BHI, and BLS instructions
5850 * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5852 * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5853 negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5855 * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5857 2005-06-15 Raphael Neider <rneider AT web.de>
5859 * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5860 * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5861 * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5862 fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5863 OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5865 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5867 * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5868 Marcel Telka in bug #1215704
5870 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5872 * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5873 located in shared memory bank.
5875 2005-05-31 Raphael Neider <rneider AT web.de>
5877 * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5878 "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5879 "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5881 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5883 * device/lib/_strncpy.c: fixed the fix
5885 2005-05-26 Raphael Neider <rneider AT web.de>
5887 * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5888 initializers with \0, bug #1208187
5889 * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5890 intializers with \0, bug #1208187
5892 2005-05-26 Raphael Neider <rneider AT web.de>
5894 * src/pic16/glue.c (pic16_printIvalChar): fixed string
5895 initializers with \0, bug #1208187
5896 * src/pic16/main.c (_process_pragma): added sanity checks
5897 for stack position and size, emit warnings when appropriate
5899 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5901 * device/lib/_strncpy.c: fixed not filling with \0
5903 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5905 * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5907 * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5908 compound_statement),
5910 * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5912 2005-05-24 Raphael Neider <rneider AT web.de>
5914 * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5916 2005-05-24 Raphael Neider <rneider AT web.de>
5918 * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5919 TRISE definitions, closes bug #1162453
5921 2005-05-22 Raphael Neider <rneider AT web.de>
5923 * src/pic16/main.c (_process_pragma): check for missing
5924 arguments to pragmas code and udata
5925 * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5926 consistency fixes to match other headers (thanks to Jim Paris)
5927 * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5929 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5931 * src/SDCCicode.c (isOperandEqual): fixed missing ;
5933 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5935 * support/regression/tests/bug1198642.c: new test
5936 * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5937 * src/SDCCcse.c (findPrevIc): added comment, please have a look
5938 * support/scripts/resource.h,
5939 * support/scripts/resource.rc,
5940 * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5941 * support/scripts/sdcc.ico: added 32x32 icon
5943 2005-05-18 Raphael Neider <rneider AT web.de>
5945 * device/lib/pic16/libdev/pic18f*.c,
5946 * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5947 keywords to "__sfr" and "__at (X)"
5948 * device/include/pic16/pic18fregs.h: added pic18f4520
5949 * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5950 #1203088 (MPLAB compatibility)
5952 2005-05-17 Raphael Neider <rneider AT web.de>
5954 * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5955 * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5956 * device/lib/pic16/pics.all: added new devices
5957 * src/pic16/device.c: added support for pic18f4520
5959 2005-05-16 Raphael Neider <rneider AT web.de>
5960 * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5961 * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5962 * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5963 convenience function for bit access
5965 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5967 * device/lib/printf_large.c: fixed bug 1193299
5968 * support/regression/tests/bug1057979.c: added test %3.3s
5970 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5972 * device/include/mcs51/8051.h,
5973 * device/include/mcs51/8052.h: made parseable with lint
5974 * device/include/mcs51/lint.h: added include file for (sp)lint
5975 * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5976 * doc/cdbfileformat.lyx,
5977 * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5979 2005-05-14 Raphael Neider <rneider AT web.de>
5981 * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5982 * device/lib/pic16/libc/stdlib/itoa.c (new)
5983 * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5984 * device/lib/pic16/libio/Makefile: exclude subdir according to
5985 ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5986 * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5987 * src/pic16/gen.c (genFunction): prevent annoying warning
5988 * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5990 * support/cpp2/cppmain.c (cpp_output_string): new
5991 * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5994 2005-05-13 Borut Razem <borut.razem AT siol.net>
5996 * src/SDCCmain.c (linkEdit): fixed bug 1195202
5998 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6000 * .version: changed to version 2.5.1; back to bleeding edge development
6002 2005-05-11 Borut Razem <borut.razem AT siol.net>
6004 * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
6005 generate PDF version 1.3 documents
6007 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6009 * .version: changed to version 2.5.0
6011 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6013 * doc/sdccman.lyx: updated weblinks, index and smaller updates
6015 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6017 * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
6018 --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
6019 well as many smaller updates.
6020 * .version: changed to version 2.5.0-pre1
6022 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6024 * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
6026 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
6028 * support/regression/tests/bug1185672.c: added
6029 * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
6031 * src/mcs51/gen.c (genCall): added comments, made it look safer
6032 * src/mcs51/gen.c (genEndFunction): simplified
6034 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
6036 * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
6038 2005-04-14 Borut Razem <borut.razem AT siol.net>
6040 * fixed bug 1045046 - SIGSEGV with really simple code?:
6041 src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
6042 src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
6044 2005-04-14 Borut Razem <borut.razem AT siol.net>
6046 * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
6047 src/pic16/device.h: temporarily disabled experimental #inline pragma
6050 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
6052 * device/include/z80/stdio.h,
6053 * device/include/z80/string.h: removed these highly incomplete files so
6054 SDCC can use the default ones in device/include/
6056 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6058 * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
6060 * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
6063 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6065 * device/include/malloc.h: removed redundant __reentrant prototypes
6066 * device/lib/_mullong.c: added working xstack variant in asm (C version
6067 doesn't pass regression tests)
6068 * device/lib/bpx.c: used __data and made bpx char for mcs51
6069 * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
6070 (createFunction): fixed bug with xstackPtr
6071 * src/SDCCcse.c: corrected comments
6072 * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
6073 (killDeadCode, eBBlockFromiCode): removed unused code
6074 * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
6076 * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
6077 assignResultValue, genCall, genFunction, genEndFunction, genAnd,
6078 genOr, genXor, genAddrOf): fixed several bugs concerning xstack
6079 (genModOneByte): fixed warning in MSVC
6080 * src/mcs51/main.c (): added comments
6081 * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
6083 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
6085 * src/SDCCmain.c (linkEdit): oops, changed one line too many
6087 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
6089 * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
6091 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
6093 * src/pic16/glue.c (printIvalChar): fixed bug when emitting
6094 characters arrays of larger size than the declared one.
6096 2005-04-10 Borut Razem <borut.razem AT siol.net>
6098 * src/pic/gen.c (genInline),
6099 src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
6100 (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
6101 (findNextInstruction), (findPrevInstruction),
6102 (findInstructionUsingLabel),
6103 src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
6104 * src/pic/pcode.c (findLabel): added missing '\n'
6105 * src/src.dsp: added SDCCdwarf2.c to the project
6107 2005-04-09 Borut Razem <borut.razem AT siol.net>
6109 * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
6111 2005-04-08 Raphael Neider <rneider AT web.de>
6113 * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
6114 into the chain after a given one) and mergeDefmapSymbols (combine
6115 defmap entries for each symbol per pcode)
6116 * (createDefmap): have defmap entries merged in the end
6117 * (defmapReplaceSymRef): split defmap entries covering two accesses to
6118 a symbol before replacing one access type's symbol, merge symbols in
6119 the end (replacement symbol might already have an entry)
6120 * (assignValnums): keep reference to written WREG intact
6122 2005-04-08 Raphael Neider <rneider AT web.de>
6124 * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
6127 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
6129 * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
6132 2005-04-07 Raphael Neider <rneider AT web.de>
6134 * device/include/pic16/usart.h: added compatibility defines for
6135 devices with more than one USART
6136 * device/include/pic16/pic18f[68][567]20.h: activated above defines
6138 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6140 * device/lib/Makefile.in: updated for port specific include
6142 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6144 * support/regression/ports/mcs51/spec.mk: added mcs51 include
6146 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6148 * device/include/8051.h,
6149 * device/include/8052.h,
6150 * device/include/at89S8252.h,
6151 * device/include/at89c55.h,
6152 * device/include/at89x051.h,
6153 * device/include/at89x51.h,
6154 * device/include/at89x52.h,
6155 * device/include/mcs51reg.h,
6156 * device/include/reg51.h,
6157 * device/include/reg764.h,
6158 * device/include/regc515c.h,
6159 * device/include/sab80515.h: (re)moved these 12 files
6160 * device/include/mcs51/8051.h,
6161 * device/include/mcs51/8052.h,
6162 * device/include/mcs51/at89S8252.h,
6163 * device/include/mcs51/at89c55.h,
6164 * device/include/mcs51/at89x051.h,
6165 * device/include/mcs51/at89x51.h,
6166 * device/include/mcs51/at89x52.h,
6167 * device/include/mcs51/mcs51reg.h,
6168 * device/include/mcs51/reg51.h,
6169 * device/include/mcs51/reg764.h,
6170 * device/include/mcs51/regc515c.h,
6171 * device/include/mcs51/sab80515.h: and added them here
6173 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
6175 * device/include/stdarg.h: changed SDCC specific keywords to double
6177 * device/include/stdint.h: changed intptr_t and uintptr_t for others than
6179 * device/include/hc08/mc68hc908gp32.h,
6180 * device/include/hc08/mc68hc908jb8.h,
6181 * device/include/hc08/mc68hc908jkjl.h,
6182 * device/include/hc08/mc68hc908qy.h: fixed comments
6183 * device/include/mcs51/README: updated
6184 * device/include/mcs51/c8051f120.h: added PINRSF
6185 * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
6186 * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
6187 amidst code. Also inline is not supported.
6189 2005-04-06 Raphael Neider <rneider AT web.de>
6191 * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
6192 * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
6193 callers stack/frame pointers
6195 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
6197 * device/include/pic16/usart.h: added, missing in previous commit,
6198 * device/include/pic16/adc.h: fixed typo,
6199 * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6201 * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6203 * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6204 uninitialized because a bug appears with gplink
6205 * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6206 COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6207 complains for unrecognised option
6209 2005-04-05 Raphael Neider <rneider AT web.de>
6211 * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6212 structs as well (using memcpy)
6213 * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6214 on ISRs (GOTO has no label)
6215 * src/pic16/device.h: added OF_OPTIMIZE_DF
6216 * src/pic16/main.c: added compiler switch --optimize-df to enable the
6217 new data flow analysis/optimization
6218 * src/pic16/pcode.c: added (prototypes for and implementation of)
6219 dataflow analysis functions, fixed pCodeInstructions' inCond and
6220 outCond values, made RCALL a branch instruction
6221 * (pic16_unlinkpCode): keep C line if possible
6222 * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6223 C line moved if possible
6224 * (pic16_getRegFrompCodeOp): NEW, improved version of...
6225 * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6226 to use new pic16_getRegFrompCodeOp (works for more SFRs)
6227 * (pic16_BuildFlow): fixed skip instructions with label (did not start
6229 * (pic16_getJumptabpCode): NEW, needed in...
6230 * (LinkFlow): fixed handling of jumptables, calls and conditional
6232 * (pic16_InsertCommentAfter): NEW
6233 * (pic16_pCodeReplace): made verbose and flow preserving
6234 * (AnalyzeFlow): added call to data flow analysis
6235 * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6236 * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6237 * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6239 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6241 * src/SDCCast.c (decorateType): fixed bug #1105626
6243 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6245 * device/include/asm/pic16/features.h,
6246 * pic18f*.h headers,
6247 * device/include/pic16/adc.h,
6248 * device/include/pic16/delay.h,
6249 * device/include/pic16/i2c.h,
6250 * device/include/pic16/malloc.h,
6251 * device/include/pic16/stdio.h,
6252 * device/include/pic16/stdlib.h,
6253 * device/include/pic16/string.h,
6254 * device/lib/pic16/libc/stdio/printf_tiny.c,
6255 * device/lib/pic16/libc/stdio/printf_small.c,
6256 * device/lib/pic16/libc/stdio/strmgpsim.c,
6257 * device/lib/pic16/libc/stdio/strmmssp.c,
6258 * device/lib/pic16/libc/stdio/strmusart.c,
6259 * device/lib/pic16/libc/stdio/vfprintf.c,
6260 * device/lib/pic16/libc/stdlib/ltoa.c,
6261 * device/lib/pic16/libc/stdlib/putchar.c,
6262 * device/lib/pic16/libc/stdlib/x_ftoa.c,
6263 * device/lib/pic16/libc/stdlib/memchrpgm.c,
6264 * device/lib/pic16/libc/stdlib/memchrram.c,
6265 * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6266 * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6267 * device/lib/pic16/libio/adc/adcbusy.c,
6268 * device/lib/pic16/libio/adc/adcread.c,
6269 * device/lib/pic16/libio/adc/adcsetch.c,
6270 * device/lib/pic16/libio/usart/ubaud.c,
6271 * device/lib/pic16/libio/usart/ubusy.c,
6272 * device/lib/pic16/libio/usart/udrdy.c,
6273 * device/lib/pic16/libio/usart/uopen.c,
6274 * device/lib/pic16/libio/usart/uputc.c,
6275 * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6276 * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6277 * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6278 * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6279 * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6280 * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6281 * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6282 * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6283 specific keywords to double underlined form,
6284 * device/lib/pic16/libc/Makefile.rules,
6285 * device/lib/pic16/libsdcc/Makefile.rules,
6286 * device/lib/pic16/libm/Makefile,
6287 * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6288 to compile with C standard set in Makefile.common
6289 * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6290 rand.c and crc.c in compilation process,
6291 * device/lib/pic16/libsdcc/int/divuint.c,
6292 * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6293 `c' from signed to unsigned,
6294 * device/lib/pic16/startup/crt0.c,
6295 * device/lib/pic16/startup/crt0i.c,
6296 * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6297 keywords to double underlined form, bug fixes in _do_cinit function
6298 which prevented the correct initialization of the .idata segment,
6299 * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6300 core to enter a infinite loop
6301 * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6303 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6305 * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6307 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6309 * device/include/Makefile.in: add support for hc08 subdirectory
6310 * device/include/hc08/: new subdirectory
6311 * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6312 Lucas Loizaga, thanks!
6313 * device/include/hc08/mc68hc908qy.h,
6314 * device/include/hc08/mc68hc908gp32.h,
6315 * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6316 their own directory. Changed internal macro names to use the compiler
6317 reserved namespace. Changed SDCC specific keywords to double
6319 * device/include/math.h,
6320 * device/include/malloc.h,
6321 * device/include/stdarg.h,
6322 * device/include/stdbool.h
6323 * device/include/string.h,
6324 * device/include/tinibios.h,
6325 * device/include/ds400rom.h,
6326 * device/include/8051.h,
6327 * device/include/8052.h,
6328 * device/include/80c51xa.h,
6329 * device/include/at89c55.h,
6330 * device/include/at89S8252.h,
6331 * device/include/at89x51.h,
6332 * device/include/at89x52.h,
6333 * device/include/ds80c390.h,
6334 * device/include/reg764.h,
6335 * device/include/regc515c.h,
6336 * device/include/sab80515.h,
6337 * device/include/mcs51/c8051f000.h,
6338 * device/include/mcs51/c8051f018.h,
6339 * device/include/mcs51/c8051f020.h,
6340 * device/include/mcs51/c8051f040.h,
6341 * device/include/mcs51/c8051f060.h,
6342 * device/include/mcs51/c8051f120.h,
6343 * device/include/mcs51/c8051f300.h,
6344 * device/include/mcs51/c8051f310.h,
6345 * device/include/mcs51/c8051f320.h,
6346 * device/include/mcs51/c8051f330.h,
6347 * device/include/mcs51/c8051f350.h,
6348 * device/include/z180.h: Changed SDCC specific keywords to double
6351 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6353 * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6355 * (pic16_assignConfigWordValue): disable testing of configuration
6356 register value with config mask,
6357 * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6358 function with port->fun_prefix,
6359 * (genFunction): when generating a naked interrupt function never
6360 create an absolute segment placed in interrupt vector address, place
6361 the actual interrupt function at IVA instead, when an interrupt
6362 function is generated with unspecified interrupt then do not create
6363 the absolute section,
6364 * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6365 code for generating a call to generic pointer get/put function with
6366 a call to function pic16_callGenericPointer(),
6367 * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6368 the call to the generic pointer get/put functions with prefixing the
6369 function name with port->fun_prefix,
6370 * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6371 * src/pic16/main.c (_process_pragma): prefix function with
6373 * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6374 calling assembler, old 18Fxxxx macro is deprecated,
6375 * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6376 PC_ASMDIR in while condition,
6377 * (findInstruction): add PC_ASMDIR in while condition,
6378 * (buildCallTree): prefix main with port->fun_prefix,
6379 * (pic16_pCode2str): fixed bug that didn't emit the memory access
6380 identifier for variable with banked access in instructions BTFSS,
6381 BTFSC, BCF, BSF, BTG
6382 * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6383 * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6384 * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6385 perform optimization when enviroment variable NO_REG_OPT is set,
6386 * (insideLRBlock): NEW, return 1 if register is inside an
6387 INF_LOCALREGS block,
6388 * (RemoveRegFromLRBlock): remove a register that is completely
6389 eliminated by register optimization, but it is still left in local
6390 register store/restore in/from stack block,
6391 * (Remove2pcodes): after removing register, check to see if it
6392 should be removed from local register store/restore in/from stack
6394 * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6395 DUMMY_READ_VOLATILE,
6397 * device/include/pic16/adc.h: minor prototype modifications and
6399 * device/include/pic16/malloc.h: added GPL notice various
6401 * device/include/pic16/stdint.h: NEW, standard header for ints
6402 * device/include/pic16/delay.h: NEW, header for delay functions,
6403 delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6405 * device/include/pic16/signal.h: NEW, header providing helper macros
6406 for implementing signal handlers,
6407 * device/include/pic16/stdio.h: added prototypes for functions,
6408 printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6409 prototypes for stdin and stdout, added macro PUTCHAR to
6410 automatically implement putchar function prototype,
6411 * device/include/pic16/usart.h: modified and updated USART library,
6412 * device/lib/pic16/libio/adc/,
6413 * device/lib/pic16/libio/i2c: some modifications to improve library
6415 * device/lib/pic16/libc/stdio/: modifications for the new printf*
6416 family of functions,
6417 * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6418 family of functions and other sources,
6419 * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6420 of the PIC18Fxx[28] devices,
6421 * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6422 * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6423 * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6424 _do_cinit function, because the previous failed when local variables
6425 where not placed in the same memory bank,
6426 * device/lib/pic16/libsdcc/char/: various modifications to improve
6427 library performance,
6428 * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6429 information on the new functions of the c library and more...
6431 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6433 * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6435 2005-03-26 Raphael Neider <rneider AT web.de>
6437 * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6438 if condition == CARRY)
6439 * (genCmp): adapted to new genSkipc semantics
6440 * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6441 on rIfx (genCmp was broken)
6443 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6445 * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6446 * src/z80/main.c (_keywords[]),
6447 * src/SDCCglobal.h (struct options),
6449 * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6450 to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6451 std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6452 --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6453 always available in leading double underscore form. The C99 support is
6454 mostly missing, but it's a start.
6455 * support/regression/tests/bug-227710.c: fixed nonconforming use of
6456 reserved identifier "__data".
6458 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6460 * src/mcs51/peeph.def: fixed bug 1170013
6462 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6464 * device/include/mcs51reg.h: fixed bug 842007
6466 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6468 * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6471 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6473 * src/port.h (struct PORT),
6474 * src/avr/ralloc.c (avr_assignRegisters),
6476 * src/ds390/ralloc.c (ds390_assignRegisters),
6478 * src/hc08/ralloc.c (hc08_assignRegisters),
6480 * src/mcs51/ralloc.c (mcs51_assignRegisters),
6482 * src/pic/ralloc.c (pic14_assignRegisters),
6484 * src/pic16/ralloc.c (pic16_assignRegisters),
6486 * src/xa51/ralloc.c (xa51_assignRegisters),
6488 * src/z80/ralloc.c (z80_assignRegisters),
6490 * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6491 * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6493 * src/SDCCdflow.c (computeDataFlow),
6495 * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6497 * src/SDCCcflow.c (*),
6499 * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6500 * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6501 of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6502 immedDom() returning wrong block; probably fixes bug #1160833)
6504 2005-03-20 Borut Razem <borut.razem AT siol.net>
6506 * support/scripts/inc2h.pl: WIN32 port
6508 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6510 * device/lib/makefile.in: added abs.c and labs.c
6512 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6514 * device/include/stdint.h: added
6515 * device/lib/abs.c: added
6516 * device/lib/labs.c: added
6517 * device/include/stdlib.h: added abs() and labs() prototypes
6518 * device/lib/libsdcc.lib: added abs and labs
6519 * device/include/float.h,
6520 * device/lib/_fsmul.c,
6521 * device/lib/printf_fast.c,
6522 * device/lib/printf_tiny.c: updated comments
6524 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6526 * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6529 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6531 * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6532 * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6534 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6536 * device/lib/printf_large.c: removed inline assembly for portability and
6537 readability. Use printf_fast if speed or size are more important.
6538 * src/pic16/gen.c: removed conditions around use of DEBUGpc
6539 * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6541 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6543 * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6544 prevent compiler warning
6546 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6548 * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6549 moved to level 0 and declared as static. Also they are explicit
6550 placed in access bank. This was necessery because some times they
6551 might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6552 * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6553 optimizations. Currently only compare to unsigned char is implemented,
6554 * src/pic16/gen.c: added fReturnIdx array,
6555 * (struct resolvedIfx) is moved to gen.h and made public,
6556 * (struct _G): added sregsAlloc and sregsAllocSet fields,
6557 * (aopForSym): added an optimization to directly store in stack of
6558 the operand of a SEND iCode,
6559 * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6560 but as registers instead (AOP_REG) using the fReturnIdx array,
6561 * (pic16_freeAsmop): remove the freed register from the
6562 _G.sregsAlloc field,
6563 * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6564 a compare of 'WREG',
6565 * (pic16_popGetTempRegCond): changed function prototype, now
6566 function takes also a bitVector argument v which holds the current
6567 set of registers that are allocated for stack access by aopForSym,
6568 registers allocated in aopForSym for accessing stack symbols are not
6569 any more part of the functions usedRegs field,
6570 * (genCall): some times aopOp is called for a stack variable to be
6571 send, aopForSym might perform the push, if this is true make sure
6572 that genCall doesn't push the variable twice by testing _G.resDirect,
6573 * (genFunction): changed testing for unspecified interrupt number
6574 from 256 to INTNO_UNSPEC,
6575 * modified selection scheme of frame pointer generation. Previously
6576 if function did use local registers a frame pointer was generated,
6577 now a frame pointer is generated only if function has arguments
6578 (that need PLUSW2 register access), or has stack arguments, or the
6579 compiler is not instructed to omit the frame pointer,
6580 * (genEndFunction): before restoring local registers that were saved
6581 in the function preamble, also restore the registers that *might*
6582 have been allocated for stack access,
6583 * (genRet): removed some old comments,
6584 * (genCmp, the active (RN's) version): added a call to the
6585 pic16_genCmp_special function to perform the compare with a more
6586 robust and optimized way,
6587 * (genInline): a feature has been added in inline code generation,
6588 which allows a wildcard variable substitution when writing inline
6589 assembly. Code is incomplete and experimental therefore undocumented,
6590 * (genCast): changed order of aopOp for result and right to allow
6591 aopForSym to directly load the result if possible,
6592 * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6593 perform an optimized compare on some selected special occasions,
6594 * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6595 * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6596 generate an IVT any more,
6597 * src/pic16/main.c (pic16_optionsTable): added command line option
6599 * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6600 macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6602 * src/pic16/NOTES: Raphael Neider added in list of active developers
6603 * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6604 jumptable_end to prevent bug #,
6605 * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6606 inCond and outCond fields,
6607 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6608 * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6609 turn off register spilling,
6610 * (packRegsForOneUse): synced with other ports' versions although it
6611 is not used currently,
6612 * (pic16_packRegisters): added an optimization while reading
6613 structure bitfields, some registers may be saved (malloc code is
6614 decreased by 80 bytes)
6616 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6618 * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6619 left is a bitfield, if yes, then don't optimize assignment. Perhaps
6620 this can be optimized more?
6622 2005-03-10 Raphael Neider <rneider AT web.de>
6624 * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6625 genNearPointerGet): (hopefully) fixed access to bitfields via
6626 pointers (p->bitN = x; and x = p->bitN; failed)
6628 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6630 * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6632 2005-03-09 Raphael Neider <rneider AT web.de>
6634 * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6636 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6638 * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6639 * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6640 (regTypeNum): set REG_BIT type if necessary
6641 * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6642 * support/regression/tests/critical.c: check bug 1144613
6644 2005-03-02 Raphael Neider <rneider AT web.de>
6646 * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6648 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6650 * src/avr/ralloc.c (serialRegAssign),
6651 * src/ds390/ralloc.c (serialRegAssign),
6652 * src/hc08/ralloc.c (serialRegAssign),
6653 * src/mcs51/ralloc.c (serialRegAssign),
6654 * src/pic/ralloc.c (serialRegAssign),
6655 * src/pic16/ralloc.c (serialRegAssign),
6656 * src/xa51/ralloc.c (serialRegAssign),
6657 * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6659 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6661 * src/SDCCast.c (decorateType): fixed bug 1124787
6663 2005-02-20 Hubert Sack <sack AT digiplan.de>
6664 committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6666 * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6669 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6671 * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6672 to keep the correct label reference count when adding/removing references
6673 to labels. A peephole file using this is appended to patch #1144962.
6675 2005-02-14 Raphael Neider <rneider AT web.de>
6677 * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6678 * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6679 * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6680 retrievals of result operand's value on assignment
6682 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6684 * device/include/pic16/string.h: modified prototype for memccpy()
6685 to memccpy(void *, void *, char, size_t)
6686 * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6687 check whether to omit frame pointer or not,
6688 * (genInline): convert all occurences of "\n" to LF in inline
6689 assembler blocks, this helps formatting the inline text,
6690 * (pic16_loadFSR0): modified prototype,
6691 * (genNearPointerGet, genNearPointerSet): reorganization of code,
6692 removed some 8051 legacy code,
6693 * (genPackBits): enabled handling bitfields exceeding one byte in size,
6694 * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6695 before allocating temporary registers in functions,
6697 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6699 * support/regression/tests/bitvars.c: corrected the "fix"
6701 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6703 * support/regression/tests/bitvars.c,
6704 * support/regression/tests/bitwise.c,
6705 * support/regression/tests/rotate.c: "fixed" problems on Alpha
6707 2005-02-10 Raphael Neider <rneider AT web.de>
6709 * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6710 different size for Alpha
6711 * src/pic16/gen.c (genCmpEq) : improved compare with 0
6713 2005-02-09 Raphael Neider <rneider AT web.de>
6715 * src/SDCC.lex(doPragma) : save and restore warning options as well
6716 (also added new stack plus clone- and copyAndFreeSDCCERRG())
6717 * have #pragma less_pedantic set the errorlevel to WARNING
6719 * (cloneOptimize) : fixed wrong malloc's size
6720 * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6721 facilitate correct handling of #pragma (save|restore)
6723 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6725 * src/mcs51/gen.c: removed non-standard C nameless struct/union
6727 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6729 * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6731 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6733 * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6735 2005-02-02 Raphael Neider <rneider AT web.de>
6737 * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6738 * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6739 * (pic16_storeForReturn): fixed to allow returning function pointers
6740 * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6741 * device/include/pic16/{stddef.h,stdbool.h}: added
6743 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6745 * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6747 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6749 * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6750 * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6751 appeared to be required
6753 2005-01-31 Borut Razem <borut.razem AT siol.net>
6755 * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6756 include/mcs51 and include/z80 directories to the package
6758 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6760 * src/hc08/gen.c (genFunction): fixed bug #1112752
6762 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6764 * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6766 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6768 * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6770 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6772 * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6774 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6776 * device/include/c8051fxxx.h: removed these 6 files
6777 * device/include/mcs51/c8051fxxx.h: added these 11 new files
6779 2005-01-26 Raphael Neider <rneider AT web.de>
6781 * src/pic16/gen.c (genAssign): fixed assignment from longs
6782 in codespace (were cut to three bytes)
6783 * (genDummyRead): implemented (except for CODESPACE...),
6785 * src/pic16/glue.c (emitStatistics): beautified
6786 * device/lib/pic16/libm/Makefile: added include path
6788 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6790 * src/z80/gen.c (aopPut): fixed bug #1103902
6792 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6794 * device/lib/expf.c: fixed bug #1095792
6796 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6798 * device/lib/pic16/libm: added Math library sources
6800 2005-01-24 Raphael Neider <rneider AT web.de>
6802 * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6803 to enable upcast to pCodeOpReg2 (there is no type tag to
6804 differenciate the two and pic16_popGet2p cast into PCOR2)
6805 * src/pic16/main.c (_process_pragma): fixed another malloc bug
6806 (sizeof(sectNames) changed to sizeof(sectName))
6807 Both patches fix segfaults under MinGW.
6809 2005-01-23 Raphael Neider <rneider AT web.de>
6811 * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6812 Safe_[mc]?alloc()'ed variables
6813 * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6814 of (byte sized) temporaries (assign them to WREG for now)
6815 * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6816 (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6817 this might fix SIGSEGVs on MinGW...
6818 * src/SDCCopt.c (killDeadCode): restored original behaviour
6819 (volatile operands might get thrown away though)
6821 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6823 * src/pic16/gen.c: fixed bug #1106975,
6824 * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6825 pointer update, INTCON is saved, global interrupts are disabled and
6826 restored after updateing TOS.
6827 * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6828 * added function attribute 'shadowregs' to take advantage of shadow
6830 * added function attribute 'wparam' as an alternative to the wparam
6832 * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6833 user declares a non-ISR function as 'shadowregs',
6834 * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6836 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6838 * .version: bumped version number to 2.4.8
6839 * device/lib/pic16/pics.all: list of PIC18F devices supported by
6841 * device/lib/pic16/libio/i2c/: I2C module support library,
6842 * device/include/pic16/i2c.h: I2C support library header,
6843 * device/lib/pic16/libc/stdio/: standard IO support sources,
6844 * (printf_small.c): printf_small() source, supports float print,
6845 * (printf_tiny.c): printf_tiny() source, does not support floats,
6846 * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6847 enable global optimizations for entire library source, other
6848 Makefiles in the source tree are also modified to reflect this,
6849 * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6851 * doc/sdccman.lyx: updated to reflect new changes,
6852 * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6853 sym->onStack if-case,
6854 * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6855 sbit, idata, _idata, xdata, _xdata,
6856 * added pragma library, to link an external library, (see doc),
6857 * removed command line options, --pomit-config-words, --pomit-ivt,
6858 --pleave-reset-vector,
6859 * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6860 when calling assembler to reflect memory model used, also define
6861 macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6862 reflect stack model used,
6863 * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6864 on stack return NULL,
6866 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6868 * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6869 of the operands is volatile. Fixes #1020220
6871 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6873 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6874 * (OptimizeRegUsage): make sure that there is really no other flow where
6875 the first pCode is used
6877 2005-01-22 Raphael Neider <rneider AT web.de>
6879 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6880 to fix #1106967 (pCode->seq are not set up correctly)
6882 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6884 * src/SDCCglue.c (glue): make sure code area is declared before the
6885 static initialization area.
6887 2005-01-21 Raphael Neider <rneider AT web.de>
6889 * device/lib/Makefile.in: fixed test for pic16 install dir
6890 * device/lib/pic16/*/Makefile*: modified compile flags to enable
6892 * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6893 added --optimize-goto compiler switch and pragma wparam documentation
6894 * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6895 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6896 and PRODH closing bug #1071770 (peephole optimizer)
6898 2005-01-19 Raphael Neider <rneider AT web.de>
6900 * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6901 cmdLine buffers (used when calling sdcpp...) are large enough
6902 (MAX_PATH=256 truncates arguments leading to system halts when
6904 * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6905 * (genUminus): rewritten to for efficiency
6906 * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6907 used uninitialized in some cases)
6908 * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6909 copy the third byte from the int -- now assumes 0x80 (data memory)
6910 * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6911 operands (genAddLit expects the iCode's operands to swapped as
6912 well), fixed leftover bytes (crashed for short left operands)
6913 * (pic16_genMinusDec): performance improvements, removed false
6915 * (pic16_genMinus): fixed to cope with differently sized operands
6916 * src/pic16/glue.c (pic16_glue): added new banksel optimization
6918 * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6919 * src/pic16/graph.[ch]: implementation of directed graphs, used by
6920 new banksel optimization
6921 * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6922 analysis for temporary registers (segfaults...)
6923 * src/pic16/peeph.def: added rule
6925 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6927 * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6928 which converts a float number to its ASCII representation
6929 * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6930 functions to convert the fractional and integer part of a float to ASCII,
6931 * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6932 realloc.c): added _MALLOC_SPEC to explicit place variables in data
6934 * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6936 * device/include/pic16/adc.h: added GPL info,
6937 * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6938 a pCodeOp as tested operand,
6939 * (genNearPointerGet): optimized bit testing, does not use
6940 intermediate register for bit value, test directly instead with
6941 BTFSS, BTFSC, works only for single bits,
6942 * (genpic16Code): dump the name of the iCode in the asm,
6943 * src/pic16/ralloc.c (decodeOp): removed static declaration and
6944 renamed to pic16_decodeOp,
6945 * (serialRegAssign): do not allocate a temporary register for iCode
6946 sequences that test a single bit for 1/0
6948 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6950 * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6951 pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6952 access stack and frame pointers. They are initially assigned to
6953 point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6954 accessing SFRs. Updated all occurences of modification of stack or
6955 frame pointer in gen.c and pcode.c,
6956 * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6957 assigning of a literal value to pointers,
6958 * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6959 flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6962 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6964 * doc/sdccman.lyx: update documentation about stack pragma, added
6965 some info for stack memory models
6967 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6969 * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6971 2005-01-08 Raphael Neider <rneider AT web.de>
6973 * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6974 udata sections to fix bug #1097823
6976 2005-01-05 Raphael Neider <rneider AT web.de>
6978 * src/pic16/gen.c (genGenericShift): added handling of differently
6979 sized left operand and result
6981 2005-01-04 Raphael Neider <rneider AT web.de>
6983 * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6984 * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6985 to hold the condition bit)
6986 * added new version of genCmp (old code available via #define)
6987 * added new version of genShiftLeft/genShiftRight in a generic
6988 way, now supports shifting by negative values
6989 * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6990 shiftCount (expected by genGenericShift)
6991 * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6992 * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6994 * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6995 is an invalid literal too...)
6997 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6999 * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
7000 from Raphael Neider,
7001 * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
7002 for 8-bit literals. This fixes some literal operands which are sign
7003 extended to 16-bits ints when instruction needs only 8-bits.
7005 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
7007 * device/lib/logf.c: added mcs51 assembly version
7008 * device/lib/expf.c: added mcs51 assembly version
7009 * device/lib/_logexpf.c: new shared asm code for expf and logf
7010 * device/include/math.h: add defines for assembly math library
7011 * device/lib/Makefile.in: build new _logexpf.c
7012 * device/lib/libfloat.lib: use new _logexpf.c
7014 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7017 * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
7018 device types which have less than 0x7f registers.
7020 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
7022 * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
7024 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7026 * device/lib/printf_fast.c: only build on supported arch.
7027 * device/lib/printf_tiny.c: only build on supported arch.
7028 * device/lib/printf_fast_f.c: only build if asm float lib
7029 * device/lib/_fsget1arg.c: only build if asm float lib
7030 * device/lib/_fsget2args.c: only build if asm float lib
7031 * device/lib/_fsnormalize.c: only build if asm float lib
7032 * device/lib/_fsreturnval.c: only build if asm float lib
7033 * device/lib/_fsrshift.c: only build if asm float lib
7034 * device/lib/_fsswapargs.c: only build if asm float lib
7035 * device/include/stdio.h: don't provide print_fast,
7036 print_fast_f, print_tiny prototypes if --xstack used
7038 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
7040 * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
7041 * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
7044 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
7046 * device/lib/printf_fast_f.c: same as printf_fast, but
7047 with floating point enabled
7048 * device/lib/printf_fast.c: minor tweaks
7049 * device/include/stdio.h: add printf_fast_f
7051 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7053 * src/SDCCmain.c: make --float-reent default for mcs51
7054 * device/lib/_fsadd.c: added mcs51 assembly version
7055 * device/lib/_fssub.c: added mcs51 assembly version
7056 * device/lib/_fsmul.c: added mcs51 assembly version
7057 * device/lib/_fsdiv.c: added mcs51 assembly version
7058 * device/lib/_fseq.c: added mcs51 assembly version
7059 * device/lib/_fsneq.c: added mcs51 assembly version
7060 * device/lib/_fsgt.c: added mcs51 assembly version
7061 * device/lib/_fslt.c: added mcs51 assembly version
7062 * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
7063 * device/lib/Makefile.in: add _fscmp to build
7064 * device/lib/libfloat.lib: add _fscmp to build
7066 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
7068 * device/lib/_fs2slong.c: added mcs51 assembly version
7069 * device/lib/_fs2sint.c: added mcs51 assembly version
7070 * device/lib/_fs2schar.c: added mcs51 assembly version
7071 * device/lib/_fs2ulong.c: added mcs51 assembly version
7072 * device/lib/_fs2uint.c: added mcs51 assembly version
7073 * device/lib/_fs2uchar.c: added mcs51 assembly version
7074 * device/lib/_slong2fs.c: added mcs51 assembly version
7075 * device/lib/_sint2fs.c: added mcs51 assembly version
7076 * device/lib/_schar2fs.c: added mcs51 assembly version
7077 * device/lib/_ulong2fs.c: added mcs51 assembly version
7078 * device/lib/_uint2fs.c: added mcs51 assembly version
7079 * device/lib/_uchar2fs.c: added mcs51 assembly version
7080 * device/include/float.h: added #define to select asm vs c
7082 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
7084 * device/lib/printf_fast.c: improvements to float output
7085 * device/include/float.h: add defines for assembly float library
7086 * device/lib/_fsget1arg.c: receive 1 float arg
7087 * device/lib/_fsget2args.c: receive 2 float args (reentrant)
7088 * device/lib/_fsnormalize.c: normalize a float
7089 * device/lib/_fsreturnval.c: return float, various helper routines
7090 * device/lib/_fsrshift.c: right shift a float's mantissa
7091 * device/lib/_fsswapargs.c: swap 2 floats
7092 * device/lib/Makefile.in: build these 6 new files for mcs51
7093 * device/lib/libfloat.lib: add these 6 files to the library
7095 2004-12-26 Borut Razem <borut.razem AT siol.net>
7097 * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
7100 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
7102 * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
7103 and fully reentrant and register bank neutral.
7104 * device/lib/printf_fast.c: added float (not enabled by default),
7105 added compact/slower integer (also not enabled by default),
7106 improved size/speed of fast integer code, other minor changes
7107 * device/include/stdio.h, device/lib/Makefile.in,
7108 device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
7110 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
7112 * src/pic16/pcode.c: declaring variables other than at the start of a
7113 block is not supported in C by VC6.
7115 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
7117 * applied a previous patch from Raphael Neider that wasn't included
7118 in the previous commits, which fixes infinite loops within jumptable
7120 * made some fixes that previous patches introduced
7122 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
7124 * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
7125 that fixes an issue with AOP_PCODE asmop's offset,
7126 * (pic16_popCopyReg): update instance field too,
7127 * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
7128 function of pic port,
7129 * (genCmp, genAnd, genAssign),
7130 * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
7132 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
7134 * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
7135 variables initial values to idata section,
7136 * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
7137 variables in some functions. This utilizes parmBytes field of iCode
7138 structure to hold the offset of the variable in stack. (might be
7139 able to use the stack field too?)
7140 * applied patch from Raphael Neider # ### , # ###
7141 * src/pic16/glue.c (pic16emitRegularMap): fix to print static
7142 variable initial values in idata section,
7143 * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
7144 for static variables with initial value
7145 * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
7146 applied fix in while loop from Raphael Neider.
7148 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
7150 * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
7151 * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
7152 * src/ds390/ralloc.c (serialRegAssign): spill bits
7153 * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
7154 * support/Util/SDCCerr.c,
7155 * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
7156 * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
7157 * support/regression/tests/bitwise.c: added test for bitwise complement(~)
7159 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
7161 * device/include/sdcc-lib.h: inserted LGPL, added includes
7162 asm/ds390/features.h and asm/mcs51/features.h
7163 * device/include/asm/default/features.h,
7164 * device/include/asm/gbz80/features.h,
7165 * device/include/asm/z80/features.h: added empty _AUTOMEM
7167 * device/include/asm/ds390/features.h,
7168 * device/include/asm/mcs51/features.h: added files with defines for
7169 _AUTOMEM and _STATMEM indicating automatic and static storage class
7170 * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
7171 * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
7172 * src/SDCCicode.c (geniCodeCast),
7173 * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
7174 * src/SDCCloop.c (loopInduction): removed unused variable lr
7175 * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
7176 to convertToFcall to include char modulo (RFE 1065037), added check
7177 if left operand is unsigned and use abs of literal value
7178 * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
7179 as it doesn't work after conversion from peephole.def to peephole.rul
7180 * src/mcs51/gen.c (toBoolean): added check for size,
7181 (genModOneByte): optimized code for signed char modulo a literal
7182 power of 2 (thanks to Hubert Sack),
7183 (genRRC): removed unnecessary "clr c",
7184 (genRLC): replaced "add a,acc" with cheaper "rlc a"
7185 * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
7187 swapped rules 256.c and 256.d,
7188 extended 256.d by using new multiple checks (thanks Erik),
7189 added rules 256.e and 256.f,
7190 updated rule 261.a and 261.b to new generated code
7191 * support/regression/tests/muldiv.c: added test div/mod by a power of 2
7193 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7195 * src/SDCCloop.c (basicInduction, loopInduction): fixed several
7196 induction related bugs, including first part of bug #1074377
7198 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
7200 * applied patch from bug-report #1076292,
7201 * applied patches for genAnd and Goto-optimizations for Raphael
7203 * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7204 dump a less iCode information,
7205 * src/pic16/device.h (pic16_options_t): added field debgen,
7206 * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7207 DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7208 * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7210 * (various functions): added macros FENTRY and FENTRY2 to functions,
7211 to emit function prologue,
7212 * (various functions): fixed indentation,
7213 * (genNearPointerGet): fixed loading of FSR0,
7214 * (genPackBits): applied patch from Raphael Neider to fix updating
7215 of FSR0 and touching only the modified bits,
7216 * src/pic16/genarith.c (various functions): added macros FENTRY to
7217 emit function prologue in comments,
7218 * src/pic16/pcode.h: added functions debugf2, debugf3,
7219 * src/pic16/ralloc.c: partial fix for packForPush caused
7222 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7224 * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7225 <stsp AT users.sourceforge.net> with reversed byte order
7226 * support/regression/tests/rotate.c: added (ds390 skips some tests)
7228 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7230 * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7232 * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7233 * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7235 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7237 * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7239 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7241 * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7243 (setFromConditionArgs): friendly operand parser for peephole rules,
7244 (operandBaseName, operandsNotRelated): new peephole condition
7245 "operandsNotRelated" -- similar to "operandsNotSame", but takes
7246 architecture specific register naming into account, handles n-way
7247 comparisons, and supports quoted literals
7248 * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7250 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7252 * src/mcs51/peeph.def: fixed bug #1076940
7254 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7256 * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7258 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7260 Adding support for replacing ljmps with sjmps in jumptables
7261 generated for switch statements. For now you need to set the
7262 environment variable SDCC_SJMP_JUMPTABLE to enable this.
7263 Now 4 algorithms for mcs51 jumptable generation are used:
7264 ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7265 addresses loaded pc-relative for up to 112 cases and stack-pushing
7266 target addresses loaded with offset from dptr for up to 256 cases.
7268 * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7269 * src/mcs51/main.c: adapted constants for switch table generation
7270 * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7272 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7274 * device/lib/printf_large.c (_print_format): fixed bug 1073386
7275 * support/regression/tests/bug1057979.c: added test for bug 1073386
7277 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7279 * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7282 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7284 * src/pic16/device.h,
7285 * src/pic16/genarith.c,
7288 * src/pic16/pcode.c: applied patches #1068154 and #1070213
7290 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7292 Large cummulative patch for pic16 port.
7293 * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7294 to call when a stack overflow occurs,
7295 * (malloc.h): added CVS Id tag,
7296 * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7298 * added libc directory. The current version of LibC contains string
7299 functions, ctype functions and macros and some functions of the
7300 stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7301 be extensively tested in the future. Standard disclaimer here.
7302 Library is not automatically build yet. But one can build it by
7303 invoking 'make' inside the libc directory.
7304 * added ADC library under libio. Preliminary version yet.
7306 * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7307 * src/pic16/gen.c (aopForRemat): asmop size is filled by
7308 aopForRemat() now and not by pic16_aopOp(),
7309 * (pic16_popGetTempReg): removed warning messgae when allocating
7310 temporary registers, its a buggy feature and will be removed,
7311 * (pic16_popGet): set register instance field in AOP_CRY,
7312 * (pic16_outBitC): fixed for results in size greater than 1,
7313 * (genUminusFloat): fixed for pic16, ported code from mcs51,
7314 * (pic16_storeForReturn): optimized return of 0,
7315 * (genCmp): experimental code for new genCmp which uses PIC18's
7316 special compare&skip instructions. Initial tests fail some times
7317 with variables grater than 1 byte in size, so new code is disabled,
7318 * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7320 * (genCast): began a fix to optimize the casting of a bit to another
7321 bit, now assigning a bitfield to another bitfield will fail, sorry,
7322 * src/pic16/main.c: disabled the use of lr-support feature,
7323 * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7324 * added some function prototypes, added function _debugf prototype,
7325 * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7326 bits with offset (case PO_GPR_BIT),
7327 * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7329 * (isBankInstruction): modified to return 0 for no banking instruction,
7330 and 1 for banking instruction,
7331 * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7332 caused stop processing pCodes after a inline assembly block,
7333 * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7334 * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7335 registers when it shouldn't,
7336 * src/pic16/ralloc.c (allocReg): add preliminary support for
7337 supporting a limited set of temporary registers,
7339 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7341 * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7342 genDataPointerSet): ensure assignments always copy in MSB to LSB
7344 (loadRegFromAop): recognize CLRH optimization,
7345 (genFunction): optimize RECEIVE iCodes in reentrant functions
7347 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7349 * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7350 --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7352 * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7353 * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7354 contiguous with data
7356 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7358 * device/lib/_gptrget.c (_gptrget),
7359 * device/lib/_gptrgetc.c (_gptrgetc),
7360 * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7361 instead of sjmp to ret
7362 * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7363 by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7365 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7367 * .version: bumped version to 2.4.7
7368 * device/lib/_gptrget.c (_gptrget): is now _naked
7369 * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7370 * device/lib/_gptrput.c (_gptrput): is now _naked
7371 * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7372 (createFunction): fixed xstack
7373 * src/SDCCglue.c (emitMaps): set allocation required for bit area
7374 * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7376 (geniCodeCritical): store original interrupt state in an iTemp bit
7377 var unless stack-auto
7378 * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7379 * src/SDCCmain.c (setIncludePath): added include/target to search path
7380 * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7381 * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7383 (processFuncArgs): put bit vars in bit area
7384 * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7385 unsaveRBank): fixed xstack,
7386 (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7387 (genFunction, genEndFunction): fixed xstack,
7388 (genAssign): optimization don't walk backwards through mem
7389 * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7390 * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7391 * support/regression/Makefile: also make library (for stack-auto) when
7392 making "all" and added "test-mcs51-xstack-auto"
7393 * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7394 * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7395 * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7396 * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7397 * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7398 make-library by MAKE_LIBRARY
7399 * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7400 regression tests for xstack
7401 * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7402 * support/regression/tests/critical.c: test for critical on mcs51
7404 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7406 * support/regression/ports/ucz80/spec.mk: use include and lib files from
7407 built version of sdcc instead of installed version
7409 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7411 * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7412 * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7414 * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7415 * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7416 WARNING: remove device/lib/build/z80/printf.o by hand when
7417 updating from previous build!
7418 * device/lib/z80/printf.c: updated comment
7419 * support/regression/tests/bug1057979.c: test all ports now
7420 * support/regression/tests/bug1065458.c: file added
7422 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7424 * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7425 *_start and *_end symbols for static functions
7427 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7429 * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7430 and search crt0.o in all library paths,
7431 (setIncludePath): proper handling of --nostdinc,
7432 (setLibPath): proper handling of --nostdlib
7433 * support/regression/Makefile,
7434 * support/regression/ports/ds390/spec.mk,
7435 * support/regression/ports/gbz80/spec.mk,
7436 * support/regression/ports/hc08/spec.mk,
7437 * support/regression/ports/mcs51/spec.mk,
7438 * support/regression/ports/mcs51-large/spec.mk,
7439 * support/regression/ports/mcs51-stack-auto/spec.mk,
7440 * support/regression/ports/z80/spec.mk: use include and lib files from
7441 built version of sdcc instead of installed version
7442 * doc/sdccman.lyx: fixed typo in --nostdinc
7444 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7449 * src/pic/gen.c : added support to generate code for struct bit fields.
7451 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7453 * as/xa51/xa_version.h,
7454 * device/include/errno.h,
7455 * device/include/regc515c.h,
7456 * device/lib/_itoa.c,
7457 * device/lib/_ltoa.c,
7458 * device/lib/ser_ir_cts_rts.c,
7459 * sim/ucsim/xa.src/glob.cc,
7460 * sim/ucsim/xa.src/inst_gen.cc,
7461 * sim/ucsim/xa.src/xa_bit.cc,
7462 * sim/ucsim/xa.src/xa_sfr.cc,
7463 * sim/ucsim/z80.src/inst_dd.cc,
7464 * sim/ucsim/z80.src/inst_fdcb.cc,
7465 * support/scripts/keil2sdcc.pl,
7466 * src/pic16/pic16.dsp,
7467 * src/pic16/pic16a.dsp: corrected cvs line endings
7468 * device/lib/printf_large.c: fixed bug 1057979
7469 * src/pic16/gen.c: fixed non-C standard code
7470 * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7471 * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7472 * support/regression/ports/mcs51/support.c: reload T1 asap
7473 * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7474 pdata use and clear idata startup behaviour
7475 * support/regression/tests/bug1057979.c: added
7477 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7479 * device/examples/ds390/ow390/ad26.h,
7480 * device/examples/ds390/ow390/cnt1d.h,
7481 * device/examples/ds390/ow390/crcutil.c,
7482 * device/examples/ds390/ow390/ownet.h,
7483 * device/examples/ds390/ow390/owsesu.c,
7484 * device/examples/ds390/ow390/swt12.h,
7485 * device/examples/ds390/ow390/swtoper.c,
7486 * device/examples/ds390/ow390/temp10.h,
7487 * device/examples/ds390/ow390/thermodl.c,
7488 * device/examples/ds390/tinitalk/tinitalk.dsp,
7489 * device/examples/ds390/tinitalk/tinitalk.dsw,
7490 * device/examples/mcs51/clock/hw.h,
7491 * device/examples/mcs51/simple2/go.bat,
7492 * device/examples/serialcomm/windows/serial.h,
7493 * device/examples/xa51/dummy.c,
7494 * device/examples/xa51/hello.c,
7495 * device/include/80c51xa.h,
7496 * device/include/at89x051.h: corrected cvs line endings
7498 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7500 * src/pic16/main.c (options): added command line --gstack, to trace
7501 stack over/under flows,
7502 * added pragma 'wparam' to allow passing first byte of function
7503 parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7504 * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7505 call to __gstack_test function and sets up the symbol as extern,
7506 * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7507 * popaop): added call to pic16_testStackOverflow,
7508 * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7510 * (genCall, genPcall): now all parameters are passed via stack
7511 except in functions that are pass to wparam pragma in which WREG is
7513 * (genPcall): REENTRANT flag is checked to see if variable prototype
7514 contains reentrant keyword, don't call a non-reentrant function, via
7515 a reentrant function pointer or vice versa, functions are never
7517 * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7519 * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7520 SIGSEGV when accessing a NULL register stucture,
7521 * (pic16_printGPointerType): modified to handle UPPER modifier for
7522 function initializers, changed prototype of function to simpler one,
7523 * (pic16_printIvalFuncPtr): check to see if function is already
7524 added in externs list,
7525 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7526 optimized a move from W to SFR with a move to the same register
7528 * device/lib/pic16/debug: NEW directory, contains debug features
7529 which are enabled when linking with libdebug.lib, currently command
7530 line option --gstack enables stack pointer tracing for over/under
7531 flow, corresponding sources are in debug/gstack
7533 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7535 * doc/sdccman.lyx: updated SDCC version,
7536 * (PIC16 port): update list of command line options,
7537 * src/pic16/device.h (structure pic16_options_t): added field gstack
7538 to enable stack overflow tracing on push/pops,
7539 * src/pic16/device.c (statistics structure): added statistics
7541 * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7542 pic16_dump_int_registers): increase statistics counters for each
7543 * variable which is encountered
7544 * (pic16_dump_usection): emit each .udata variable to its own udata
7546 * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7547 when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7548 parameters via stack, otherwise use old scheme,
7549 * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7550 assembler output file,
7551 * src/pic16/main.c: added command line options --gstack to enable
7552 push/pop tracing for stack overflow,
7553 * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7554 instructions): added size of each instruction,
7555 * (pic16_countInstruction): estimate size of instructions in
7556 the_pFile list, inline assembly blocks are not counted,
7557 * (pic16_FixRegisterBanking): trace previous register usage, when
7558 banksel optimizations is greater than 0, don't emit a redudant
7561 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7563 * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7564 * src/pic16/ralloc.c : applied same fix for pic16.
7565 * src/pic/gen.c : tidied it up a little.
7567 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7569 * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7570 thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7572 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7574 * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7576 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7578 * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7579 non-reentrant function __modsint in the interrupt function (thus
7580 corrupting math operations during serial I/O)
7581 * device/lib/ser_ir.c: as above, changed buffersize
7582 * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7584 * doc/Makefile: added option -t for rsync
7586 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7588 * src/SDCCast.h (struct ast),
7589 * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7591 2004-10-20 Borut Razem <borut.razem AT siol.net>
7593 * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7596 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7598 * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7600 * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7601 support functions to replace long sequences of MOVFF's from access
7602 bank registers to stack and vice versa,
7603 * src/pic16/device.h: added new field opt_flags, where optimization
7604 flags can be set to enable certain features,
7605 * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7606 * pBlock, (genFunction, genEndFunction): surroung loop for
7607 saving/loading used registers in stack with PC_INFO pCodes,
7608 INF_LREGS. Code in between can then be optimized by pCode optimizer
7609 to support function calls,
7610 * (genDataPointerSet): fixed bug which loaded float fields in
7611 structures with corrupt data,
7612 * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7613 in a standard way debug info on stderr. Feature used for developing
7615 * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7616 obsolete chunks of code,
7617 * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7618 * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7619 * pic16/src/pcode.c (pic16_newpCodeInfo,
7620 * (pic16_newpCodeOpLocalRegs),
7621 * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7623 * (pic16_pCodeConstString): printing of the initial value of a
7624 symbol as a comment is inhibited since parsing was already done by
7625 copyStr and output is corrupt,
7626 * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7628 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7630 * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7632 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7634 * as/mcs51/lkarea.c: removed old K&R style,
7635 (lnksect): changed check on boundary error,
7636 (lnksect2): changed check on boundary error,
7637 (lnksect2): extend XSTK to end of page if size = 1
7638 * as/mcs51/lkmain.c: removed old K&R style,
7639 (Areas51): create l_IRAM symbol
7640 * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7641 * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7642 model-mcs51-stack-auto, added model-mcs51-xstack-auto
7643 * device/lib/_mullong.c: added version to be compiled with xstack
7644 * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7645 * device/lib/mcs51/crtxclear.asm: clear pdata as well
7646 * device/lib/mcs51/crtxstack.asm: fixed comment
7647 * src/SDCCglue.c: maxInterrupts defaults to 0,
7648 (emitMaps): added pdata,
7649 (createInterruptVect): (re)moved default,
7650 (glue): added pdata,
7651 (glue): moved __start__xstack to XSTK with default size 1
7652 * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7653 and options.float_rent when options.stackAuto is set,
7654 (linkEdit): only write XDATA_NAME if provided on command line
7656 * src/SDCCmem.c: added pdata
7657 * src/port.h: added pdata_name to PORT
7658 * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7659 (saveRegisters, unsaveRegisters): removed usage of B,
7660 (genMinus): fixed accumulator clash,
7661 (genJumpTab): added comment, this needs another look
7662 * src/mcs51/gen.c: added check for "B in use" paranoia,
7663 added pushB() and popB()
7664 * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7673 * src/z80/main.c: (reset_regparms) made void parameter explicit and
7674 added PSEG (PAG,XDATA) or NULL to port specifier
7675 * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7676 * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7677 (_mcs51_genInitStartup): removed __start__xstack equ,
7678 (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7679 * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7680 * src/z80/gen.c (_rleAppend): fixed warnings
7681 * support/regression/tests/zeropad.c: added pdata test
7682 * .version: bumped to 2.4.6
7684 2004-10-17 Borut Razem <borut.razem AT siol.net>
7686 * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7687 as a part of nightly build
7689 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7691 * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7692 WREG holds the first byte function parameters,
7693 * (aopForSym): take special case for symbols which are in FARSPACE
7694 but in CODESPACE too,
7695 * (assignResultValue): modified to take into account _G.useWreg,
7696 * (genCall): don't use wreg for parameter passing when function is
7697 declared as reentrant, too, added optimization INCF to stack
7698 pointer when stack parameter count is 1,
7699 * (genFunction, genEndFunction): refurnished and fixed to not using
7700 wreg for passing parameters when function has varargs or is
7701 reentrant, fixed bug with symbol name compare for generating
7702 functions in absolute address,
7703 * (pic16_storeForReturn): refurnished,
7704 * (genCmp): began writing a new version of the function, not ready
7705 yet, therefore it is disabled,
7706 * (genAssign): do not read code memory when assigning a function to
7708 * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7709 array of characters, not pointer,
7710 * (pic16initialComments): in debug mode emit an .ident directive for
7712 * (_process_pragma): emit a new warning type (internal to pic16)
7713 when setting stack to default length, emit a similar warning when
7714 placing a function at absolute address and address is not word aligned
7715 * (_pic16_parseOptions): added 'return TRUE' statement,
7716 * (_pic16_linkEdit): if compiling a source, then add the source's
7717 file object, first in the list of objects to link,
7719 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7721 * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7722 * src/pic/main.c : removed VC warning.
7723 * src/pic/gen.c : changed comment.
7725 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7727 * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7728 reference to a deprecated symbol _GPTRREG was causing failure to
7729 link. Thanks G. M. Gallant for the info.
7731 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7733 * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7734 comments for Bugs item #954788.
7736 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7738 * src/pic16/device.c (pic16_dump_gsection,
7739 * pic16_groupRegistersInSection): handle symbols declared to be in
7740 access bank differently,
7741 * src/pic16/gen.c (struct _G): added field resDirect,
7742 * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7743 send values read from stack directly to result and don't allocate
7745 * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7747 * (pic16_sameRegsOfs): NEW,
7748 * (freeAsmop): if _G.resDirect is set then do not mark registers as
7749 free because they were not allocated from temporary pool,
7750 * pic16_popRegFromString): workaround to fix a problem with
7751 allocating variables twice or never,
7752 * (genGenPointerGet): using PRODL instead of FSR0H,
7753 * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7755 * (genAssign): take advantage of the _G.resDirect flag,
7756 * (genCast): around line 11844, use mov2f instead of directly
7757 MOVFF'ing between operands to account for literal values,
7758 * src/pic16/genutils.c: some new debug functions for gpsim have been
7760 * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7761 float with integer part only,
7762 * src/pic16/main.c (_process_pragma): handle pragma udata access to
7763 place variables in access bank
7764 * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7765 updated sources to reflect recent changes in gen.c
7767 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7769 * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7770 sources that searched for headers in installation path, now the
7771 device/include/pic16 is used,
7772 * src/pic16/glue.c (pic16glue),
7773 * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7774 .line directives if not in debug mode, this suppresses assembler's
7775 warnings for ignored directives
7777 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7779 * src/port.h: made reset_regparms prototype void parameter explicit.
7780 * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7781 * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7782 * doc/sdccman.lyx: documented warning disabling and how to use
7783 printf_large to make it print floats.
7784 * device/include/stdbool.h: NEW
7785 * device/lib/_atof.c,
7786 * device/lib/_divuint.c,
7787 * device/lib/_divulong.c,
7788 * device/lib/expf.c,
7789 * device/lib/printf_large.c,
7790 * device/lib/sincosf.c,
7791 * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7792 * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7793 a completely reentrant lib.
7795 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7797 * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7798 * device/include/pic16/stdio.h: fixed bug with colon
7800 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7802 * device/include/pic16/stdio.h,
7803 * device/include/pic16/stdlib.h,
7804 * device/include/pic16/math.h: NEW
7805 * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7806 declared as _naked to reduce overhead
7807 * device/lib/Makefile.in (target port-specific-objects-pic16):
7808 changed * to *.* so to ignore the CVS directory,
7809 * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7810 stacked variables back in stack,
7811 * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7814 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7816 * .version: bumped version number to 2.4.5
7817 * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7818 * support/Util/SDCCerr.c (messages structure): added entry for
7821 Large cumulative patch for pic16 port and libraries.
7822 * device/include/pic16/sdcc-lib.h,
7823 * device/include/pic16/stdarg.h,
7824 * device/include/asm/pic16/features.h,
7825 * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7826 * device/include/pic16/float.h: changes reentrant keyword with
7827 _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7828 * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7829 updated target build-libraries to include objects from gptr,
7830 * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7831 _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7832 * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7833 all function headings,
7834 * src/SDCCmain.c: added global parameter userIncDirsSet,
7835 * (parseCmdLine): when option -I is encountered add directory to
7837 * src/version.awk: added space between control and long,
7838 * src/pic16/NOTES: added some notes for the port,
7839 * src/pic16/gen.c: added prototype for mov2fp function,
7840 * (fReturnpic16[]): properly named return value registers,
7841 * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7842 * (aopForSym): added code to handle symbols with onStack flag set,
7843 symbols onStack are allocated PTRSIZE bytes,
7844 * (aopFreeAsmop): handles special case where asmops are stack objects,
7845 * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7846 * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7847 added argument lock to trace flaws in allocating temporary registers
7848 when developing port,
7849 * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7850 * (pic16_popRegFromString): reenabled allocating a direct register
7852 * (assignResultValue): various beautifications,
7853 * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7854 referenced function argument,
7855 * (genIpush): reenabled to allow stacked arguments, handles only
7856 ic->parmPush iCodes,
7857 * (genCall, genPcall): major changes to allow for variable argument
7858 functions, fixed a bug with falsely restoring stack pointer after
7859 returning from call,
7860 * (genFunction): pending code for critical function,
7861 * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7862 * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7863 * (genNearPointerGet): fixed bug with indirect reading, was always
7865 * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7867 * (genAddrOf): rewrote code to take address of a stacked function parameter
7868 * (genCast): fixed casting to generic pointer type,
7869 * src/pic16/gen.h: added AOP_STA,
7870 * (struct asmop): added field stk,
7871 * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7872 * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7873 * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7874 * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7875 * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7876 * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7878 * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7880 * (pic16_port structure): generic pointer size is set to 3,
7881 * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7882 * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7884 * src/pic16/ralloc.c (allocReg): prevent allocating register when
7885 operand is an iTemp,
7887 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7889 * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7890 * debugger/mcs51/simi.c: addapt new syntax of s51
7892 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7894 * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7895 * src/pic16/pcode.c: commented out some calls to free() in order to
7898 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7901 * src/SDCCicode.c (isiCodeInFunctionCall),
7902 * src/avr/ralloc.c (selectSpil),
7903 * src/pic/ralloc.c (selectSpil),
7904 * src/pic16/ralloc.c (selectSpil),
7905 * src/ds390/ralloc.c (selectSpil),
7906 * src/hc08/ralloc.c (selectSpil),
7907 * src/xa51/ralloc.c (selectSpil),
7908 * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7909 stack in the middle of a function call sequence (fixes bug #1020268)
7910 * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7911 costs associated with the minimum switch case.
7913 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7915 * src/SDCC.lex: fixed bug #1030549
7917 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7919 * src/SDCCcse.h (struct cseDef),
7920 * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7921 over a function call if the CSE is derived from a symbol whose
7922 address has been taken (fixes bug #1029883)
7923 * support/regression/tests/bug-1029883: a new regression test for
7926 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7928 * src/hc08/gen.c (emitinline): fixed bug #1029778
7929 * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7930 to a cast object is no longer a syntax error ("fixes" bug #1030006,
7931 and starts toward RFE #905167)
7933 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7935 * src/pic16/gen.c (mov2f): New function to move an operand to
7936 another without considering if it is a literal or a register,
7937 * (pic16_sameRegs): don't check if they are both AOP_REG,
7938 * (AccRsh): removed andmask=0 lines,
7939 * (genLeftShift): duplicated to be improved in future versions,
7940 * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7941 * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7942 in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7943 * (pic16initMnemonics): added initialization for POC_INFSNZW,
7944 * (insertBankSwitch): fixed inserting banksel directives algorithm
7945 for instructions that follow a skip instruction, this fixes a report
7946 for broken subtraction code generation,
7947 * src/pic16/ralloc.c (deassignLRs): do not free register if current
7948 iCode is a left op, just in case result and right share the same
7951 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7954 * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7956 * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7957 * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7958 on 2004-09-12; it was buggy
7960 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7962 * src/SDCCsymt.h: removed RESULT_CHECK
7967 * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7969 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7971 * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7972 * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7973 configuration values no more rejected by compiler, they are assigned
7974 to configuration registers with a warning message instead,
7975 * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7976 the for-loop so last conf register is emitted too,
7977 * (_pic16_initPaths): link library libsdcc.lib by default,
7978 * (_hasNativeMulFor): modified test for multiplication according to
7979 Raphael Neider's remarks. Integer multiplication is also done with
7981 * device/include/pic16/pic18fregs.h: corrected type error in while
7982 testing and including 18f6720 header file
7984 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7986 * src/pic16/device.h (pic16_options): removed field use_crt,
7987 * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7988 until an optimization to handle single bits is added,
7989 * (pic16_loadFSR0): moved before genUnpackBits,
7990 * (genAnd): some white lines removed,
7991 * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7992 leave_reset flags in pic16_options when using crt modules,
7994 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7996 * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7997 for bugs 898889 & 979599. Also used some safer print instructions.
7999 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
8001 * src/pic16/device.h (pic16_options_t): added field use_crt,
8003 * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
8004 catch a probable future bug,
8005 * src/pic16/gen.c: aopIdx function commented out,
8006 * (genAssign): commented out old code which used aopIdx,
8007 * src/pic16/glue.c (pic16glue): removed some legacy fragments of
8008 code, added if conditionals to take into account the --use-crt
8009 command line options,
8010 * src/pic16/main.c (pic16_optionsTable): added new command line
8011 options, --use-crt= and --no-crt,
8012 * (_pic16_linkEdit): now the proper crt object is added in the
8013 linker command line except than when --no-crt is specified,
8014 * src/pic16/pcode.c,
8015 * src/pic16/pcode.h: added some structures and functions for a new
8016 optimization scheme to compansate for instruction overhead between
8017 same iCodes, this scheme is currently under development and is not
8019 * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
8021 * device/lib/pic16/startup/crt0i.c,
8022 * device/lib/pic16/startup/crt0iz.c: added global char variable
8023 __uflags to force the generation of an idata section
8025 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
8028 * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
8029 * doc/sdccman.lyx: updated sdcc version to 2.4.4
8031 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8033 * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
8034 Frieder) and clarified the default code optimization mode
8036 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8038 * src/SDCC.lex (doPragma, process_pragma),
8039 * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
8040 "opt_code_size", and "opt_code_balanced"
8041 * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
8042 regrouped options by category, added support for category headers
8043 * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
8044 and "--opt-code-size"
8045 * doc/sdccman.lyx: documented these new options and pragmas
8046 * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
8047 preference into account
8049 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8051 * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
8052 geniCodePreDec): Fixed bug 904237 by generating a warning
8054 * src/SDCCerr.c: added warning W_SIZEOF_VOID
8056 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
8058 * src/pic/device.c : When no max ram set validate full memory range.
8060 * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
8062 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
8064 * device/lib/_gptrget.c,
8065 * device/lib/_gptrput.c: updated comment
8066 * device/lib/calloc.c,
8067 * device/lib/free.c,
8068 * device/lib/malloc.c,
8069 * device/lib/realloc.c: added LGPL, made them reentrant-safe
8070 * src/SDCCcse.c (cseBBlock),
8071 * src/SDCCicode.c (printOperand, geniCodeArray),
8072 * src/SDCCicode.h (struct operand): fixed bug 868103
8073 * support/regression/tests/bug-868103.c: added
8074 * src/SDCCast.c (searchLitOp),
8075 * src/SDCCcse.h (struct cseDef),
8076 * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
8077 * src/SDCCicode.h (struct operand),
8078 * src/SDCCsymt.h (struct sym_link),
8079 * src/avr/gen.c (hasInc),
8080 * src/ds390/gen.c (hasInc),
8081 * src/hc08/gen.c (genPlusIncr, hasInc),
8082 * src/mcs51/gen.c (hasInc),
8083 * src/pic16/glue.c (pic16_printIvalChar),
8084 * src/pic16/ralloc.c (regWithIdx),
8085 * src/xa51/gen.c (hasInc) : removed warnings
8086 * src/SDCCast.c (createBlock): added comment ???
8087 * src/hc08/ralloc.c: updated comments
8089 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8091 * doc/sdccman.lyx: updated section on switch statements, added
8092 section about semaphore locking
8093 * doc/Makefile: added option -info for latex2html
8094 * device/lib/_gptrget.c,
8095 * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
8097 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8101 * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
8102 maxram is less than 0x100.
8104 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
8106 * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
8108 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8119 * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
8120 a jump table is the best form for a switch statement, including
8121 automatic insertion of missing cases to make the case range
8122 continuous. Developed in collaboration with Frieder Ferlemann.
8124 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8126 * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
8127 accumulator result if it needs sign extension
8129 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8131 * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
8133 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8135 * device/lib/gbz80/printf.c,
8136 * device/lib/z80/printf.c: removed define for NULL
8138 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
8140 * as/xa51/xa_link.c,
8141 * device/examples/ds390/ow390/ad26.c,
8142 * device/examples/ds390/ow390/cnt1d.c,
8143 * device/examples/ds390/ow390/counter.c,
8144 * device/examples/ds390/ow390/ds2480.h,
8145 * device/examples/ds390/ow390/ds2480ut.c,
8146 * device/examples/ds390/ow390/findtype.c,
8147 * device/examples/ds390/ow390/gethumd.c,
8148 * device/examples/ds390/ow390/owllu.c,
8149 * device/examples/ds390/ow390/ownetu.c,
8150 * device/examples/ds390/ow390/swt12.c,
8151 * device/examples/ds390/ow390/swtloop.c,
8152 * device/examples/ds390/ow390/temp.c,
8153 * device/examples/ds390/ow390/temp10.c,
8154 * device/examples/ds390/ow390/thermo21.c,
8155 * device/examples/ds390/ow390/tinilnk.c,
8156 * device/examples/ds390/ow390/tstfind.c,
8157 * device/examples/serialcomm/windows/serial.cpp,
8158 * device/examples/serialcomm/windows/test_serialcomm.cpp,
8159 * device/include/reg51.h: fixed line endings for cvs
8161 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8163 * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
8164 packRegsForAccUse, packRegisters): new accumulator register
8166 * support/regression/ports/hc08/support.c (_putchar): suppress
8167 warning of unused variable
8168 * src/SDCCicode.c: added SWAP entry to codeTable
8170 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
8172 * device/lib/sprintf.c: forgot to add this file before previous commit
8174 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
8176 * src/pic16/gen.c (genPackBits): added operand right in function
8177 parameters, load result directly if p_type is POINTER (that is
8178 called by genNearPointerSet)
8179 * (genUnPackBits): added operand left in function parameters,
8180 * (genNearPointerGet, genNearPointerSet): prevent the loading of
8181 FSR0 if accessing bitfields,
8183 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
8185 * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
8186 _print_format; updated printf, sprintf, vsprintf
8187 * device/include/asm/default/features.h: corrected comment/define
8188 * device/lib/Makefile.in: added sprintf.c
8189 * device/lib/libsdcc.lib: added sprintf module
8190 * device/lib/printf_large.c,
8191 * device/lib/vprintf.c,
8192 * device/lib/sprintf.c: totally refactored printf_large and vprintf
8194 * support/regression/Makefile: changed ALL_PORTS into a usefull default
8195 * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
8196 * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
8198 * support/regression/tests/zeropad.c: define idata as data for hc08
8200 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8202 * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8203 * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8204 labels are referenced at least once (even if a reference is not found)
8205 * src/hc08/gen.c (emitcode): set isComment flag for comments
8206 * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8207 loads), rules 6a..6b (optimize jumps to return)
8209 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8211 * device/lib/acosf.c (acosf),
8212 * device/lib/asinf.c (asinf),
8213 * device/lib/atanf.c (atanf),
8214 * device/lib/ceilf.c (ceilf),
8215 * device/lib/cosf.c (cosf),
8216 * device/lib/coshf.c (coshf),
8217 * device/lib/cotf.c (cotf),
8218 * device/lib/fabsf.c (fabsf),
8219 * device/lib/floorf.c (floorf),
8220 * device/lib/log10f.c (log10f),
8221 * device/lib/logf.c (logf),
8222 * device/lib/sinf.c (sinf),
8223 * device/lib/sinhf.c (sinhf),
8224 * device/lib/sqrtf.c (sqrtf),
8225 * device/lib/tanf.c (tanf),
8226 * device/lib/tanhf.c (tanhf),
8227 * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8228 replaced all instances of "reentrant" in the library functions
8229 defined in math.h with this macro.
8230 * support/regression/tests/float_trans.c: reenabled test for hc08
8232 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8234 * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8237 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8239 * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8240 * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8241 multi-byte volatile operands are used
8242 * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8243 * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8244 initialization to area GSINIT0 so that it would always precede
8245 any static initializers in GSINIT
8246 * support/regression/tests/zeropad.c: fixed idata define for hc08
8247 * support/regression/tests/bug-927659.c,
8248 * support/regression/tests/float_trans.c: disabled tests for hc08
8249 pending missing library routines
8250 * .version: increased version number to 2.4.4 - hc08 port now passes
8254 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8256 * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8257 * Makefile.common.in,
8259 * as/hc08/Makefile.in,
8260 * as/mcs51/Makefile.in,
8261 * as/z80/Makefile.in,
8262 * debugger/mcs51/Makefile.in,
8263 * device/include/Makefile.in,
8264 * device/lib/Makefile.in,
8267 * link/z80/Makefile.in,
8268 * packihx/Makefile.in,
8269 * sim/ucsim/main_in.mk,
8270 * sim/ucsim/avr.src/Makefile.in,
8271 * sim/ucsim/doc/Makefile.in,
8272 * sim/ucsim/gui.src/serio.src/Makefile.in,
8273 * sim/ucsim/hc08.src/Makefile.in,
8274 * sim/ucsim/s51.src/Makefile.in,
8275 * sim/ucsim/xa.src/Makefile.in,
8276 * sim/ucsim/z80.src/Makefile.in,
8278 * support/cpp2/Makefile.in,
8279 * support/librarian/Makefile,
8280 * support/makebin/Makefile: added DESTDIR to the install path proposed
8281 by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8282 * doc/sdccman.lyx: added DESTDIR documentation
8284 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8286 * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8287 instruction for interrupt handlers, use fast returns when returning
8288 from high priority interrupts
8290 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8292 * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8294 * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8295 * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8296 bugs, ported much of Bernhard's code from mcs51
8297 * src/mcs51/gen.c (genSend),
8298 * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8299 than one when calling a reentrant function
8300 * device/lib/_mullong.c: defined an alternate struct layout for big
8303 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8305 * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8308 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8310 * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8311 are sane and complete before asking the port its prefered parameter
8312 passing method (fixes bug #1017633)
8313 * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8316 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8318 * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8319 problem in bitfields >= 8 bits.
8321 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8323 * src/SDCCsymt.c: undid changes that were not meant to be committed
8325 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8327 * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8329 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8331 * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8332 copied and wrong bit got inverted
8334 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8336 * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8337 genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8338 * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8339 genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8340 * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8341 assignments to bitfields at known addresses
8342 * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8343 reads from bitfields at known addresses
8344 * src/hc08/ralloc.c (packRegisters),
8345 * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8346 genhc08Code): optimize pointer get values used as conditionals
8347 * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8350 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8352 * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8353 genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8354 * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8357 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8359 * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8361 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8363 * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8366 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8368 * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8370 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8372 * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8375 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8377 * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8379 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8381 * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8382 cases use more compact code.
8384 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8386 * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8388 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8390 * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8392 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8395 * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8396 parameter of changePointer() from symbol* to sym_link*
8397 * src/SDCCast.c (decorateType): call changePointer() for CAST op
8398 * src/SDCCsymt.c (compareType): void* type is castable to other
8399 pointers, but not necesarily an exact match.
8400 * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8401 is no longer blindly treated as an exact match.
8402 * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8404 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8406 * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8408 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8413 * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8415 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8419 * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8421 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8423 * src/mcs51/gen.c (emitcode): fixed bug #992819
8425 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8427 * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8428 there's no need to make it worse
8430 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8432 * src/mcs51/ralloc.c (deassignLR),
8433 * src/ds390/ralloc.c (deassignLR),
8434 * src/hc08/ralloc.c (deassignLR),
8435 * src/z80/ralloc.c (deassignLR),
8436 * src/pic/ralloc.c (deassignLR),
8437 * src/pic16/ralloc.c (deassignLR),
8438 * src/avr/ralloc.c (deassignLR),
8439 * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8440 rlivePoint): fixed another part of bug #971834
8442 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8444 * src/z80/main.c: enabled "critical" keyword
8445 * src/z80/mappings.i,
8446 * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8447 functions (fixes bug #979646)
8448 * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8450 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8452 * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8455 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8457 * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8458 doesn't disable too much optimizations
8460 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8462 * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8464 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8466 * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8468 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8470 * src/pic/gen.c tidied up tabs
8471 * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8472 * src/pic/main.c tidied up tabs
8473 * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8474 * src/pic/pcoderegs.c tidied up tabs
8475 * src/pic/ralloc.c tidied up tabs
8477 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8479 * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8480 to S_FIXED for pic16 port and when symbol is not in level 0,
8481 allocate for S_REGISTER storage class and pic16 port, too,
8482 * src/pic16/device.h: prototype for checkSym,
8483 * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8484 * (pic16_assignConfigWordValue): test the value and the mask to
8485 validate that the value is suitable for the configuration word,
8486 * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8487 collect extern declared symbols, don't emit symbol twice, check
8488 first if symbol is in publics set first,
8489 * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8490 * added command line '--fstack' which enables an experimental
8491 feature for stack access, too buggy to be used yet...
8492 * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8493 * (pic16_allocDirReg): when register has storage class S_REGISTER
8494 allocate in pic16_dynAccessRegs,
8495 * device/include/pic16/pic18f????.h: modified configuration word
8496 naming convention, words started as CONFIG0H but should be CONFIG1H
8498 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8500 * device/include/mcs51reg.h: fixed bug 970993
8502 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8504 * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8505 * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8506 * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8507 * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8508 * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8509 * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8510 error/warning numbers,
8511 added function setWarningDisabled()
8512 * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8513 * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8514 _memcmp.c _memmove.c calloc.c realloc.c free.c
8515 * support/regression/tests/malloc.c: added tests for new functionality
8516 * support/regression/tests/zeropad.c: added tests for truncated initializers
8517 and initialized char arrays starting with '\x0'
8518 * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8520 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8522 * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8524 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8526 * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8527 * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8528 peephole 177.e. Thanks to anonymous
8530 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8532 * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8533 function isn't used in the source but referenced as a
8534 variable initializer then declare it as extern in .asm file
8536 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8538 * .version: increased version number to 2.4.3
8540 Adding version extension according to ChangeLog CVS revision
8541 * src/Makefile.in (target all): added dependency 'version.h'
8542 * (rule version.h): added rule to create version.h from ChangeLog,
8543 * (rule dep): added dependency version.h,
8544 * src/version.awk: AWK script to create version.h
8545 * src/SDCCdwarf2.c (dwWriteModule),
8546 * src/SDCCglue.c (initialComments),
8547 * src/SDCCmain.c (printVersionInfo): modified to write after
8548 version string the version extension number,
8549 * src/SDCCutil.c: included "version.h"
8550 * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8552 * src/SDCCutil.h: added prototype for getBuildNumber
8554 * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8555 includeDirsSet, too,
8556 * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8557 const char [] is found in function prototype...
8559 * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8560 moving to WREG with source is already in WREG,
8561 * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8562 * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8563 * (aopForSym): stack'ed symbols are partially supported, added
8564 if-clause to support symbols in FARSPACE,
8565 * (sameRegs): added test for AOP_ACC to see if registers are same,
8566 * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8567 * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8568 * (pic16_popRegFromString): will not allocate a new register if it
8569 doesn't find one by name, bug may have introduced...
8570 * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8571 * (genIpush): revived to use pic16 port's stack,
8572 * (genAddrOf): added incomplete case for stack'ed operand,
8573 * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8574 * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8575 can handle multibyte operands,
8576 * src/pic16/glue.c (pic16_printIval*): some debug info added,
8577 * (pic16initialComments): added message for MPLAB compatibility
8579 * src/pic16/main.h: prototype for pic16_mplab_comp,
8580 * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8581 which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8582 * (_pic16_linkEdit): NEW, handles link stage, transferred here
8583 because of increased complexity of procedure,
8584 * (_process_pragma): stack pragma changed to format 'stack pos len',
8585 emit symbol '_stack_end' to conform with gplink,
8586 * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8587 to search for register,
8588 * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8590 * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8591 #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8592 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8593 case for PO_GPR_REGISTER,
8594 * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8595 dies, the new era is ahead !...
8596 * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8597 pic16_dynInternalRegs,
8598 * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8599 * (pic16_allocDirReg): minor optimizations and bug fixes,
8600 * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8602 * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8603 load stack and frame pointer with address of 'stack_end' symbol
8605 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8607 * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8608 without source code but only variable initializers
8610 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8612 * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8613 external are not declared as extern to reduce overhead while linking
8615 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8617 * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8619 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8621 * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8622 Yee Keat for the patch
8623 * src/SDCCast.c (decorateType): fixed bug #979599
8624 * src/ds390/gen.h: removed local fReturnSizeDS390
8625 * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8626 * src/ds390/gen.c (genAnd, genOr, genXor),
8627 * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8629 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8631 * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8632 add relFilesSet to $3, manipulate $2 to handle linking of object
8633 files without source files in command line,
8634 * device/include/pic16 (all headers): added ID location macros,
8635 * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8636 entries for ID location bytes,
8637 * (pic16_assignIdByteValue): NEW,
8638 * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8639 added field dumpcalltree to pic16_options_t,
8640 * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8641 is used instead of pic16_Gstack_base_addr, check if (ifx) before
8642 emitting rFalseIfx label after check_carry label,
8643 * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8644 pic16_emitDIRegs), NEW
8645 * (pic16glue): dump .calltree file when option --calltree found,
8646 * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8647 * (_pic16_genAssemblerPreamble): emit ID locations after
8648 configuration registers,
8649 * (pic16_linkCmd): modifications of the link command,
8650 * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8651 * (pic16_pCodeInitRegisters): don't init stack registers,
8652 * (pic16_findPrevInstruction): fixed bug,
8653 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8654 bug with immediate registers,
8655 * (buildCallTree): traces stack push and pop,
8656 * (pct2): dump also stack usage for each function,
8657 * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8658 * (pic16_allocDirReg): various modifications,
8659 * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8662 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8664 * src/pic16/pcode.c: removed buggy double colon
8666 2004-07-01 Borut Razem <borut.razem AT siol.net>
8668 * support/scripts/sdcc.nsi: added include/pic16 to setup
8670 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8672 * device/lib/Makefile.in: fixed bug in target objects-pic16,
8673 * device/lib/pic16/Makefile: prefixed with dash (-) command under
8675 * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8676 specific command line arguments. Also added sample lkr script
8677 for placing a variable at a specific memory bank.
8678 * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8679 at a specific memory bank,
8680 * (pic16_dump_isection): fixed bug which caused string literals to
8681 be omitted when dumping idata section,
8682 * (pic16_groupRegistersInSection): added code to handle registers
8683 in specific memory banks,
8684 * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8685 public, all references are renamed too,
8686 * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8688 * (pic16_storeForReturn): added case to handle when dest is WREG,
8689 * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8690 * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8691 pic16_rel_udata, check to see if that register is marked as being
8692 a member of a specific memory bank,
8693 * (pic16_printIvalCharPtr): added code to add string literals either
8694 to code or the idata sections,
8695 * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8696 also accept the 'udata' pragma,
8697 * src/pic16/main.h: new structure types sectName and sectSym
8698 * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8699 * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8700 * (pic16_findPrevInstruction): fixed, it returned nothing,
8701 * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8702 instruction combinations,
8703 * (pic16_FixRegisterBanking): heavily reorganised,
8704 * (pic16_AnalyzeBanking): if generating banksel directives is
8705 disabled, then don't call FixRegisterBanking at all,
8706 * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8708 * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8710 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8712 * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8713 Phuah Yee Keat <yk.phuah AT nestac.com>
8715 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8717 * src/pic16/glue.c (pic16createInterruptVect): function now emits
8718 correctly the IVT even if it is relocated to some other location
8720 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8722 * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8723 * device/include/pic16/pic18f2220.h: NEW,
8724 * device/lib/pic16/libdev/pic18f2220.c: NEW,
8725 * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8726 * src/pic16/device.c (struct Pics16): added info for 18f2220,
8727 * src/pic16/device.h (struct pic16_options): added ivt_loc and
8728 nodefaultlibs, ivt_loc is the location of the interrupt vector
8729 table, and nodefaultlibs signs that default libraries should not be
8730 linked in link stage,
8731 * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8732 according to --ivt-loc argument,
8733 * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8734 when pragma stack is found,
8736 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8738 * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8739 256 (range check), 257 (do while), 258.a-f (bit banging
8740 f.e. on 3-wire SPI bus)
8742 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8744 * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8745 variables used exclusively within a loop
8747 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8749 * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8751 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8753 * src/SDCClrange.c (computeClash): fixed bug #971834
8755 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8757 * src/mcs51/gen.c (genCmp): fixed bug #975903
8758 * src/hc08/gen.c (operandsEqu),
8759 * src/ds390/gen.c (operandsEqu),
8760 * src/z80/gen.c (operandsEqu),
8761 * src/pic/gen.c (operandsEqu),
8762 * src/pic16/gen.c (operandsEqu),
8763 * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8764 * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8766 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8768 * src/SDCCcse.c (cseBBlock): fixed bug #966963
8770 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8772 * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8773 default case in switch statement,
8774 * glue.c (pic16_initPointer): expr is initialised via decoarteType
8775 to eliminate problem with initialisation of pointers, but problem
8777 * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8778 * (emitStaticSegment): removed various lines emitting debug info,
8779 * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8780 added processor registers for utilizing EEPROM,
8781 * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8782 configurable and set 8
8784 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8786 * .version: increased version number to 2.4.2,
8788 Cumulative patch for pic16 port
8789 * src/pic16/device.c: changed scheme to dump initial values for
8790 variables in idata segment, all print_idata* functions were removed,
8791 now the pic16_printIval* will be called,
8792 * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8793 * _pic16_printPointerType, pic16_printPointerType,
8794 * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8795 * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8796 NEW, similar to the respective functions in SDCCglue.c,
8797 * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8798 way, emitting hex bytes,
8799 * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8801 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8803 * src/avr/ralloc.c (serialRegAssign),
8804 * src/xa51/ralloc.c (serialRegAssign),
8805 * src/pic/ralloc.c (serialRegAssign),
8806 * src/pic16/ralloc.c (serialRegAssign),
8807 * src/hc08/ralloc.c (serialRegAssign),
8808 * src/z80/ralloc.c (serialRegAssign),
8809 * src/ds390/ralloc.c (serialRegAssign),
8810 * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8812 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8814 * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8815 * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8817 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8819 Cumulative patch for pic16 port:
8820 * src/pic16/device.h (typedef PIC16_device) modified fields for
8821 defining microcontrollers,
8822 * src/pic16/device.c: added new info for all devices in Pics16 array,
8823 * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8824 to be optimised out by the pCode optimiser,
8825 * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8826 specially, bug reported by G.M. Gallant,
8827 * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8828 as force'd so that cannot be optimised out by pCode optimiser,
8829 * src/pic16/pcode.c,
8830 * src/pic16/pcodepeeph.c,
8831 * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8832 they are disabled by default, but can be enabled explicit with
8833 command argument --denable-peeps, for testing,
8834 * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8835 --pomit-ivt in COMPILE_FLAGS
8837 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8839 * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8842 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8844 * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8846 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8848 device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8849 0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8851 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8853 * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8854 would only assign 0x300001 register.
8856 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8858 * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8859 in COMPILE_FLAGS. Thanks to G. Gallant for report.
8861 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8863 * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8865 * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8866 * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8867 added peephole 254 (left shift), 255 (jump table)
8869 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8871 * device/lib/Makefile.in: removed comment line with model-pic16,
8872 * (target port-specific-objects-pic16): the libraries and objects
8873 are copied to the build directory form the device/lib/pic16/bin
8876 Cumulative patch concerning pic16 port:
8877 * library directory has been re-organized,
8878 * added support for PIC18F1220,
8879 * added headers and library sources for chips 18f1220,18f6520,
8880 18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8882 * configuration registers setting has changed, now each supported
8883 device has a complete description of the registers it uses,
8884 * all initialisations are moved to idata sections, these section
8885 can be absolute or relocatable,
8886 * fixed initialisation of codespace variables,
8887 * fixed warning about PCLATU and gpsim,
8888 * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8889 * (genAssign): use table reads when assigning from variables in codespace,
8890 * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8891 char/int variables placed in codespace,
8892 * (pic16_emitConfigRegs): NEW, emits a list with configuration
8893 registers set in .asm file, no need for --pomit-config-words anymore,
8894 * (pic16glue): some 8051 legacy segments are commented out
8895 (to be removed completely),
8896 * added support for alternative assembler and linker with --asm=
8897 and --link= command line arguments,
8898 * peepholes are disabled automatically in the port, no need to
8899 specify on command line,
8900 * port supports natively char/int/long multiplication, but converts
8901 all divisions to support functions,
8902 * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8903 to the file set in variable $2,
8904 * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8905 strings in ASCII format and not in hex,
8906 * ralloc.c (serialRegAssign): added a triplet of conditional calls
8907 to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8908 allocate proper register if iCodes aren't temporary,
8910 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8912 * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8914 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8916 * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8919 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8921 * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8922 computed address is reused
8923 * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8924 multi-byte bitfields
8926 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8928 * src/z80/gen.c: (genArrayInit): must check for pointers too
8930 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8932 * support/regression/tests/zeropad.c: never meant to commit the
8933 nestedstruct test: removed, added check for GCC version
8935 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8937 * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8938 * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8939 * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8940 printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8941 bugs 928906 and 954082 half-empty initializers
8943 * src/SDCCsymt.c (getAllocSize): added for above fix
8944 * src/z80/gen.c (genArrayInit): fixed bug 741044
8945 * support/regression/tests/zeropad.c: added tests
8947 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8949 * src/pic16/device.c (pic16_dump_section): corrected bug which
8950 caused some symbols of the libraries to be misplaced
8952 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8955 * src/pic16/ralloc.h,
8956 * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8957 to fix conflict with pic port
8959 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8961 * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8962 externs configuration variables,
8963 * src/pic16/ralloc.h,
8964 * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8965 prototype in header, commented out some debug messages
8967 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8971 * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8972 for gpasm COFF object generation. Thanks to D. Hawkins for
8975 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8978 * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8979 Brock for spotting this)
8980 * src/ds390/gen.c (genEndFunction),
8981 * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8982 interrupt handler and critical. Disable push/pop optimizations when
8983 peephole optimizations disabled.
8985 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8987 Updated pic16 library sources and headers.
8988 * device/lib/pic16/pic18f*/ ,
8989 * device/include/pic16/*.h: modified to handle structured SFR
8992 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8994 * src/port.h (PORT structure): added hook initPaths, now each
8995 port can declare its own default search paths,
8996 which can been seen with the --print-search-dirs option,
8997 see pic16 port for example,
8998 * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8999 setDataPaths): test to options.printSearchDirs is ifdef'ed out,
9000 * (doPrintSearchDirs): NEW, replaces in a central manner the
9001 printing of search dirs which was split in set*Paths functions,
9002 * (main): added call to port->initPaths and doPrintSearchDirs,
9007 * src/izt/tlcs900h.c,
9010 * src/pic16/main.c: modified port structures to reflect addition of
9013 * src/pic16/device.c (regCompare): registers are finally sorted by name,
9014 * (pic16_dump_section): for registers in same address reserve memory once,
9015 * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
9017 * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
9018 result is greater in size than right or left,
9019 * (pic16_genUMult8X8_8): there are some cases where the result can
9020 be 16 bits size, so handle these,
9021 * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
9022 * (pic16_outBitC): modified to emit pcodes,
9023 * (pic16_storeForReturn): using is_LitOp to see if operand is literal
9025 * (genDivOneByte): implemented algorithm to divide 8-bits,
9026 * (genCmp): uncommented goto, but issues still exist,
9027 * (genAnd): fixed a bug with variables >8bits,
9028 * (genPackBits): optimization added that uses BCF/BSF to change a
9030 * (genAssign): fixed bug when assigning floating point literals,
9031 * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
9032 __sdcc_gsinit_startup label,
9033 * src/pic16/main.c (_pic16_init): removed search directory
9035 * (_pic16_initPaths): NEW, used to initialise search directories,
9036 * (_hasNativeMulFor): support functions for all except char/int
9037 multiplication, and char division,
9038 * (PIC16_port struct): modified entry for native mul support,
9039 * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
9041 * (buildCallTree): call to register_usage is ifdef'ed out,
9043 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9045 * device/include/string.h: applied Stas Sergeev's patch to make this
9046 header file compatible with the preprocessor -Wundef option
9047 * src/SDCCmain.c (main): abort compilation if preprocessor reports
9048 failure (fixes bug #941458)
9050 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9052 * src/SDCCopt.c (killDeadCode): fixed bug #907733
9053 * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
9054 that the variable, not the function, should be static
9055 * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
9056 to be consistent with non-literal case
9058 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9060 * src/SDCCast.c (isConformingBody): fixed bug #949967
9061 * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
9062 convilong): fixed bug #952086
9064 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9066 * src/SDCCmem.c (allocVariables): fixed bug #955321
9068 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9070 * src/hc08/main.c (_hc08_genAssemblerEnd),
9071 * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
9072 dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
9073 completely eliminated the use of a temporary file
9074 * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
9075 when more than one file linked
9076 * src/SDCCloop.c (pointerAssigned): fixed bug #954163
9078 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9080 * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
9081 which fixes bug #543481
9082 * support/regression/tests/bug-751703.c: fixed comments left from a
9084 * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
9085 * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
9086 * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
9088 * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
9089 * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
9090 are now changed to underscores in moduleName
9092 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9094 * as/mcs51/lkmem.c: better fix for bug #954173
9096 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
9097 committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9099 * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
9100 * device/include/c8051f000.h,
9101 * device/include/c8051f120.h,
9102 * device/include/c8051f300.h,
9103 * device/include/c8051f310.h,
9104 * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
9107 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9109 * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
9110 and mailing lists, doc'ed --no-peep-comments, removed reference
9111 to knoppix (newest version has no LyX/LaTeX), other minor changes
9112 * src/SDCCglue.c (glue): save 2 bytes stack space with
9113 option --main-return. The ljmp could probably be avoided too
9115 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9117 * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
9119 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9121 * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
9122 * src/SDCCopt.c (isLocalWithoutDef),
9123 * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
9124 which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
9125 (credit to Maarten Brock for patch #949363, on which this is based)
9126 * support/regression/tests/bug-751703.c: some test cases of extern used
9127 within inner scopes.
9129 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9131 * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
9133 * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
9135 * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
9136 dwWriteLabel): fix to create valid debugger symbols even when
9137 the module name has non-alphanumeric symbols in it
9138 * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
9139 when a variable's allocation has been optimized away
9142 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9144 * src/hc08/gen.c (hc08_emitDebuggerSymbol),
9146 * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
9148 * src/ds390/gen.c (ds390_emitDebuggerSymbol),
9150 * src/z80/gen.c (z80_emitDebuggerSymbol),
9152 * src/pic/gen.c (pic14_emitDebuggerSymbol),
9154 * src/pic16/gen.c (pic14_emitDebuggerSymbol),
9156 * src/avr/gen.c (avr_emitDebuggerSymbol),
9158 * src/xa51/gen.c (xa51_emitDebuggerSymbol),
9160 * src/SDCCdebug.c (emitDebuggerSymbol),
9162 * src/port.h: added a debugger struct to the port struct. Added a
9163 callback for defining debugger symbols
9165 * src/SDCCast.c (createLabel),
9166 * src/SDCC.y (labeled_statement): mark all compiler generated labels
9169 * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
9170 iCode back to the ast for the function
9172 * src/hc08/ralloc.c (hc08_assignRegisters),
9173 * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
9174 unneeded fields from the regs struct.
9175 * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
9176 pushReg() & pullReg() functions instead of emitcode()
9178 * src/hc08/gen.c (genLabel, genhc08Code),
9179 * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
9181 * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
9184 * src/hc08/gen.c (genEndFunction, genhc08Code),
9186 * src/mcs51/gen.c (genEndFunction, gen51Code),
9188 * src/ds390/gen.c (genEndFunction, gen390Code),
9190 * src/z80/gen.c (genEndFunction, genZ80Code),
9193 * src/pic/gen.c (genEndFunction, genpic14Code),
9195 * src/pic16/gen.c (genEndFunction, genpic16Code),
9197 * src/avr/gen.c (genEndFunction, genAVRCode),
9199 * src/xa51/gen.c (genEndFunction, genXA51Code),
9201 * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9202 specific code to cdbFile.c and out of the backend code generators
9204 * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9205 * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9206 starting address is now 0
9210 * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9211 assembler directive for DWARF support
9212 * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9216 * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9218 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9220 * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9221 and inappropriate peephole optimization in jump tables
9223 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9226 * src/SDCCglue.c: sdccopt works for the hc08 port now
9228 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9230 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9232 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9234 * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9236 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9238 * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9242 * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9243 comments from the peephole optimizer replacement rules
9244 * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9246 * src/SDCCcse.c (updateSpillLocation),
9247 * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9249 * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9250 * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9251 objects far pointers
9253 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9255 * src/SDCCsymt.h: a missing part of my last change
9256 * src/pic/ralloc.c (regTypeNum),
9257 * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9259 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262 * src/SDCCicode.c (aggrToPtrDclType),
9264 * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9265 ptrPseudoSymConvert),
9266 * src/pic/ralloc.c (regTypeNum),
9267 * src/pic16/ralloc.c (regTypeNum),
9268 * src/hc08/ralloc.c (regTypeNum),
9269 * src/ds390/ralloc.c (regTypeNum),
9270 * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9271 creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9273 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9275 * link/z80/lkmain.c (afile),
9276 * as/hc08/lkmain.c (afile),
9277 * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9278 prevent a pointer problem when a filename has no directory and
9279 no extension specified.
9281 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9283 * link/z80/lkmain.c (afile): allow periods in directory names
9284 * link/z80/lkmain.c (afile),
9285 * as/mcs51/lkmain.c (afile),
9286 * as/hc08/lkmain.c (afile): allow linker script file to have an
9287 extension other than ".lnk"
9288 * link/z80/lklex.c (getfid),
9289 * link/z80/lkmain.c (parse),
9290 * as/mcs51/lklex.c (getfid),
9291 * as/mcs51/lkmain.c (parse),
9292 * as/hc08/lklex.c (getfid),
9293 * as/hc08/lkmain.c (parse): Support comments in the linker script
9294 file on lines by themselves and after filenames
9296 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9298 * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9300 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9302 * src/z80/peeph-z80.def: removed some peephole rules that don't
9303 work with multibyte arithmetic (fixed bug #937126)
9304 * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9305 to registers and not global variables
9306 * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9307 geniCodePreInc, geniCodePostDec, geniCodePreDec,
9308 geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9309 checking for assignments not internally generated (fixed bug #931895)
9310 * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9311 structure member (fixed bug #930072)
9313 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9315 * src/SDCCmain.c (linkEdit),
9316 * src/hc08/main.c (_hc08_parseOptions),
9317 * as/hc08/Makefile.in,
9321 * as/hc08/lkrloc.c (relr, rele),
9322 * as/hc08/lkarea.c (lnkarea)
9323 * as/hc08/lkmain.c (afile, parse),
9324 * as/hc08/lkelf.c: support for ELF output
9325 * as/hc08/lks19.c (s19),
9326 * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9328 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9330 * as/mcs51/lkihx.c: Fixed bug #899105.
9332 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9334 * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9335 .dsp files from Unix to DOS.
9337 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9339 * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9340 function pointers; we have been compliant for several months now.
9341 * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9342 change that was accidently commented out
9343 * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9344 genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9347 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9349 * src/hc08/gen.c: output of all of the internal debugging information
9350 is now controlled by the D() macro; it is disabled by default
9352 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9354 * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9355 harder to keep the same registers during a CAST iCode
9356 * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9357 long via int can be done in a single cast, if the signedness is
9359 * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9360 putchar() in tinibios.c in ds390's library
9362 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9364 * src/SDCCast.c (decorateType): fixed bug #898889,
9365 cast result of a literal complement too
9366 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9367 fixed check for bitfields
9369 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9371 * src/SDCCicode.c (geniCodeLogic): made it static,
9372 (geniCodeLogicAndOr): added in order to fix bug #905492,
9373 (ast2iCode): fixed bug #905492
9374 * support/regression/tests/bug-905492.c: added
9375 * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9376 (processParms): fixed bug #927659: don't copy parms, this will clear
9378 * support/regression/tests/bug-927659.c: added
9380 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9382 * src/SDCCast.c (addCast): don't cast float to char
9383 * device/lib/libsdcc.lib: added _memmove
9385 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9387 * device/lib/large/Makefile: fixed parallel execution by
9388 replacing `make` by `$(MAKE)`
9390 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9392 * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9393 offsets (fixes bug #923936)
9395 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9397 * device/lib/small/Makefile: fixed parallel execution by
9398 replacing `make` by `$(MAKE)`
9400 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9402 * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9404 2004-03-23 Scott Dattalo <scott AT dattalo.com>
9406 * src/pic/gen.c (genCpl): multi-byte complements were not working.
9407 * src/regression/Makefile: Regression test was not running.
9409 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9411 * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9412 complement if possible
9413 * src/SDCCval.c (valComplement),
9414 * src/SDCCicode.c (operandOperation): fixed complement of literal
9415 * support/regression/tests/onebyte.c (testComplement): added
9417 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9419 * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9420 return an optimized tree; actually replace actParm with the new tree
9421 * src/SDCCast.h: added some parantheses to remove side effects
9422 * support/regression/tests/bug-920866.c
9424 2004-03-21 Scott Dattalo <scott AT dattalo.com>
9425 * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9426 Bit operands were not being handled properly in the pic14 port.
9427 (now src/regression/add.c passes again).
9429 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9431 * src/SDCC.y (labeled_statement): case and default no longer require
9432 a following statement (RFE #893037)
9434 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9436 * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9437 use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9438 disabled (fixes bug #916294)
9439 * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9440 "mov a,acc"; patch provided by Lenny Story
9441 * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9443 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9445 * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9447 * src/ds390/gen.c (genFunction, genEndFunction),
9448 * src/ds390/ralloc.c (ds390_assignRegisters),
9449 * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9450 * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9451 pushed if there are parameters passed on the stack. Also, a cleaner
9452 way to decide if r0/r1 should be pushed/popped. (Together they fix
9455 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9458 * device/lib/mcs51/crtpagesfr.asm,
9459 * device/lib/mcs51/crtxinit.asm,
9460 * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9461 to avoid confusion with Si Lab's SFRPAGE register.
9463 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9465 * src/SDCCglue.c (emitMaps): allow public sfr variables
9466 * src/SDCCglue.c (initialComments): include compiler build date
9467 with compiler version and put the timestamp of the generated
9468 assembly file on a serperate line to be less confusing.
9469 * src/port.h: added genInitStartup hook
9476 * src/z80/main.c: genInitStartup initialize as NULL (default to
9477 historical behaviour)
9478 * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9479 * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9480 _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9481 library instead of hard coding it into the compiler.
9482 * support/regression/ports/mcs51-stack-auto/spec.mk,
9483 * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9484 * device/lib/mcs51/Makefile,
9485 * device/lib/small/Makefile,
9486 * device/lib/large/Makefile,
9487 * device/lib/mcs51/crtpagesfr.asm,
9488 * device/lib/mcs51/crtstart.asm,
9489 * device/lib/mcs51/crtxclear.asm,
9490 * device/lib/mcs51/crtxinit.asm,
9491 * device/lib/mcs51/crtclear.asm,
9492 * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9493 startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9494 and into user configurable files.
9495 * device/lib/clean.mk: clean mcs51 directory too
9496 * support/regression/tests/longlit.c: added static to T1 declaration
9497 * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9498 accesses in the initialization code
9500 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9502 * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9503 OSCTRIMVAL as noted in bug #916008
9505 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9507 * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9508 in loops with multiple exits (reported as incorrect registers
9509 used by Martin Helmling in Sdcc-user list)
9511 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9513 * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9514 made ds390 register extensions look less like error messages
9516 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9518 * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9519 reported by Adam Wozniak in Sdcc-user list
9521 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9523 * src/SDCCast.c (decorateType): fixed with bug and promotion in
9524 arithmetic optimizations, added debug output
9526 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9528 * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9529 * sdcc.spec: updated and split sdcc into 3 rpms
9530 * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9531 needed for literals of LEFT_OP and '+'
9532 * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9533 introduced RESULT_TYPE_NOPROM
9534 (geniCodeMultiply): fixed logic for decision if mul is optimized to
9536 * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9537 limited promotion to int only for '*'
9538 * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9540 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9542 * src/pic16/gen.c (genSkip),
9543 (genc16bit2lit), (gencjneshort): commented out
9544 (is_LitOp): new helper function, checks operand type
9545 (genCmpEq): rewritten
9547 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9549 * support/regression/tests/bug-908454.c: added
9551 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9553 * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9554 * src/SDCCicode.c (usualBinaryConversions): op needs int type
9555 (geniCodeCast): cosmetic, don't preserve bit storage class
9556 (geniCodeLeftShift): added promotion
9557 (geniCodeLogic): fixed regression
9558 * src/SDCCsymt.c (computeTypeOr): accept bits too
9559 (compareType): 2nd part of fix for bug #908454, needed for bitfields
9561 2004-03-07 Borut Razem <borut.razem AT siol.net>
9563 * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9565 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9567 * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9568 version of pic16_genPackRegisters which does not check if ic is a
9570 * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9571 function cause string1.c regression test fails
9573 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9575 * sim/ucsim/configure.in,
9576 * sim/ucsim/configure,
9577 * sim/ucsim/doc/Makefile.in: use docdir
9578 * src/SDCC.y: fixed sbit atrributes
9579 * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9580 * src/SDCCast.c (decorateType): |^& need special promotion handling
9582 * src/SDCCsymt.h: moved definition of RESULT_TYPE
9583 * src/SDCCsymt.h (computeType),
9584 * src/SDCCicode.c: computeType() needs op
9585 * src/SDCCsymt.c (checkTypeSanity),
9586 * doc/sddman.lyx: "plain" bitfields are unsigned
9587 * src/SDCCsymt.c (computeTypeOr): added
9588 * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9590 * src/SDCCval.c (val*): computeType() needs op
9591 * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9592 * support/regression/tests/onebyte.c: added tests for |^&
9594 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9596 * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9597 for writing icode into asm output.
9599 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9601 * src/pic16/device.c: added some debug lines enabled
9602 with macro DEBUG_CHECK,
9603 * src/pic16/genarith.c: more debug in genPlus,
9604 * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9605 * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9606 * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9607 * (aopForSym): onStack symbols are re-placed in data memspace,
9608 and onStack flag is cleared,
9609 * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9610 copy temporary pcodeop,
9611 * (genPcall): added warning for not updating PCLATU,
9612 * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9613 always true for pic16 port,
9614 * (genMultOneWord): NEW, supports integer multiplication,
9615 * (genMult): modified to call genMultOneWord,
9616 * (ifxForOp): added warning when return NULL,
9617 * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9618 flag is set before call to operandFromSymbol for implicit
9620 * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9621 options.intlong_rent are set by default,
9622 * (_hasNativeMulFor): modified to allow port generation of integer
9624 * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9625 set regtype to REG_SFR for all registers, restricting seting the
9626 accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9628 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9630 * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9631 more than 500 times in the regression tests
9633 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9635 * support/Util/SDCCerr.h,
9636 * support/Util/SDCCerr.c,
9637 * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9639 * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9640 for symbol conflicts.
9641 * support/valdiags/tests/enum.c,
9642 * support/valdiags/tests/tentdecl.c,
9643 * support/valdiags/tests/struct.c: expect possible error messages
9644 referring to original symbol definitions.
9645 * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9647 * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9649 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9651 * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9653 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9655 * src/pic16/ralloc.c (newReg): fixed bug #908929
9657 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9659 * src/ds390/gen.c: added missing #include "main.h"
9661 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9663 * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9664 checking if symbol is already in set,
9665 * src/pic16/device.h: prototype for checkAddSym,
9666 * src/pic16/gen.c: (_G): added entry interruptvector,
9667 * (assignResultValue): removed some commented out lines,
9668 * (genFunction): check for ISR via sym->type, absolute section for
9669 interrupt code is created via a new pBlock, the goto instruction is
9670 placed now correctly at the interrupt vector position, changed all
9671 references from ivec to _G.interruptvector,
9672 * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9673 is the interrupt is a high priority one, same for return from ISR,
9674 * src/pic16/glue.c: changed all calls of addSetHead for publics and
9675 externs to calls of checkAddSym,
9676 * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9677 pic16_pcode_verbose flag is set,
9678 * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9679 * src/pic16/pcoderegs.c: message about how many registers are saved
9680 will only be emitted if pic16_pcode_verbose flag is set,
9682 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9684 * src/ds390/ralloc.h,
9685 * src/ds390/ralloc.c (ds390_regWithIdx),
9686 * src/ds390/gen.c (emitcode),
9688 * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9689 ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9690 ds390operandCompare, getRegsRead, getRegsWritten,
9691 initializeAsmLineNode): customized instruction size calculation for
9692 ds390, started basis for some register optimizations
9693 * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9694 corresponding assembly output
9695 * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9696 missing push/pop of r0/r1. Optimized push/pops
9698 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9700 * src/mcs51/main.c (instructionSize): fixed ACALL size
9701 * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9703 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9705 * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9706 the sorting of rlist with NULL elements
9707 * (print_idataType, print_idata): NEW to create idata sections
9708 * src/pic16/device.h: idataSymSet new variable
9709 * src/pic16/gen.c (genFunction): fixed some bugs in string
9710 comparing, improved the absolute section creation for ISRs,
9711 added FSR0L/FSR0H in registers that are saved in an ISR,
9712 * (genInline): fixed the processing of inline snippets,
9713 now they undergo no process by the peephole optimizer
9714 * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9715 are placed in idataSymSet,
9716 * (pic16emitStaticSeg): extern symbols are added in externs,
9717 * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9718 switching when aboslute variables are placed in access bank memory
9719 * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9720 * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9721 commented out with #if,
9722 * (pic16_packRegisters): reintroduce the check for CAST because some
9723 symbols are not correctly handled,
9724 * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9725 pCodeInstruction instead of pCode,
9726 * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9727 pCodeAsmDir definition,
9728 * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9729 directive, then the argument directive is emitted without the leading
9730 tab, hack for inline labels which must be in the first column,
9731 * (compareLabel,pic16_findNextInstruction),
9732 * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9733 * (insertBankSwitch): modified for the new pCodeAsmDir,
9735 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9736 patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9738 * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9740 * (pushSide): commented out with #if,
9741 * (assignResultValue): fixed some typos in saving
9743 * (genPcall): FIXED and sync'ed with genCall,
9744 * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9745 * (genNearPointerGet): fixed to handle some more cases,
9746 implementation scheme via table reads,
9747 * (genConstPointerGet): modified to access code memory correct,
9748 * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9749 and improved to handle some cases
9750 * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9751 instead of "RETLW" for init data
9752 * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9753 not IN_DIRSPACE, work around to reduce bank switching when aboslute
9754 variables are placed in access bank memory (<0x80 and >=0xf80),
9755 * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9756 TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9757 TBLWT_POSTDEC,TBLWT_PREINC
9758 * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9759 * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9761 * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9762 * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9763 pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9764 * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9766 2004-02-29 Borut Razem <borut.razem AT siol.net>
9768 * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9769 support/Util/findme.h, support/Util/system.h: enhance binary relative
9770 search for lib and include by using findProgramPath()
9772 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9775 * src/SDCCpeeph.c (pcDistance),
9777 * src/mcs51/ralloc.h,
9778 * src/mcs51/ralloc.c (mcs51_regWithIdx),
9780 * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9781 mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9782 mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9783 size calculation port specific, started basis for some register
9785 * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9786 missing push/pop of r0/r1. Optimized push/pops
9787 * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9788 * device/lib/_modsint.c (_modsint),
9789 * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9790 and stack version so regression tests pass
9792 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9794 * src/Makefile.in (dep): include SLIBOBJS in dependency check
9795 * src/SDCCast.c (decorateType): catch another small optimization
9797 * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9798 * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9799 modified to finally use computeType() all over SDCC,
9800 see Feature Request #877103
9801 * src/SDCCval.h: cosmetic
9802 * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9803 valCompare(); regression tested in muldiv.c
9804 * support/regression/tests/muldiv.c (testMod): mod sign follows
9807 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9809 * src/SDCCast.c (decorateType): fixed bug #902362
9810 * doc/INSTALL.txt: fixed install instructions for win32
9812 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9814 * device/include/Makefile.in (install): fixed by replacing spaces
9817 * doc/INSTALL.txt: updated for release
9818 * doc/sdccman.lyx: added warning for --xstack being buggy
9820 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9822 * src/pic16/ralloc.c (packRegsForAccUse): disabled functions with #if
9823 to eliminate build warnings.
9824 * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9826 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9827 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9829 * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9830 removed -penable-stack, added comment for stack pragma, added
9831 warning for not initializing the stack/frame registers, removed
9832 comment at interrupts section
9834 Stack is made permanent, there is no ability to disable stack usage.
9835 * src/pic16/device.h,
9836 * src/pic16/device.c: removed all references to USE_STACK macro,
9837 * src/pic16/device.c (pic16_dump_section): when no elements in
9838 rlist, free rlist before return,
9839 * (pic16_dump_int_registers): NEW, internal registers are a new set
9840 of general purpose registers reused by each function,
9841 * (checkAddReg): returns 1 if registers is added to set,
9842 * (pic16_groupRegistersInSection): when a registers is of type
9843 PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9844 * src/pic16/device.h: memRange and Assigned Memory are deleted,
9845 SRCASECMP macro is moved here from device.c
9846 * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9847 PO_PCLATU, PO_PRODL, PO_PRODH,
9848 * (pic16_pCodeOpType, genMinus,
9849 changed compares to "a" register, with AOP_ACC,
9850 * (pic16_genPlus): fixed some bugs and indented properly,
9851 * (pic16_addSign): changed size to size+offset in the MOVWF
9853 * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9854 multiply 8-bit operand by literal, result is 8-bit,
9855 * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9856 multiply 2 8-bit operand, result is 8-bit,
9857 * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9859 * src/pic16/gen.c: changed accUse to contain WREG only,
9860 * (pic16_emitcomment): renamed to pic16_emitpcomment,
9861 * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9862 true, do not use immediate addressing any more unless sym is a
9863 pointer in codespace,
9864 * (aopForRemat): do not use immediate addressing when symbol not in
9865 codespace and when symbol's address is requested,
9866 * (aopOp): for-loop in if(sym->accUse) is modified for the new
9868 * (aopGet): added case for AOP_ACC and don't return "accumulator
9869 bug" but WREG instead,
9870 * (popGetTempReg): pushes contents of temporary register in stack,
9871 * (popReleaseTempReg): pops contents of temporary register from
9872 stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9873 * (pic16_popGet): separated case AOP_ACC to return register WREG
9874 from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9875 or PO_IMMEDIATE and initializes their instance/offset appropriately,
9876 * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9877 the use of immediate pointers to certain cases only.
9879 * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9880 * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9881 * (assignResultValue, genCall, genRet): modified to use the new
9882 function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9883 genPcall is still broken,
9884 * (genFunction): added code to create 'A' type pBlocks when
9885 interrupt functions are generated, code not extensively tested yet,
9886 ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9887 * (genEndFunction): modified so ISRs pop stored registers from stack,
9888 * (genMultOneByte): cleanup,
9889 * (AccRsh): added flag andmask, to and result with appropriate mask,
9890 * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9891 * (genDataPointerGet): fixed and reenabled its use,
9892 * (genNearDataPointerGet): bugs fixed,
9893 * (genDataPointerSet): bugs fixed,
9894 * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9895 pic16_DumpSymbol, pic16_DumpOp,
9896 * src/pic16/genutils.h: function prototypes for the above functions,
9897 * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9899 * (pic16emitRegularMap): many many many improvements, but needs a
9901 * src/pic16/main.c: enable_stack in pic16_options is removed,
9902 * (_pic16_parseOptions): removed command line options -penable-stack,
9903 * (_process_pragma): emit stack symbol only when stack pragma is
9905 * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9906 redirected to FSR0L/FSR0H pair,
9907 * (pic16_get_op, pic16_get_op2): modifications and improvements,
9908 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9909 cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9911 * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9912 * (dumpPicOptype): NEW,
9913 * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9914 * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9915 with movff instruction,
9916 * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9917 added pic16_int_regs, some packRegsFor* functions are commented out,
9918 because produce errors,
9919 * src/pic16/NOTES: minor modifications
9921 2004-02-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9923 * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9924 as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9926 * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9927 * as/mcs51/lkaomf51.c: fixed bug #895763
9929 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9931 * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9933 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9935 * doc/sdccman.lyx: added details about the HC08 storage classes and
9936 interrupts, fixed the register usage info for z80 & gbz80
9938 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9940 * doc/sdccman.lyx: added more pic16 port documentation
9941 * device/include/pic16/: added header pic18fregs.h
9943 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9945 * doc/sdccman.lyx: added Vangelis' contribution
9947 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9949 * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9950 extend to the next CALL or PCALL, not just to the next CALL.
9952 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9954 * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9956 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9958 * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9959 bug #895752 and a better fix for bug #716790
9961 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9963 * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9965 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9967 * doc/sdccman.lyx: minor changes, minor changed
9969 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9971 * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9972 which can't handle SDCC_NEWONEBYTEOPS,
9973 (geniCodeMultiply): removed conversion from mult to shift for pic14
9976 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9979 * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9980 rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9981 thus fixing bug #895406
9983 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9985 * device/lib/_modsint.c,
9986 * device/lib/_modslong.c: sign follows divisor only
9987 * src/hc08/gen.c (genMultOneByte): if result size is 1,
9988 signs or signedness can be ignored
9989 * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9990 * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9991 added optimization for IFX,
9992 (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9994 reenabled optimization for IFX, which was removed on 2004-01-11
9995 * src/SDCCast.h: added return type IFX
9996 * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9997 arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9998 promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9999 SDCC_OLDONEBYTEOPS selects the old behaviour
10000 * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
10001 changed again and commented promotion rule
10002 * src/SDCCval.c (valDiv): promotion no longer necessary
10003 * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
10004 * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
10006 * support/regression/tests/onebyte.c: added
10008 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
10010 * gen.c (genInline): reverted to old code for assemnling inline
10011 code because of bug reported James Chadd
10013 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
10015 * ralloc.h: missing declarations from previous patch,
10016 seems that patch for ralloc.h was never applied, fixed
10018 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10019 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10023 * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
10024 indirect addressing. Marked FSR0 as deprecated
10025 * gen.c (pointerCode): commented out, not needed now
10026 (pic16_popGet2p): new MOVFF helper function
10027 (genGenPointerGet),
10028 (genGenPointerSet): reimplemented with MOVFF and POSTINC0
10029 (shiftRLong): removed duplicate debugging info
10031 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10033 * src/ds390/gen.c (genNearPointerGet),
10034 * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
10035 optimization with bits, but not bitfields.
10036 * src/ds390/ralloc.c (packRegisters),
10037 * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
10039 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
10041 * src/SDCCcse.c (algebraicOpts): copy operands before modification
10043 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10046 * src/SDCCicode.c (operandFromSymbol),
10047 * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
10048 * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
10049 * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
10050 * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
10051 * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
10052 * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
10054 * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
10055 * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
10056 printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
10057 * src/SDCCsymt.c (newSymbol),
10058 * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10061 * src/SDCCval.c (newiList): fixed bug #885705
10063 2004-02-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10065 * doc/sdccman.lyx: added section 3.1.4: sdcclib.
10066 * as/mcs51/lkmem.c: report the size of the stack in .mem file.
10068 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10070 * device/include/c8051f120.h,
10071 * device/include/c8051f300.h,
10072 * device/include/c8051f310.h: added/updated header files for Silicon
10073 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10074 * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
10075 in new section Submitting patches
10077 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10079 * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
10080 genFarPointerGet, genCodePointerGet, genGenPointerGet,
10081 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10083 * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
10084 genFarPointerGet, genCodePointerGet, genGenPointerGet,
10085 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10087 * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
10088 genFarPointerGet, genCodePointerGet, genGenPointerGet,
10089 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10091 * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
10092 genFarPointerGet, genCodePointerGet, genGenPointerGet,
10093 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
10094 genGenPointerSet): fixed bug #892400
10095 * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
10096 to eliminate build warnings.
10097 * src/SDCCast.c (processParms),
10098 * src/SDCC.y (function_declarator2, declarator2_function_attributes):
10100 * support/valdiag/valdiag.py: added GCC to the list of defines active
10101 when compiling with gcc
10103 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10105 * support/Util/SDCCerr.h,
10106 * support/Util/SDCCerr.c,
10107 * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
10108 with an incomplete type (fixed bug #883734)
10109 * src/SDCCicode.c (geniCodeCast): fixed bug #890510
10111 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10113 * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
10115 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10117 * src/SDCCast.c (decorateType),
10118 * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
10119 function pointer implementation
10120 * support/regression/tests/funptrs.c: added tests to verify both forms
10121 of function pointers work correctly. Added tests to verify parameters
10122 are passed in the correct order.
10124 2004-02-06 Vangelis Rokas <vrokas AT otenet.gr>
10126 * device.c (regCompare): registers are sorted by ascending
10127 address and increasing size,
10128 * main.c (_pic16_finaliseOptions): removed the declaration
10129 of compiler macro MCU. Now a macro of the format pic18fxxxx
10130 will be defined from the command line
10132 2004-02-06 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10133 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
10135 * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
10136 PCOP_RLCF was overwritten!
10137 * gen.c (genSkip): commented out calls to pic16_emitcode,
10138 * (genCmpEQ): fixed "long" compares, only high word did get compared,
10140 * (genRRC): added debugging info,
10141 * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
10142 overwritten while shifting,
10143 * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
10144 overwritten while shifting,
10147 * (shiftLLeftOrResult),
10148 * (shiftRLeftOrResult),
10150 * (shiftLLong): Implemented with pic16_emitpcode
10151 * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
10152 * (genLeftShift): Fixed bug, operand for shift by variable always
10153 was "and"ed with 0x0f,
10154 * (genLeftShiftLiteral),
10156 * (genRightShiftLiteral): added debugging info,
10157 * (genrshFour): added comment,
10158 * (genRightShift): determined signedness from operand "left"
10159 instead of "result"
10161 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10163 * src/SDCCicode.c (geniCodeParms),
10164 * src/SDCCast.c (decorateType, processParms): support for ANSI-style
10165 function pointers, fixed function pointer bugs #861242 and #861896
10167 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10169 * device/include/c8051f000.h,
10170 * device/include/c8051f120.h,
10171 * device/include/c8051f300.h: added header files for Silicon
10172 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
10174 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
10176 * src/SDCCast.c (processParams): added new type flow and restructured
10177 (gatherAutoInit): added new type flow
10178 (addCast): cosmetic changes
10179 (getLeftResultType): added new type flow for array indices, patch
10180 provided by Stas, see FR #877103
10181 (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
10182 array index patch by Stas
10183 * src/SDCCast.h: added prototype getResultTypeFromType()
10185 * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
10186 * src/pic/glue.c (pic14emitStaticSeg),
10187 * src/pic16/glue.c (pic16emitStaticSeg),
10188 * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
10189 for initialization of symbols
10190 * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
10191 * support/Util/SDCCerr.h:
10192 * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
10193 * .version: bumped version number to 2.3.8
10194 * device/include/Makefile.in (install),
10195 * doc/Makefile (install): changed to 'rm `find ...`' construct to
10198 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
10200 * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10201 Slade Rich fixed an optimization bug
10202 * src/pic/pcodepeep.c,
10203 * src/pic/pcoderegs.c
10204 * doc/Makefile (install): added test for directory
10206 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10208 * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10209 * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10210 * src/pic/ralloc.c (getRegPtr, getRegGpr),
10211 * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10212 * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10213 * as/mcs51/asexpr.c (term),
10214 * as/hc08/asexpr.c (term): fixed bug #887146
10216 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10218 * src/z80/gen.c (genMult): handle single byte result product
10219 * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10220 DUMMY_READ_VOLATILE (fixed bug #886367)
10222 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10224 * support/regression/tests/libmullong.c: fixed logic, on little endian
10225 hosts we ended without a mullong_wrapper()
10227 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10229 * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10230 virus/worm forged address usage.
10232 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10234 Fixed promotion, it should be done on AST level:
10235 * src/SDCCast.c (addCast): added promotion to int
10236 (decorateType): updated call to upCast()
10237 * src/SDCCicode.c (geniCodeLeftShift): removed call to
10238 usualUnaryConversions()
10240 2004-01-26 Michael Hope <michaelh AT juju.net.nz>
10242 * support/regression/tests/literalop.c (mulWrapper): Added a
10243 wrapper to remove integer overflow warnings.
10245 * support/regression/tests/float_trans.c: Made work on host.
10247 * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10250 * support/regression/generate-cases.py (main): Changed from inline
10253 * doc/Makefile (install): Changed to depth first to get rid of
10254 missing directory install warning.
10256 * as/Makefile (install-doc): Made work on Mac.
10258 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10260 * src/SDCCast.c: added an additional type flow in decorateType() of
10261 opposite direction, see feature request #860006; it's enabled at runtime
10262 by setting the environment variable SDCC_NEWTYPEFLOW
10263 * src/SDCCast.h: changed prototype of decorateType()
10264 * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10265 * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10266 'char' to 'int' can be omitted, if both operands are 'unsigned char';
10267 see feature request #877103
10268 * src/SDCCval.c: updated call of decorateType()
10269 (valBitwise): fixed bug #882876
10270 (valMinus): added promotion
10271 (valLogicAndOr): result is unsigned
10272 (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10273 * src/SDCCsymt.c (computeType),
10274 * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10275 must not cause an unsigned operation
10276 * src/pic/glue (pic14emitRegularMap),
10277 * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10279 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10281 * src/pic/pcode.c (PCodeID): commented out left over debug code
10283 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10285 * support/valdiag/tests/overflow.c: added shift tests
10286 * src/pic/device.c,
10293 * src/pic/pcodepeep.c,
10294 * src/pic/pcoderegs.c,
10295 * src/pic/ralloc.c,
10296 * src/pic/ralloc.h: applied patch from Slade Rich;
10297 added support for multiple code pages and multiple RAM banks on the
10298 PIC 14 port. The ASM files now no longer simply assume all the
10299 code / RAM are in the same page / bank. This means the linker can
10300 safely allocate code/RAM of separate ASM files to different pages/banks.
10301 * doc/sdccman.lyx: added Slade's tips
10302 * src/mcs51/peeph.def: fixed bug #880768
10304 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10306 * src/hc08/ralloc.c (rematStr): fixed bug #879282
10307 * src/SDCCast.c (decorateType): fixed bug #880197
10309 2004-01-20 Michael Hope <michaelh AT juju.net.nz>
10311 * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10314 * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10315 strtof is not part of C89 and isn't included with Mac OS X.
10317 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10319 * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10320 shiftL2Left2Result): fixed bug #879326
10321 (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10322 (genMultOneByte): fixed bug in signed vs unsigned multiplication
10323 * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10324 address fetch for clr instruction
10325 * device/lib/hc08/_mulint.c: created optimized assembly version
10326 * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10328 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10330 * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10331 proposed in FR #877103
10333 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10335 * src/SDCCval.c (cheapestVal): added missing checks
10336 * src/SDCCicode.c (usualBinaryConversions): fixed condition
10337 * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10339 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10341 * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10344 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10346 * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10347 loaded with the linker search paths (-L arguments) and the libraries
10348 to be linked with the current source (-l arguments). Changes
10349 currently will affect only the pic16 port.
10350 * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10351 include path the port specific paths and port specific libraries,
10352 * gplink command now contains the $3 argument,
10353 * src/pic16/device.h,
10354 * src/pic16/device.c,: structure PIC_device is made public and
10355 renamed to PIC16_device, the same for variable Pics which is renamed
10356 to Pics16. Updated all references to them.
10357 * src/pic16/glue.c (pic16glue): corrected bug with code
10358 initialization which bypassed the variable initializations block.
10360 * device/lib/pic16/Makefile.rules: removed --penable-stack from
10361 COMPILE_FLAGS and added the --nostdinc option
10363 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10365 * device/include/mc68hc908jb8.h: Register defs for another member
10366 of the hc08 family. Contributed by Bjorn Bringert - thanks!
10368 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10370 Documenting changes from previous commits.
10371 * configure.in (version 1.56),
10372 * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10373 when generating output files to configure the pic16 library,
10374 but now I've commented it out, since gputils aren't installed in the
10375 SF compile farm, so library won't compile
10377 * device/lib/Makefile.in (version 1.56): initially I've added in
10378 target 'all' the prerequestive 'model-pic16' so it compiled the
10379 pic16 library, but now I've commented it out for the same reasons
10381 * added targets 'model-pic16' and 'objects-pic16' to compile the
10383 * added target 'port-specific-objects-pic16' to handle the
10384 generated libraries and copy them into the build/ directory
10385 * added target 'clean-intermediate-pic16' to clean intermediate
10386 files into pic16 directory
10387 * in target 'installdirs' added line to create directory pic16 in
10388 the installation path
10390 * device/include/Makefile.in (version 1.11): in target 'install'
10391 added lines to copy all header files to installation path,
10392 * in target 'installdirs' added line create directory for pic16
10393 headers in the installation path
10395 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10397 * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10400 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10403 * device/lib/configure.in,
10404 * device/lib/configure: fixed for autoconf 2.57
10406 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10408 * src/z80/main.c (_parseOptions): fixed the portmode= command line
10409 option so that it actually works. Made it specific to the z80, since
10410 the gbz80 doesn't have these kinds of I/O ports.
10412 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10414 * device/include/z180.h,
10415 * device/lib/_memcpy.c,
10416 * device/lib/_memmove.c,
10417 * device/lib/_mulint.c,
10418 * device/lib/ser_ir.c,
10419 * device/lib/ser_ir_cts_rts.c,
10420 * device/lib/_strcmp.c,
10421 * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10422 * src/z80/main.c (_process_pragma): add support for pragmas bank and
10423 portmode; added deprecation warning for bank= and protmode= forms.
10424 Also, guard against buffer overflow.
10425 * src/z80/gen.c (aopGet): generate better code for sfr banked read
10427 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10429 * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10430 changed interrupt vector table generation to only emit declared vectors.
10431 * device/include/Makefile.in: added missing backslash
10432 * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10434 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10436 Mainly changes to support compilation of the device libraries
10437 * src/pic16/device.c: stack is allocated via symbol and not
10438 via literal number. The symbol is placed in the corresponding
10439 position of the data ram
10440 * (pic16_dump_section): relocatable and absolute uninitialized
10441 data are now emitted in sorted order to reduce section naming,
10442 * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10443 weren't marked as being in the access bank,
10445 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10447 Added portion of GNU PIC Library under the directory
10448 device/include/pic16 and device/lib/pic16. These files
10449 contain the declarations of SFRs for the PIC18Fxx2 devices.
10450 The directory is initialized via configure from toplevel.
10452 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10454 * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10455 the spilllocations to be compared correctly
10457 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10459 * src/SDCCast.c (decorateType): fixed bug introduced today
10461 2004-01-12 Borut Razem <borut.razem AT siol.net>
10463 * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10464 doc/sdccman.lyx: upper case pragmas are deprecated
10466 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10468 * src/SDCCast.c (decorateType): replacing 'ul > 0' by '!ul' results
10469 in simpler and even better code
10471 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10473 * src/SDCCicode.c (operandOperation): fixed bug #874819
10474 * src/SDCCast.c (decorateType): fixed
10475 char foo (unsigned long ul) { return ul > 0; }
10477 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10479 * doc/sdccman.lyx: Moved and added some sections, small changes
10480 all over. Telling LaTeX to be less strict with word spacing
10481 to better keep the right margin. Changed some notes about
10482 maintainance of the ports in section 3.2.1 - is it OK like this?
10484 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10486 SDCC source changes:
10487 * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10488 convilong): modified to inform the pic16 port that builtin functions
10491 PIC16 PORT specific changes:
10492 * src/pic16/device.c pic16_dump_equates() added,
10493 processor registers declared internally by the port are emitted in
10494 the translation as equates,
10495 * src/pic16/gen.c: inline code is passed unprocessed to the
10497 * (pic16_popGetLit2): fnuction modified to take second operand as
10498 pCodeOp pointer and not as literal,
10499 * (popRegFromIdx): prefixed with pic16_,
10500 * (pic16_popCombine2): modified to receive already allocated pCode
10502 * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10503 * (genFunction): initializes local stack frame and pushes on stack
10504 all the registers used by this function,
10505 * (genEndFunction): restores all registers from stack and restores
10507 * src/pic16/glue.c (pic16emitRegularMap): various changes and
10509 * (pic16glue): changed the program startup sequence,
10510 * added new dbName code 'A' for functions placed in absolute section
10511 * src/pic16/main.c: added function attribute _naked,
10512 * added pragma 'code' to place a fnuction at an absolute address,
10513 * added command line arguments --debug-ralloc and --pcode-verbose,
10514 * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10515 * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10516 * (pic16_newpCodeOpLit2): modified to take the second operand as
10518 * (pic16_printpBlock): modified to emit each function in a separate
10520 * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10521 UPPER for immediate operands,
10522 * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10524 * src/pic16/peeph.def: all peepholes with movff are commented out,
10525 because there is a problem in the pcode peep optimizer,
10526 * src/pic16/ralloc.c: the register allocator can now reuse local
10527 function symbols for another function. This saves register usage.
10528 * src/pic16/ralloc.h: added flag isLocal in structure regs,
10530 Added file src/pic16/NOTES with information about program writing on
10531 the current port version.
10533 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10535 * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10536 and peephole 252 (array access)
10538 2004-01-09 Borut Razem <borut.razem AT siol.net>
10540 * src/SDCCmain.c : fixed #872250: -l command line defined library
10541 files are scanned before standard library files
10543 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10545 * src/SDCCast.c (decorateType): fixed bug #874046
10547 2004-01-09 Borut Razem <borut.razem AT siol.net>
10549 * support/scripts/sdcc.nsi: remove previous installation
10551 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10553 * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10554 bytes for last interrupt vector (mcs51)
10555 * sdcc.spec: fixed typo
10557 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10559 * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10560 gen51Code): more efficient parameter receive for --model-large
10563 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10565 * src/ds390/main.c,
10566 * src/z80/main.c: added missed needLinkerScript flags (more than
10567 one port structure defined in these file)
10568 * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10571 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10573 * src/SDCCmain.c: removed various references to DEFAULT_PORT
10574 * src/port.h: added flag needLinkerScript in port->linker
10575 structure to inform whether to create a .lnk file or not,
10577 * src/ds390/main.c,
10579 * src/mcs51/main.c,
10581 * src/pic16/main.c,
10583 * src/z80/main.c: changed appropriately to configure
10584 needLinkerScript flag
10586 * src/pic16/gen.c (genAddrOf): fixed bug #863624
10587 * src/pic/glue.c: added variable udata_section_name to
10588 override default uninitialized data segment definition for
10589 devices only with SHAREBANK memory (reported from Erik Epetrich)
10590 * (pic14emitOverlay): modified to emit a commented overlay segment
10591 directive when no overlay data exist
10592 * (picglue): modified to emit uninitialized data segment
10593 according to udata_section_name
10594 * src/pic/main.c (_pic14_parseOptions): added command line
10595 options --udata-section-name=[name] to override default
10596 udata definition name
10597 * modified _linkCmd and _asmCmd to include compiler passed
10598 arguments via -W option
10599 * src/pic16/main.c: added $l in _asmCmd, changed extension for
10600 object file from '.rel' to '.o' in port->linker structure,
10601 changed size of fptr from 2 to 3 in port structure
10603 2004-01-07 Borut Razem <borut.razem AT siol.net>
10605 * support/scripts/sdcc.nsi: update PATH
10606 * support/scripts/sdcc.ico: craeted
10608 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10610 * device/include/Makefile.in: fix install
10611 * doc/Makefile: fix install
10613 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10615 * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10617 * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10618 how the function variable allocation summary is displayed; also
10619 include information about variables allocated to the overlay
10622 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10624 * as/mcs51/lkmain.c: Help about -Y option
10625 * as/mcs51/lkarea.c: Fixed gcc warnings
10627 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10629 * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10631 * support/valdiag/tests/overflow.c: added
10632 * src/SDCCast.c (decorateType),
10633 * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10634 LEFT_OP (left shift)
10636 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10638 * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10639 (default behaviour).
10641 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10643 A python script to validate compiler diagnostic messages. It can be
10644 used to verify that sdcc complains about bad c source code and
10645 gives a good location of the error.
10646 * support/valdiag/Makefile,
10647 * support/valdiag/valdiag.py,
10648 * support/valdiag/tests/*
10650 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10652 * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10653 * src/SDCCsymt.c (newEnumType),
10655 * support/Util/SDCCerr.c,
10656 * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10658 * support/regression/tests/enum.c: added test for enum values that
10659 require at least 2 bytes of storage.
10661 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10663 * src/common.h: added ifndef/define/endif macros
10664 around the header file.
10665 Bug reported from Jesus Calvino-Fraga
10667 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10669 * sdcc.spec: updated
10670 * device/include/Makefile.in: don't install CVS directories
10671 * device/lib/Makefile.in: added removal of CVS directories after install
10672 * doc/Makefile: fixed install, added local_icons
10673 * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10674 * src/mcs51/gen.c (genRightShift): fixed bug #870788
10675 * src/ds390/gen.c (genRightShift): fixed bug #870788
10676 * src/SDCCast.c (decorateType): fixed bug #870781
10678 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10680 PIC16 port related changes:
10681 * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10682 added variable stackPos,
10684 * gen.c: genCall, assignResultValue: added support for
10685 pushing/retrieving function parameters to/from stack,
10686 genFunction,genEndFunction: setup stack frame for the
10687 generated function,
10688 genAddrOf: will be changed according to bug 863624
10690 * added files genutils.c and genutils.h which contain gen*
10691 debugged and optimised functions extracted from gen.c
10693 * glue.c: added variable 'externs' which holds extern symbols,
10694 pic16emitRegularMap: is modified to properly handle relocatable
10695 symbols under the new scheme,
10696 pic16createInterruptVect: is modified
10697 pic16printPublics: is modified to emit 'global' assembler directives,
10698 added pic16_printExterns to print extern symbols,
10699 pic16glue: initializes stack/frame pointer in the beginning of
10700 the assembly output. Temporary hack, will be corrected later,
10701 because gplink yet does not support stack and SDCC does not
10702 yet support a type of crt0.o object to create the final binary.
10704 * Removed many lines that contain 8051 legacy code.
10705 * The code is finally placed under a 'code' directive.
10706 * Added port specific options.
10708 * _process_pragma: simplified since now we do not need *special*
10709 include file to define SFR registers. But a separate header
10710 will be needed. This will be developed later.
10711 * _pic16_parseOptions: added, parses port specific options:
10712 --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10713 --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10714 --preplace-udata-with=
10716 * _pic16_setDefaultOptions: modified to initialize section names,
10717 but hack is temporarly out of order since it needs improvement.
10718 * _pic16_genAssemblerPreamble: configuration words are emitted by
10719 their address instead of their name. This part is incomplete and
10720 supports only the 18Fxx2 devices. Other devices will emit an error
10721 during assembly since they do not contain the same set of config
10723 * _pic16_genIVT: is modified,
10725 * pcode.c: added definitions for some hardware registers that are needed
10727 * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10728 All PCI entries are updated. Now LFSR is supported.
10729 * Removed pic16_pciTRIS is mentioned by mdubuc in source
10730 * added pic16_newpCodeOpLit2 to support instructions with
10731 two literal arguments
10732 * pic16_pCode2str: corrected code that emits assembler instructions
10733 with two literal operands and those that have an access bit modifier
10734 * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10735 this fixes a bug which caused some labels to be lost, when an
10736 assembler directive was added, i.e. banksel,
10737 * pic16_FixRegisterBanking: improved logic that causes the insertion
10739 * InlineFunction: functions that are called once, are not any more
10740 inlined. This can be a port option in the future,
10742 * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10744 * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10745 hold the corresponding uninitialized symbols,
10746 * pic16_allocProcessorRegister: registers have explicit marked the
10748 * pic16_allocInternalRegister: registers are explicit marked as
10750 * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10751 processing list, so bit registers were lost,
10754 * ralloc.h: added field 'accessBank' and original symbol operand
10755 in register definition,
10756 * removed the field isMapped from register definition,
10758 ** Several functions have been removed from various sources:
10759 BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10760 pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10761 isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10762 pic16_assignRelocatableRegisters
10764 ** others have been introduced:
10765 pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10766 pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10768 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10770 * support/scripts/inc2h.pl: changed definition of BIT_AT
10771 to emit 'sbit at' instead of 'bit at'. This was a request.
10773 PIC16 port related preliminary changes:
10774 * gen.c: prefixed function popRegFromString with
10775 pic16_ and all references to it corrected
10776 * pcode.c: all pic16_pc_* hardware registers prefixed
10777 with underscore (_),
10778 pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10779 * ralloc.c: newReg(): when register is REG_SFR then
10780 set address to rIdx,
10781 pic16_allocProcessorRegister(): marks register wasUsed=0
10782 pic16_writeUsedRegs(): added a call to assign processor
10783 registers via pic16_assignFixedRegisters
10785 2004-01-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10787 * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10788 as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10789 variables in unused register banks. Also the SSEG is placed
10790 wherever there is enough space for it, and IDATA can be anywhere
10791 in internal RAM. For now compile using -Wl-Y[stack_size].
10792 The mem file is different for this option as well, since it
10793 makes no sense of talking about DSEG lenght.
10795 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10797 * src/SDCClrange.c: fixed bug 869095 that caused segfault
10798 in certain cases, e.g. when ROM assignment, patch provided
10799 from Albert den Haan.
10801 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10803 Many signedness and type propagation fixes:
10804 * src/SDCCicode.c: made geniCodeCast() static
10805 replaced SPEC_ by IS_ (cosmetic)
10806 (operandOperation): fixed div and mod operation
10807 (usualBinaryConversions): added support for promotion of char
10808 (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10809 (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10810 (geniCodeAdd): an array index will stay unsigned, even if promoted
10812 (geniCodeArray): ditto
10813 * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10814 * src/SDCCsymt.c (computeType): added more support for char;
10815 promotion of char is selectable by promoteCharToInt, fixed signedness
10817 (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10818 * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10819 * src/SDCCval (val*): replaced signedness calculation by
10821 rearranged if-branches (cosmetic)
10822 (valShift): added warning W_SHIFT_CHANGED
10823 (valCompare): fixed problem with different types
10824 * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10825 * support/regression/tests/literalop.c: added many cases
10826 * support/regression/tests/ast_constant_folding.c: changed finally to
10828 * .version: new year, new version: 2.3.7
10829 * src/SDCCmain.c (main): applied patch #866468
10830 * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10831 provided by Scott Bronson
10832 * doc/sdccman.lyx: updated documentation for sdcdb
10833 updated and added chapter tips
10835 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10837 * src/SDCCsymt.h: missing from yesterday's commits
10839 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10841 * src/SDCC.y (struct_or_union_specifier),
10842 * support/Util/SDCCerr.c,
10843 * support/Util/SDCCerr.h: verify that struct & union tags are used
10846 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10848 * src/SDCCglobl.h: missing from yesterday's commits
10850 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10852 * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10853 sft_attributes, struct_declaration, parameter_declaration,
10854 type_name, start_block, declaration_list),
10855 * src/SDCC.lex (check_type): support redefinition of typedef names
10857 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10859 * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10860 aligned xdata arrays. Erik helped me with the if clause.
10862 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10864 * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10867 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10870 * src/SDCCast.c (newAst_),
10872 * src/SDCCicode.c (ast2iCode, newiCode),
10874 * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10875 expr, statement, expression_statement, selection_statement,
10876 iteration_statement, expr_opt, jump_statement): foundation for tracking
10878 * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10881 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10883 * support/Util/SDCCerr.c,
10885 * src/SDCCast.c (createCase, createDefault, decorateType),
10886 * src/SDCClabel.c (labelUnreach),
10887 * src/SDCC.y (labeled_statement, jump_statement): More improvements
10889 * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10890 (with thanks to Stas Sergeev)
10891 * device/include/time.h,
10892 * device/lib/time.c (CheckTime): suppress unreachable code warning
10894 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10896 * src/SDCCast.c (createIvalCharPtr),
10897 * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10899 * support/regression/tests/nullstring.c: tests for these two bugs
10901 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10903 * support/Util/SDCCerr.h,
10904 * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10905 * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10906 about storage class and 'at' used inside struct or union
10907 * src/SDCCBBlock.c (iCodeFromeBBlock),
10908 * src/SDCCcse.c (ifxOptimize),
10909 * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10910 printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10911 printIval, emitStaticSeg, emitOverlay),
10912 * src/SDCClabel.c (deleteIfx),
10913 * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10914 * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10915 gatherAutoInit, processParms),
10916 * support/Util/SDCCerr.h,
10917 * support/Util/SDCCerr.c (werrorfl): Support for better error location
10918 reporting for post-parse errors.
10920 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10922 * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10923 implicit casts via union; they don't work on big endian systems
10924 (possible fix for bug #861138)
10926 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10928 (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10929 * src/mcs51/main.c: fixed the fix for bug #737001
10931 2003-12-15 Borut Razem <borut.razem AT siol.net>
10933 * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10935 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10937 * support/makebin/makebin.c: put output in binary mode
10939 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10941 * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10942 xdata and data memory on startup. Set the environment variable
10943 SDCC_NOGENRAMCLEAR to disable this.
10944 * src/mcs51/peephole.def,
10945 * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10946 (allows non-interrupt and interrupt code to safely compete for a resource
10947 without the non-interrupt code having to disable interrupts)
10949 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10951 * src/SDCCicode.c (geniCodeAdd),
10952 * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10953 with valFromType if type might be a pointer and host is big endian).
10954 * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10955 types, not just integer types.
10956 * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10957 multiply defined with mismatching "at" address.
10959 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10961 * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10962 * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10963 * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10964 with embedded nulls (fixed bug #753752)
10966 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10968 * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10969 Apparently this did not see much testing (endless loop)
10971 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10973 * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10975 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10977 * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10978 gracefully handle NULL memmap pointers
10980 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10982 * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10983 instead of deleting the iCode when an operand is volatile
10984 * src/z80/gen.c (genDummyRead),
10985 * src/mcs51/gen.c (genDummyRead),
10986 * src/ds390/gen.c (genDummyRead),
10987 * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10989 * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10990 * src/SDCC.y: fixed bug #850420
10992 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10994 Applied z80 i/o port patch from Peter Townson and fixed some operators
10995 to better handle operands in A register.
10996 * device/include/z180.h
11002 * src/z80/peeph-z80.def
11003 * src/z80/peeph.def
11006 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11008 * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
11010 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11012 * device/lib/hc08/_mullong.c: Removed extra #endif
11014 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11016 * sim/ucsim/hc08.src/inst.cc,
11017 * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
11018 carries from x to h
11019 * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
11020 * src/hc08/gen.c (XAccRsh): fixed problem with right shift
11021 * device/include/stdarg.h: fixed varargs for hc08
11022 * device/lib/Makefile.in,
11023 * device/lib/hc08/Makefile,
11024 * device/lib/hc08/_mulint.c,
11025 * device/lib/hc08/_mullong.c: fixed some endian problems
11027 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11029 * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
11030 * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
11031 * device/lib/_gptrget.c,
11032 * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
11034 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11036 * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
11037 * src/SDCCast.c (astErrors): fixed bug #846007
11038 * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
11040 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11042 * src/SDCCast.c (decorateType): disabled a transformation I added in
11043 revision 1.188 (access to fields of a structure at an absolute address);
11044 it breaks with bitfields, extern declarations, and gcse analysis.
11045 * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
11046 could be assigned through a pointer, so don't complain.
11047 * src/SDCCast.c (astErrors),
11049 * src/SDCCglue.c (emitRegularMap): fixed bug #847813
11051 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
11053 * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
11054 * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
11055 output of __config directives, since gpasm now supports them
11056 * src/pic16/main.c (_pic16_finaliseOptions): define MCU
11057 pre-processor macro, i.e. -DMCU=p18f452
11058 * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
11059 and modified to handle 'cast' icode similarly to '=' icode
11060 * src/pic16/device.h (typedef struct PIC_device): added field
11061 'extMIface' to indicate that chip has external memory interface
11062 * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
11063 18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
11066 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11068 * src/SDCC.y (pointer): fixed bug #846006
11069 * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
11070 * src/SDCCast.c (decorateType): fixed bug #846009
11071 * src/ds390/peeph.def,
11072 * src/ds390/gen.c (genAnd, genOr),
11073 * src/mcs51/peeph.def,
11074 * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
11076 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11078 Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
11085 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
11089 * src/SDCCbitv.c: added function to free a bitvector
11090 * src/SDCClrange.h,
11091 * src/SDCClrange.c: added function to recompute the liveranges
11092 * src/avr/ralloc.c,
11093 * src/ds390/ralloc.c,
11094 * src/hc08/ralloc.c,
11095 * src/mcs51/ralloc.c,
11096 * src/pic/ralloc.c,
11097 * src/pic16/ralloc.c,
11098 * src/xa51/ralloc.c,
11099 * src/z80/ralloc.c: recompute the liveranges after register packing
11101 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
11103 * src/SDCCloop.c (newInduction): fixed bug #845630
11105 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11107 * src/SDCCsymt.c (compareTypesExact): disabled debugging output
11108 inadvertantly left behind from my 2003-11-12 change
11110 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11112 Updated headers I neglected to commit yesterday.
11113 * src/SDCClrange.h,
11116 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11118 * src/SDCCcse.c (algebraicOpts): fixed bug #773153
11119 * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
11120 * src/SDCCopt.c (eBBlockFromiCode),
11121 * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
11122 the creation of the key hash table from the sequencing so it can be used
11123 earlier (for some GCSE bug fixes still pending)
11125 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11127 * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
11128 * support/regression/tests/addsub.c: testing genPlus shortcut
11130 2003-11-15 Borut Razem <borut.razem AT siol.net>
11132 * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
11134 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11136 * src/SDCCcse.c (cseBBlock): fixed bug #527779
11137 * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
11138 ordering is immaterial.
11139 * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
11141 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11143 * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
11144 * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
11145 (SIGSEV) of bug #840381
11146 * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
11147 unlink new file before rename if new and old filenames are the same)
11149 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11151 * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
11152 uninitialized variables) for the mcs51. Set environment variable
11153 SDCC_GENRAMCLEAR to test.
11154 xdata initialization slightly shorter
11156 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11159 * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
11160 #838241 & 780691 (basicly the same bug)
11161 * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
11162 * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
11164 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
11166 * src/SDCCmain.c (linkEdit): "fix" #834252
11168 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11170 * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
11172 * src/SDCC.y: fixed bug #819403
11174 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11176 * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
11177 the reentrant attribute.
11178 * src/hc08/gen.c (genPackBits): added missing stack readjustment
11179 * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
11181 * src/SDCCast.c (decorateType): fixed bug with storage class not being
11182 updated during pointer dereference; f.e. ~(((char *)1)*) was being
11183 erroneously reduced to a literal.
11184 * src/hc08/ralloc.c (packRegisters, rematStr),
11185 * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
11188 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11190 * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
11191 * doc/sdccman.lyx: changed from 'article' to 'book'
11192 * doc/Makefile: readded test_suite_spec and cdbfileformat
11194 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
11196 * device/include/stdlib.h: include malloc.h to comply with ANSI
11197 * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
11199 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11201 * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11202 * doc/clean.mk: also remove *.out files
11203 * doc/sdccman.lyx: some additions, larger top/bottom margins
11205 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11207 * src/SDCC.y: fixed bug #837365
11208 * support/regression/tests/bitopcse.c
11209 * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11210 a symbol (might be valop instead)
11211 * device/lib/Makefile.in: added errno.c to HC08SOURCES
11212 * device/lib/clean.mk: added hc08 to the cleaning list
11214 2003-11-04 Borut Razem <borut.razem AT siol.net>
11216 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11218 * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11219 as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11220 malloc is declared in standard stdlib.h
11222 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11224 * device/lib/hc08/Makefile: need to clean .rel not .o files
11225 * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11227 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11231 * src/mcs51/main.c,
11232 * src/ds390/main.c,
11236 * src/pic16/main.c,
11237 * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11238 * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11239 tests (which uses the port's oclsExpense function)
11245 * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11247 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11249 * src/SDCCcse.c (ifxOptimize),
11250 * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11251 an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11252 deleting the IFX iCode.
11253 * src/hc08/ralloc.c: reduced unneeded slocs
11254 * src/hc08/gen.c: fixed bug in asmopToBoolean
11256 2003-11-04 Borut Razem <borut.razem AT siol.net>
11258 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11259 support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11260 as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11261 transferred to configure
11263 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11265 Use headers defined in the C[++] standards:
11266 * sim/ucsim/gui.src/serio.src/fileio.cc
11267 * sim/ucsim/gui.src/serio.src/frontend.cc
11268 * sim/ucsim/gui.src/serio.src/main.cc
11269 * sim/ucsim/gui.src/serio.src/posix_signal.cc
11270 * support/Util/NewAlloc.c
11272 * as/mcs51/lklibr.c
11276 2003-11-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11278 * Added MSVC projects for hc08 assembler and linker:
11279 all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11280 /as/hc08/link_hc08.dsp
11282 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11284 * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11286 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11288 * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11290 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11292 * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11294 2003-10-31 Borut Razem <borut.razem AT siol.net>
11296 * support/cpp2/cpplib.h,
11297 support/cpp2/cpplib.c,
11298 support/cpp2/cpplex.c,
11299 support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11300 to switch _asm block preprocessing on / off. Default is
11301 #pragma preproc_asm +
11303 2003-10-31 Borut Razem <borut.razem AT siol.net>
11305 * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11306 when outputting comment blocks (when executed with -C option) and
11307 _asm (SDCPP specific) blocks
11309 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11311 * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11313 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11315 * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11317 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11319 * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11320 * src/SDCCast.c (decorateType): fixed bug #832664
11322 2003-10-31 Borut Razem <borut.razem AT siol.net>
11324 * support/cpp2/cpplex.c: fixed for SDCPP:
11325 comments(when executed with -C option) and _asm blocks
11326 were included even if they where in skipped #if block.
11327 Applied solution from GCC cpp 3.3.2
11329 2003-10-31 Borut Razem <borut.razem AT siol.net>
11331 * src/SDCC.lex: sdcc now understands both formats:
11332 '# <line_number> <file_name>' and
11333 '#line <line_number> <file_name>'
11334 * support/cpp2/cppmain.c: sdcpp now generates the standard
11335 '# <line_number> <file_name>' instead of former
11336 '#line <line_number> <file_name>'
11338 2003-10-30 Borut Razem <borut.razem AT siol.net>
11340 * support/cpp2/cpphash.h,
11341 * support/cpp2/cpplib.h
11342 * support/cpp2/cpplex.c,
11343 * support/cpp2/cppmain.c,
11344 * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11346 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11348 Fixed a number of problems revealed by bug #827883.
11349 * src/SDCCloop.c (loopInvariants): Spill location of the
11350 result operand should be recomputed if extracted from
11351 a loop. Also, don't extract assignments of an iTemp
11353 * src/SDCCast.c (isConformingBody): loop reversal should
11354 not occur if the control variable is involved with a
11355 relational operator.
11357 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11359 * .version: bumped to 2.3.6 to reflect the big improvements
11360 made by Erik and Klaus. Thanks!
11362 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11364 Replaced the livrange code.
11365 * src/SDCClrange.c: added new LR code
11367 * src/SDCCBBlock.h: removed remainig parts from old LR code
11368 * src/ds390/ralloc.c,
11369 * src/ds390/gen.c: minor fixes to make it work with new code
11371 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11374 * as/hc08/lkrloc.c,
11376 * src/hc08/ralloc.c: Fix various warnings related to the hc08
11377 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11378 (tweaked fix for bug #818696)
11380 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11382 * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11384 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11387 * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11388 * src/mcs51/gen.c (gencjneshort),
11389 * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11390 more efficient (per Scott Bronson's suggestion)
11392 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11394 Extended the semantics of the critical keyword to include
11395 individual statements. See RFE #827755 and #799831
11400 * support/Util/SDCCerr.c
11401 * support/Util/SDCCerr.h
11406 2003-10-19 Borut Razem <borut.razem AT siol.net>
11408 * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11410 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11412 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11414 * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11415 and predecrement operand is displayed
11417 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11419 * src/SDCCval.c (valMinus): fixed bug #826041
11421 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11423 Some hc08 related updates that I missed earlier
11424 * sim/ucsim/stypes.h
11425 * support/regression/ports/hc08/spec.mk
11427 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11429 New target "hc08" for the Motorola 68hc08 family of micros
11437 * sim/ucsim/hc08.src/*
11438 * sim/ucsim/configure.in
11439 * src/ucsim/configure
11440 * sim/ucsim/packages_in.mk
11443 * device/include/mc68hc908qy.h
11444 * device/lib/hc08/*
11445 * device/lib/Makefile.in
11446 * support/regression/ports/hc08/*
11447 * support/regression/Makefile
11449 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11451 * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11453 * src/ds390/gen.c (genCast): fixed bug #821957
11455 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11457 * device/lib/logf.c: "fixed" overlay bug
11458 * support/regression/ports/host/spec.mk: added m library
11459 * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11460 * support/regression/tests/float_trans: added (for Eric)
11462 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11464 * src/mcs51/gen.c (genCpl): fixed bug
11465 http://sf.net/mailarchive/message.php?msg_id=6263915
11467 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11469 * src/SDCCast.c (decorateType): added extended constant folding
11470 * src/SDCCsymt.c (computeType): cleanup
11471 * src/SDCCval.c (valShift): minor optimization
11472 * support/regression/tests/ast_constant_folding.c: added
11474 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11476 * src/SDCCmain.c: removed some unintended changes
11478 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11480 * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11481 * src/z80/gen.c: fixed part of bug #817589
11482 * src/SDCCsymt.c (checkFunction): fixed bug #817895
11484 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11486 Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11497 * src/ds390/ralloc.c
11499 * src/mcs51/ralloc.c
11501 * src/pic16/ralloc.c
11502 * src/xa51/ralloc.c
11504 * src/z80/gen.c: removed unused label "release:"
11506 2003-10-06 Borut Razem <borut.razem AT siol.net>
11508 * src/SDCC.lex: removed definition of unused variables
11509 save_optimize and save_options
11511 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11513 * clean.mk: removed '=' in "-maxdepth=1"
11514 * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11515 * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11517 2003-10-06 Borut Razem <borut.razem AT siol.net>
11519 * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11520 my_unput() replaced by unput()
11522 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11524 * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11525 setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11526 type-punned pointer will break strict-aliasing rules"
11527 Old LR behaviour is again default; Klaus' LR can be choosen by
11528 defining the environment variable LRKLAUS
11532 * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11533 * clean.mk: fixed removal of files in bin/CVS/
11534 * device/lib/clean.mk: fixed removal of directories small and large
11535 * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11537 * src/SDCCval.c: removed superflous test for pedantic
11539 2003-10-05 Borut Razem <borut.razem AT siol.net>
11541 * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11542 Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11543 message "unmatched #pragma SAVE and #pragma RESTORE"
11545 2003-10-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11547 * doc/sdccman.lyx: various additions and updates (interrupts, inline
11548 assembly, critical functions, atomic, nojtbound)
11550 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11552 Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11558 2003-10-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11561 * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11563 * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11565 * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11566 * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11567 * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11569 2003-10-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11571 * src/z80/gen.c (genRet): fixed bug #524753
11572 * src/z80/gen.c (genCast): fixed internal error on cast from
11574 * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11575 fix for bug #477835 to the z80
11576 * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11577 for tracking iCodes in the peephole optimizer for z80
11579 2003-10-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11581 * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11582 the other part of bug #814548
11583 * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11585 2003-09-30 Bernhard Held <bernhard AT bernhardheld.de>
11587 * src/SDCCcse.c: fixed part of bug #814548
11589 2003-09-28 Borut Razem <borut.razem AT siol.net>
11591 * src/asm.c: rewrite of printILine() to use temporary file instead
11593 * src/xa51/main.c: commented out declaration of int rewinds
11595 2003-09-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11597 * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11599 2003-09-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11601 * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11602 * src/asm.c (printILine): Fixed bug #811015
11604 2003-09-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11606 *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11609 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11611 * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11612 * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11613 to correctly handle general case of AOP_PAIRPTR
11614 * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11616 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11618 * src/mcs51/ralloc.c (fillGaps),
11619 * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11620 register positioning bug)
11622 2003-09-21 Bernhard Held <bernhard AT bernhardheld.de>
11624 * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11626 2003-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11628 * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11629 genCodePointerGet, genGenPointerGet, genFarPointerSet,
11630 genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11631 (ralloc doesn't intentionally do this now, but perhaps later)
11632 * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11633 * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11634 register positioning bugs (Fixed bug #762602 and #795325)
11635 * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11636 (Fixed bug #808779)
11637 * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11638 lines that --i-code-in-asm generates
11640 2003-09-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11642 *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11643 trying to fclose a FILE* that was already closed.
11645 2003-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11647 * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11648 of const struct should be treated as if const themselves)
11650 2003-09-18 Bernhard Held <bernhard AT bernhardheld.de>
11652 * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11654 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11656 * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11657 Unix (/n) and DOS (/r/n) line terminations.
11659 2003-09-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11661 * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11664 2003-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11666 * src/mcs51/gen.c (genFunction, genEndFunction),
11667 * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11668 and restore of EA so that stack offsets to parameters are
11669 correct when using both critical and reentrant/stack-auto.
11670 * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11671 size (can be triggered in error if sloc is shared between
11672 different sized objects)
11673 * device/include/float.h: fixed macros to explicitly use
11674 unsigned long where needed
11676 2003-09-15 Bernhard Held <bernhard AT bernhardheld.de>
11678 Feature req. 799831: added code to allow nesting of critical functions
11679 * src/mcs51/gen.c (genFunction, genEndFunction)
11680 * src/ds390/gen.c (genFunction, genEndFunction)
11682 2003-09-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11684 * src/SDCCsymt.c (sclsFromPtr),
11686 * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11687 support for standard C idiom of memory mapped variables; for
11688 example, *((xdata int*)0x1234) = 1 is now internally equivalent
11689 to xdata int at 0x1234 tempvar = 1.
11690 * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11691 provided by Akiya ISHIDA
11693 2003-09-13 Bernhard Held <bernhard AT bernhardheld.de>
11695 * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11696 * src/SDCCval.c (constVal): added reduction from int to char
11697 * src/SDCCval.c (valMult, valDiv): fixed sign handling
11698 * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11699 * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11701 * support/regression/tests/shifts.c: fixed
11703 2003-09-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11705 * src/z80/gen.c (genXor): Fixed bug #805445
11707 2003-09-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11709 Fixed bug #621531 (const & volatile confusion in the type chain).
11710 DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11711 refer to the const or volatile state of the pointer itself.
11723 * src/pic16/ralloc.c
11724 * support/regression/tests/const.c
11726 2003-09-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11728 When checking for duplicated modules, use absolute paths
11729 instead of relative paths. Files changed:
11734 2003-09-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11736 * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11738 2003-09-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11740 * device/include/string.h: added size_t typedef, changed
11741 prototypes to use size_t, eliminated separate reentrant and
11742 non-reentrant declarations, added _memmove declaration
11743 * device/lib/_memcpy.c: changed to use size_t instead of int,
11744 changed /4 to >>2 to avoid division library call
11745 * device/lib/_memcmp.c,
11746 * device/lib/_memset.c,
11747 * device/lib/_strncat.c,
11748 * device/lib/_strncpy.c,
11749 * device/lib/_strncmp.c: changed to use size_t instead of int
11750 * device/lib/_memmove.c: new file (fixed bug #772294)
11751 * device/lib/Makefile.in: added _memmove.c
11752 * device/lib/z80/asm_strings.s: fixed bug #772290
11753 * support/regression/tests/bitfields.c: attempt to fix host assertion
11754 failure on amd64-unknown-linux2.2
11756 2003-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11758 * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11759 * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11760 * as/z80/asmain.c (main): fixed bug #801766
11762 2003-09-06 Bernhard Held <bernhard AT bernhardheld.de>
11764 * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11767 2003-09-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11769 * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11770 reported in bug #800609
11772 2003-09-04 Vangelis Rokas <vrokas AT otenet.gr>
11774 * Top header beautifications in src/pic16 directory:
11775 device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11776 pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11777 pcoderegs.h, ralloc.c, ralloc.h
11778 * main.c: added top header and GPL license notice
11779 * pcode.c: fixed the if-conditional warning
11781 2003-09-04 Bernhard Held <bernhard AT bernhardheld.de>
11783 * device/lib/_mullong.c: replaced int by short for gcc
11785 2003-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11787 * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11788 and JUMPTABLE iCodes properly now (worked by accident before)
11789 * src/mcs51/gen.c (leftRightUseAcc),
11790 * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11791 iCode properly now. Use getSize instead of nRegs since a & b
11792 aren't part of the nRegs tally.
11794 2003-08-31 Vangelis Rokas <vrokas AT otenet.gr>
11796 * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11797 * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11798 before instructions that use the _STATUS register
11800 2003-08-31 Bernhard Held <bernhard AT bernhardheld.de>
11802 * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11803 * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11804 fetching of the pointer
11805 * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11806 copied from genNearPointerSet()
11807 * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11808 * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11809 If they pop r0/r1 they must be called in the opposite order than aopOp().
11810 * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11811 (resp. --stack-auto), prepared for --xstack
11813 2003-08-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11815 * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11817 2003-08-28 Bernhard Held <bernhard AT bernhardheld.de>
11819 * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11820 these ports have their own __sdcc_external_start()
11822 2003-08-26 Bernhard Held <bernhard AT bernhardheld.de>
11824 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11825 * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11826 type for bits was changed. It resulted in bit variables becoming
11827 global, which is not permitted in PIC 14 assembly output.
11829 2003-08-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11831 * doc/sdccman.lyx: various additions and updates. Rearranged sections
11833 2003-08-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11835 Z80 and MCS51 linkers complaint if a public symbol is defined
11836 in more than one library module:
11840 * as/mcs51/Makefile.in
11842 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11844 A few small changes that speed up the peephole optimizer.
11848 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11850 Try to make the peephole optimizer smarter by maintaining
11851 an association between the assembly source code and the
11852 iCodes that originated them. Put this information to use
11853 with a new peephole rule condition "notVolatile" so that
11854 the rules can be aggressive yet still safe.
11859 * src/mcs51/peeph.def
11861 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11865 * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11866 * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11867 if the left or right operand symbols have the accuse flag set.
11869 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11871 Changed the type of the result of the ! (NOT) operator to char;
11872 previously it returned the same type as the source. This allows
11873 us to eliminate all the genFloatNot functions (all of its target
11874 implementations were very buggy) since !float can use the same
11877 * src/SDCCicode.c (ast2iCode): ! returns char
11878 * src/mcs51/gen.c (genNot, genNotFloat),
11879 * src/ds390/gen.c (genNot, genNotFloat),
11880 * src/z80/gen.c (genNot, genNotFloat),
11881 * src/pic/gen.c (genNot, genNotFloat),
11882 * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11884 2003-08-19 Bernhard Held <bernhard AT bernhardheld.de>
11886 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11887 1. Interrupt would not compile properly. Ensure PCLATH register is saved
11888 during interrupts. Ensure WSAVE is located at a shared bank address.
11889 2. Fixed page selection in some places
11890 3. Fixed BTFSS/C to where necessary use registers directly and not simply
11891 the registers name strings.
11892 4. Fixed "signed / unsigned compare" compiler warnings.
11893 5. The PIC port manages its own allocation of the general purpose
11894 registers, but makes no attempt to reuse them. As a result when
11895 compiling it soon runs out of general purpose registers. Some
11896 additional code was added to the files pcode.c and device.c to walk
11897 through the function call tree and rename the registers so that they
11907 * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11908 genPlus() & genMinus() when the result is the same as left or right
11910 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11912 * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11914 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11916 Made bitfield a distinct type from bit so that bitfields
11917 convert as per ANSI C and bits retain their traditional
11918 boolean style behaviour. Implemented bitfield support in
11926 * src/ds390/gen.c: bit v bitfield split
11927 * src/z80/gen.c: New support for bitfields
11928 * support/regression/tests/bitfields.c: reenabled z80,
11931 2003-08-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11933 Rules 246.x, 247.x relate to bitfields, the others speed up
11934 access to xdata mapped I/O devices.
11936 * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11938 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11940 Cleaned up genPackBits and genUnpackBits and added two helper
11941 functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11942 for literal assignments in genPackBits (thanks to Frieder for
11948 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11950 Fixed bug #748310 (pointer to function type mishandled when the
11951 function name is omitted). Also fixed a SIGSEGV when a function
11952 attribute (reentrant, etc) is used on a non-function or on a
11953 function but misplaced before the parameter list.
11955 * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11957 * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11958 * support/Util/SDCCerr.h,
11959 * support/Util/SDCCerr.c: Added func attr misuse error msg
11961 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
11963 Fixed bug #787649 by anonymous
11964 * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11965 * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11967 2003-08-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11969 Fixed numerous bitfield problems.
11971 * src/SDCC.y: More bitfield related error checking
11973 * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11974 * support/Util/SDCCerr.h,
11975 * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11976 * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11977 * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11978 * support/regression/tests/bitfields.c: tests added
11980 2003-08-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11982 Made the constant following the "interrupt" keyword optional. If
11983 omitted, the function will not automatically be given an entry
11984 in the interrupt vector table (similar to #pragma NOIV, but
11985 less syntacticly kludgy). The interrupt number is also now
11986 range checked. Also fixed a bug in the high order bit example
11993 * support/Util/SDCCerr.c
11994 * support/Util/SDCCerr.h
11997 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
11999 * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
12000 * src/SDCCicode.c (operandOperation): rewritten some ops
12001 (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
12002 * src/SDCCsymt.c (computeType): literals are handled the same way as any
12004 * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
12005 be re-activated by defining REDUCE_LITERALS)
12006 * src/SDCCval.c (constVal): fixed; hex and octal constants can be
12007 unsigned, but are signed by default
12008 * src/SDCCval.c (constVal): rearranged
12009 * src/SDCCval.c (valMod): preliminary fix
12010 * src/SDCCval.c (valCastLiteral): use TYPE_* types
12011 * support/regression/literalop.c: added, work in progress
12013 2003-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12015 Generate warnings for useless declarations like "char data;"
12016 that don't do what new users expect.
12019 * support/Util/SDCCerr.h
12020 * support/Util/SDCCerr.c
12022 2003-08-09 Bernhard Held <bernhard AT bernhardheld.de>
12024 * src/SDCCval.c (valMult): fix overflow detection of negative int
12026 2003-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12028 * src/z80/ralloc.c (joinPushes): made compatible with new signedness
12030 Changes to support big endian targets:
12043 2003-08-06 Bernhard Held <bernhard AT bernhardheld.de>
12045 * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
12046 * device/lib/time.c: fixed warning "integer overflow in expression"
12048 2003-08-05 Bernhard Held <bernhard AT bernhardheld.de>
12050 * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
12051 * src/SDCCval.c (constVal): changed default to signed; hex and octal
12052 constants are unsigned; added recognition of "u" flag for unsigned
12053 * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
12054 * src/SDCCval.c (valDiv, valMod): fixed signdness
12055 * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
12056 signedness of modulo, left and right shift
12057 * support/Util/SDCCerr.c: added warning "integer overflow in expression"
12058 * support/Util/SDCCerr.h: added warning W_INT_OVL
12059 * src/SDCCast.c (decorateType): fixed gcc3.3 warning
12060 * src/SDCCast.c (ast_print): improved output of constants
12062 2003-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12064 Fixed some warnings when building with MSVC:
12066 * as/mcs51/asdata.c
12070 * link/z80/aslink.h
12071 * link/z80/lkdata.c
12072 * link/z80/lkeval.c
12077 * support/cpp2/cpplib.c
12081 2003-08-03 Bernhard Held <bernhard AT bernhardheld.de>
12083 * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
12085 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12087 * support/librarian/clean.mk: Do not remove Makefile.
12088 * support/librarian/Makefile: added.
12090 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12092 Added librarian to MSVC build:
12095 * support/librarian/librarian.dsp
12097 'configure' not needed for librarian, removed:
12098 * support/librarian/configure
12099 * support/librarian/configure.in
12100 * support/librarian/config_in.h
12101 * support/librarian/Makefile.in
12103 Hopefully these ones built the librarian and the rest of sdcc properly:
12105 * Makefile.common.in
12107 Messed up 'configure', so revert to previous version:
12111 2003-07-31 Bernhard Held <bernhard AT bernhardheld.de>
12113 * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
12114 there, while the mantissa of a double is "only" 53 bits wide.
12116 2003-07-31 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12118 Adding sdcclib to the build. MSVC project coming soon.
12119 Files added/changed:
12121 * support/librarian/clean.mk
12122 * support/librarian/configure
12123 * support/librarian/configure.in
12124 * support/librarian/config_in.h
12125 * support/librarian/Makefile.bcc
12126 * support/librarian/Makefile.in
12127 * support/librarian/sdcclib.c
12130 * Makefile.common.in
12134 2003-07-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12136 Linker now complaints if linked modules have conflicting options, for
12137 example, one compiled using --model-large and another one compiled with
12138 --model-small. The following files were modified:
12140 * as/mcs51/asdata.c
12141 * as/mcs51/aslink.h
12143 * as/mcs51/asmain.c
12145 * as/mcs51/i51pst.c
12146 * as/mcs51/lkdata.c
12147 * as/mcs51/lklibr.c
12148 * as/mcs51/lkmain.c
12154 * link/z80/aslink.h
12155 * link/z80/lkdata.c
12156 * link/z80/lklibr.c
12157 * link/z80/lkmain.c
12160 2003-07-28 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12162 *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
12163 as/mcs51/lklibr.c: Generate a warning when a library is not found.
12165 2003-07-28 Bernhard Held <bernhard AT bernhardheld.de>
12167 * src/z80/mappings.i: fix _mul[us][int,long] entries
12169 2003-07-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12171 *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
12173 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
12175 * src/SDCCicode.c (operandOperation): really fixed problem with bitops
12176 * support/regression/tests/bitopcse.c: added
12184 2003-07-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12186 added support for new library format to z80, gbz80 linkers:
12192 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
12194 * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
12195 after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
12197 2003-07-23 Bernhard Held <bernhard AT bernhardheld.de>
12199 added DUMMY_READ_VOLATILE:
12208 * src/SDCCcse.c (algebraicOpts): many improvements
12209 * src/SDCCcse.h: removed algebraicOpts()
12210 * src/SDCCicode.c (picDummyRead): added
12212 2003-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12214 * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12215 "Insufficient space in data memory".
12217 2003-07-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12219 * src/mcs51/gen.c: fixed bug #771358
12220 * src/z80/gen.c: fixed bug #759087
12222 2003-07-20 Bernhard Held <bernhard AT bernhardheld.de>
12224 * src/pic16/glue.c: minor cleanup by Vangelis
12226 2003-07-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12228 * device/include/regc515c.h: fixed #758477
12229 * device/lib/_gptrget.c: saving some cycles in generic pointer get
12230 * device/lib/_gptrput.c: saved a few bytes
12231 * my tab spacing is 8, yours too?)
12232 * device/lib/_ser.c: process RX bytes earlier than TX bytes
12233 * device/lib/serial.c: process RX bytes earlier than TX bytes
12234 * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12236 2003-07-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12238 * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12240 2003-07-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12242 * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12244 2003-07-17 Bernhard Held <bernhard AT bernhardheld.de>
12246 * device/lib/Makefile.in: bad fix, reverted to 1.43
12248 2003-07-16 Bernhard Held <bernhard AT bernhardheld.de>
12250 * device/lib/Makefile.in: added missing z80 object files
12252 2003-07-14 Bernhard Held <bernhard AT bernhardheld.de>
12254 * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12255 pic16 progress by Vangelis:
12258 * src/pic/Makefile:
12265 * pic16/genarith.c:
12270 * pic16/pcodepeep.c:
12273 2003-07-13 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12275 * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12277 2003-07-12 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12279 * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12280 added gbz80 build to MSVC project.
12281 * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12282 link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12283 from 8051 stuff and setup so it links using a .lnk file.
12285 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12287 * support/librarian/sdcclib.c: sdcc librarian.
12288 * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12291 2003-07-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12293 * as/mcs51/lkmain.c: properly handle extensions in function afile.
12295 2003-07-02 Borut Razem <borut.razem AT siol.net>
12297 * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12298 src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12299 src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12300 src/xa51/main.c, src/z80/main.c:
12301 virtualization of glue() function: each port has it's own glue function,
12302 which is accessed by do_glue function pointer in PORT.general structure
12304 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12306 * DS800C400 fun, improved ROM interface and tinibios.
12308 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12310 * More support for DS80C400. Now includes beginning of interface to ROM.
12312 2003-06-25 Bernhard Held <bernhard AT bernhardheld.de>
12314 * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12316 2003-06-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12318 * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12320 2003-06-19 Borut Razem <borut.razem AT siol.net>
12322 * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12324 2003-06-19 Borut Razem <borut.razem AT siol.net>
12326 * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12327 fixed Z80 port - crt0.o: cannot open.
12329 2003-06-19 Bernhard Held <bernhard AT bernhardheld.de>
12331 * support/Util/MySystem.c (merge_command): revert bad fix
12333 2003-06-18 Borut Razem <borut.razem AT siol.net>
12335 * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12337 2003-06-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12339 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12340 option --use-stdout sends errors to stdout instead of stderr.
12342 2003-06-18 Bernhard Held <bernhard AT bernhardheld.de>
12344 * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12346 2003-06-15 Borut Razem <borut.razem AT siol.net>
12348 * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12349 * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12350 * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12351 fixed width array of pointers replaced with sets;
12352 multiple include and lib paths ared transferred to preprocessor and linker
12353 * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12354 * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12355 fixed width array of pointers
12356 * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12357 removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12358 fixupPath(), getPathDifference()
12359 * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function inExcludeList() by using sets instead
12360 fixed width array of pointers
12362 2003-06-11 Bernhard Held <bernhard AT bernhardheld.de>
12364 * src/pic16/ralloc.c: fix warnings
12365 * src/pic16/pcode.c: fix warning
12367 2003-06-10 Scott Dattalo <scott AT dattalo.com>
12369 Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12370 know all the details, but essentially this set of changes enable
12371 the pic16 port to generate movff instructions and generate assembler
12375 * src/pic16/glue.c:
12376 * src/pic16/pcode.c:
12377 * src/pic16/device.c:
12378 * src/pic16/main.c:
12379 * src/pic16/pcode.h:
12380 * src/pic16/pcoderegs.c:
12381 * src/pic16/ralloc.c:
12382 * src/pic16/ralloc.h:
12384 2003-06-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12386 * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12387 added option --vc, so sdcc errors and warnings are compatible with
12388 Microsoft Visual Studio.
12390 2003-06-07 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12392 * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12393 device/lib/libfloat.lib: added atof function.
12395 2003-06-04 Bernhard Held <bernhard AT bernhardheld.de>
12397 * doc/sdccman.lyx: updated to Lyx 1.3
12398 * doc/cdbfileformat.lyx: updated to Lyx 1.3
12399 * doc/test_suite_spec.lyx: updated to Lyx 1.3
12400 * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12402 2003-06-03 Bernhard Held <bernhard AT bernhardheld.de>
12404 * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12406 2003-06-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12408 * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12409 additions to the "related tools/documentation" section
12411 2003-06-02 Bernhard Held <bernhard AT bernhardheld.de>
12413 * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12415 2003-05-29 Bernhard Held <bernhard AT bernhardheld.de>
12417 * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12418 * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12420 2003-05-28 Bernhard Held <bernhard AT bernhardheld.de>
12422 * doc/sdccman.lyx: fix double dash and other minor things
12423 * doc/Makefile: fix double dash
12425 2003-05-28 Karl Bongers(patches from Martin Helmling)
12426 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12427 condition and ignore commands.
12429 2003-05-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12431 * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12432 is in parts still quite out of date, I did changes as far as I felt makes sense
12433 for a non-native english speaker.
12434 Please feel free to add to the manual or to correct my changes.
12435 * doc/Makefile: undid touching the date of intermediate tex files.
12437 2003-05-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12439 * doc/sdccman.lyx: Manual has an index now
12441 2003-05-25 Bernhard Held <bernhard AT bernhardheld.de>
12443 Finalize muluint/mulsint and mululong/mulslong merging:
12444 * device/lib/_mulint.c
12445 * device/lib/_mullong.c
12446 * device/lib/gbz80/mul.s
12447 * device/lib/gbz80/stubs.s
12448 * device/lib/z80/mul.s
12449 * device/lib/z80/stubs.s
12450 * src/SDCCsymt.c (initCSupport)
12452 2003-05-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12454 * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12455 * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12456 src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12457 src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12460 2003-05-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12462 * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12463 the regression tests I'm not brave enough to enable 245.b, 245.c
12464 * doc/sdccman.lyx: added latex preamble for hyperref package.
12465 Using pdflatex this will give you a hyperlinked pdf file with
12466 bookmarks. (prepend '%' before /usepackage if this breaks something)
12468 2003-05-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12470 * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12472 2003-05-22 Bernhard Held <bernhard AT bernhardheld.de>
12474 * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12476 2003-05-21 <johan AT balder>
12478 * src/SDCCglue.c (printIval): fixed bug #739934
12480 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
12482 Applied patch from bug 737905 (renamed yylineo to mylineno):
12489 * src/pic16/pcode.c: Cleaned warnings
12490 * src/pic16/pcodeflow.c: Cleaned warnings
12491 * src/pic16/pcoderegs.c: Cleaned warnings
12493 2003-05-19 Scott Dattalo <scott AT dattalo.com>
12495 * src/pic16/pcode.c: Cleaned warnings
12496 * src/pic16/pcodepeep.c: Cleaned warnings
12497 * src/pic16/ralloc.c: Cleaned warnings
12499 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
12501 * doc/sdccman.lyx: fixed bug 739745
12502 * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12504 2003-05-18 Bernhard Held <bernhard AT bernhardheld.de>
12506 * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12507 it can be defined with CFLAGS when running configure
12508 * src/SDCCmain.c: fixed compiling + linking with object files
12510 2003-05-18 Vangelis Rokas (vrokas AT otenet.gr)
12512 * configure.in: configure for pic16 port,
12513 added --disable-pic16-port
12514 * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12515 * src/SDCCmain.c: linkOptions is changed to set *,
12516 added if/endif conditional macros to remove options help
12517 messages from optionsTable when a port is not configured, added
12518 support for the PIc16 port in the ports table, when executing
12519 the compiler with no port specified on command line, a default
12520 port is selected with the new macro DEFAULT_PORT which is
12521 defined in port.h, in setDefaultOptions() linkOptions is removed
12522 from initialization assignment, since now it is a set,
12523 parseCmdLine uses setParseWithComma for linkOptions, in
12524 linkEdit() linkOptions are accessed with new function indexSet()
12525 which returns the i'th item of a set variable. See SDCCset.c, in
12526 linkEdit() when calling buildCmdLine(), added linkOptions as
12527 last argument. Now users can pass arguments to gplink via the
12528 -Wl option, main() uses pic16glue() to glue up pic16 programs
12529 * src/SDCCpeeph.c: various changes to support pic16
12530 * src/SDCCset.c: added function void *indexSet(set *, int) to
12531 return the i'th item of the set
12532 * src/SDCCset.h: added function prototype for indexSet()
12533 * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12534 * src/clean.mk: added pic16 in CLEANALLPORTS variable
12535 * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12536 added macro DEFAULT_PORT
12537 * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12538 * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12540 * src/pic16/glue.c: commented out some error producing lines
12541 * src/pic16/main.c: __config directives are commented out to stop
12542 gpasm complaining and test the linkage with gplink, _linkCmd and
12543 _asmCmd changed to be more gplink and gpasm friendly
12544 * src/pic16/peeph.def: peep rule 3 is commented out, since it
12545 produced an error when parsed, peep rule 12 is added to utilize
12546 movff, but it is commented out since the pCode does not support
12547 yet a command with 2 address arguments
12549 2003-05-18 <johan AT balder>
12551 * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12552 * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12553 2003-05-17 Karl Bongers(apply patches from Martin Helmling)
12555 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12556 Added feature to script commands from file.
12558 2003-05-14 Bernhard Held <bernhard AT bernhardheld.de>
12560 * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12561 * src/SDCCutil.c: include ctype.h for win32
12563 2003-05-13 Bernhard Held <bernhard AT bernhardheld.de>
12565 * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12567 2003-05-12 Karl Bongers(apply development patches from Martin Helmling)
12569 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12570 Fixed so you can set breakpoints prior to run, run does not stop
12571 on entry now. Add tbreak. Other enhancements and fixes for use
12574 2003-05-12 Borut Razem <borut.razem AT siol.net>
12576 * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12578 2003-05-11 Borut Razem <borut.razem AT siol.net>
12580 * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12581 the path of bin directory, so that PATH is the only env. variable, which has to be set
12582 in case of standard installation.
12583 * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12584 * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12585 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12587 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
12589 * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12590 * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12591 temp files are in the port dir; clean the gen/test directory when
12592 generating new test.c
12593 * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12594 * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12595 * support/regression/tests/zeropad.c: added
12597 2003-05-09 <johan AT balder>
12599 * src/SDCCglue.c: fixed bug #597940
12601 2003-05-05 Karl Bongers(apply patches from Martin Helmling)
12603 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12604 cache sfr, optimize next,step, fix off by one sourceline,
12605 support ddd list function.
12606 * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12608 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
12610 * support/regression/HTMLgen.py: added compare_s2f()
12611 * support/regression/Makefile: redo 1.27
12612 * support/regression/generate-cases.py: redo 1.5
12614 2003-04-30 Bernhard Held <bernhard AT bernhardheld.de>
12616 * support/regression/tests/float.c: workaround 33 bit hex constant
12617 * support/regression/tests/simplefloat.c: fix division for host
12619 2003-04-29 Scott Dattalo <scott AT dattalo.com>
12621 * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12622 that tame's the PIC's over-aggressive optimizer.
12624 2003-04-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12626 * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12629 2003-04-29 Kevin Vigor <kevin AT vigor.nu>
12631 Initial support for DS80C400. "Hello world" runs on TINIm400
12634 2003-04-28 Karl Bongers(apply patches for Martin Helmling)
12636 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12637 * Some notes on ddd usage added in debugger/README
12638 Martin Helmling adding more features and fixes for ddd GUI debugger.
12639 Code added for nexti, stepi, up, down, and other adjustments.
12641 2003-04-28 Scott Dattalo <scott AT DATTALO.COM>
12643 * src/pic/pCodepeep.c non-wildcard asmops are now handled
12644 * src/pic/peeph.def Added two rules to optimize carry manipulation
12645 * src/pic/* removed debug printfs
12647 2003-04-28 Bernhard Held <bernhard AT bernhardheld.de>
12649 * debugger/mcs51/cmd.c: added header newalloc.h
12651 2003-04-26 Bernhard Held <bernhard AT bernhardheld.de>
12653 * as/Makefile: new EXEEXT
12654 * as/z80/Makefile: remove trailing slash of BUILDIR
12655 * as/z80/clean.mk: new EXEEXT
12656 * Makefile.common.in: add to CFLAGS (and others), don't replace it
12657 * support/cpp2/Makefile.in: new EXEEXT
12658 * src/pic/glue.c (pic14emitRegularMap): fixed warning
12660 2003-04-24 Bernhard Held <bernhard AT bernhardheld.de>
12662 Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12663 EXEEXT was introduced to fix all related problems with targets
12664 "clean", "install" and "uninstall"; a couple of further flaws
12665 especially with "clean" have been fixed too
12666 * as/mcs51/Makefile.in
12667 * as/mcs51/clean.mk
12671 * debugger/mcs51/Makefile.in
12672 * debugger/mcs51/clean.mk
12673 * link/z80/Makefile
12674 * link/z80/Makefile.in
12675 * link/z80/clean.mk
12677 * packihx/Makefile.in
12679 * sim/ucsim/Makefile
12680 * sim/ucsim/clean.mk
12681 * sim/ucsim/avr.src/Makefile.in
12682 * sim/ucsim/avr.src/clean.mk
12683 * sim/ucsim/s51.src/Makefile.in
12684 * sim/ucsim/s51.src/clean.mk
12685 * sim/ucsim/xa.src/Makefile.in
12686 * sim/ucsim/xa.src/clean.mk
12687 * sim/ucsim/z80.src/Makefile.in
12688 * sim/ucsim/z80.src/clean.mk
12689 * sim/ucsim/main_in.mk
12690 * sim/ucsim/packages_in.mk
12691 * sim/ucsim/gui.src/Makefile.in
12692 * sim/ucsim/gui.src/serio.src/Makefile.in
12693 * sim/ucsim/gui.src/serio.src/clean.mk
12696 * support/cpp2/Makefile.in
12697 * support/cpp2/clean.mk
12698 * support/makebin/Makefile
12699 * support/makebin/clean.mk
12700 * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12701 * doc/sdccman.lyx: --program-suffix no longer needed
12703 2003-04-23 Karl Bongers(apply patches for Martin Helmling)
12705 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12706 Martin Helmling added support for ddd GUI debugger.
12707 Code added to display assembly, set variables, and other commands
12708 to interface to ddd.
12710 2003-04-23 Bernhard Held <bernhard AT bernhardheld.de>
12712 * as/Makefile: fix target clean
12713 * as/clean.mk: fix target clean
12714 * as/z80/clean.mk: fix target clean
12716 2003-04-22 Bernhard Held <bernhard AT bernhardheld.de>
12718 * Makefile.common.in: added AT EXEEXT AT
12719 * configure.in: removed all mingw32 stuff
12720 * configure: rebuilt from configure.in
12721 * doc/sdccman.lyx: updated section "installation"
12722 * support/scripts/sdcc_mingw32: adapted to configure
12723 * support/scripts/sdcc_cygwin_mingw32: added
12725 2003-04-22 Scott Dattalo <scott AT dattalo.com>
12727 * src/pic Added object file support for the PIC port
12728 * src/pic Applied patch from Craig Franklin (this started the object file support)
12729 * src/regression Updated the PIC regression tests for object files
12731 2003-04-20 Borut Razem <borut.razem AT siol.net>
12733 * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12734 lklex.c: In function `getfid':
12735 lklex.c:203: warning: array subscript has type `char'
12736 * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12737 with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12738 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12739 stack handling macros
12741 2003-04-19 Borut Razem <borut.razem AT siol.net>
12743 * "handling space characters in file path" task:
12744 * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12745 * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12746 * support/Util/MySystem.h: make it self-sufficient
12747 * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12748 src/z80/main.c, sdcc/as/mcs51/lklex.c:
12749 handling space characters in file path
12750 * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12751 (it will be used by assemblers, which have their own includes, e.g. gpasm)
12752 * support/Util/MySystem.c: handling space characters in executable's path
12754 2003-04-19 Bernhard Held <bernhard AT bernhardheld.de>
12756 * as/z80/Makefile: fix permanent rebuild of z80
12757 * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12758 * support/regression/tests/bitfields.c: added Johan's bitfields.c
12760 2003-04-18 Kevin Vigor <kevin AT vigor.nu>
12762 * src/SDCCopt.c: add special case optimization to replace modulo by
12763 a power of two with a bitwise AND.
12765 2003-04-18 <johan AT balder>
12767 * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12769 2003-04-17 <johan AT balder>
12771 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12772 * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12774 2003-04-13 Borut Razem <borut.razem AT siol.net>
12776 * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12777 * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12778 fixed mingw problem in adl_NORMALIZE_PATH
12780 2003-04-12 Borut Razem <borut.razem AT siol.net>
12782 * fixed "#pragma SAVE/RESTORE can not be nested":
12783 * src/SDCC.lex: reworked pragma handling functions
12784 * sdcc/src/SDCCglobl.h: reworked stack handling macros
12785 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12787 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
12789 * src/SDCCutil.c (pathEquivalent): defined but not used
12790 * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12791 * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12792 * configure: rebuilt from configure.in
12793 * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12794 * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12795 * device/include/Makefile.in: replace sdcc_datadir
12796 * device/lib/Makefile.in: replace sdcc_datadir
12797 * Makefile.common.in: add LDFLAGS from configure
12798 * packihx/Makefile.in: use LDFLAGS
12799 * src/Makefile.in: use LDFLAGS
12800 * support/cpp2/Makefile.in: add LDFLAGS from configure
12801 * support/makebin/Makefile: use LDFLAGS
12802 * .version: bumped version number to 2.3.5
12804 2003-04-12 Borut Razem <borut.razem AT siol.net>
12806 * completed "different paths" task:
12807 * src/SDCCmacro.c: fixed bug in handling quotes
12808 * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12809 * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12811 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
12813 * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12815 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12817 * ds390/gen.c ds390/peeph.def: fix bug 706781
12819 2003-04-11 Borut Razem <borut.razem AT siol.net>
12821 * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12823 2003-04-10 Scott Dattalo <scott AT dattalo.com>
12825 * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12826 * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12827 set - this bit used to not be set...).
12828 * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12829 bad code in PIC Port
12830 * src/regression/and2.c added to test bug 609268
12831 * src/regression/Makefile added and2.c to regression test
12834 2003-04-08 <johan AT CP255758-A>
12836 * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12837 * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12838 * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12840 2003-04-07 Bernhard Held <bernhard AT bernhardheld.de>
12842 * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12844 * support/cpp2/Makefile.in: fix bug #487815
12845 * configure: rebuilt from configure.in
12846 * Makefile.common.in: docdir changed, new path suffixes
12847 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12848 * sdcc_vc_in.h: reflect changes from sdccconf.h
12849 * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12850 * src/SDCCutil.h: remove BINDIR hack
12851 * doc/sdccman.lyx: update new path hierarchy
12853 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
12855 * src/SDCCpeeph.c: added okToRemoveSLOC test
12857 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
12859 * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12861 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
12863 * src/SDCCpeeph.c: added labelIsReturnOnly test
12864 * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12866 2003-04-05 <johan AT balder>
12868 * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12869 * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12870 * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12871 * src/SDCCast.c: fixed a warning
12872 * src/SDCCast.h: fixed a warning
12873 * src/SDCCicode.c (operandFromAst): fixed a warning
12875 2003-04-04 <johan AT balder>
12877 * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12878 * src/SDCCast.c (decorateType): fixed bug #715076
12879 * src/SDCC.y: fixed bug #702907
12881 2003-04-03 <johan AT balder>
12883 * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12884 * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12885 * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12886 * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12887 * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12889 2003-04-03 Bernhard Held <bernhard AT bernhardheld.de>
12891 * _decdptr.c: fix return values
12892 * _gptrget.c: fix return values
12893 * _gptrgetc.c: fix return values
12894 * _gptrput.c: fix return values
12895 * _mulint.c: fix return values
12896 * as/z80/Makefile: fix 'make -j' problem
12898 2003-04-02 Bernhard Held <bernhard AT bernhardheld.de>
12900 * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12901 * configure.in: big cleanup, updated to autoconf 2.5x
12902 * configure: rebuilt from configure.in
12903 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12904 * sdcc_vc_in.h: reflect changes from sdccconf.h
12905 * doc/Makefile: fixed a flaw in "make install"
12907 2003-04-02 <johan AT balder>
12909 * src/ds390/gen.c (genCmp): no comments
12910 * src/mcs51/gen.c (genCmp): no comments
12911 * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12912 * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12914 2003-04-01 Bernhard Held <bernhard AT bernhardheld.de>
12916 * support/regression/generate-cases.py: place generated file in given sub directory
12917 * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12918 * support/regression/Makefile: improvements for 'make -j';
12919 side effect: it's simpler and faster now
12921 2003-03-31 Borut Razem <borut.razem AT siol.net>
12923 * src/z80/main.c: link-{port} and as-{port} defined without path
12924 * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12926 2003-03-31 Bernhard Held <bernhard AT bernhardheld.de>
12928 * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12930 2003-03-30 Borut Razem <borut.razem AT siol.net>
12932 * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12933 changed type of list parameter to set
12934 * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12935 * src/port.h: changed type of do_assemble() parameter to set
12936 * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12937 sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12938 definition of "cppoutfilename" macro with NULL value in preProcess()
12939 * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12940 * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12941 * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12942 replaced with set *binPathSet
12943 * shash_add() deallocates the item, if allready exsists, before adding the new one
12944 * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12946 2003-03-30 Scott Dattalo <scott AT dattalo.com>
12948 * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12949 a nested for loop bug in the PIC port
12950 * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12953 2003-03-29 Bernhard Held <bernhard AT bernhardheld.de>
12955 * support/Util/dbuf.h: remove C++ stuff to make it portable
12957 2003-03-28 Borut Razem <borut.razem AT siol.net>
12959 * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12960 literal strings in stringLiteral()
12961 * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12962 * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12965 2003-03-27 Paul Stoffregen <paul AT pjrc.com>
12967 * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12969 2003-03-26 <johan AT balder>
12971 * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12972 * src/ds390/gen.c (saveRegisters): catched symbol abuse
12973 * src/SDCCast.c (decorateType): fixed " -v < 3"
12975 2003-03-23 Bernhard Held <bernhard AT bernhardheld.de>
12977 * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12978 Added Lenny Story's debug infrastructure changes:
12979 * src/Makefile.in: added new files cdbFile.c and SDCCdebug.c
12980 * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12981 * src/cdbFile.c: added
12982 * src/SDCCdebug.c: added
12983 * src/SDCCdebug.h: added
12984 * src/SDCCast.c (createFunction)
12985 * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12986 * src/SDCCmain.c (parseCmdLine, main)
12987 * src/SDCCmem.c (redoStackOffsets)
12988 * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12991 * src/avr/gen.c (genAVRCode)
12992 * src/ds390/gen.c (gen390Code)
12993 * src/mcs51/gen.c (gen51Code)
12994 * src/pic/gen.c (genpic14Code)
12995 * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12996 * src/xa51/gen.c (genXA51Code)
12997 * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12999 2003-03-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13001 * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
13002 * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
13004 2003-03-22 <johan AT balder>
13006 * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
13008 2003-03-21 Bernhard Held <bernhard AT bernhardheld.de>
13010 * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
13011 * doc/cdbfileformat.lyx: added, written by Lenny Story
13012 * doc/Makefile: added cdbfileformat.lyx
13013 * doc/clean.mk: added cdbfileformat.lyx
13015 2003-03-20 Bernhard Held <bernhard AT bernhardheld.de>
13017 * src/mcs51/peeph.def: fix bug #705773
13019 2003-03-20 <johan AT balder>
13021 An sfr/sbit can have an "at #" AND an initializer
13022 * src/SDCCsymt.c (checkSClass):
13023 * src/SDCCmem.c (allocGlobal):
13024 * src/SDCCmem.c (allocLocal):
13025 * src/SDCCast.c (createBlock):
13027 2003-03-17 Bernhard Held <bernhard AT bernhardheld.de>
13029 * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
13031 2003-03-16 <johan AT balder>
13033 Undid the hackup of const and volatile, the problem is much bigger
13035 * src/SDCCast.c:1.171
13036 * src/SDCCglue.c:1.138
13037 * src/SDCCicode.c:1.146
13038 * src/SDCCsymt.c:1.150
13039 * src/SDCCval.c:1.65
13041 2003-03-15 Bernhard Held <bernhard AT bernhardheld.de>
13043 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
13044 * src/ds390/gen.c (genAddrOf): fixed bug #704087
13046 2003-03-13 <johan AT balder>
13048 Hackup const and volatile modifiers in type chains a bit:
13050 * src/SDCCast.c:1.169
13051 * src/SDCCglue.c:1.136
13052 * src/SDCCicode.c:1.143
13053 * src/SDCCsymt.c1.146
13054 * src/SDCCsymt.h1.59
13055 * src/SDCCval.c:1.63
13057 2003-03-12 <johan AT balder>
13059 * src/SDCCBBlock.h: more LRH debugging junk
13060 * src/SDCCcflow.h: more LRH debugging junk
13061 * src/SDCCloop.c: more LRH debugging junk
13062 * src/SDCC.y (struct_declaration): fixed bug #697590
13063 * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
13064 * src/ds390/gen.c (aopForRemat): fixed bug #700031
13065 * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
13067 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13068 * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
13069 test function names must now match exactly).
13070 * src/SDCCcse.c: added special case in findCheaperOp to allow
13071 extending a short integer. Makes less awful code for bug 700121 test case.
13073 2003-03-11 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13075 * as/mcs51/lkmain.c: Added ASlink-Warning to messages
13076 * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
13078 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13080 * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
13081 actually called (operandsNotEqual() was called for all
13082 operandsNotEqualX tests).
13084 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
13086 * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
13087 with shorter literals. Fixes bug 700121.
13089 2003-03-11 <johan AT balder>
13091 * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
13093 2003-03-11 Bernhard Held <bernhard AT bernhardheld.de>
13095 * src/SDCCloop.c (mergeRegions): an evil beast is dead
13096 * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
13098 2003-03-10 Borut Razem <borut.razem AT siol.net>
13100 * src/SDCCmain.c: pipe preprocessor's output
13101 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13102 * sdcc_vc_in.h: define pclose as _pclose for WIN32
13103 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13104 which closes all pipes in pipeSet set
13105 * src/SDCCset.c: free deleted item in function deleteSetItem()
13106 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13107 moved from z80 to src subproject
13108 * .version: increased version number to 2.3.4
13110 2003-03-10 Bernhard Held <bernhard AT bernhardheld.de>
13112 * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
13113 * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
13114 * support/regression/ports/xa51/spec.mk: fix typo
13116 2003-03-09 Bernhard Held <bernhard AT bernhardheld.de>
13118 * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
13120 2003-03-09 Borut Razem <borut.razem AT siol.net>
13122 * src/SDCCmain.c: pipe preprocessor's output
13123 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
13124 * sdcc_vc_in.h: define pclose as _pclose for WIN32
13125 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
13126 which closes all pipes in pipeSet set
13127 * src/SDCCset.c: free deleted item in function deleteSetItem()
13128 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
13129 moved from z80 to src subproject
13131 2003-03-09 Borut Razem <borut.razem AT siol.net>
13133 * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
13134 * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
13135 * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
13136 * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
13137 * src/SDCCglobl.h: unification of WIN32 native definitions
13139 2003-03-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13141 * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
13143 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
13145 * src/configure.in: check for endianess (even while cross-compiling)
13146 * src/configure: check for endianess (even while cross-compiling)
13147 * src/configure_in.h: check for endianess (even while cross-compiling)
13148 * src/avr/gen.c: remove old endianess stuff
13149 * src/mcs51/gen.c: remove old endianess stuff
13150 * src/ds390/gen.c: remove old endianess stuff
13151 * src/pic/gen.c: remove old endianess stuff
13152 * src/pic/genarith.c: remove old endianess stuff
13153 * src/pic/glue.c: fix endianess check
13154 * src/pic16/gen.c: remove old endianess stuff
13155 * src/pic16/genarith.c: remove old endianess stuff
13156 * src/pic16/glue.c: fix endianess check
13157 * src/xa51/gen.c: remove old endianess stuff
13158 * src/z80/gen.c: fix endianess check
13159 * src/SDCCglue.c: fix endianess check
13160 * src/ds390/peeph.def: fix bug 700036
13162 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
13164 * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
13165 * src/configure: find appropriate data-types on host for SDCC's int and long
13166 * src/configure.in: find appropriate data-types on host for SDCC's int and long
13167 * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
13168 * src/xa51/gen.c: use %d, not %ld for 4 byte variables
13170 2003-03-07 <johan AT balder>
13173 some minor cleanups before the big shot
13174 OP_DEFS and OP_USES now use Kevin's protection
13175 new option --nolabelopt
13177 * src/SDCCBBlock.c:
13186 * src/ds390/ralloc.c:
13187 * src/mcs51/ralloc.c:
13188 * src/pic/ralloc.c:
13189 * src/xa51/ralloc.c:
13190 * src/z80/ralloc.c:
13192 2003-03-06 Bernhard Held <bernhard AT bernhardheld.de>
13194 * src/pic/pcode.c (get_op): fix 64 bit warnings
13195 * src/pic/pcode.c (pCode2str): fix 64 bit warnings
13196 * src/SDCChasht.c (newHashTable): fix 64 bit warnings
13197 * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
13198 * support/regression/tests/malloc.c: fix 64 bit warnings
13200 2003-03-04 Bernhard Held <bernhard AT bernhardheld.de>
13202 * src/mcs51/gen.c (genMinus): fixed bug 696436
13204 2003-03-02 Borut Razem <borut.razem AT siol.net>
13206 * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13208 2003-02-26 Bernhard Held <bernhard AT bernhardheld.de>
13210 * configure.in: test for mkstemp
13211 * sdccconf_in.h: add HAVE_MKSTEMP
13213 2003-02-24 Bernhard Held <bernhard AT bernhardheld.de>
13215 * device/include/ctype.h: removed warning while using --stack-auto
13216 * device/include/malloc.h: removed warning while using --stack-auto
13217 * device/include/string.h: removed warning while using --stack-auto
13219 2003-02-23 Borut Razem <borut.razem AT siol.net>
13221 * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13222 because NDEBUG is defined (see man assert)
13223 * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13225 2003-02-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13227 * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13228 * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13230 2003-02-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13232 * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13233 * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13235 2003-02-18 <johan AT balder>
13237 * as/mcs51/asmain.c (asmbl): module can start with a digit
13238 * as/z80/asmain.c (asmbl): module can start with a digit
13240 2003-02-16 Bernhard Held <bernhard AT bernhardheld.de>
13242 * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13243 * src/asm.c: fix pipe() for Mingw32
13245 2003-02-15 Bernhard Held <bernhard AT bernhardheld.de>
13247 * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13248 * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13249 make -V work again; --c1mode reads now from stdin
13250 * doc/sdccman.lyx: added --c1mode
13251 * support/Util/SDCCerr.c: new messages for c1 mode
13252 * support/Util/SDCCerr.h: new messages for c1 mode
13253 * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13255 2003-02-15 <johan AT balder>
13257 * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13259 2003-02-14 Bernhard Held <bernhard AT bernhardheld.de>
13261 * doc/sdccman.lyx: Environment variables, -o and other minor things
13263 2003-02-14 <johan AT balder>
13265 * src/xa51/main.c: before anyone really tries to use it :)
13267 * Install doc's in share/sdcc/doc
13268 * removed some obsolete files
13269 * Do a proper make distclean and uninstall
13270 M Makefile.common.in
13273 M device/include/Makefile.in
13274 M device/lib/Makefile.in
13277 M sim/ucsim/doc/Makefile.in
13279 R src/avr/peeph.rul
13280 R src/xa51/peeph.rul
13281 M support/cpp2/Makefile.in
13282 M support/makebin/Makefile
13285 2003-02-13 Bernhard Held <bernhard AT bernhardheld.de>
13287 * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13289 2003-02-10 Borut Razem <borut.razem AT siol.net>
13291 * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13292 support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13293 * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13294 device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13295 support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13296 src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13297 src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13298 src/z80/Makefile.bcc: Borland Makefile cleanup
13299 * as/z80/Makefile.bcc: Added Borland Makefile
13300 * support/cpp2/borland.h: Removed
13302 2003-02-10 Bernhard Held <bernhard AT bernhardheld.de>
13304 * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13305 * src/SDCC.lex: new pragma NOIV
13306 * src/SDCCglobl.h: new pragma NOIV
13307 * src/SDCCmem.c: new pragma NOIV
13309 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
13311 * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13313 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
13315 * src/SDCCmain.c: signal handling is switched off by --debug
13316 * doc/Makefile: small fix for install; use clean.mk again
13317 * doc/clean.mk: clean *.pdf and *.html too
13319 2003-02-08 Bernhard Held <bernhard AT bernhardheld.de>
13321 * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13322 * device/lib/printfl.c: fix a ds390 bug by making it portable
13323 * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13324 * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13325 * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13326 * debugger/mcs51/cmd.c: converted multi-line string literals
13327 * sim/ucsim/globals.cc: converted multi-line string literals
13328 * src/SDCCmain.c: introduced signal handler to remove temp files
13329 * doc/Makefile: small tweaks, implement clean
13330 * doc: removed generated files
13332 2003-02-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13334 * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c: Applied
13335 patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13336 Address Record is not correctly generated for DS390."
13338 2003-02-02 Borut Razem <borut.razem AT siol.net>
13340 * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13341 * as/mcs51/asm.h: fixed compilation with Borland C
13342 * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13343 * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13344 * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13345 * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13346 src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13347 src/z80/Makefile.bcc: delete $(LIB) only if exist
13348 * src/Makefile.bcc, src/pic/Makefile.bcc: fixed compilation with Borland C
13350 2003-02-02 Bernhard Held <bernhard AT bernhardheld.de>
13352 * device/include/malloc.h: introduced NULL
13353 * device/include/string.h: introduced NULL
13354 * device/include/stdlib.h: introduced NULL
13355 * device/lib/_memcpy.c: removed NULL
13356 * device/lib/_strcat.c: removed NULL
13357 * device/lib/_strchr.c: removed NULL
13358 * device/lib/_strcmp.c: removed NULL
13359 * device/lib/_strcpy.c: removed NULL
13360 * device/lib/_strcspn.c: removed NULL
13361 * device/lib/_strlen.c: removed NULL
13362 * device/lib/_strncat.c: removed NULL
13363 * device/lib/_strncmp.c: removed NULL
13364 * device/lib/_strncpy.c: removed NULL
13365 * device/lib/_strpbrk.c: removed NULL
13366 * device/lib/_strrchr.c: removed NULL
13367 * device/lib/_strspn.c: removed NULL
13368 * device/lib/_strstr.c: removed NULL
13369 * device/lib/_strtok.c: removed NULL
13370 * device/lib/malloc.c: removed NULL, include own header
13372 2003-02-02 <johan AT balder>
13374 * 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
13375 * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13376 * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13377 * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13378 * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13379 * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13381 2003-02-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13383 * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13386 2003-02-01 <johan AT balder>
13388 * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13390 2003-01-31 <johan AT CP255758-A>
13392 * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13394 2003-01-30 <johan AT balder>
13396 * src/SDCCBBlock.c: automatic bug detection
13397 * src/SDCCicode.c: automatic bug detection
13399 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13401 * src/SDCCglobl.h: now --xram-size 0 works
13402 * src/SDCCmain.c: now --xram-size 0 works
13404 2003-01-29 <johan AT balder>
13406 * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13408 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13410 * as/mcs51/aslink.h: Added options --xram-size and --code-size
13411 * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13412 * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13413 * as/mcs51/lkmem.c: Added options --xram-size and --code-size
13414 * src/SDCCglobl.h: Added options --xram-size and --code-size
13415 * src/SDCCmain.c: Added options --xram-size and --code-size
13417 2003-01-28 Bernhard Held <bernhard AT bernhardheld.de>
13419 * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13420 * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13422 2003-01-27 <johan AT balder>
13424 * src/SDCC.y: fixed bug #613764
13426 2003-01-26 <johan AT balder>
13428 * src/SDCClrange.c: fixed Bernhard's "char * code ptr = &c"
13429 * src/SDCCsymt.h: fixed bug #673374
13430 * src/SDCCglue.c: fixed bug #661910
13431 * src/SDCCast.c: fixed bug #458099 and 673374
13433 2003-01-26 Bernhard Held <bernhard AT bernhardheld.de>
13435 * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13436 * as/mcs51/strcmpi.h: added
13437 * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13438 * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13439 * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13440 * as/mcs51/assym.c: strcmpi -> as_strcmpi
13441 * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13442 * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13443 * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13444 * as/mcs51/Makefile.aslink: new module strcmpi
13445 * as/mcs51/Makefile.asx8051: new module strcmpi
13446 * as/mcs51/Makefil.bcc: new module strcmpi
13447 * as/mcs51/Makefile.in: new module strcmpi
13448 * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13450 2003-01-26 <johan AT balder>
13452 * src/SDCCglue.c: reverted back to 1.124
13453 * src/SDCCast.c: reverted back to 1.156
13454 * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13456 2003-01-25 <johan AT balder>
13458 * src/SDCCglue.c: A better fix for bug #661910
13459 * src/SDCCast.c: A better fix for bug #661910
13460 * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13462 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
13464 * src/Makefile.in: remove spawn.o
13465 * src/SDCCmain.c: remove spawn.h
13466 * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13467 * src/spawn.c: removed
13468 * src/spawn.h: removed
13469 * support/regression/ports/ds390/spec.mk: link with -r
13471 2003-01-24 <johan AT CP255758-A>
13473 * src/ds390/gen.c (aopOp): fixed bug #667458
13474 * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13475 * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13476 (createIvalCharPtr): an ival doesn't always have a storage class anymore
13478 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
13480 * src/mcs51/peeph.def: better assembler identation by Frieder
13481 * src/mcs51/gen.c: better assembler identation by Frieder
13483 2003-01-22 Bernhard Held <bernhard AT bernhardheld.de>
13485 * as/z80/string.h: removed for gcc 3.2
13486 * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13487 * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13489 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
13491 * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13492 * src/SDCCpeeph.c (replaceRule): fix bug #663503
13493 * support/regression/Makefile: separate temp files for ports
13494 * support/regression/generate-cases.py: separate temp files for ports
13495 * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13496 * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13498 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
13500 * moved tinitalk to device/examples/ds390
13502 2003-01-14 Bernhard Held <bernhard AT bernhardheld.de>
13504 * as/mcs51/lkmem.c: rflag is for DS390
13505 * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13506 * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13507 (linkEdit): move mem- and map-files the same way as ihx-files
13508 * src/z80/main.c (_setDefaultOptions): removed --generic
13509 * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13510 * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13511 * src/pic/glue.c (picglue): --c1mode works again
13512 * src/pic16/glue.c (pic16glue): --c1mode works again
13513 * src/asm.c (printCLine): fix #660034
13515 2003-01-13 Bernhard Held <bernhard AT bernhardheld.de>
13517 * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13518 * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13519 * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13520 * as/mcs51/lkmem (summary): better fix for sp problem
13521 * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13522 * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13523 * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13524 remove --stack-after-data
13526 2003-01-12 Bernhard Held <bernhard AT bernhardheld.de>
13528 * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13529 * src/SDCCutil.c (join): ugly bug: missing '\0'
13530 * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13532 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
13534 * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13536 * src/pic/main.c (_asmCmd): gpasm supports -o
13537 * src/z80/main.c: more general macros
13538 * device/lib/Makefile.in: remove intermediate files
13540 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
13542 * .version: Bumped version number to 2.3.3
13543 * src/SDCCBBlock.c: new option -o
13544 * src/SDCCglobl.h: new option -o
13545 * src/SDCCglue.c: new option -o
13546 * src/SDCCmain.c: new option -o
13547 * src/asm.c: new option -o
13548 * src/ds390/main.c: new option -o
13549 * src/pic/glue.c: new option -o
13550 * src/pic/pcode.c: new option -o
13551 * src/pic/ralloc.c: new option -o
13552 * src/pic16/glue.c: new option -o
13553 * src/pic16/pcode.c: new option -o
13554 * src/pic16/ralloc.c: new option -o
13555 * src/z80/main.c: new option -o
13556 * device/lib/Makefile.in: use -o
13557 * support/regression/ports/ds390/spec.mk: use -o
13558 * support/regression/ports/gbz80/spec.mk: use -o
13559 * support/regression/ports/mcs51/spec.mk: use -o
13560 * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13561 * support/regression/ports/z80/spec.mk: use -o
13562 * support/regression/ports/ucz80/spec.mk: use -o
13563 * support/regression/ports/xa51/spec.mk: use -o
13564 * support/regression/fwk/lib/timeout.c: fix usage string
13566 2003-01-09 Bernhard Held <bernhard AT bernhardheld.de>
13567 * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13569 2003-01-07 <johan AT balder>
13571 * src/SDCCast.c (decorateType): fixed bug #600035
13573 2003-01-07 Bernhard Held <bernhard AT bernhardheld.de>
13574 * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13575 * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13576 * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13577 * src/pic/pcode.c: outcommented unused variable to remove warnings
13578 * src/pic/ralloc.c: outcommented unused variable to remove warnings
13580 2003-01-06 <karl AT turbobit.com>
13581 * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13584 2003-01-06 <johan AT balder>
13586 * src/SDCCicode.c: fixed array add
13588 2002-01-05 Bernhard Held <bernhard AT bernhardheld.de>
13589 * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13590 * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13592 2003-01-04 <johan AT balder>
13594 * src/SDCCval.c (getNelements): fixed the initialized array of structures
13596 2002-12-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13597 * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13599 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
13600 * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13601 * support/regression/tests/bug-524697.c: fit mem usage into 8032
13603 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
13604 * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13606 2002-12-27 Bernhard Held <bernhard AT bernhardheld.de>
13607 * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13609 2002-12-26 Bernhard Held <bernhard AT bernhardheld.de>
13610 * src/mcs51/main.c: removed {bindir}{sep} from aslink
13612 2002-12-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13614 * in /sdcc/as/mcs51/ changed these files in order to create an
13615 aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13616 lkmain.c. Also added: lkmem.c and lkaomf51.c. Changed the
13617 following files to include the previous two files: aslink.dsp,
13618 Makefile.aslink, Makefile.bcc, and Makefile.in.
13620 * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13621 .adb instead of .cdb
13623 2002-11-09 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13625 * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13626 value from option --iram-size.
13628 2002-09-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13630 * /sdcc/as/mcs51/lklist.c: added boundary check before using
13633 2002-09-18 <wiml AT hhhh.org>
13635 * SDCClrange.h: exposed setFromRange() and setToRange()
13636 * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13637 packRegsForAccUse() (bug 542397)
13638 * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13639 multiple times and emitting the fetch operations more than once
13640 added aopGetUsesAcc() function to allow binary operators to
13641 fetch their operands in the correct order; made genMinus() emit
13642 compact code for X = LITERAL - Y
13644 2002-09-00 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13645 * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13646 sprintf() in line 1267.
13648 2002-09-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13649 * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13652 2002-09-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13653 Changes to aslink (All the changes are marked with 'JCF'):
13655 * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13658 * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13659 area BSEG. Also moves, if possible, the DATA area down into the internal
13660 ram so more space is available.
13662 * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13665 * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13666 not bytes. Function summary() which creates a memory usage summary
13667 file with extension .mem. Reports of overlaping stack and small stack
13668 size. If the space for the stack is less than 16 bytes aslink trows a
13671 * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13672 the 8051. Option 'y' for memory summary output file.
13674 Changes to sdcc (All the changes are marked with 'JCF'):
13676 * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13678 * /sdcc/src/SDCCglue.c: If a register bank is used, creates an
13679 overlaying area for it (uses RegBankUsed[4]).
13681 * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13682 bank zero as used by default. By default aslink locates the stack
13683 (equivalent to --stack-after-data). Pass option 'y' to aslink for
13684 the creation of the .mem file. Delegates the allocation of data area
13685 to aslink (it is not longer 0x30 by default). If --stack-loc passes
13686 the begining of the stack area to aslink.
13688 * /sdcc/src/SDCCmem.c: If a register bank is used, marks it so
13689 glue() in SDCCglue.c creates an area for it.
13691 2002-09-03 Borut Razem <borut.razem AT siol.net>
13692 * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13693 sdcc/src/pic/glue.c:
13694 introduced atexit() handler for teporay files removal in case of
13695 errors, assertions, ...
13697 2002-08-29 Borut Razem <borut.razem AT siol.net>
13698 * sdcc/support/cpp2/auto-host_vc_in.h:
13699 re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13700 with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13701 Maybe there is a similar problem with BORLANDC? It should be checked!
13703 * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13704 corrected improper use of assert: the assignment to clr variable was done inside the assert.
13705 In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13706 was not executed, and the compiler (cl) launched a warning:
13707 ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13709 2002-08-28 Bernhard Held <bernhard AT bernhardheld.de>
13710 * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13712 2002-08-28 Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13713 * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13715 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13716 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13717 sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13718 sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13719 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13720 sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13721 sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13722 - added Release configuration in VS projects
13723 - review of compiler an linker options
13724 - VC .exe files are generated in bin_vc directory, not to interfere
13725 with binaries generated from other projects (cygwin, mingw, bcc ...)
13727 * sdcc/src/yacc.dsp: added
13729 * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13730 added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13731 and insert the version number definitions from .version
13733 * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13735 * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13736 added - genarate auto-host.h using auto-host_vc_in.h as template
13739 removed from CVS, generated automatically
13741 2002-08-25 Bernhard Held <bernhard AT bernhardheld.de>
13742 * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13744 2002-08-11 Borut Razem <borut.razem AT siol.net>
13745 * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13747 2002-08-10 Borut Razem <borut.razem AT siol.net>
13748 * src/SDCCmain.c (main):
13749 file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13750 platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13751 The consequence was that some temporary files were not removed.
13754 unification of code in functions tempfilename() and tempfile():
13755 function tempnam() is defined in Visual Studio 6.0 and .NET
13757 * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13759 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13760 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13761 - removed compiler command line option /WX: Treats all warnings as errors
13762 - update a list of source files, included into the project
13764 * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13765 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13766 changed project type to Generic Project so that can be correcly converted to VS.NET project
13768 * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13770 * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13772 * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13774 * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13775 added return 0 statements after assert() to make compiler happy
13777 * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13778 added newline in the def file to keep MSC compiler satisfied
13780 * sdcc/src/z80/gen.c:
13781 - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13782 so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13783 - solved MSC error in function aopDump()
13785 * sdcc_vc.h: define PREFIX as "\\sdcc"
13787 2002-07-18 Bernhard Held <bernhard AT bernhardheld.de>
13788 * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13790 2002-06-22 Scott Dattalo <scott AT dattalo.com>
13791 * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13792 - Rewrote the register banking algorithm.
13793 - Added pCode live-range analysis to registers (for now, only non-used and
13794 singly-used registers optimized away)
13796 * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13798 * 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.
13800 2002-05-10 Scott Dattalo <scott AT dattalo.com>
13801 * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13803 2002-04-22 Michael Hope <michaelh AT vroom>
13805 * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13807 * configure.in (DD_COPT): Added include support required for gbdk.
13809 * .version: Bumped version number just to increase it.
13811 * src/SDCCmain.c: Added -nostdinc to the default options.
13813 2002-04-15 Michael Hope <michaelh AT vroom>
13815 * device/lib/z80/printf.c (sprintf): Added.
13817 * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13819 * src/z80/peeph.def: Added transpose redundent load rule.
13821 * src/z80/main.c: Added force callee saves for jaune.
13823 * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13825 * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13827 2002-03-28 Johan Knol <johan AT balder>
13829 * src/SDCCval.c: fixed bug #532436
13831 2002-03-14 Scott Dattalo <scott AT dattalo.com>
13833 Added "char *Processor" field to the port structure.
13836 Added -p option. Allows port dependent processor to be specified.
13839 Initialized the new field char *Processor field to NULL in all ports
13842 Compiler generated registers for interrupt context saving
13843 were not getting allocated.
13845 2002-03-16 Sandeep Dutta <sandeep AT ddi.com>
13848 Fixed left shift. Will promote the left side of a left shift
13849 if a) left shifting more than size of operand or b) when assigned
13850 to something size > size of left side
13852 2002-03-14 Scott Dattalo <scott AT dattalo.com>
13854 tons of changes. Register allocation has been
13855 rewritten. Added customization for the various PICs. Flow
13856 analysis is restructured. ...
13858 * src/pic/device.h:
13861 * src/pic/device.c:
13862 Added. device.c is a PIC port hack to accomodate variations
13865 2002-03-13 Michael Hope <michaelh AT vroom>
13867 * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled. Yeah.
13869 2002-03-04 johanknol <johanknol AT manik>
13871 * /src/SDCCval.c: fixed
13873 const unsigned char arr[][2] = { { 0, 1 } };
13874 t18.c:1: error: Initializer element is not constant
13876 2002-03-04 bela <bela AT manik>
13878 * /device/include/mcs51reg.h:
13879 ds89c420 register definition update
13881 2002-03-03 <johan AT FRIJA>
13883 * support/Util/SDCCerr.c: did something, but don't no why anymore
13885 * support/regression/tests/bug-524691.c: made it a little less shy
13887 * src/SDCCast.c (decorateType): fixed bug #524697
13889 * src/SDCCast.c: made some lineno improvements
13891 * src/SDCCval.c (getNelements): changed warning to error
13893 * src/SDCCglue.c (printIvalArray): changed warning to error
13895 * src/SDCCicode.c: fixed a warning for mingw
13897 * src/SDCCast.c (decorateType): fixed the << promotion for ops
13899 * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13901 2002-03-02 Sandeep Dutta <sandeep AT ddi.com>
13903 * src/ds390/peeph.def:
13904 Added some more peephole rules
13906 * src/ds390/gen.c: Various fixes & enhancements
13908 * src/SDCClrange.c, src/SDCClrange.h:
13909 functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13911 * src/ds390/ralloc.c:
13912 various fixes & enhancements (ds390) specific
13914 * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13915 Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13918 * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13920 2002-03-02 <johan AT FRIJA>
13922 * src/SDCCast.c (decorateType): fixed bug #524708
13924 * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13926 * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13928 2002-03-01 Michael Hope <michaelh AT vroom>
13930 * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13932 * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13934 2002-03-01 <johan AT FRIJA>
13936 * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13938 * src/SDCCast.c (decorateType): fixed bug #524209
13940 * src/SDCCval.c (valNot): fixed bug #524195
13942 2002-02-26 <johan AT balder>
13944 * src/xa51/gen.c: fixed a warning
13946 * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13948 * src/SDCCast.c (decorateType): fixed bug #522534
13950 2002-02-23 <johan AT balder>
13952 * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13954 2002-02-22 <johan AT balder>
13956 * src/SDCCast.c: fixed bug #514865
13958 * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13960 2002-02-21 Sandeep Dutta <sandeep AT ddi.com>
13962 * sdcc/src/SDCCloop.c:
13963 Previous fix was not good. basic blocks that have "break" or "return" are
13964 not really partof a loop , but live ranges used in these blocks should
13965 be live thru the entire loop, so set partOfLoop but don't add them to
13968 2002-02-21 <johan AT FRIJA>
13970 * src/SDCCcse.c: fixed bug #514308
13972 2002-02-20 Sandeep Dutta <sandeep AT ddi.com>
13975 Fixed BUG #519583. If a conditional block ended in a return/break
13976 statement inside a loop, it was not being considered part of the loop.
13978 * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13980 2002-02-10 Karl Bongers <karl AT turbobit.com>
13983 Fixed up SDCDB debugger somewhat. Updated debugger/README
13984 with lots of comments and notes.
13986 * device/examples/test2.c:
13987 Fix bug, "red" variable not being initialized(compiler complained).
13989 * device/examples/Makefile, examples/test3.c:
13990 Add Makefile in device/examples folder, compiles test3.c
13991 for use as a multiple module SDCDB test case.
13993 * sim/ucsim/cmd.src/cmdset.cc:
13994 Took out debug printfs in ucsim "next" command.
13996 * sim/ucsim/xa.src:
13997 Karl and Johan start ucsim XA support. Most dissassembly working,
13998 about 75% emulation done(plenty of work remaining).
14000 * sim/ucsim/z80.src:
14001 Add Z80 support to ucsim, add test-ucz80 regression test,
14002 notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
14003 Notice z80 compiler fails on examples/test3.c/crc code.
14005 2002-01-30 Sandeep Dutta <sandeep AT ddi.com>
14007 * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
14008 Added support for --parms-in-bank1
14010 * src/ds390/peeph.def:
14011 added a few more peephole optimzations
14013 * src/ds390/main.c:
14014 1) added __builtin_inp & __builtin_outp used to read in data of given length
14015 from a memory mapped port
14016 2) added __builtin_memcmp
14017 3) added __builtin_swapw swap bytes of a short
14019 * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
14020 1) handle multiple send & receives from register bank1
14021 2) ralloc can now allocate DPTR1 to some liveRanges
14023 * src/SDCCsymt.c, src/SDCCsymt.h:
14024 changes to handle multiple sends & receives
14026 * src/SDCCptropt.h:
14027 added some pointer arithmetic optimization
14029 * src/SDCCptropt.c:
14030 added some pointer arithmetic optimizations but not stable yet so not
14031 called from anywhere (will get this working shortly)
14033 * src/SDCCopt.c: fixed for multiple sends & receives
14036 1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
14037 2) preprocessing done AFTER port->finalizeoptions . This allows ports to
14038 set preprocessor defines (depending on options)
14040 * src/SDCCicode.c, src/SDCCicode.h:
14041 changes made to handle multiple sends & receives
14044 Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
14046 * src/SDCCcse.c, src/SDCCcse.h:
14047 added function findbackward def (to be used in upcoming optimization)
14049 * src/SDCCcflow.c, src/SDCCcflow.h:
14050 added function returnAtEnd - to determine if a basic block terminates with
14053 * src/SDCCast.c, src/SDCCast.h:
14054 added option parms-in-bank1
14056 * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
14057 * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
14058 * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
14059 adjusted for --parms-in-bank1 option
14061 * device/include/string.h:
14062 donot redefine "reentrant" keyword
14064 * device/include/ds80c390.h: Added some more SFRs
14066 2002-01-28 Bernhard Held <bernhard AT bernhardheld.de>
14068 * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
14070 2002-01-26 Bernhard Held <bernhard AT bernhardheld.de>
14072 * src/SDCCast.c (funcOfType): fix usage of double --float-reent
14074 2002-01-22 Bernhard Held <bernhard AT bernhardheld.de>
14076 * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
14078 2002-01-18 Paul Stoffregen <paul AT pjrc.com>
14080 * Added --xram-movc option
14082 2002-01-13 Bernhard Held <bernhard AT bernhardheld.de>
14084 * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
14086 2002-01-11 Johan Knol
14088 * Added math lib of Jesus Calvino-Fraga
14090 2002-01-08 Bernhard Held <bernhard AT bernhardheld.de>
14092 * src/SDCCmain.c (processFile): fix processing of ../../src.c
14093 * support/regression/Makefile: new target test-mcs51-stack-auto
14094 * support/regression/ports/mcs51-stack-auto/spec.mk: added
14096 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
14098 * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
14100 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
14102 * support/regression/ports/mcs51/support.c: correct setup of timer / UART
14104 2002-01-03 Bernhard Held <bernhard AT bernhardheld.de>
14106 * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
14108 * src/SDCCglue.h: add definition for printIvalChar()
14110 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
14112 * src/SDCCast.c: fix #498138 by Johan
14114 * src/SDCCglue.c: fix #498138 by Johan
14116 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
14118 * support/regression/Makefile: fix clean
14120 * support/regression/ports/ds390/support.c: fix transmission of last character
14122 2001-12-29 Sandeep Dutta <sandeep AT ddi.com>
14124 * /sdcc/src/ds390/gen.c:
14125 a) improved computing address of stack variable
14126 b) took out some #if 0 code
14127 c) improved parmBytes adjustment
14128 d) improved genPlusIncr & genMinusIncr
14129 e) genCmp could generate bad code (when left assigned to DPTR)
14130 f) Fixed bug in hasInc
14132 * /sdcc/src/ds390/ralloc.c:
14133 a) packRegsForSupport could mess up live information (Fixed)
14134 b) packRegsDPTRuse could be incorrect for left & right shift
14136 * /sdcc/src/mcs51/ralloc.c:
14137 packRegsForSupport could mess up the live information (Fixed)
14139 * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
14141 * /sdcc/src/SDCCast.c:
14142 can reverse a loop even if function call is present as long
14143 as the loop control variable is local & is not passed as parameter
14145 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
14147 * /sdcc/ChangeLog: *** empty log message ***
14149 * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
14150 More builtin function additions for TININative
14152 * /sdcc/src/ds390/ralloc.c:
14153 Had broken the regression testsuite
14155 * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
14157 * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
14158 Added funcattr hasStackParms will be set for reentrant functions when there
14159 are paramteres on the stack, this helps in minimizing frame pointer generation
14160 typeFromStr can handle function pointers now
14162 * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
14163 *** empty log message ***
14165 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
14167 * /src/ds390/gen.c, /src/ds390/main.c:
14168 More builtin function additions for TININative
14170 * /src/ds390/ralloc.c:
14171 Had broken the regression testsuite
14173 * /src/SDCCast.c: Fixed a bug in dumptree
14175 * /src/SDCCsymt.c, /src/SDCCsymt.h:
14176 Added funcattr hasStackParms will be set for reentrant functions when there
14177 are paramteres on the stack, this helps in minimizing frame pointer generation
14178 typeFromStr can handle function pointers now
14180 * /doc/builtins.txt, /doc/TININative.txt:
14181 *** empty log message ***
14184 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
14186 * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
14187 ALPHA version for -mTININative
14189 * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
14190 updated to reflect changes in the port structure
14193 added function do_assemble (similar to do_link) if non-null this function
14194 will be called to do assembly (-mTININative) requires a multi command
14196 added function genAssemblerEnd will be called to generate assembler Epilogue
14199 added _JavaNative to debug info printing
14201 * /src/SDCCmain.c: added option --tini-libid
14202 added port->do_assemble function (-mTININative) has a multi command assemble
14204 * /src/SDCCglue.c: Disabled "constExpr" check
14205 added port->genAssemblerEnd function
14207 * /src/SDCCglobl.h: Added option --tini-libid value
14210 tookout optimizeCompare from the header (has no external references)
14212 * /src/SDCCast.c: made one more function "static"
14214 2001-12-23 Michael Hope <michaelh AT juju.net.nz>
14216 * src/z80/mappings.i: Added z80asm support.
14218 * src/z80/main.c: Added z80asm support on --asm=z80asm
14220 * src/z80/gen.c: Fixed asm portability issues.
14222 * src/asm.c (tvsprintf): Removed old code, added 'N' for function name. For extern support.
14224 * src/SDCCglue.c (printExterns): Added global/extern split.
14226 2001-12-17 Bernhard Held <bernhard AT bernhardheld.de>
14228 * support/regression/Makefile: added test for mcs51 model large
14230 * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14232 * support/regression/ports/gbz80/spec.mk: added -mgbz80
14234 2001-12-05 Michael Hope <michaelh AT juju.net.nz>
14236 * src/diff.1 (Index): Many, many optmisiations. Dhrystone up to 201.
14238 1904-01-06 Michael Hope <michaelh AT juju.net.nz>
14240 * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14242 * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14244 2001-12-02 Bernhard Held <bernhard AT bernhardheld.de>
14246 * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14248 * support/regression/tests/simplefloat.c: Port to mcs51.
14250 2001-11-25 Michael Hope <michaelh AT juju.net.nz>
14251 * support/regression/tests/bug-485362.c: Added.
14253 * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14255 * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14257 * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14259 * src/z80/gen.c (aopDump): Added a dump function.
14261 2001-11-25 Bernhard Held <bernhard AT bernhardheld.de>
14262 * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14264 * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14266 * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14268 * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14270 * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14272 * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14274 * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14276 * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14278 * support/regression/ports/ds390/support.c: Use tinibios.
14280 * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14282 2001-11-23 Michael Hope <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14284 * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14285 (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14287 * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14289 * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14291 2001-11-18 Michael Hope <michaelh AT juju.net.nz>
14293 * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14295 * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14296 (packRegsForIYUse): Created and optimised.
14298 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
14300 * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14301 2001-11-18 Bernhard Held <bernhard AT bernhardheld.de>
14303 * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14305 * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14307 * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14309 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
14311 * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14313 * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14315 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
14317 * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14319 * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14321 * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14323 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
14325 * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14326 (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14327 (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14329 * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14331 * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14332 (genNotFloat): Added.
14333 (genUminusFloat): Added.
14335 * device/lib/z80/Makefile: Added floating pt stubs.
14337 * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14339 * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14341 * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14343 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
14345 * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14347 * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14349 * sdcc/support/regression/Makefile: Add port ds390.
14351 * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14353 * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14355 * sdcc/support/regression/ports/ds390/spec.mk: Added.
14357 * sdcc/support/regression/ports/ds390/support.c: Added.
14359 * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14361 * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14363 * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14365 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
14367 * device/include/malloc.h: Added z80 and gbz80 support.
14369 * device/lib/gbz80/heap.s: Added.
14371 * device/lib/z80/heap.s: Added.
14373 * device/lib/malloc.c: Added z80 and gbz80 support.
14375 * support/regression/tests/malloc.c (testMalloc): Added.
14377 * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14379 * support/regression/tests/bug-478094.c: Added.
14381 * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14383 2001-11-04 Bernhard Held <bernhard AT bernhardheld.de>
14385 * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14387 * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14389 * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14391 * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14393 * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14395 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
14397 * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14399 2001-11-03 Michael Hope <michaelh AT juju.net.nz>
14401 * support/regression/tests/bug-477927.c: Added.
14403 * src/z80/peeph.def: Added minor rules.
14405 * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14407 * src/z80/peeph.def: Added jump optimisation modification.
14409 2001-11-01 Michael Hope <michaelh AT juju.net.nz>
14411 * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14413 2001-10-30 Michael Hope <michaelh AT juju.net.nz>
14415 * support/regression/tests/funptrs.c: Added.
14417 2001-10-29 Michael Hope <michaelh AT juju.net.nz>
14419 * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14421 2001-10-28 Michael Hope <michaelh AT juju.net.nz>
14423 * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14425 * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14427 * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14428 (movLeft2ResultLong): Created.
14430 * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14431 (joinPushes): Added. Joins two char pushes into a word push.
14433 2001-10-27 Michael Hope <michaelh AT juju.net.nz>
14435 * support/cpp2/Makefile.in (install): Added creation of dest dir.
14437 * support/makebin/Makefile (install): Added creation of dest dir.
14439 2001-10-24 Karl Bongers <karl AT turbobit.com>
14441 * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14443 2001-10-21 Michael Hope <michaelh AT juju.net.nz>
14445 * src/z80/ralloc.c: Turned off faulty pack for one use.
14447 * src/z80/peeph-gbz80.def: Removed redundent restart options.
14449 * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14451 2001-10-21 Bernhard Held <bernhard AT bernhardheld.de>
14453 * support/regression/Makefile: Improved clean
14455 * support/regression/ports/gbz80/spec.mk: Added clean
14457 * support/regression/ports/host/spec.mk: Added clean
14459 * support/regression/ports/z80/spec.mk: Added clean
14461 * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14463 * support/regression/ports/mcs51/timeout.c: little improvements
14465 2001-10-17 Michael Hope <michaelh AT juju.net.nz>
14467 * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14469 * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14471 * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14473 2001-10-16 Bernhard Held <bernhard AT bernhardheld.de>
14475 * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14477 * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14479 2001-10-13 Michael Hope <michaelh AT juju.net.nz>
14480 * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14482 * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14484 * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14486 * src/mcs51/main.c (_linkCmd): Added bin path to command.
14488 * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14490 * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14492 * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14494 * support/regression/tests/longor.c: Added.
14496 2001-10-11 Bernhard Held <bernhard AT bernhardheld.de>
14498 * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14500 * as/mcs51/aslink.h: define PATH_MAX
14502 * as/mcs51/asm.h: define PATH_MAX
14504 * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14506 * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14508 * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14510 * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14512 * src/SDCCglobl.h: define PATH_MAX
14514 * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14516 * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14518 2001-10-11 Michael Hope <michaelh AT juju.net.nz>
14520 * src/z80/gen.c (gencjneshort): Fixed
14522 * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14524 2001-10-09 Michael Hope <michaelh AT juju.net.nz>
14526 * support/regression/tests/bug-469671.c: Added.
14528 * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14530 2001-10-08 Michael Hope <michaelh AT juju.net.nz>
14532 * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14534 * src/z80/gen.c (genPlus): Fixed to work with extended stack. Also fixed genMinus, genCmp. genUMinus is still left.
14536 2001-10-08 Bernhar Held <bernhard AT bernhardheld.de>
14538 * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14540 * src/device/lib/_mulint.c : removed hint: nooverlay bug
14542 * src/device/lib/_mullong.c : removed hint: nooverlay bug
14544 * src/device/lib/_divuint.c : removed hint: nooverlay bug
14546 * src/device/lib/_divulong.c: removed hint: nooverlay bug
14548 * src/device/lib/_moduint.c : removed hint: nooverlay bug
14550 * src/device/lib/_modulong.c: removed hint: nooverlay bug
14552 2001-10-07 Michael Hope <michaelh AT juju.net.nz>
14554 * 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.
14556 * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all. Fixes runtime segfault.
14558 * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14560 2001-10-07 <johan AT FRIJA>
14562 * device/lib/gets.c (gets): fixed the return value.
14564 2001-10-06 Michael Hope <michaelh AT juju.net.nz>
14565 * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14567 * 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.
14569 * 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.
14571 * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14573 * src/pic/gen.c: Removed Safe_strdup.
14575 * configure.in: Added option to enable libgc support.
14577 * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14578 (bitVectUnion): Optimised.
14579 (bitVectIntersect): Optimised.
14580 (bitVectBitsInCommon): Optimised.
14581 (bitVectCplAnd): Optimised.
14583 * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it. Sigh.
14585 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14587 * src/SDCCmain.c: distinguish between assembler debug and plain options
14589 * src/avr/main.c: remove standard assembler options
14591 * src/ds390/main.c: remove standard assembler options
14593 * src/mcs51/main.c: remove standard assembler options
14595 * src/port.h: removed "PENDING" comment
14597 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14599 * src/device/lib/_mulint.c : new, with assember functions
14601 * src/device/lib/_mullong.c : new, with assember functions
14603 * src/device/lib/_divuint.c : with assember functions
14605 * src/device/lib/_divsint.c : with assember functions
14607 * src/device/lib/_divulong.c: with assember functions
14609 * src/device/lib/_divslong.c: with assember functions
14611 * src/device/lib/_moduint.c : with assember functions
14613 * src/device/lib/_modsint.c : with assember functions
14615 * src/device/lib/_modulong.c: with assember functions
14617 * src/device/lib/_modslong.c: with assember functions
14619 * src/device/lib/libint.lib: replaced _muluint.c and _mulsint.c by _mulint.c
14621 * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14623 * src/device/lib/Makefile.in: replaced _muluint.c and _mulsint.c by _mulint.c
14624 replaced _mululong.c and _mulslong.c by _mullong.c
14626 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14628 * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14630 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14632 * src/SDCCglue.c: test, if win32api is available for MINGW
14634 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14636 * src/SDCCsymt.c: no more _modifier in printTypeChain()
14637 * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14638 * support/regression/ports/gbz80/spec.mk: removed GENERIC
14639 * support/regression/ports/host/spec.mk: removed GENERIC
14640 * support/regression/ports/mcs51/spec.mk: removed GENERIC
14641 * support/regression/ports/z80/spec.mk: removed GENERIC
14643 2001-10-01 Michael Hope <michaelh AT juju.net.nz>
14645 * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14647 * support/regression/tests/bug-467035.c: Created.
14649 2001-10-01 <johan AT FRIJA>
14651 * src/SDCC.y: fixed bug #466586 part 1
14653 2001-10-01 Johan Knol <johan.knol AT iduna.nl>
14655 * SDCCicode.c: z80 has no generic pointers
14656 * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14658 2001-09-30 Michael Hope <michaelh AT juju.net.nz>
14660 * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14662 2001-09-29 Michael Hope <michaelh AT juju.net.nz>
14664 * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14666 * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14668 2001-09-25 Michael Hope <michaelh AT juju.net.nz>
14670 * configure.in: Fixed up so that ucsim is only configured once.
14672 * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14674 * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14675 (getPathDifference): As above.
14677 * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory. Fixed case where pre-processing only.
14679 * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14681 2001-09-23 Michael Hope <michaelh AT juju.net.nz>
14682 * .version: Updated to 2.3.1
14684 * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14685 Added copyright header.
14687 * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14688 (assemble): Added support for macro based assembler commands.
14689 (linkEdit): Added support for macro based linker commands.
14690 (preProcess): Changed the pre-processor to use macros.
14691 (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14692 (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14694 * device/lib/z80/crt0.s: Added module name for debugging.
14696 2001-09-20 Michael Hope <michaelh AT juju.net.nz>
14698 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14700 * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14702 * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14704 * src/Makefile.in: Added SDCCmacro and SDCCutil
14706 2001-09-19 Michael Hope <michaelh AT juju.net.nz>
14708 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14710 2001-09-16 <johan AT FRIJA>
14712 * 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.
14714 2001-09-15 <johan AT FRIJA>
14716 * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14717 * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14719 2001-09-11 <johan AT FRIJA>
14721 * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14723 2001-09-10 Michael Hope <michaelh AT juju.net.nz>
14725 * support/regression/tests/bug-460444.c: Added test case.
14727 * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14728 (genCast): Added justification for all of the asserts.
14730 2001-09-10 Bernhard Held <bernhard AT bernhardheld.de>
14732 * support/regression/support.c: _xdata replaced by xdata
14734 * support/regression/spec.mk: removed _generic
14736 2001-09-09 Michael Hope <michaelh AT juju.net.nz>
14738 * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14740 * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14741 (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14743 * src/z80/peeph.def: Added a rule to optimise shift then compare.
14745 * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14747 * support/regression/tests/bug-460010.c: Added test case.
14749 * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14751 2001-09-09 Bernhard Held <bernhard AT bernhardheld.de>
14753 * support/regression/Makefile: inter-port-clean adjusted for mcs51
14755 * support/regression/testfwk.c: removed workaround for bug #436344
14757 * support/regression/tests/bp.c: use less memory with mcs51
14759 * support/regression/tests/bug-441448.c: use less memory
14761 * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14763 * support/regression/collate-results.py: typo
14765 2001-09-08 Michael Hope <michaelh AT juju.net.nz>
14767 * support/regression/tests/fetchoverlap.c: Added new test case.
14769 * support/regression/tests/bp.c: Added new test case.
14771 * support/regression/tests/bug-448984.c: Added new test case.
14773 * support/regression/tests/pow2shifts.c: Added new test case.
14775 * src/z80/gen.c: Turned off the noise it normally generates for the release.
14776 (genlshTwo): Fixed right shift for count > 8.
14778 * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14780 2001-09-08 <johan AT FRIJA>
14782 * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14784 2001-09-07 <johan AT FRIJA>
14786 * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14788 * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14790 2001-09-06 <johan AT FRIJA>
14792 * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14793 * bernhard noted me at this: "() equals to (void)" (1.38)
14795 2001-09-05 <johan AT FRIJA>
14797 * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14799 2001-09-04 <johan AT FRIJA>
14801 * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14804 2001-09-04 Paul Stoffregen <paul AT pjrc.com>
14806 * pragma noinduction broke memcpy on mcs51 large model. Moved it inside z80 optimization
14808 2001-09-03 Michael Hope <michaelh AT juju.net.nz>
14810 * link/z80/aslink.h: Fixed path for PATH_MAX
14812 2001-09-02 Michael Hope <michaelh AT juju.net.nz>
14814 * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14816 * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14818 * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14820 * 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.
14822 2001-09-01 Michael Hope <michaelh AT juju.net.nz>
14824 * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14825 (genCmp): Fixed up genCmp for the GB with longs.
14827 * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14829 * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14831 * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14833 * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14835 2001-08-30 Paul Stoffregen <paul AT pjrc.com>
14837 * added peepholes 223 to 231 to mcs51 port. These improve code when using large model.
14839 2001-08-30 Michael Hope <michaelh AT juju.net.nz>
14841 * 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.
14843 * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14845 2001-08-29 Michael Hope <michaelh AT juju.net.nz>
14847 * link/z80/aslink.h: Fixed long file name support. Is now based off PATH_MAX instead of a constant.
14849 * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14851 2001-08-30 Bernhard Held <bernhard AT bernhardheld.de>
14853 * sim/ucsim/configure: little improvement of Cygwin-detection
14854 * sim/ucsim/configure.in: little improvement of Cygwin-detection
14855 * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14856 * support/regression/tests/bug-221100.c: small changes for mcs51
14857 * support/regression/tests/bug-221168.c: small changes for mcs51
14858 * support/regression/tests/bug-227710.c: small changes for mcs51
14859 * support/regression/tests/staticinit.c: small changes for mcs51
14860 * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14861 * as/mcs51/lklex.c: accept everything as symbol name in rel-files, bug fix ID 452601
14862 * as/mcs51/lksym.c: accept everything as symbol name in rel-files, bug fix ID 452601