* src/SDCCast.c (createFunction): also generate non-inlined version of
[fw/sdcc] / ChangeLog
1 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2
3         * src/SDCCast.c (createFunction): also generate non-inlined version of
4           function for functions declared as "static inline"
5         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
6           function can be inlined after non-inlined version generated.
7
8 2007-05-10 Borut Razem <borut.razem AT siol.net>
9
10         * support/scripts/gen_known_bugs.pl: added script
11           which generates knownbugs.html
12
13 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
14
15         * doc/knownbugs.html: updated for release 2.7.0
16
17 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
18
19         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
20
21 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
22
23         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
24           (throughout): updated generating comments
25         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
26           (throughout): updated generating comments
27         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
28           rule instead of at the second, or it might skip lines when removing the
29           complete match
30         * support/regression/tests/bug1714204.c: changed test to foo
31
32 2007-05-08 Borut Razem <borut.razem AT siol.net>
33
34         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
35           thanks to SDCC Distributed Compile Farm members,
36           added Z80 and GBZ80 command line options
37         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
38
39 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
40
41         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
42         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
43         * support/regression/tests/longlit.c: modified to be tested at all and
44           to pass the actual test
45
46 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
47
48         * device/include/mcs51/uPSD33xx.h: Added.
49
50 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
51
52         * device/lib/_gptrput.c,
53         * device/lib/_gptrget.c: removed old code,
54          (_gptrgetWord),
55         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
56         * support/regression/tests/bug1714204.c: new, added
57
58 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
59
60         * support/regression/tests/regtrack.c: test was never executed
61           because of the regression test being picky about white spaces.
62         * device/lib/mcs51/crtclear.asm: added comment
63
64 2007-05-06 Raphael Neider <rneider AT web.de>
65
66         * device/lib/pic/Makefile.rules,
67         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
68           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
69
70 2007-05-06 Raphael Neider <rneider AT web.de>
71
72         * src/pic16/device.h,
73         * src/pic16/main.h,
74         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
75           _pic16_setDefaultOptions): removed/reordered command-line args
76         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
77           devices, regrouped command line args, environment variables),
78           clarified sone points, added sections on how to add devices to the
79           PIC14/PIC16 ports
80
81 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
82
83         * src/z80/peeph.def: fixed bug in rule 2
84
85 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
86
87         * src/port.h: added TARGET_MCS51_LIKE
88         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
89           take advantage of it too
90         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
91           (shiftR2Left2Result): Optimized: don't check shifting by 0
92         * src/z80/peeph-z80.def,
93         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
94           modifications, see patch 1700823
95         * src/mcs51/peep.c (): fixed bug 1712928
96         * support/regression/tests/bug1712928.c: new, added
97
98 2007-05-05 Borut Razem <borut.razem AT siol.net>
99
100         * device/lib/pic16/Makefile.common.in,
101           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
102           removed bash dependencies
103
104 2007-05-01 Borut Razem <borut.razem AT siol.net>
105
106         * src/SDCCicode.c:
107           fixed bug #1710507: --i-code-in-asm makes compile fail
108           all iCode comments are now one liners
109         * src/mcs51/gen.c: fixed memory leak
110
111 2007-05-01 Raphael Neider <rneider AT web.de>
112
113         * device/lib/pic/libdev/*.c
114         * device/include/pic/*.h: regenerated all device libs from updated
115           .inc files
116         * support/scripts/inc2h.pl: documented usage, now uses strict to
117           catch more bugs
118
119 2007-04-30 Borut Razem <borut.razem AT siol.net>
120
121         * doc/sdccman.lyx:
122           fixed bug #1669175: Problem with space in output paths
123           documented how to use paths with spaces for Windows users
124
125 2007-04-29 Borut Razem <borut.razem AT siol.net>
126
127         * Fixed svn:eol-style and svn:keywords properties
128         * src/SDCCval.c: fixed bug
129           #1592871: Segfault with "large" const arrays of characters
130           replaced recursion with iteration
131         * Removed svn:executable property from non-executable files
132
133 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
134
135         * src/mcs51/gen.c (genRet): fixed bug 1707003
136
137 2007-04-27 Raphael Neider <rneider AT web.de>
138
139         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
140           createReachingDefinitions,assignValnums,pic16_destructDF,
141           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
142           prevent NULL pointer dereferences
143         * device/lib/pic/libdev/pic16f886.c,
144         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
145           prevent building them, gputils do not really support them yet
146
147 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
148
149         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
150           helps printf_small. 32 bytes more __idata mem.
151
152 2007-04-27 Raphael Neider <rneider AT web.de>
153
154         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
155           return early when pb or pb->pcHead is NULL (patch #1708427)
156         * src/regression/empty.c,
157         * src/regression/Makefile: added test with empty functions
158         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
159
160 2007-04-27 Borut Razem <borut.razem AT siol.net>
161
162         * src/SDCCast.c: fixed feature request
163           #1547512: Redundant strings linked when using sizeof("abc")
164
165 2007-04-23 Borut Razem <borut.razem AT siol.net>
166
167         * doc/sdccman.lyx, src/SDCCmain.c:
168           peep-hole comments are generated only if --fverbose-asm option is
169           specified and --no-peep-comments is not, as proposed by Frieder.
170         * support/regression/Makefile.in: compile regression tests with
171           --fverbose-asm option so one can "grep" whether a new (or an old)
172           peephole is (still) applied; requested by Frieder.
173
174 2007-04-23 Kevin Buettner <kevin AT buettner.to>
175
176         * device/include/pic/pic16f886.h,
177         * device/include/pic/pic16f887.h,
178         * device/lib/pic/libdev/pic16f886.c,
179         * device/lib/pic/libdev/pic16f887.c,
180         * device/include/pic/pic14devices.txt,
181         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
182
183 2007-04-23 Kevin Buettner <kevin AT buettner.to>
184
185         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
186           fixes #1704666
187
188 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
189
190         * device/lib/_memset.c: assembler version for mcs51
191
192 2007-04-22 Borut Razem <borut.razem AT siol.net>
193
194         * support/scripts/listerr.c: program to create the list of errors and
195           warnings list from - added
196         * doc/sdccman.lyx: removed the note
197           "For list of warnings and corresponding codes, see err_warn.txt"
198         * src/SDCCsymt.c: fixed bug #1699804:
199           Bug with some uses of sizeof(static local array) (MCS51)
200         * support/regression/tests/bug-1699804.c: added
201
202 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
203
204         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
205           (main): added option -i,
206           (asmbl, case S_INCL): use search_path_fopen,
207           mostly from patch 1579668 by Peter Miller, thanks
208         * src/z80/main.c: fixed typo --callee-saves-bc
209         * device/include/mcs51/compiler.h: added sfrword for Tasking
210
211 2007-04-20 Borut Razem <borut.razem AT siol.net>
212
213         * src/z80/main.c: replaced reserved keyword asm with asmblr
214
215 2007-04-19 Borut Razem <borut.razem AT siol.net>
216
217         * src/port.h: use const pointers to strings
218         * src/SDCCargs.h: declared getStringArg() and getIntArg()
219         * src/pic16/main.c: include SDCCargs.h
220         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
221           const char, since the strings are dynamically allocated
222         * src/SDCCmain.c: options.code_seg and options.const_seg are
223           dynamically allocated; check port specific command line options
224           before the general ones
225         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
226
227 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
228
229         * device/include/ds400rom.h,
230         * device/lib/ds390/lcd390.c,
231         * device/lib/ds390/memcpyx.c,
232         * device/lib/ds390/rtc390.c,
233         * device/lib/ds400/ds400rom.c,
234         * device/lib/ds400/memcpyx.c,
235         * device/lib/hc08/_ret.c: more replacements of keywords with their
236           double underscore equivalents
237         * device/lib/ds390/Makefile.in,
238         * device/lib/ds400/Makefile.in,
239         * device/lib/gbz80/Makefile.in,
240         * device/lib/hc08/Makefile.in,
241         * device/lib/mcs51/Makefile.in,
242         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
243
244 2007-04-17 Borut Razem <borut.razem AT siol.net>
245
246         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
247           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
248           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
249           to --fverbose-asm, to be gcc'ish
250
251 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
252
253         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
254
255 2007-04-17 Borut Razem <borut.razem AT siol.net>
256
257         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
258         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
259           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
260           with their double underscore equivalent
261
262 2007-04-14 Borut Razem <borut.razem AT siol.net>
263
264         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
265           source"
266
267 2007-04-13 Borut Razem <borut.razem AT siol.net>
268
269         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
270           C99 standard
271         * device/examples/serialcomm/windows/serial.[ch],
272           device/examples/serialcomm/windows/test_serialcomm.cpp:
273           updated by Bela Torok
274         * device/examples/serialcomm/windows/serialcomm.dsw,
275           device/examples/serialcomm/windows/serialcomm.dsp: added
276
277 2007-04-13 Jan Waclawek <wek AT efton.sk>
278
279         * doc/sdccman.lyx: additions and changes at various places
280           (submitted as #1697136).
281           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
282
283 2007-04-10 Borut Razem <borut.razem AT siol.net>
284
285         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
286           LyX file format changed to 245
287         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
288           "FreeWare" replaced with "free open source"
289
290 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
291
292         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
293
294 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
295
296         * device/include/pic16/pic18fregs.h,
297         * device/lib/_bp.c,
298         * device/lib/_decdptr.c,
299         * device/lib/_divsint.c,
300         * device/lib/_divslong.c,
301         * device/lib/_divuint.c,
302         * device/lib/_divulong.c,
303         * device/lib/_fs2schar.c,
304         * device/lib/_fs2sint.c,
305         * device/lib/_fs2slong.c,
306         * device/lib/_fs2uchar.c,
307         * device/lib/_fs2uint.c,
308         * device/lib/_fs2ulong.c,
309         * device/lib/_fsadd.c,
310         * device/lib/_fscmp.c,
311         * device/lib/_fsdiv.c,
312         * device/lib/_fseq.c,
313         * device/lib/_fsget1arg.c,
314         * device/lib/_fsget2args.c,
315         * device/lib/_fsgt.c,
316         * device/lib/_fslt.c,
317         * device/lib/_fsmul.c,
318         * device/lib/_fsneq.c,
319         * device/lib/_fsnormalize.c,
320         * device/lib/_fsreturnval.c,
321         * device/lib/_fsrshift.c,
322         * device/lib/_fssub.c,
323         * device/lib/_fsswapargs.c,
324         * device/lib/_gptrget.c,
325         * device/lib/_gptrgetc.c,
326         * device/lib/_gptrput.c,
327         * device/lib/_logexpf.c,
328         * device/lib/_modsint.c,
329         * device/lib/_modslong.c,
330         * device/lib/_moduint.c,
331         * device/lib/_modulong.c,
332         * device/lib/_mulint.c,
333         * device/lib/_mullong.c,
334         * device/lib/_schar2fs.c,
335         * device/lib/_ser.c,
336         * device/lib/_setjmp.c,
337         * device/lib/_sint2fs.c,
338         * device/lib/_slong2fs.c,
339         * device/lib/_spx.c,
340         * device/lib/_uchar2fs.c,
341         * device/lib/_uint2fs.c,
342         * device/lib/_ulong2fs.c,
343         * device/lib/asincosf.c,
344         * device/lib/atanf.c,
345         * device/lib/calloc.c,
346         * device/lib/ds390/tinibios.c,
347         * device/lib/ds400/tinibios.c,
348         * device/lib/expf.c,
349         * device/lib/free.c,
350         * device/lib/hc08/_mulint.c,
351         * device/lib/logf.c,
352         * device/lib/malloc.c,
353         * device/lib/printf_fast.c,
354         * device/lib/printf_tiny.c,
355         * device/lib/printfl.c,
356         * device/lib/realloc.c,
357         * device/lib/ser_ir.c,
358         * device/lib/serial.c,
359         * support/regression/tests/libmullong.c: replaced all special keywords
360           with their double underscore equivalent
361         * support/regression/ports/mcs51-xstack-auto/spec.mk,
362         * device/lib/Makefile.in: compile libs with --std-c99 instead of
363           --std-sdcc99
364         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
365           (genRet): if the bit-symbol is ruonly it already is in the carry
366         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
367         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
368         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
369           type UCHAR if dest is not bit
370
371 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
372
373         * device/include/math.h,
374         * device/lib/cotf.c,
375         * device/lib/expf.c,
376         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
377
378 2007-04-01 Borut Razem <borut.razem AT siol.net>
379
380         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
381           fixed bug #1692042: input buffer overflow...scanner uses REJECT
382         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
383           gcc_unreachable() called internal_error()...
384
385 2007-03-30 Raphael Neider <rneider AT web.de>
386
387         * src/pic/ralloc.c (isData): suppress garbage debug output
388
389 2007-03-28 Borut Razem <borut.razem AT siol.net>
390
391         * doc/sdccman.lyx:
392           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
393           is developed, built and used worldwide, and the word "night" doesn't
394           make any sense.
395
396 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
397
398         * device/include/mcs51/C8051F360.h: new, added
399         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
400
401 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
402
403         * src/SDCC.y (declaration_specifiers, function_specifier),
404         * support/Util/SDCCerr.c,
405         * support/Util/SDCCerr.h,
406         * src/SDCCsymt.h,
407         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
408           inline keyword
409         * src/SDCCmem.c (deallocParms),
410         * src/SDCCast.c: support for function inlining, not quite complete
411         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
412           'restrict' qualifier
413
414 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
415
416         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
417           (saveRBank, unsaveRBank): don't save bits,
418           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
419         * support/regression/tests/bug1535242.c: new, added
420         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
421           thanks Alexey Shamrin <shamrin AT gmail.com>,
422           made assert.h header ANSI compliant (added a check for NDEBUG macro,
423           removed header guard)
424         * .version,
425         * sdcc.spec: bumped version to 2.6.5
426         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
427
428 2007-03-22 Borut Razem <borut.razem AT siol.net>
429
430         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
431           fixed bug #1653671: sdcdb integration into ddd is broken
432
433 2007-03-22 Raphael Neider <rneider AT web.de>
434
435         * src/pic/gen.c (popGetExternal): augmented to also create references
436           to external variables (not only labels),
437           (genCall): comment on plan to reduce PAGESEL overhead,
438           (genFunction, genEndFunction): also save/restore FSR around interrupt
439           handling code, removed lots of unused code
440           (genDivOneByte): release acquired temp register
441         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
442           of popGetExternal
443         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
444           for registers that need to be saved during interrupts (FSR, STATUS,
445           PCLATH; W needs special handling), currently only FSR is used
446
447 2007-03-22 Raphael Neider <rneider AT web.de>
448
449         * device/include/pic/pic14devices.txt: 16f688 has only one config word
450
451 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
452
453         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
454
455 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
456
457         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
458
459 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
460
461         * as/link/aslink.h: added LKOBJEXT
462         * as/link/hc08/link_hc08.dsp,
463         * as/link/hc08/Makefile.bcc,
464         * as/link/hc08/Makefile.in,
465         * as/link/mcs51/aslink.dsp,
466         * as/link/mcs51/Makefile.bcc,
467         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
468         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
469         * as/link/lkaomf51.c: merged and moved
470         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
471         * as/link/z80/lkdata.c,
472         * as/link/lkdata.c: merged and moved
473         * as/link/hc08/lkmain.c,
474         * as/link/mcs51/lkmain.c: cosmetic changes
475         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
476         * as/link/lklex.c: use LKOBJEXT
477         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
478           ANSI-fied functions, removed bubble-sorts
479         * as/link/z80/lksym.c           as/link/lksym.c: merged,
480           ANSI-fied functions
481         * as/link/z80/linkgbz80.dsp,
482         * as/link/z80/linkz80.dsp,
483         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
484           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
485         * as/link/z80/lkhead.c,
486         * as/link/z80/lklex.c: deleted
487         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
488         * as/link/z80/lkmain.c: added copyfile()
489
490 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
491
492         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
493
494 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
495
496         * device/lib/_strlen.c: assembler version for mcs51
497
498 2007-03-13 Raphael Neider <rneider AT web.de>
499
500         * device/include/pic16/pic18f2221.h,
501         * device/include/pic16/pic18f2321.h,
502         * device/include/pic16/pic18f2331.h,
503         * device/include/pic16/pic18f4221.h,
504         * device/include/pic16/pic18f4321.h,
505         * device/include/pic16/pic18f4331.h: fixed config byte location names
506         * support/scripts/inc2h-pic16.pl: removed debug output, emit
507           consistently named config byte locations
508
509 2007-03-13 Borut Razem <borut.razem AT siol.net>
510
511         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
512           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
513           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
514           as/link/z80/Makefile.in, as/z80/Makefile.in:
515           introduced LDFLAGS
516
517 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
518
519         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
520         * device/lib/printf_large.c: pointer was converted to generic
521         pointer for mcs51 models other than model-small (Maarten noticed)
522
523 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
524
525         * device/include/mcs51/ADuC84x.h: Added.
526
527 2007-03-10 Borut Razem <borut.razem AT siol.net>
528
529         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
530           fixed RFE #1624219: double backslashes in filenames;
531           functions hexEscape(), octalEscape() and copyStr() moved from
532           SDCCval.c to SDCCutil.c and made them glovbally available
533
534 2007-03-09 Borut Razem <borut.razem AT siol.net>
535
536         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
537           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
538           1673361: Missaligned comments in output files
539
540 2007-03-09 Raphael Neider <rneider AT web.de>
541
542         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
543
544 2007-03-09 Raphael Neider <rneider AT web.de>
545
546         * src/pic/gen.c,
547         * src/pic/glue.c,
548         * src/pic/ralloc.c: suppress undesired debug output
549         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
550
551 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
552
553         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
554
555 2007-03-07 Borut Razem <borut.razem AT siol.net>
556
557         * device/lib/pic16/libdev/pic18f[24][34]31.c:
558           search include files in the current directory
559
560 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
561
562         * src/SDCCglue.c (emitMaps, glue),
563         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
564           absolute xdata
565         * support/regression/tests/absolute.c: added xdata test
566
567 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
568
569         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
570           added condition to macro, fixes bug 1666080
571
572 2007-03-02 Raphael Neider <rneider AT web.de>
573
574         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
575
576 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
577
578         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
579         be cleared. Unconditionally set __XPAGE
580         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
581
582 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
583
584         * src/SDCCglobl.h,
585         * src/SDCCmain.c,
586         * src/mcs51/gen.c,
587         * src/mcs51/rtrack.c,
588         * src/ds390/gen.c,
589         * doc/sdccman.lyx: added --no-gen-comments
590         * src/mcs51/peeph.def: added 192.b, disabled 185
591
592 2007-02-25 Raphael Neider <rneider AT web.de>
593
594         * src/pic16/gen.c (genCast): fixed typo
595         * device/lib/pic16/Makefile.subdir: only install existing files
596         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
597
598 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
599
600         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
601         * device/lib/mcs51/crtclear.asm,
602         * device/lib/mcs51/crtxclear.asm: renumbered labels
603         * device/lib/mcs51/Makefile.in: added crtcall.asm
604         * doc/sdccman.lyx: documented mcs51 crt* library startup code
605         * src/mcs51/gen.c (movc): removed,
606           (aopGet, genPlusBits): clear a after loading the carry (possibly from
607             acc.x or psw.x),
608           (toCarry, genSend, genRet): added function toCarry,
609           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
610           (assignBit, genAssign, genCast): added function assignBit
611         * src/mcs51/Makefile.bcc: added rtrack.c
612         * src/mcs51/ralloc.h: made valueKnown a bitfield
613         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
614           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
615           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
616         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
617         * src/z80/gen.c: added AOP_IS_PAIRPTR,
618           (_pop): only pop valid pairs, see gencjneshort,
619           (gencjneshort): return pair that still needs to be popped, restructured,
620           (gencjne, genCmpEq): call _pop
621
622 2007-02-23 Raphael Neider <rneider AT web.de>
623
624         * device/include/pic/pic14devices.txt: 16f684 has only one config word
625
626 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
627
628         * device/include/mcs51/P89LPC925.h: Added.
629
630 2007-02-18 Raphael Neider <rneider AT web.de>
631
632         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
633
634 2007-02-17 Borut Razem <borut.razem AT siol.net>
635
636         * support/cpp2/directives.c, support/cpp2/version.c:
637           synchronized with GCC CPP 4.1.2
638
639 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
640
641         * src/mcs51/rtrack.h,
642         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
643           by checking the strings passed by emitcode() to the assembler.
644           Feel free to change. This in part addresses RFE #482179.
645           Set environment variable SDCC_RTRACK to enable.
646         * src/mcs51/gen.c: inserted hooks
647         * src/mcs51/ralloc.h: added two members to struct regs
648         * support/regression/tests/regtrack.c: added
649
650 2007-02-14 Borut Razem <borut.razem AT siol.net>
651
652         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
653         * Makefile.in: applied patch from Makefile related part of
654           #1469393: Compiler does not initialize static data
655
656 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
657
658         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
659           for better fix of bug 1273984, compiles pic16 rand.c
660
661 2007-02-12 Borut Razem <borut.razem AT siol.net>
662
663         * src/pic16/main.c: fixed pic16 standard library directory bug
664
665 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
666
667         * src/hc08/gen.c (genSwap): fix swap regression test
668
669 2007-02-10 Borut Razem <borut.razem AT siol.net>
670
671         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
672           with same scope
673         * support/regression/tests/bug-1654060.c: added regression test for
674           #1654060
675
676 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
677
678         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
679         bit moves in return statement
680
681 2007-02-09 Borut Razem <borut.razem AT siol.net>
682
683         * src/SDCC.y: fixed bug #1654060 typedef within function causes
684           syntax error
685
686 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
687
688         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
689         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
690
691 2007-02-07 Raphael Neider <rneider AT web.de>
692
693         * src/pic16/devices.inc,
694         * device/include/pic16/pic18fregs.h,
695         * device/include/pic16/pic18f[24][34]31.h,
696         * device/lib/pic16/libdev/pic18f[24][34]31.c,
697         * device/lib/pic16/pics.all: added 18f[24][34]31 family
698         * device/lib/pic16/libio/i2c.ignore: do not build i2c
699
700 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
701
702         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
703           can this have lived here for so many years?
704         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
705           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
706         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
707
708 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
709
710         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
711         appended by loop induction must be at the very end of the eBBlock
712
713 2007-02-05 Kevin Vigor
714
715         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
716
717 2007-02-05 Borut Razem <borut.razem AT siol.net>
718
719         * support/regression/fwk/lib/timeout.c: native WIN32 port,
720           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
721
722 2007-02-03 Borut Razem <borut.razem AT siol.net>
723
724         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
725           applied patch #1646602 option to set default signedness of char to
726           unsigned, added -funsigned-char command line option,
727           thanks to Gunther Jehle
728         * device/lib/Makefile.in: added the -f option to rm so it doesn't
729           prompt for file deletion a few hundred times (especially the
730           subversion files, which have ro permissions so it asks for
731           confirmation), thanks to Simon McAuliffe;
732           added {} + option to find in order to remove multiple files from a
733           single rm commad
734
735 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
736
737         * device/include/mcs51/SST89x5xRDx.h: Added.
738
739 2007-02-02 Raphael Neider <rneider AT web.de>
740
741         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
742         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
743
744 2007-02-01 Raphael Neider <rneider AT web.de>
745
746         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
747           config words again
748
749 2007-01-31 Borut Razem <borut.razem AT siol.net>
750
751         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
752           if compiled with GCC. Thanks to Raphael Neider
753
754 2007-01-31 Raphael Neider <rneider AT web.de>
755
756         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
757             operand names, handles name and (name + n) for all n,
758           (sameBank): restructured, also check bank allocation policy,
759         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
760           (pic14_operandsAllocatedInSameBank): check whether to operands
761             will be allocated into the same bank (i.e., section) to reduce
762             BANKSEL overhead, queried from pcode.c:sameBank,
763           (pic14printLocals): reintroduced clustering registers into a single
764             section: all compiler generated symbols will now reside in one
765             bank (per file), reducing BANKSEL overhead and code size,
766           (showAllMemmaps): use local dbuf where possible
767
768 2007-01-29 Raphael Neider <rneider AT web.de>
769
770         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
771           (call_libraryfunc): retrieve/create symbol and mark as used,
772           (genFunction): mark defined functions as non-extern and add again
773            to code memmap for later output
774         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
775           (pic14printLocals): reworked for new symbol emission,
776           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
777           showAllMemmaps): reworked symbol output using dbufs, added handling
778             of string literals (still incomplete),
779           (picglue): removed symbol emission, moved into showAllMemmaps,
780           (emitSymbolSet): new workhorse for symbol output,
781           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
782
783 2007-01-29 Borut Razem <borut.razem AT siol.net>
784
785         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
786           component contains the extension separator.
787
788 2007-01-28 Borut Razem <borut.razem AT siol.net>
789
790         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
791           on WIN32
792         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
793           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
794           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
795           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
796           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
797           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
798           src/z80/gen.c, support/Util/MySystem.c:
799           accept slash and backslash as directory separator on WIN32 and
800           Cygwin ports
801
802 2007-01-28 Raphael Neider <rneider AT web.de>
803
804         * src/pic16/devices.inc,
805         * device/include/pic16/pic18f[24][23]21.h,
806         * device/include/pic16/pic18fregs.h,
807         * device/lib/pic16/libdev/pic18f[24][23]21.c,
808         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
809         * device/lib/pic16/libio/adc.ignore,
810         * device/lib/pic16/libio/i2c.ignore,
811         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
812           family, as gputils do not yet support the devices
813         * device/lib/pic16/Makefile.subdir: ignore errors on install
814         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
815           headers and libraries from gputils .inc files
816
817 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
818
819         * doc/sdccman.lyx: add printf_fast_f precision limitation note
820
821 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
822
823         * doc/sdccman.lyx: add printf benchmarks
824
825 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
826
827         * device/lib/printf_fast.c: fix %c, char promoted to int
828         * device/lib/printf_tiny.c: fix %c, char promoted to int
829
830 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
831
832         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
833
834 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
835
836         * support/regression/tests/swap.c: 64 bit hosts failed
837         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
838
839 2007-01-25 Raphael Neider <rneider AT web.de>
840
841         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
842           based on absolute register address, patch by Alex Blond
843
844 2007-01-22 Raphael Neider <rneider AT web.de>
845
846         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
847           emitted, do not emit them again...
848
849 2007-01-22 Raphael Neider <rneider AT web.de>
850
851         * src/regression/bank1.c, src/regression/compare6.c,
852           src/regression/add.c: cosmetic changes
853         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
854         * src/pic/gen.c: fixed global zero and one,
855           (aopForSym): removed unued code,
856           (aopGet): assert aop is defined, check and use `index' of
857             pCodeImmd operands (fixes #1630908),
858         * src/pic/pcode.c (get_op): added output of generic pointer tag,
859           (register_reassign): prevent accidental register unification,
860           (ReuseReg): cosmetic changes (also above)
861         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
862           pic14emitStaticSeg): do not emit initialized data,
863           (printIval*): replaced with working versions,
864           (pic14createInterruptVect,picglue): use idata for initialized data,
865             now init data should work in all modules (not only main()),
866         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
867
868 2007-01-21 Borut Razem <borut.razem AT siol.net>
869
870         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
871           use -fPIC or -fpic if they are supported and not ignored
872         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
873         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
874
875 2007-01-20 Borut Razem <borut.razem AT siol.net>
876
877         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
878           implemented RFE #1470316: allow "$" in variable names
879
880 2007-01-20 Raphael Neider <rneider AT web.de>
881
882         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
883
884 2007-01-20 Raphael Neider <rneider AT web.de>
885
886         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
887         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
888         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
889         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
890           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
891         * device/lib/pic/libdev/pic*.c,
892         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
893         * device/lib/pic/libdev/Makefile.in: show progress
894
895 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
896
897         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
898         * support/scripts/sdcc_cygwin_mingw32,
899         * support/scripts/sdcc_mingw32,
900         * support/scripts/build.mak: replaced --datadir by --datarootdir for
901         conformance with autoconf 2.6
902
903 2007-01-19 Raphael Neider <rneider AT web.de>
904
905         * src/pic/device.c (register_map): fixed list construction
906         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
907           (genMod): removed case for genModbits,
908           (genModbits): removed as now unused/unimplemented
909         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
910
911 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
912
913         * support/regression/tests/swap.c: added in response to #1638622
914         * doc/sdccman.lyx: synced version, minor changes
915
916 2007-01-18 Borut Razem <borut.razem AT siol.net>
917
918         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
919           thanks to Gunther Jehle
920         * src/asm.c: don't die if the file drfined in #line couldn't be opened
921         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
922           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
923           use filename in lineno instead.
924         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
925           print the file name in ast_print()
926
927 2007-01-18 Borut Razem <borut.razem AT siol.net>
928
929         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
930           defined in MSVC
931         * src/SDCC.lex: stringLiteral() returns const char pointer,
932           EOF detection in stringLiteral(), fixed asmbuf memory leak,
933           fixed column counting
934         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
935           accept const char pointer as parameter
936         * src/SDCCdwarf2.c: corrected buffer size
937
938 2007-01-17 Borut Razem <borut.razem AT siol.net>
939
940         * support/Util/dbuf_string.c: fixed for amd64
941
942 2007-01-15 Borut Razem <borut.razem AT siol.net>
943
944         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
945           removed terminal symbol ELIPSIS, since it was never generated by the
946           lexer and it was wrongly used in parameter_identifier_list rule
947
948 2007-01-15 Raphael Neider <rneider AT web.de>
949
950         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
951             code page and data banking description
952         * src/pic/genarith.c,
953         * src/pic/gen.h: removed bit arithmetic functions,
954             updated exit(1) to exit(EXIT_FAILURE)
955         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
956         * device/include/pic16/pic18f2455.h,
957         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
958             TRISD and TRISE, fixed/added some bit names
959         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
960         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
961             updated pic18f2455.{c,h} instead of duplicating them
962
963 2007-01-14 Borut Razem <borut.razem AT siol.net>
964
965         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
966           Cannot debug files that contain spaces in the path name
967           by converting spaces in asm file name to underscores
968
969 2007-01-13 Borut Razem <borut.razem AT siol.net>
970
971         * doc/sdccman.lyx: fixed format errors
972
973 2007-01-10 Borut Razem <borut.razem AT siol.net>
974
975         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
976           codeseg/constseg #pragma fail
977         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
978         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
979           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
980           suppoprt/cpp2/sdcpp.[ch]: house cleaning
981
982 2007-01-09 Borut Razem <borut.razem AT siol.net>
983
984         * get rid of diagnistic.[ch], pretty-print.[ch],
985           c-pretty-print.[ch], ... used just for error, warning, ...
986           message formatting
987         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
988           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
989           suppoprt/cpp2/pretty-print.[ch]:
990           removed
991         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
992           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
993           suppoprt/cpp2/sdcpp.dsp:
994           changed
995
996 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
997
998         * device/lib/printf_large.c (output_float): removed recursion,
999           use smaller buffer on stack for mcs51,
1000           fixed bug printing 1.96
1001         * support/regression/tests/snprintf.c: added test
1002
1003 2007-01-07 Borut Razem <borut.razem AT siol.net>
1004
1005         * use dynamic memory buffers instead temporary files
1006         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1007           added
1008         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1009           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1010           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1011           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1012           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1013           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1014           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1015           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1016           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1017           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1018           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1019           support/Util/dbuf.c, support/Util/dbuf.h:
1020           modified
1021         * .version, sdcc.spec: bumped version to 2.6.4
1022
1023 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1024
1025         * src/port.h: added TARGET_Z80_LIKE macro
1026         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1027           output PSEG location if --xram-loc or --xstack-loc was used
1028         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1029
1030 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1031
1032         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1033         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1034         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1035         * sdcc.dsw: moved project files into subdir
1036         * as/hc08/as_hc08.dsp,
1037         * as/hc08/Makefile.bcc,
1038         * as/hc08/Makefile.in,
1039         * as/mcs51/Makefile.bcc,
1040         * as/mcs51/Makefile.in,
1041         * as/z80/Makefile.bcc,
1042         * as/z80/Makefile.in,
1043         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1044         * as/hc08/asm.h,
1045         * as/mcs51/asm.h,
1046         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1047         * as/hc08/asmain.c,
1048         * as/hc08/assym.c,
1049         * as/mcs51/asmain.c,
1050         * as/mcs51/assym.c,
1051         * as/z80/assym.c: removed include "strcmpi.h"
1052         * as/hc08/strcmpi.c,
1053         * as/hc08/strcmpi.h,
1054         * as/mcs51/strcmpi.c,
1055         * as/mcs51/strcmpi.h,
1056         * support/Util/strcmpi.c,
1057         * support/Util/strcmpi.h: removed files
1058         * as/strcmpi.c: added as_strncmpi()
1059
1060 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1061
1062         * sdcc.dsw: Added some dependencies on project config.dsp
1063
1064 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1065
1066         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1067           with [di]ram_start to fix a regresion
1068
1069 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1070
1071         * configure.in: added missing mcs51 in status output
1072         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1073         directory
1074         * debugger/mcs51/clean.mk (distclean): remove config.h
1075         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1076         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1077         options.h, s-options-h and options.c
1078         * support/cpp2/clean.mk: unused, removed
1079         * Makefile.common.in,
1080         * main_in.mk,
1081         * as/Makefile.in,
1082         * as/hc08/Makefile.in,
1083         * as/hc08/clean.mk,
1084         * as/mcs51/Makefile.in,
1085         * as/mcs51/clean.mk,
1086         * as/z80/clean.mk,
1087         * as/z80/conf.mk,
1088         * as/z80/Makefile.in,
1089         * as/z80/clean.mk,
1090         * as/link/Makefile.in,
1091         * as/link/hc08/Makefile.in,
1092         * as/link/hc08/clean.mk,
1093         * as/link/mcs51/Makefile.in,
1094         * as/link/mcs51/clean.mk,
1095         * as/link/z80/Makefile.in,
1096         * as/link/z80/clean.mk,
1097         * as/link/z80/conf.mk,
1098         * debugger/mcs51/Makefile.in,
1099         * debugger/mcs51/clean.mk,
1100         * device/include/Makefile.in,
1101         * device/lib/Makefile.in,
1102         * device/lib/mcs51/Makefile.in,
1103         * device/lib/pic/Makefile.in,
1104         * device/lib/pic/Makefile.common.in,
1105         * device/lib/pic/Makefile.subdir,
1106         * device/lib/pic/Makefile.rules,
1107         * device/lib/pic16/libio/Makefile.in,
1108         * device/lib/pic16/Makefile.subdir,
1109         * device/lib/pic16/libdev/Makefile.in,
1110         * device/lib/pic16/Makefile.rules,
1111         * device/lib/pic16/Makefile.common.in,
1112         * sim/ucsim/avr.src/Makefile.in,
1113         * sim/ucsim/main_in.mk,
1114         * sim/ucsim/cmd.src/Makefile.in,
1115         * sim/ucsim/doc/Makefile.in,
1116         * sim/ucsim/gui.src/Makefile.in,
1117         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1118         * sim/ucsim/gui.src/serio.src/Makefile.in,
1119         * sim/ucsim/hc08.src/Makefile.in,
1120         * sim/ucsim/libltdl/Makefile.in,
1121         * sim/ucsim/s51.src/Makefile.in,
1122         * sim/ucsim/sim.src/Makefile.in,
1123         * sim/ucsim/sim.src/conf.mk,
1124         * sim/ucsim/xa.src/Makefile.in,
1125         * sim/ucsim/z80.src/Makefile.in,
1126         * src/Makefile.in,
1127         * src/clean.mk,
1128         * src/port.mk,
1129         * support/cpp2/Makefile.in,
1130         * support/librarian/Makefile.in,
1131         * support/librarian/clean.mk,
1132         * support/makebin/Makefile.in,
1133         * support/makebin/clean.mk,
1134         * support/packihx/Makefile.in,
1135         * support/regression/Makefile.in,
1136         * support/regression/ports/ds390/spec.mk,
1137         * support/regression/ports/gbz80/spec.mk,
1138         * support/regression/ports/hc08/spec.mk,
1139         * support/regression/ports/mcs51/spec.mk,
1140         * support/regression/ports/mcs51-large/spec.mk,
1141         * support/regression/ports/mcs51-medium/spec.mk,
1142         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1143         * support/regression/ports/pic14/spec.mk,
1144         * support/regression/ports/pic16/spec.mk,
1145         * support/regression/ports/mcs51-stack-auto/spec.mk,
1146         * support/regression/ports/ucz80/spec.mk,
1147         * support/regression/ports/xa51/spec.mk,
1148         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1149         adding a slash after $(top_builddir) and/or adding @datarootdir@
1150         * configure.in,
1151         * debugger/mcs51/configure.in,
1152         * device/lib/pic/configure.in,
1153         * device/lib/pic16/configure.in,
1154         * sim/ucsim/configure.in,
1155         * support/cpp2/configure.in,
1156         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1157         * configure,
1158         * debugger/mcs51/configure,
1159         * device/lib/pic/configure,
1160         * device/lib/pic16/configure,
1161         * sim/ucsim/configure,
1162         * support/cpp2/configure,
1163         * support/packihx/configure: generated with autoconf 2.60
1164
1165 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1166
1167         * as/link/hc08/lkihx.c (newArea),
1168         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1169
1170 2007-01-02 Borut Razem <borut.razem AT siol.net>
1171
1172         * doc/sdccman.lyx: documented #pragma sdcc_hash
1173         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1174           initialized to 0
1175         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1176
1177 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1178
1179         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1180         empty 'while'-loop to work correctly, see regression test 'while.c'
1181         * support/regression/tests/while.c: added
1182
1183 2007-01-01 Borut Razem <borut.razem AT siol.net>
1184
1185         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1186           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1187           support/cpp2/libcpp/sdcpp.c:
1188           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1189         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1190         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1191
1192 2006-12-31 Borut Razem <borut.razem AT siol.net>
1193
1194         * SDCPP synchronized with GCC CPP release version 4.1.1,
1195           currently the latest release:
1196         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1197           support/cpp2/libcpp/include/cpp-id-data.h
1198           support/cpp2/libiberty/fopen_unlocked.c
1199           support/cpp2/libiberty/md5.c
1200           support/cpp2/md5.h
1201           support/cpp2/opt-functions.awk
1202           support/cpp2/opt-gather.awk
1203           support/cpp2/optc-gen.awk
1204           support/cpp2/opth-gen.awk:
1205           added
1206         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1207           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1208           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1209           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1210           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1211           support/cpp2/diagnostic.h, support/cpp2/except.h,
1212           support/cpp2/hwint.h, support/cpp2/input.h,
1213           support/cpp2/intl.h, support/cpp2/move-if-change,
1214           support/cpp2/opts.c, support/cpp2/opts.h,
1215           support/cpp2/output.h, support/cpp2/prefix.c,
1216           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1217           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1218           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1219           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1220           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1221           support/cpp2/version.c:
1222           modified
1223         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1224           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1225           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1226           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1227           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1228           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1229           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1230           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1231           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1232           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1233           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1234           moved
1235         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1236           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1237           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1238           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1239           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1240           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1241           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1242           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1243           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1244           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1245           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1246           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1247           support/cpp2/system.h:
1248           deleted / moved
1249
1250 2006-12-31 Borut Razem <borut.razem AT siol.net>
1251
1252         * configure.in, configure: fixed bug #1538756: configure dies if bison
1253           and flex are not installed, 2nd try
1254
1255 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1256
1257         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1258         400.x for better code in RFE 899102
1259
1260 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1261
1262         * src/SDCCpeeph.c (deadMove),
1263         * src/port.h,
1264         * src/mcs51/peep.h: renamed 'op' by 'reg'
1265         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1266         (scan4op): small change for removeDeadMove(), added support for
1267         'callee saves' and/or PACLL function calls,
1268         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1269         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1270         left in new dispatcher mcs51DeadMove()
1271         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1272         removeDeadMove()
1273         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1274
1275 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1276
1277         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1278           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1279
1280 2006-12-30 Borut Razem <borut.razem AT siol.net>
1281
1282         * support/cpp2/spacs.h: deleted from svn
1283         * configure.in, configure: fixed bug #1538756: configure dies if bison
1284           and flex are not installed
1285
1286 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1287
1288         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1289           with this z80 passes printf float test when enabled
1290         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1291
1292 2006-12-28 Borut Razem <borut.razem AT siol.net>
1293
1294         * support/cpp2/config.in, support/cpp2/configure.in,
1295           support/cpp2/configure, support/cpp2/Makefile.in:
1296           fix for the solaris build
1297
1298 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1299
1300         * src/SDCC.y (type_specifier2, pointer),
1301         * src/SDCCsymt.h,
1302         * src/SDCCsymt.c (mergeSpec, checkSClass),
1303         * support/Util/SDCCerr.c,
1304         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1305         * support/valdiag/valdiag.py: Allow test cases to specify
1306           required language standard
1307         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1308         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1309
1310 2006-12-27 Borut Razem <borut.razem AT siol.net>
1311
1312         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1313         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1314           mbchar removed
1315         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1316           fixed for borland C
1317         * support/cpp2/libiberty/Makefile.bcc: updated
1318         * src/pic16/main.c: fixed #pragma udata handling
1319         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1320
1321 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1322
1323         * src/SDCCpeeph.c: made labelHashEntry global,
1324         made pcDistance, FBYNAME static,
1325         (pcDistance): made static, use isComment and isLabel,
1326         (deadMove): added,
1327         (getLabelRef): added, extracted from labelRefCount(),
1328         (labelRefCount): use new getLabelRef(),
1329         (callFuncByName): made static, added deadMove,
1330         use isComment and isLabel,
1331         (newPeepRule): made static, set isLabel,
1332         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1333         labels from peephole rules,
1334         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1335         when isComment or isLabel is set
1336         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1337         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1338         to make them global
1339         * src/mcs51/peep.h: added
1340         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1341         * src/port.h: added peep->deadMove to port structure
1342         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1343         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1344         deadMove, finally removed no. 1 and 2
1345         * src/mcs51/gen.c,
1346         * src/pic/gen.c,
1347         * src/z80/gen.c,
1348         * src/z80/ralloc.c,
1349         * src/pic16/gen.c,
1350         * src/ds390/gen.c,
1351         * src/hc08/gen.c: mark lines with isComment or isLabel
1352         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1353         * .version,
1354         * sdcc.spec: bumped version to 2.6.3
1355
1356 2006-12-26 Borut Razem <borut.razem AT siol.net>
1357
1358         * support/cpp2/Makefile.in: added dependency on options.h
1359         * configure: regenerated
1360         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1361         * support/cpp2/Makefile.in: added vasprintf.c
1362
1363 2006-12-25 Borut Razem <borut.razem AT siol.net>
1364
1365         * SDCPP synchronized with GCC CPP release version 3.4.6,
1366           the latest release before 4.x:
1367         * support/cpp2/Makefile.in, support/cpp2/config.h,
1368           support/cpp2/configure, support/cpp2/configure.in,
1369           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1370           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1371           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1372           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1373           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1374           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1375           support/cpp2/cpptrad.c, support/cpp2/except.h,
1376           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1377           support/cpp2/hwint.h, support/cpp2/intl.h,
1378           support/cpp2/line-map.c, support/cpp2/line-map.h,
1379           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1380           support/cpp2/output.h, support/cpp2/prefix.c,
1381           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1382           support/cpp2/system.h, support/cpp2/version.c:
1383           modified
1384         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1385           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1386           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1387           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1388           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1389           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1390           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1391           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1392           support/cpp2/move-if-change, support/cpp2/opts.c,
1393           support/cpp2/opts.h, support/cpp2/opts.sh,
1394           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1395           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1396           support/cpp2/win32, support/cpp2/win32/dirent.c,
1397           support/cpp2/win32/dirent.h:
1398           added
1399         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1400         * support/cpp2/sdcpp.h: renamed from sdcc.h
1401         * sdcppinit.c: deleted
1402
1403 2006-12-23 Borut Razem <borut.razem AT siol.net>
1404
1405         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1406           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1407           preproc.c: an other try to fix bug #982435: introduced
1408           -pedantic-parse-number command line option and pedantic_parse_number
1409           pragma
1410
1411 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1412
1413         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1414            BSEG handling,
1415           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1416            corrected overlayed areax addresses, warn about memory overlaps
1417         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1418         * src/avr/main.c,
1419         * src/ds390/main.c,
1420         * src/hc08/main.c,
1421         * src/mcs51/main.c,
1422         * src/pic16/main.c,
1423         * src/pic/main.c,
1424         * src/xa51/main.c,
1425         * src/z80/main.c,
1426         * src/port.h: added xabs_name and iabs_name
1427         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1428           (glue, emitMaps): create and emit maps d_abs and i_abs
1429         * src/SDCCglue.h: cosmetic changes
1430         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1431         * src/SDCCmem.h,
1432         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1433           (allocDefault): put absolute, initialized globals in them
1434         * support/regression/tests/absolute.c: added absolute bdata test
1435         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1436
1437 2006-12-20 Borut Razem <borut.razem AT siol.net>
1438
1439         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1440         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1441           added regression test for bug #982435
1442
1443 2006-12-18 Borut Razem <borut.razem AT siol.net>
1444
1445         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1446         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1447           small cosmetic changes
1448         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1449         * support/regression/tests/bug-1351710.c: added regression test
1450
1451 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1452
1453         * doc/sdccman.lyx: added the long missed iCode table
1454           "<where is figure II?>", added links to wiki
1455
1456 2006-12-17 Borut Razem <borut.razem AT siol.net>
1457
1458         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1459           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1460           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1461           unified table driven pragma handling, pragma argument type checking
1462         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1463           current one - version 1.1.3
1464         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1465
1466 2006-12-13 Raphael Neider <rneider AT web.de>
1467
1468         * src/pic/device.h: removed AssignedMemory structure and macros
1469         * src/pic/device.c: removed global finalMapping (linker assigns
1470             memory locations),
1471           (register_map): add SFRs to remembered memRanges
1472           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1473           assignFixedRegisters,assignRelocatableRegisters): removed,
1474           (setMaxRAM,validAddress): adapted accordingly,
1475           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1476             reasonably sized sharebanks,
1477         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1478           (allDefsOutOfRange): removed unused code,
1479         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1480             handling
1481         * src/pic/pcode.c (register_reassign): removed recursion warning,
1482             fired far too often,
1483         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1484             to use existing pic14_stringInSet() to avoid duplicate symbols,
1485             tidied up the code a bit,
1486           (pic14printLocals): added in symmetry to printExterns, replaces
1487             writeUsedRegs more or less,
1488           (picglue): call new pic14_printLocals(),
1489         * device/include/pic/pic*.h: removed #pragma memmap directives,
1490             information gathered from include/pic/pic14devices.txt
1491         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1492
1493 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1494
1495         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1496
1497 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1498
1499         * device/include/mcs51/cc2430.h: fixed missing ';'
1500
1501 2006-12-10 Raphael Neider <rneider AT web.de>
1502
1503         * device/lib/pic16/libc/stdio/vfprintf.c,
1504         * device/lib/pic16/libc/stdio/printf_small.c,
1505         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1506           char arguments, as char varargs are cast to int by the caller,
1507           hopefully fixes #1604915 (other device libraries are still affected)
1508
1509 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1510
1511         * src/mcs51/ralloc.c (packRegsForAssign),
1512         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1513
1514 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1515
1516         * device/include/malloc.h: removed init_dynamic_memory
1517         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1518           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1519         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1520         * device/lib/libsdcc.lib,
1521         * device/lib/Makefile.in,
1522         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1523         * doc/sdccman.lyx: documented use of new _heap.c
1524         * support/regression/tests/malloc.c: removed init_dynamic_memory
1525         * src/cdbFile.c(spacesToUnderscores): new function,
1526           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1527           1068030
1528         * device/include/tinibios.h: removed defines for putchar and getchar
1529         * device/lib/ds390/Makefile.in: added putchar.c
1530         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1531
1532 2006-12-09 Borut Razem <borut.razem AT siol.net>
1533
1534         * support/cpp2/sdcc.h: prevent multiple inclusion
1535         * support/cpp2/options.h: deleted
1536
1537 2006-12-08 Borut Razem <borut.razem AT siol.net>
1538
1539         * support/cpp2/sdcc.h: removed x*alloc() macros
1540         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1541         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1542           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1543         * support/cpp2/system.h: moved #include "sdcc.h"
1544         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1545           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1546           added
1547         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1548           -funsigned-char options
1549         * support/cpp2/sdcppmain.c: fixed bug 1611411
1550
1551 2006-12-07 Borut Razem <borut.razem AT siol.net>
1552
1553         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1554           directive
1555
1556 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1557
1558         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1559         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1560         * doc/sdccman.lyx,
1561         * .version: bumped to 2.6.2 because a) it's been a while
1562           b) the linker sources have moved c) the preprocessor is upgraded
1563
1564 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1565
1566         * support/regression/tests/snprintf.c: some checks
1567         * lib/src/printf_large.c: %bc: read char instead of int from stack
1568
1569 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1570
1571         * device/include/mcs51/cc2430.h: inserted _XPAGE
1572
1573 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1574
1575         * device/include/mcs51/cc2430.h: added
1576
1577 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1578
1579         * device/include/asm/default/features.h,
1580         * device/include/asm/ds390/features.h,
1581         * device/include/mcs51/at89s53.h,
1582         * device/include/ser.h,
1583         * device/include/ser_ir.h,
1584         * device/include/serial.h: changed keywords to double underscore variants,
1585           fixes bug 1590261 some more, thanks Steven Borley
1586
1587 2006-12-01 Raphael Neider <rneider AT web.de>
1588
1589         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1590           but emit warning (recursion is not supported for pic14)
1591
1592 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1593
1594         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1595         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1596
1597 2006-11-30 Raphael Neider <rneider AT web.de>
1598
1599         * src/pic/device.c (dump_sfr): always emit symbols
1600         * src/pic/glue.c (pic14printPublics): fixed typo
1601
1602 2006-11-30 Raphael Neider <rneider AT web.de>
1603
1604         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1605           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1606           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1607            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1608            a sharebank, use a non-shared bank for the stack if none available
1609         * src/pic/device.h (struct memRange): added linked list next field,
1610           added prototypes for above functions
1611         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1612           (typeRegWithIdx): accept fixed and unfixed stack registers
1613         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1614           the stack, handle shared and banked stack (except for WSAVE),
1615           (insertBankSel): removed useless optimization (will never fire),
1616           (FixRegisterBanking): added optimization for devices with only one
1617           possibly aliased bank of memory, like 16f84
1618         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1619           devices have no SHAREBANK in the linker script
1620         * device/include/pic/pic14devices.txt: documented memmap
1621         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1622
1623 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1624
1625         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1626           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1627           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1628           genhc08Code): switched most of the D (debug) macros to DD (detailed
1629           debug) macros to better control clutter in the generated .asm file.
1630         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1631           genRightShift): fixed bug with non-constant bit shift stored to
1632           a volatile result (SF Open Discussion forum thread #1616749).
1633           Single byte case is not yet optimized.
1634
1635 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1636
1637         * device/include/asm/mcs51/features.h,
1638         * device/include/malloc.h,
1639         * device/include/stdio.h: changed keywords to double underscore variants,
1640           fixes bug 1590261
1641
1642 2006-11-27 Borut Razem <borut.razem AT siol.net>
1643
1644         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1645           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1646           support/cpp2/output.h, support/cpp2/cppinit.c,
1647           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1648           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1649           support/cpp2/cppdefault.c, support/cpp2/system.h,
1650           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1651           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1652           support/cpp2/prefix.c, support/cpp2/except.h,
1653           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1654           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1655           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1656           support/cpp2/version.c, support/cpp2/cppmain.c,
1657           support/cpp2/version.h, support/cpp2/hashtable.c,
1658           support/cpp2/cpperror.c:
1659           synchronized with GCC CPP release version 3.3.6,
1660           the latest where cppmain.c still exists.
1661         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1662           support/cpp2/sdcppinit.c: added
1663
1664 2006-11-27 Borut Razem <borut.razem AT siol.net>
1665
1666         * support/cpp2/cpplex.c:
1667           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1668           synchronization
1669         * support/cpp2/cpplib.c: removed definitions of unused variables
1670
1671 2006-11-26 Borut Razem <borut.razem AT siol.net>
1672
1673         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1674           since they are redefined by macros in support/cpp2/sdcc.h
1675         * support/cpp2/sdcc.h: x*alloc macro redefinition
1676
1677 2006-11-25 Borut Razem <borut.razem AT siol.net>
1678
1679         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1680           support/cpp2/configure, support/cpp2/Makefile.in,
1681           support/cpp2/cppfiles.c, support/cpp2/output.h,
1682           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1683           support/cpp2/config.h, support/cpp2/cpplib.h,
1684           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1685           support/cpp2/cppdefault.c, support/cpp2/config.in,
1686           support/cpp2/system.h, support/cpp2/cpplex.c,
1687           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1688           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1689           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1690           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1691           support/cpp2/configure.in, support/cpp2/intl.h,
1692           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1693           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1694           support/cpp2/version.c, support/cpp2/cppmain.c,
1695           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1696           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1697           support/cpp2/cpperror.c,
1698           support/cpp2/libiberty/safe-ctype.c,
1699           support/cpp2/libiberty/safe-ctype.h,
1700           support/cpp2/libiberty/splay-tree.c,
1701           support/cpp2/libiberty/obstack.c,
1702           support/cpp2/libiberty/lbasename.c,
1703           support/cpp2/libiberty/splay-tree.h,
1704           support/cpp2/libiberty/obstack.h:
1705           synchronized with GCC CPP release version 3.2.3,
1706           the latest before integration of cpp into gcc
1707         * support/cpp2/except.h, support/cpp2/line-map.c,
1708           support/cpp2/line-map.h,
1709           support/cpp2/libiberty/hex.c,
1710           support/cpp2/libiberty/concat.c,
1711           support/cpp2/libiberty/filenames.h: added
1712         * support/cpp2/intl.c: deleted
1713
1714 2006-11-24 Borut Razem <borut.razem AT siol.net>
1715
1716         * src/SDCC.y: enabled compilation of empty source file
1717         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1718           "ISO C forbids an empty source file"
1719         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1720           if all the code is ifdefed out.
1721
1722 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1723
1724         * src/hc08/gen.c (genPcall): fix for bug #1601032
1725
1726 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1727
1728         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1729         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1730         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1731         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1732         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1733         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1734         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1735         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1736         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1737         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1738         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1739         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1740         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1741         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1742         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1743           Renamed to all upper case as per the standard set by SiLabs
1744
1745 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1746
1747         * device/include/mcs51/C8051F520.h: new, added
1748         * device/include/mcs51/compiler.h: added link about predefined macros
1749
1750 2006-11-23 Raphael Neider <rneider AT web.de>
1751
1752         * src/regression/Makefile: add -L path to fresh library
1753         * src/regression/simulate: emphasize FAILED output
1754         * src/regression/create_stc: output _failures from gpsim
1755         * src/regression/compare4.c,
1756         * src/regression/rotate6.c: fixed char literals,
1757           all compile, all run =8-D
1758
1759         * src/pic/pcode.h: added isPCASMDIR macro
1760         * src/pic/gen.c (genAnd): fixed bit offset
1761         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1762           packBits): unified register numbering schemes,
1763           (newReg): do not insert stack registers into hash table,
1764           (initStack): unpinned pseudo stack, simplified,
1765           (typeRegWithIdx): fixed retrieval of stack registers,
1766         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1767           (pCodeReplace): removed invalid assertion,
1768           (insertPCodeInstruction): fixed newly added labels,
1769           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1770           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1771           DumpFlow): removed unsed (broken?) code,
1772           (insertBankSel): prevent STATUS from being BANKSELed,
1773           (FixRegisterBanking): rewritten from scratch, implemented generic
1774             optimizations (suppress BANKSELs to same register and to registers
1775             present in all banks),
1776           (AnalyzeBanking): update flow after BANKSELection
1777
1778         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1779             sharebank, let linker place it, mark STKxx symbols as emitted
1780
1781 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1782
1783         * src/regression/arrays.c,
1784         * src/regression/bank1.c,
1785         * src/regression/bool2.c,
1786         * src/regression/compare7.c,
1787         * src/regression/compare8.c,
1788         * src/regression/compare9.c,
1789         * src/regression/compare10.c,
1790         * src/regression/configword.c,
1791         * src/regression/for.c,
1792         * src/regression/mult1.c,
1793         * src/regression/pointer1.c,
1794         * src/regression/rotate6.c,
1795         * src/regression/string1.c,
1796         * src/regression/struct1.c,
1797         * src/regression/Makefile: make PIC14 regression tests run again
1798           (3 fail, 6 won't compile)
1799
1800 2006-11-21 Raphael Neider <rneider AT web.de>
1801
1802         * device/include/pic16/pic18f4550.h,
1803         * device/include/pic16/pic18f4455.h,
1804         * device/lib/pic16/libdev/pic18f4550.c,
1805         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1806         * configure.in: removed superfluous closing bracket
1807
1808 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1809
1810         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1811           always positive.
1812
1813 2006-11-21 Raphael Neider <rneider AT web.de>
1814
1815         * src/pic/device.{c,h}: added pic14_getPIC()
1816         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1817           (genAnd): added PIC code for one case, fixes #1597044
1818         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1819           SFRs that are present in all banks (e.g., STATUS)
1820
1821 2006-11-20 Raphael Neider <rneider AT web.de>
1822
1823         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1824           INCFSZ/INCFSZW and declared them as changing Z bit,
1825           (insertPCodeInstruction): correctly invert the above instructions,
1826           fixes #1599333,
1827           (DoBankSelect): don't panic on po_immediates
1828
1829 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1830
1831         * as/link/aslink.h,
1832         * as/link/mcs51/lkihx.c (newArea),
1833         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1834         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1835
1836 2006-11-11 Raphael Neider <rneider AT web.de>
1837
1838         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1839           bitfield symbols, fixes #1579535 (once more...).
1840
1841 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1842
1843         * support/regression/generate-cases.py,
1844         * support/regression/fwk/include/testfwk.h,
1845         * support/regression/fwk/lib/testfwk.c: used code pointers,
1846           (about 50kByte less code generated for mcs51)
1847
1848 2006-11-06 Borut Razem <borut.razem AT siol.net>
1849
1850         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1851           debugger/mcs51/configure: fixed failed check because the function
1852           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1853           who submitted the patch for gpsim.
1854         * debugger/mcs51/configure.in: removed the result message
1855         * debugger/mcs51/Makefile.in: fixed the config.status warning
1856           "... seems to ignore the --datarootdir setting"
1857
1858 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1859
1860         * device/include/mcs51/c8051f020.h,
1861         * device/include/mcs51/c8051f040.h,
1862         * device/include/mcs51/c8051f060.h,
1863         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1864         * src/z80/gen.c (gencjneshort),
1865         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1866
1867 2006-10-31 Borut Razem <borut.razem AT siol.net>
1868
1869         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1870           debugger/mcs51/configure: get readline version
1871
1872 2006-10-30 Borut Razem <borut.razem AT siol.net>
1873
1874         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1875         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1876           debugger/mcs51/configure: locate readline even when cross compiling
1877         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1878
1879 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1880
1881         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1882           serial port.
1883
1884 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1885
1886         * device/include/malloc.h,
1887         * device/lib/calloc.c,
1888         * device/lib/free.c,
1889         * device/lib/malloc.c,
1890         * device/lib/realloc.c: moved definition of struct into sources
1891         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1892
1893 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1894
1895         * as/asx8051.dsp: corrected output directories
1896         * as/link/hc08: new directory for hc08 linker
1897         * as/hc08/aslink.h,             as/link/aslink.h,
1898         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1899         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1900         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1901         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1902         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1903         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1904         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1905         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1906         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1907         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1908         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1909         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1910         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1911         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1912         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1913         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1914         * as/link/hc08/conf.mk,
1915         * configure,
1916         * configure.in,
1917         * Makefile.in,
1918         * sdcc.dsw: moved hc08 linker to as/link/hc08
1919         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1920         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1921         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1922         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1923         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1924         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1925         * as/link/mcs51/aslink.dsp,
1926         * as/link/mcs51/Makefile.in: factored out the common files
1927         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1928         * as/clean.mk: extra cleaning common files
1929         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1930         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1931         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1932
1933 2006-10-29 Raphael Neider <rneider AT web.de>
1934
1935         * src/pic/ralloc.c (newReg): create aliases for registers with
1936           multiple names to fix #1579535 and #1584001,
1937           (regWithIdx,dirregWithName): resolve aliases on lookup
1938         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1939           bankselect
1940         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1941           to prevent build errors on small devices
1942
1943 2006-10-28 Raphael Neider <rneider AT web.de>
1944
1945         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1946           assumption within interrupt handlers, fixes #1584940
1947         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1948           "emitted" to avoid emitting them again in udata
1949
1950 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1951
1952         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1953         Removed.
1954
1955 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1956
1957         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1958         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1959         on/off CR to CRLF conversion.
1960
1961 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1962
1963         * doc/sdccman.lyx: updated IRQ section
1964
1965 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1966
1967         * device/lib/serial_io.c: removed
1968         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1969         replacements for serial_io.c
1970
1971 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1972
1973         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1974
1975 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1976
1977         * device/lib/serial_io.c: Default putchar() and getchar() for
1978           mcs51 uses serial port.
1979
1980 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1981
1982         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1983
1984 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1985
1986         * support/regression/ports/mcs51/support.c: smaller
1987         _sdcc_external_startup()
1988         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1989
1990 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1991
1992         * device/lib/gbz80/crt0.s,
1993         * device/lib/gbz80/crt0_rle.s,
1994         * device/lib/gbz80/div.s,
1995         * device/lib/gbz80/fstubs.s,
1996         * device/lib/gbz80/heap.s,
1997         * device/lib/gbz80/mul.s,
1998         * device/lib/gbz80/putchar.s,
1999         * device/lib/gbz80/stubs.s,
2000         * device/lib/z80/crt0.s,
2001         * device/lib/z80/crt0_rle.s,
2002         * device/lib/z80/div.s,
2003         * device/lib/z80/fstubs.s,
2004         * device/lib/z80/heap.s,
2005         * device/lib/z80/mul.s,
2006         * device/lib/z80/putchar.s,
2007         * device/lib/z80/stubs.s: reverted, I was mistaken
2008
2009 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2010
2011         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2012         * support/regression/ports/mcs51/support.c: removed race
2013         condition on TI in _putchar allowing to use serial port mode 0
2014
2015 2006-10-20 Borut Razem <borut.razem AT siol.net>
2016
2017         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2018
2019 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2020
2021         * device/lib/gbz80/crt0.s,
2022         * device/lib/gbz80/crt0_rle.s,
2023         * device/lib/gbz80/div.s,
2024         * device/lib/gbz80/fstubs.s,
2025         * device/lib/gbz80/heap.s,
2026         * device/lib/gbz80/mul.s,
2027         * device/lib/gbz80/putchar.s,
2028         * device/lib/gbz80/stubs.s,
2029         * device/lib/z80/crt0.s,
2030         * device/lib/z80/crt0_rle.s,
2031         * device/lib/z80/div.s,
2032         * device/lib/z80/fstubs.s,
2033         * device/lib/z80/heap.s,
2034         * device/lib/z80/mul.s,
2035         * device/lib/z80/putchar.s,
2036         * device/lib/z80/stubs.s: removed all leading underscores from area names
2037
2038 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2039
2040         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2041           regression tests are not waiting in the simulator for simulated
2042           transmission of debug output
2043
2044 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2045
2046         * device/lib/printf_large.c: slightly smaller
2047         * doc/sdccman.lyx: do not use spaces within html links
2048
2049 2006-10-16 Borut Razem <borut.razem AT siol.net>
2050
2051         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2052           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2053           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2054           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2055           debugger/mcs51/configure:
2056           [ 1185668 ] add gnu readline support to sdcdb - enabled
2057
2058 2006-10-16 Raphael Neider <rneider AT web.de>
2059
2060         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2061           fixes #1577882, removes close to all banking optimizations
2062
2063 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2064
2065         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2066           variables in code memory
2067         * support/regression/tests/absolute.c: added test for this
2068
2069 2006-10-15 Raphael Neider <rneider AT web.de>
2070
2071         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2072           devices,
2073           (BankSelect): emit BANKSEL before touching linker-placed regs,
2074           fixes #1570934
2075
2076 2006-10-10 Raphael Neider <rneider AT web.de>
2077
2078         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2079         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2080         * src/pic/main.c (_pic14_parseOptions),
2081         * src/pic/main.h: mostly reverted to previous state, now use results
2082             from SDCCmain.c's argument parsing
2083
2084 2006-10-10 Borut Razem <borut.razem AT siol.net>
2085
2086         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2087           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2088           [ 1185668 ] add gnu readline support to sdcdb -
2089           prepared for READLINE, not enabled yet,
2090           thanks to <tal.bav AT gmail.com>
2091
2092 2006-10-10 Raphael Neider <rneider AT web.de>
2093
2094         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2095         * src/pic16/devices.inc,
2096         * device/include/pic16 (pic18f[24]620.h),
2097         * device/include/pic18fregs.h,
2098         * device/lib/pic16/pics.all,
2099         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2100             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2101             Gary Plumbridge and Anton Strobl
2102
2103 2006-10-10 Raphael Neider <rneider AT web.de>
2104
2105         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2106           --stack-siz=NUM options to configure the argument passing stack
2107         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2108         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2109           (pic14_getSharebankSize): obey --stack-siz=NUM,
2110           (pic14_getSharebankAddress): obey --stack-loc=NUM
2111
2112 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2113
2114         * doc/sdccman.lyx: added to the manual
2115         * doc/figures/ddd_example.png: added (neither pdflatex nor
2116         most browsers seem to like the .eps file)
2117
2118 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2119
2120         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2121         to /tmp and /var/tmp acc. LSB
2122         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2123         RESULT_TYPE_IFX
2124         * support/regression/tests/onebyte.c: added test
2125
2126 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2127
2128         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2129
2130 2006-10-05 Borut Razem <borut.razem AT siol.net>
2131
2132         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2133           thanks to dfulab:
2134           - sdcc.dsw: changed property eol-style to CRLF
2135           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2136
2137 2006-10-04 Raphael Neider <rneider AT web.de>
2138
2139         * device/include/pic/{pic16f84.h,pic16f84a.h},
2140         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2141           from patch #1522504, thanks to Robas Teodor
2142
2143 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2144
2145         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2146           fixes bug 1566015
2147
2148 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2149
2150         * src/pic16/glue.c (pic16emitMaps),
2151         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2152         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2153         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2154         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2155           Philipp Krause
2156         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2157         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2158
2159 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2160
2161         * support/librarian/sdcclib.c: Added option -l.
2162         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2163           usage totals.
2164         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2165           using Windows command prompt.
2166
2167 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2168
2169         * device/lib/libsdcc.lib: added module rand
2170         * src/ds390/ralloc.c (rematStr),
2171         * src/hc08/ralloc.c (rematStr),
2172         * src/mcs51/ralloc.c (rematStr),
2173         * src/z80/ralloc.c (rematStr): made output more consistent
2174         * src/mcs51/gen.c: cosmetic changes
2175
2176 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2177
2178         * src/port.h: added mem.cabs_name to PORT
2179         * src/ds390/main.c,
2180         * src/hc08/main.c,
2181         * src/mcs51/main.c,
2182         * src/pic16/main.c,
2183         * src/pic/main.c,
2184         * src/xa51/main.c,
2185         * src/z80/main.c: added cabs_name initializers
2186         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2187           constants
2188           (emitMaps): emit absolutes in code memory into cabs_name
2189         * src/SDCCmem.c,
2190         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2191         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2192         * support/regression/fwk/include/testfwk.h: added define for at
2193         * support/regression/tests/absolute.c: added, new
2194
2195 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2196
2197         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2198           optimizations, see also patch 887161 by Stas Sergeev
2199         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2200           to be necessary anymore,
2201           (102, 103, 104, 127): renamed all occurances of bp to _bp
2202
2203 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2206           thanks Weston T. Schmidt for patch 1555221
2207         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2208         * src/SDCCicode.c(geniCodeMultiply): small optimization
2209
2210 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2211
2212         * device/include/stdlib.h: added rand prototypes
2213         * device/lib/rand.c: new, added
2214         * device/lib/Makefile.in: added rand.c
2215         * src/z80/peeph.def,
2216         * src/z80/peeph-gbz80.def,
2217         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2218
2219 2006-09-20 Raphael Neider <rneider AT web.de>
2220
2221         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2222
2223 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2224
2225         * as/link/aslink.h: cosmetic changes
2226         * as/link/mcs51/Makefile.in,
2227         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2228
2229 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2230
2231         * as/link/aslink.h,
2232         * as/link/mcs51/aslink.h,
2233         * as/link/z80/aslink.h: merged and moved to as/link/
2234         * as/link/lkstore.c,
2235         * as/link/mcs51/lkstore.c: moved to as/link/
2236         * as/link/clean.mk: remove *.o
2237         * as/link/mcs51/alloc.h: deleted
2238         * as/link/mcs51/lkarea.c: added lnksect prototype
2239         * as/link/mcs51/lkdata.c,
2240         * as/link/mcs51/lklex.c,
2241         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2242         * as/link/mcs51/lkmem.c,
2243         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2244         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2245         * as/link/mcs51/aslink.dsp,
2246         * as/link/mcs51/Makefile.aslink,
2247         * as/link/mcs51/Makefile.bcc,
2248         * as/link/mcs51/Makefile.in: updated for moved files
2249         * as/link/z80/lkarea.c,
2250         * as/link/z80/lkhead.c,
2251         * as/link/z80/lklex.c,
2252         * as/link/z80/lklibr.c,
2253         * as/link/z80/lklist.c,
2254         * as/link/z80/lkmain.c,
2255         * as/link/z80/lkrloc.c,
2256         * as/link/z80/lksym.c: synced with mcs51
2257         * as/link/z80/lkdata.c,
2258         * as/link/z80/lkeval.c,
2259         * as/link/z80/lkihx.c,
2260         * as/link/z80/lks19.c: cosmetic changes
2261         * as/link/z80/Makefile.in,
2262         * as/link/z80/linkgbz80.dsp,
2263         * as/link/z80/linkz80.dsp: updated for moved files
2264
2265 2006-09-16 Borut Razem <borut.razem AT siol.net>
2266
2267         * debugger/mcs51/sdcdb.c: partially fixed
2268           [ 1203664 ] sdcdb fails to open files w. two "." periods
2269         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2270           debugger/mcs51/symtab.h: fixed indenting
2271         * configure.in, configure: up to date with latest Maarten's changes
2272
2273 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2274
2275         as/link/mcs51
2276         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2277         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2278         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2279         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2280         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2281         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2282         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2283         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2284         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2285         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2286         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2287         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2288         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2289         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2290         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2291         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2292         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2293         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2294         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2295         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2296         as/link/mcs51/alloc.h,
2297         as/link/mcs51/clean.mk,
2298         as/link/mcs51/conf.mk,
2299         as/link/mcs51/Makefile.bcc,
2300         as/link/mcs51/Makefile.in,
2301         as/link/mcs51/readme.390,
2302         as/link/mcs51/strcmpi.c,
2303         as/link/mcs51/strcmpi.h,
2304         as/mcs51/clean.mk,
2305         as/mcs51/Makefile.bcc,
2306         as/mcs51/Makefile.in,
2307         configure,
2308         Makefile.in,
2309         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2310
2311 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2312
2313         * as/link,
2314         * as/link/Makefile.in,
2315         * as/link/z80/linkgbz80.dsp,
2316         * as/link/z80/linkz80.dsp,
2317         * configure,
2318         * link,
2319         * link/clean.mk,
2320         * link/Makefile.in,
2321         * link/README,
2322         * link/z80,
2323         * link/z80/aslink.h,
2324         * link/z80/clean.mk,
2325         * link/z80/conf.mk,
2326         * link/z80/linkgbz80.dsp,
2327         * link/z80/linkz80.dsp,
2328         * link/z80/lkarea.c,
2329         * link/z80/lkdata.c,
2330         * link/z80/lkeval.c,
2331         * link/z80/lkgb.c,
2332         * link/z80/lkgg.c,
2333         * link/z80/lkhead.c,
2334         * link/z80/lkihx.c,
2335         * link/z80/lklex.c,
2336         * link/z80/lklibr.c,
2337         * link/z80/lklist.c,
2338         * link/z80/lkmain.c,
2339         * link/z80/lkrloc.c,
2340         * link/z80/lks19.c,
2341         * link/z80/lksym.c,
2342         * link/z80/Makefile.in,
2343         * Makefile.in,
2344         * sdcc.dsw: moved link/ to as/link/
2345
2346 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2347
2348         * as/mcs51/i51mch.c (machine): fixed warning
2349
2350 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2351
2352         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2353
2354 2006-09-09 Borut Razem <borut.razem AT siol.net>
2355
2356         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2357           sdcdb WIN32 native port
2358         * src/clean.mk: fixed
2359
2360 2006-09-08 Borut Razem <borut.razem AT siol.net>
2361
2362         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2363
2364 2006-09-08 Raphael Neider <rneider AT web.de>
2365
2366         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2367         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2368             to gplink to disable processor mismatch warning and to allow
2369             the use of devices with only aliased (shared) memory banks,
2370           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2371
2372 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2373
2374         * doc/sdccman.lyx: Some re-formating plus example on using
2375           #pragma preproc_asm +/-
2376
2377 2006-09-07 Borut Razem <borut.razem AT siol.net>
2378
2379         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2380           section
2381
2382 2006-09-06 Borut Razem <borut.razem AT siol.net>
2383
2384         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2385           line at sdcc.nsi:153
2386         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2387
2388 2006-09-05 Borut Razem <borut.razem AT siol.net>
2389
2390         * configure.in, configure: support for winsock2
2391         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2392           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2393           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2394           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2395           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2396
2397 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2398
2399         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2400           and OP_DEFS
2401         * support/regression/tests/bug1551947.c: new, added
2402         * src/SDCCsymt.h: strings are char* not byte*
2403
2404 2006-09-05 Raphael Neider <rneider AT web.de>
2405
2406         * device/lib/pic16/libdev/pic18f4550.c,
2407           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2408             declarations/definitions from patch #1520949
2409
2410 2006-09-05 Raphael Neider <rneider AT web.de>
2411
2412         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2413           byte-aligned bitfields, fixes #1539278
2414
2415 2006-09-05 Raphael Neider <rneider AT web.de>
2416
2417         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2418           fixes #1544120
2419
2420 2006-09-04 Borut Razem <borut.razem AT siol.net>
2421
2422         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2423         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2424           -mno-cygwin is a part of the compiler name
2425         * support/scripts/sdcc_mingw32: don't disable ucsim
2426
2427 2006-09-03 Borut Razem <borut.razem AT siol.net>
2428
2429         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2430         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2431
2432 2006-09-03 Raphael Neider <rneider AT web.de>
2433
2434         * src/pic/ralloc.c,
2435         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2436           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2437           fixes #1550049
2438
2439 2006-09-01 Borut Razem <borut.razem AT siol.net>
2440
2441         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2442           to make ppc-osx happy
2443
2444 2006-08-31 Borut Razem <borut.razem AT siol.net>
2445
2446         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2447         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2448         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2449         * support/regression/ports/ds390/spec.mk,
2450           support/regression/ports/mcs51/spec.mk,
2451           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2452           To run regression tests in mingw environment:
2453           make DEV_NULL=NUL CC=gcc
2454
2455 2006-08-30 Borut Razem <borut.razem AT siol.net>
2456
2457         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2458           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2459           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2460           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2461           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2462           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2463           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2464           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2465           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2466           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2467           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2468           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2469           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2470           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2471           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2472           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2473           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2474           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2475           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2476           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2477           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2478           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2479           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2480           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2481           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2482           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2483           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2484           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2485           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2486           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2487           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2488           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2489           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2490           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2491           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2492           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2493           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2494           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2495           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2496           ucsim WIN32 native port
2497
2498 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2499
2500         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2501
2502 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2503
2504         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2505         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2506
2507 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2508
2509         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2510         * support/regression/tests/bug1546986.c: new, added
2511         * as/mcs51/.cvsignore,
2512         * debugger/mcs51/.cvsignore,
2513         * src/.cvsignore: deleted
2514
2515 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2516
2517         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2518           definitions)
2519
2520 2006-08-20 Borut Razem <borut.razem AT siol.net>
2521
2522         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2523           removed cl_listen_console::match(), cl_console::match(),
2524           restructured cl_commander::proc_input()
2525
2526 2006-08-16 Borut Razem <borut.razem AT siol.net>
2527
2528         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2529           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2530           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2531
2532 2006-08-14 Borut Razem <borut.razem AT siol.net>
2533
2534         * support/regression/Makefile.in,
2535           support/regression/ports/pic14/gpsim.cmd,
2536           support/regression/ports/pic14/spec.mk,
2537           support/regression/ports/pic14/support.c:
2538           added pic14 regression test
2539
2540 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2541
2542         * as/doc/asxhtm.html: documented changed ABS behaviour
2543         * as/doc/README: fixed some typos
2544
2545 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2546
2547         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2548           not defined on host
2549
2550 2006-08-12 Borut Razem <borut.razem AT siol.net>
2551
2552         * support/regression/fwk/include/testfwk.h,
2553           support/regression/fwk/lib/testfwk.c,
2554           support/regression/generate-cases.py,
2555           support/regression/Makefile.in:
2556           regression test framework does not depend on function pointers and
2557           variable arguments
2558
2559 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2560
2561         * device/include/stddef.h: c temporary hack to fix bug 1518273
2562
2563 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2564
2565         * device/include/mcs51/cc2510fx.h: added
2566         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2567           to projects.
2568
2569 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2570
2571         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2572         * as/z80/Makefile.in: added strcmpi.c
2573         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2574         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2575
2576 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2577
2578         * device/lib/gbz80/asm_strings.s,
2579         * device/lib/gbz80/crt0_rle.s,
2580         * device/lib/gbz80/div.s,
2581         * device/lib/gbz80/mul.s,
2582         * device/lib/gbz80/shift.s,
2583         * device/lib/z80/asm_strings.s,
2584         * device/lib/z80/crt0_rle.s,
2585         * device/lib/z80/div.s,
2586         * device/lib/z80/mul.s,
2587         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2588           flags which are all upper case
2589
2590 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2591
2592         * as/z80/asm.h: made CASE_SENSITIVE 1
2593         * link/z80/aslink.h: made CASE_SENSITIVE 1
2594         * src/z80/gen.c (throughout): made all conditionals upper case
2595         * support/regression/tests/bug1503067.c: new
2596
2597 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2598
2599         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2600           (shiftIntoPair): added case 2 for PAIR_IY,
2601           (setupToPreserveCarry): replaced parameters with iCode and check if
2602            PAIR_DE is in use to fix bug 1399290,
2603           (genPlus, genMinus): updated call to setupToPreserveCarry
2604         * support/regression/tests/bug1399290.c: new
2605
2606 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2607
2608         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2609         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2610         * src/ds390/gen.c (shiftRLong),
2611         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2612         * src/mcs51/gen.c (sameReg): changed to sameByte,
2613           (xch_a_aopGet): new,
2614           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2615            shiftRLong): fixed bug 1533966
2616         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2617           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2618         * support/regression/Makefile.in: disabled z80, enabled ucz80
2619         * support/regression/tests/float_trans.c: enabled test for z80 and host
2620         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2621
2622 2006-08-01 Borut Razem <borut.razem AT siol.net>
2623
2624         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2625           comparison is always false due to limited range of data type
2626           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2627
2628 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2629
2630         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2631         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2632         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2633         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2634
2635 2006-07-31 Borut Razem <borut.razem AT siol.net>
2636
2637         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2638           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2639           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2640           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2641           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2642           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2643           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2644           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2645           enable ucsim mingw compilation. Serial port is disabled,
2646           since it uses termios.h API, which is not available on native
2647           WIN32
2648
2649 2006-07-31 Borut Razem <borut.razem AT siol.net>
2650
2651         * Small Device C Compiler 2.6.0 released
2652         * support/scripts/sdcc.nsi: added FULL_DOC option
2653         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2654
2655 2006-07-28 Borut Razem <borut.razem AT siol.net>
2656
2657         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2658         * doc/INSTALL.txt: updated
2659
2660 2006-07-27 Borut Razem <borut.razem AT siol.net>
2661
2662         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2663           device/lib/pic/libdev/Makefile.in: fixed bug
2664           [ 1438354 ] pic libsdcc: distclean doesn't work
2665         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2666           device/lib/pic16/libio/Makefile.in: fixed bug
2667           [ 1438344 ] pic16 lib: clean doesn't work properly
2668         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2669
2670 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2671
2672         * device/lib/pic/libsdcc/fsdiv.c,
2673         * device/lib/pic/libsdcc/fsmul.c,
2674         * device/lib/pic16/libsdcc/float/fsdiv.c,
2675         * device/lib/pic16/libsdcc/float/fsmul.c,
2676         * device/lib/_fsdiv.c,
2677         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2678         * support/regression/tests/bug1520966.c: added
2679         * doc/knownbugs.html: removed [ 1520966 ] from the list
2680
2681 2006-07-25 Borut Razem <borut.razem AT siol.net>
2682
2683         * configure.in, configure, sdccconf_in.h: fixed bug
2684           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2685         * doc/knownbugs.html: removed [ 1519095 ] from the list
2686
2687 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2688
2689         * doc/knownbugs.html: added, contains list of known bugs at release
2690         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2691
2692 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2693
2694         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2695           function registers and corrected defaults with additional warning
2696         * device/lib/malloc.c: cosmetic changes
2697         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2698         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2699           (fillGaps): and used it
2700
2701 2006-07-20 Raphael Neider <rneider AT web.de>
2702
2703         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2704           output unless SDCCPICDEBUG is set
2705         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2706           output if SILENT is set
2707
2708 2006-07-11 Borut Razem <borut.razem AT siol.net>
2709
2710         * doc/README.txt: updated
2711
2712 2006-07-10 Borut Razem <borut.razem AT siol.net>
2713
2714         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2715           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2716           in WIN32 installation
2717         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2718           release candidate 1
2719
2720 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2721
2722         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2723         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2724
2725 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2726
2727         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2728
2729 2006-07-06 Borut Razem <borut.razem AT siol.net>
2730
2731         * support/regression/tests/bitfields.c:
2732           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2733         * support/regression/tests/constantRange.c:
2734           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2735
2736 2006-07-04 Borut Razem <borut.razem AT siol.net>
2737
2738         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2739           src/port.mk,
2740           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2741           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2742           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2743           reverted changes from 2006-07-03
2744         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2745         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2746           added CPPFLAGS, used by the host port
2747
2748 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2749
2750         * support/regression/valdiag/tests/switch.c,
2751         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2752         * support/regression/tests/libmullong.c: fixed for host
2753         * support/regression/ports/host/spec.mk: disable all warnings for host,
2754         SDCC runs with --less-pedantic too
2755
2756 2006-07-03 Borut Razem <borut.razem AT siol.net>
2757
2758         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2759           defined CPPFLAGS
2760         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2761         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2762           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2763           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2764           include ../port.mk
2765         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2766           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2767           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2768           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2769
2770 2006-07-02 Raphael Neider <rneider AT web.de>
2771
2772         * src/pic16/devices.inc,
2773         * device/include/pic16/pic18fregs.h,
2774         * device/include/pic16/pic18f4550.h,
2775         * device/lib/pic16/pics.all,
2776         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2777
2778 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2779
2780         * as/hc08/lkaomf51.c (OutputName),
2781         * as/mcs51/lkaomf51.c (OutputName),
2782         * as/z80/asmain.c (asmbl),
2783         * src/ds390/main.c (asmLineNodeFromLineNode),
2784         * src/hc08/ralloc.c (hc08_assignRegisters),
2785         * src/mcs51/main.c (asmLineNodeFromLineNode),
2786         * src/xa51/ralloc.c (checkRegMask),
2787         * src/xa51/gen.c (emitcode),
2788         * src/z80/gen.c (_emit2),
2789         * src/SDCCast.c (searchLitOp),
2790         * src/SDCCglobl.h,
2791         * support/packihx/packihx.c,
2792         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2793         * src/ds390/gen.c (aopPutUsesAcc),
2794         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2795         * support/regression/tests/libmullong.c (mullong_wrapper),
2796         * src/SDCCsymt.c (powof2),
2797         * src/SDCCast.c,
2798         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2799         * src/SDCCsymt.h: added TYPE_TARGET_*
2800         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2801         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2802         SDCCast because 1) header problems 2) this is the right place
2803         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2804         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2805         prototype
2806
2807 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2808
2809         * src/SDCCicode.h: removed buggy semicolon in unused macro
2810         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2811         search for previous definiton of auto symbols too,
2812         (findPrevUse): fixed logic of emitWarnings
2813
2814 2006-06-26 Raphael Neider <rneider AT web.de>
2815
2816         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2817           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2818
2819 2006-06-25 Raphael Neider <rneider AT web.de>
2820
2821         * device/lib/pic/libm: NEW, added math library functions
2822         * device/lib/pic/libsdcc: NEW; added float support functions
2823         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2824         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2825           NEW, added math related headers
2826         * device/include/asm/pic/features.h: NEW
2827         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2828           (popGet): allow larger offsets for AOP_PCODE,
2829           (genDataPointerSet): handle literals explicitly, more debug output,
2830           (genAssign): fixed for float using aopLiteral ;-)
2831         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2832           GOTO initialisation routine
2833         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2834           flag on registers, fixes #1469043 (local variables do not work)
2835         * src/pic/main.c (_pic14_do_link),
2836         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2837           available
2838
2839 2006-06-25 Borut Razem <borut.razem AT siol.net>
2840
2841         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2842           characters printed (not including the trailing '\0' used to end
2843           output to strings). Problem detected in regression test bug-927659.c.
2844           NOTE: printf() family functions should return int instead
2845           unsigned int!
2846         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2847           specifier are printed as themselves
2848         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2849           support flags, width and precision specifiers
2850
2851 2006-06-24 Borut Razem <borut.razem AT siol.net>
2852
2853         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2854           to the list of sdcc tagrets not supporting bit type
2855         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2856           testfor pic16 due to bug:
2857           [ 1511794 ] pic16: regression test bug-895992.c fails
2858
2859 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2860
2861         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2862         * src/SDCCglue.c (initPointer), fixed bug 1496419
2863         * support/regression/tests/bug1496419.c: new, added
2864
2865 2006-06-22 Borut Razem <borut.razem AT siol.net>
2866
2867         * support/regression/ports/pic16/support.c: use gpsim usart module from
2868           libgpsim_modules library
2869
2870 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2871
2872         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2873         IP0H to IPH0.
2874
2875 2006-06-19 Raphael Neider <rneider AT web.de>
2876
2877         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2878         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2879           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2880           (pic14printExterns,pic14printPublics,pic16printPublics,
2881           pic16_printExterns): use new functions to emit symbols
2882           (picglue,pic16glue): emit publics before emitting externs
2883         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2884           locally defined functions to avoid bug #1443651
2885         * support/regression/tests/bug-716242.c: removed pic16 workaround
2886         * support/regression/ports/pic16/spec.mk: ignore errors during build
2887
2888 2006-06-19 Raphael Neider <rneider AT web.de>
2889
2890         * src/pic/glue.h: added pic14aopLiteral prototype
2891         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2892         * src/pic/gen.c: removed stdint.h dependency
2893           (aopGet): use Safe_strdup()
2894           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2895           (genDataPointerSet): use pic14aopLiteral()
2896         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2897           for pic16; thanks to Bernhard and Maarten
2898
2899 2006-06-18 Borut Razem <borut.razem AT siol.net>
2900
2901         * support/regression/tests/structflexarray.c: flexible array members
2902           not supported by gcc < 3
2903         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2904           GUI tool by default
2905         * src/pic/gen.c: don't include [p]strdin.h on solaris
2906         * support/Util/pstdint.h: addad svn attributes
2907         * support/regression/tests/constantRange.c,
2908           support/regression/tests/rotate.c: include inttypes.h instead
2909           stdint.h on solaris, addad svn attributes
2910
2911 2006-06-18 Raphael Neider <rneider AT web.de>
2912
2913         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2914           int for PIC16
2915         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2916           (pic16_genMinusBits): simplified sign-extension
2917           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2918             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2919             adjusted to correctly handle mixed-signed operands, disabled
2920             now unused multiplciation routines
2921         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2922           (assignResultValue): added argument denoting the size of the result
2923             as returned by the function (fixes upcasts in assigning from
2924             function calls: char foo(); int i = foo();)
2925           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2926             function result to assignResultValue
2927           (genMult): disabled inlined multiplication code
2928           (genDiv): augmented to also handle the modulus operator, fixed to
2929             handle mixed-signed operands correctly
2930           (genMod): simply call genDiv, disabled unused code
2931           (genAssign): fixed missing (sign-)extension on result
2932         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2933             valid char operands, allow signed operands for native code, added
2934             division and modulo operator handling
2935         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2936
2937         As a consequence, onebyte.c (if split into two files) and muldiv.c
2938         pass regression tests.
2939
2940 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2941
2942         * doc/Makefile.in: two runs of makeindex seem needed to get
2943         correct page references in the index of sdccman.pdf
2944         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2945
2946 2006-06-17 Borut Razem <borut.razem AT siol.net>
2947
2948         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2949
2950 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2951
2952         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2953         mentioned ec2drv and paulmon
2954
2955 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2956
2957         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2958           consecutive abs areas
2959           (find_empty_space, allocate_space): added map to handle codemap or
2960            xdatamap,
2961           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2962            absolute idata and xdata
2963         * as/mcs51/lkmem.c (summary2): updated legend
2964
2965 2006-06-16 Raphael Neider <rneider AT web.de>
2966
2967         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2968
2969 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2970
2971         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2972           1208515
2973         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2974
2975 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2976
2977         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2978         value of generic pointers,
2979         * src/avr/main.c,
2980           src/ds390/main.c,
2981           src/hc08/main.c,
2982           src/izt/i186.c,
2983           src/izt/tlcs900h.c,
2984           src/mcs51/main.c,
2985           src/pic/main.c,
2986           src/pic16/main.c,
2987           src/xa51/main.c,
2988           src/z80/main.c: PORT structure, added elements for gp_tags field,
2989         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2990         fields in the PORT structure of each port,
2991         * src/SDCCast.c (decorateType): allow processing of generic pointers
2992         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2993         S_FIXED symbols
2994
2995 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2996
2997         * link/z80/lkgb.c,
2998         * link/z80/lkgg.c,
2999         * src/pic16/gen.c,
3000         * src/pic16/main.c,
3001         * src/pic16/pcode.c,
3002         * src/pic/main.c,
3003         * src/pic/pcoderegs.c,
3004         * src/SDCCicode.c,
3005         * src/SDCCmain.c,
3006         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3007           bug 1504689 on minGW
3008
3009 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3010
3011         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3012
3013 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3014
3015         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3016
3017 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3018
3019         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3020           for optimization
3021
3022 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3023
3024         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3025         to a char variable. Fixed bug #1504211
3026         * device/include/pic16/adc.h,
3027         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3028         and fixed bug #1364390
3029
3030 2006-06-10 Borut Razem <borut.razem AT siol.net>
3031
3032         * CVSROOT: removed the CVS left-over
3033
3034 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3035
3036         * as/hc08/asmain.c (asexit),
3037         * as/hc08/lkmain.c (lkexit),
3038         * as/mcs51/asmain.c (asexit),
3039         * as/mcs51/lkmain.c (lkexit),
3040         * src/SDCCglue.c (DEFSETFUNC),
3041         * src/SDCCmain.c (linkEdit, assemble),
3042         * support/librarian/sdcclib.c (AddRel),
3043           replaced unlink() by standard C remove()
3044         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3045         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3046           gatherImplicitVariables): new, added to fix bug 608752,
3047           (createFunction): added gatherImplicitVariables()
3048         * src/SDCCast.h: added createRMW prototype
3049         * src/SDCCsymt.h (struct symbol): added infertype
3050         * support/regression/tests/bug608752.c: new, added
3051
3052 2006-06-10 Raphael Neider <rneider AT web.de>
3053
3054         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3055           multibyte dummy reads (fixes #1503234)
3056
3057 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3058
3059         * device/include/mcs51/compiler.h: new, added header file to enable
3060           creating common sfr definition header files for different compilers
3061
3062 2006-06-05 Raphael Neider <rneider AT web.de>
3063
3064         * src/pic16/{pcode.h,genarith.c}:
3065           introduced pCodeOp combining any two pCodeOps (previously only
3066           two register operands could be combined), removed pcop2 from
3067           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3068         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3069         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3070           rewritten to use new PO_TWO_OPS
3071         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3072         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3073           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3074           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3075           (pic16_get_op): embraced return arg to allow #define return(x),
3076             added new case for combined opcodes
3077           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3078           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3079            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3080
3081 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3082
3083         * src/SDCCval.c (checkConstantRange): added
3084         * src/SDCCval.h: added checkConstantRange
3085         * support/Util/SDCCerr.c,
3086         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3087         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3088         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3089         * src/SDCCast.c (decorateType): added checkConstantRange,
3090         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3091         can be emitted with the correct always true/false warning,
3092         added optimization for double '!';
3093         result of decorateType() must be assigned back to the tree, because
3094         decorateType() can change the tree
3095         * src/SDCCicode.c (geniCodeLogic),
3096         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3097         (checkConstantRange): removed, it was only a fragment which never
3098         emitted a warning
3099         * src/SDCCsymt.c (computeType): fixed promotion for
3100         "-1 < (unsigned bit) b"
3101         * src/pic/ralloc.c (packRegsForAssign),
3102         * src/pic16/ralloc.c (packRegsForAssign),
3103         * src/hc08/ralloc.c (packRegsForAssign),
3104         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3105         from mcs51
3106         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3107         * support/regression/tests/constantRange.c: added
3108         * support/valdiag/tests/constantRange.c: added
3109         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3110
3111 2006-06-02 Borut Razem <borut.razem AT siol.net>
3112
3113         * support/regression/ports/pic16/support.c: increase stack size
3114           to 255 bytes
3115         * support/regression/Makefile.in: sort tests by name so that the
3116           resutlts can be compared on different machines / platforms
3117
3118 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3119
3120         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3121         * src/ds390/gen.c (emitLabel): new, added,
3122           (genDjnz): fixed stack overflow bug,
3123           (throughout): cosmetic changes to sync with mcs51/gen.c,
3124           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3125         * src/mcs51/gen.c (genEndFunction): small optimization,
3126           (throughout): cosmetic changes to sync with ds390/gen.c
3127
3128 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3129
3130         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3131           (_print_format): fixed printing pointers
3132         * src/mcs51/gen.c (emitLabel, movb): new, added,
3133           (genAssign): small optimization,
3134           (genDjnz): fixed stack overflow bug,
3135           (throughout): replaced sprintf with SNPRINTF,
3136           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3137           replaced emitcode("mov", "b,...") with MOVB(...),
3138           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3139           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3140         * src/mcs51/peeph.def: added rules 140 and 264
3141         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3142           so they may get optimized into registers
3143
3144 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3145
3146         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3147           immediately when encountered,
3148           (printUsage): always use stderr even on windows
3149
3150 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3151
3152         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3153         (processParms): fixed bug #1247551
3154         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3155         parseCmdLine, main): print '--version' to stdout,
3156         print 'help' to stdout if --help is given,
3157         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3158         arguments are given; fixed --help
3159
3160 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3161
3162         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3163         * support/regression/tests/bug-1493710.c: added
3164
3165 2006-05-27 Borut Razem <borut.razem AT siol.net>
3166
3167         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3168           static instead auto
3169         * support/regression/ports/pic16/support.c: increase stack size
3170           from default 64 bytes to 128 bytes
3171         * support/regression/tests/staticinit.c,
3172           support/regression/tests/float.c: regression tests fully enabled
3173           for pic16 port by putting the initialized data arrays into the code
3174           section
3175         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3176           This was changed by mistake in the previous version.
3177
3178 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3179
3180         * src/pic16/gen.c (genFunction, genEndFunction): some
3181         beautifications, fixed bug with falsely restoring FSR2 in large
3182         stack model, thanks to Beau E. Cox for reporting the bug
3183
3184 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3185
3186         * debugger/mcs51/break.c,
3187         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3188           use %p to print pointers, made address variables unsigned
3189         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3190         * debugger/mcs51/symtab.c (parseSymbol): must return something
3191         * src/mcs51/gen.c (aopForSym): small optimization,
3192            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3193           (freeAsmop): added missing break,
3194           (aopPut): removed parameter bvolatile, determine it inside the function,
3195           (saveRegisters, unsaveRegisters): small optimization,
3196           (genIpush): removed pointless check,
3197           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3198           replaced sprintf with SNPRINTF,
3199           replaced strcpy with strncpyz,
3200           updated aopPut calls,
3201           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3202         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3203
3204 2006-05-24 Borut Razem <borut.razem AT siol.net>
3205
3206         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3207           modification of test for the pic16 port, put the array to the code
3208           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3209
3210 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3211
3212         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3213         * support/Util/pstdint.h: added
3214
3215 2006-05-22 Borut Razem <borut.razem AT siol.net>
3216
3217         * src/regression/Makefile: removed bool2.c test, added -q linker option
3218         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3219           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3220           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3221           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3222           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3223           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3224           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3225           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3226           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3227
3228 2006-05-22 Raphael Neider <rneider AT web.de>
3229
3230         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3231           bug #1492360 (problematic due to generic pointers, see code)
3232
3233 2006-05-22 Borut Razem <borut.razem AT siol.net>
3234
3235         * support/regression/ports/pic16/specs.mk: removed stack size linker
3236           directive
3237         * support/regression/tests/array.c,
3238           support/regression/tests/bitopcse.c,
3239           support/regression/tests/bug-908454.c,
3240           support/regression/tests/malloc.c: modified for pic16 regression test
3241         * support/regression/tests/bitfields.c:
3242           pic16 - excluded bitfileds of size > 8
3243         * support/regression/tests/bp.c: pic16 - reduced data size
3244         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3245         * support/regression/tests/bug-460010.c:
3246           pic16 - used the absolute address the fits in memory
3247         * support/regression/tests/bug-716242.c:
3248           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3249         * support/regression/tests/float.c:
3250           pic16 - excluded - data size too big
3251         * support/regression/tests/onebyte.c:
3252           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3253         * support/regression/tests/shifts.c:
3254           pic16 - function names probably have to differ in first X characters
3255           (gpasm limitation?)
3256         * support/regression/tests/staticinit.c:
3257           pic16 - excluded some tests due error: no target memory available for
3258           section ".idata"
3259
3260 2006-05-22 Borut Razem <borut.razem AT siol.net>
3261
3262         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3263           second try. Thanks Stas Sergeev once more.
3264
3265 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3266
3267         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3268           (genLeftShift, genRightShift): fixed bug 1491627
3269         * src/hc08/peeph.def (rules 7, 8.x): added
3270         * support/regression/tests/shifts.c (ShiftLeftByParam,
3271           ShiftRightByParam, testShiftByParam): added to test variable shifting
3272
3273 2006-05-20 Raphael Neider <rneider AT web.de>
3274
3275         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3276         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3277           (allocReg): add only new registers to dynAllocRegs,
3278           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3279             #1489055, #1445850, and probably #1483693
3280
3281 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3282
3283         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3284         bug in for-loop that didn't emit the last of CONFIG and ID registers
3285
3286 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3287
3288         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3289           with offset
3290         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3291           1489016, 1434401 and 1490124
3292         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3293           1489016, 1434401 and 1490124
3294
3295 2006-05-17 Borut Razem <borut.razem AT siol.net>
3296
3297         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3298           thanks Stas Sergeev
3299
3300 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3301
3302         * device/include/mcs51/P89c51RD2.h,
3303         * device/include/mcs51/P89LPC901.h,
3304         * device/include/mcs51/P89LPC922.h,
3305         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3306
3307 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3308
3309         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3310         to fix missing stack pragma in compiled binary object file,
3311
3312 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3313
3314         * support/packihx/configure.in,
3315         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3316         determine sizeof basic types even while cross compiling
3317
3318 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3319
3320         * src/avr/gen.c (aopop),
3321         * src/ds390/gen.c (aopOp),
3322         * src/hc08/gen.c (aopOp),
3323         * src/mcs51/gen.c (aopop),
3324         * src/pic16/gen.c (pic16_aopOp),
3325         * src/pic/gen.c (aopOp),
3326         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3327         if size of operand is smaller than spill location
3328
3329 2006-05-12 Borut Razem <borut.razem AT siol.net>
3330
3331         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3332           have to have CR/LF line endings even if they are checked out on *nix
3333           or on WIN32 in cygwin binmode
3334
3335 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3336
3337         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3338         * device/include/ds80c390.h: added sfr16 definitions
3339         * src/ds390/gen.c,
3340         * src/ds390/gen.h,
3341         * src/ds390/main.c,
3342         * src/ds390/ralloc.c,
3343         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3344           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3345           bit returning functions
3346         * support/regression/tests/sfr16.c: enabled test on ds390
3347
3348 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3349
3350         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3351         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3352
3353 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3354
3355         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3356         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3357           (cl_address_space constructor): removed expensive initialization,
3358           (cl_address_space::get_cell): extended for late initialization,
3359           (cl_address_space::*): use late initialization,
3360           (cl_address_decoder::activate): removed expensive initialization,
3361           This reduced regression test running time by 25%
3362
3363 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3364
3365         * packihx/,
3366         * configure.in,
3367         * configure,
3368         * sdcc.dsw,
3369         * Makefile.bcc,
3370         * Makefile.in,
3371         * support/packihx/Makefile.in,
3372         * support/packihx/clean.mk,
3373         * support/packihx/Makefile.bcc,
3374         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3375
3376 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3377
3378         * src/SDCCval.c (valNot): fix for regression test failure
3379           of not.c on big endian hosts
3380
3381 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3382
3383         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3384
3385 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3386
3387         * device/lib/mcs51/Makefile.in: changed string comparison operator
3388           to = for POSIX compliance; == is bash extension
3389
3390 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3391
3392         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3393           kosmonaut_pirx
3394
3395 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3396
3397         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3398         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3399         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3400         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3401         bug report #1478657,
3402
3403 2006-05-05 Borut Razem <borut.razem AT siol.net>
3404
3405         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3406           making the html
3407
3408 2006-05-02 Borut Razem <borut.razem AT siol.net>
3409
3410         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3411           create *.ind, which made make to fail if invoked with -j 2
3412
3413 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3414
3415         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3416           Hubert Sack for patch 1479782
3417
3418 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3419
3420         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3421
3422 2006-05-01 Raphael Neider <rneider AT web.de>
3423
3424         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3425           (create_pic): store only prefix-free device name,
3426           (init_pic): check for device names with "16" prefix,
3427           (list_valid_pics),
3428         * src/pic/device.h (struct PIC_device),
3429         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3430             stored device name,
3431         * device/include/pic/pic12f{635,675,629,683}.h,
3432         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3433         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3434         * device/include/pic/pic16f505.h,
3435         * device/lib/pic/libdev/pic16f505.c: removed
3436         * device/include/pic/pic14devices.txt: added support for pic12f
3437             devices, removed unsupported non 16-bit devices
3438             [above changes provided by patch from Zik Saleeba]
3439         * src/pic/*, src/pic16/*, device/include/pic16/*,
3440           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3441
3442 2006-05-01 Borut Razem <borut.razem AT siol.net>
3443
3444         * configure.in, configure, doc/Makefile.in:
3445           sync with nightly build makefile - latex, dvipdf and dvips
3446           not needed any more
3447
3448 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3449
3450         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3451         in the library source
3452
3453 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3454
3455         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3456
3457 2006-04-28 Raphael Neider <rneider AT web.de>
3458
3459         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3460         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3461           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3462         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3463
3464 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3465
3466         * device/lib/pic/libdev/Makefile.in,
3467         * device/lib/hc08/Makefile.in,
3468         * device/lib/gbz80/Makefile.in,
3469         * device/lib/z80/Makefile.in,
3470         * device/lib/ds390/Makefile.in,
3471         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3472         thanks to Borut for the bug report
3473         * configure.in,
3474         * configure: always create doc/Makefile independent from --enable-doc
3475         * Makefile.in: always install from directory doc independent from
3476         --enable-doc
3477         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3478         removed
3479         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3480         * doc/Makefile.in: install *.txt if present
3481         * device/include/Makefile.in (install): added installation of pic/*.inc
3482         and pic/*.txt files again, they were erroneously removed
3483
3484 2006-04-28 Raphael Neider <rneider AT web.de>
3485
3486         * src/pic/{gen.c,main.h,pcode.c},
3487         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3488             concerning signedness with casts
3489
3490 2006-04-28 Raphael Neider <rneider AT web.de>
3491
3492         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3493             definition of an interrupt handler,
3494         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3495             interrupt handler stuff from picglue() to separate routine,
3496           (picglue): enabled definition of intr handlers in files w/o main()
3497
3498 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3499
3500         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3501           compilation with MSVC 2005 Express Edition (VC8)
3502
3503 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3504
3505         * device/lib/Makefile: fixed build of gbz80 lib
3506
3507 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3508
3509         * support/regression/tests/bug-460010.c,
3510         * support/regression/tests/bug-524691.c,
3511         * support/regression/tests/bug-716242.c: removed conditional defines
3512           that are already in testfwk.h
3513
3514 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3515
3516         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3517           (AccAXRsh1): added, shift right by 1,
3518           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3519            AccAXLrl1
3520         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3521
3522 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3523
3524         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3525         remove cast to same type
3526         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3527         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3528         * as/z80/Makefile,
3529         * link/z80/Makefile: removed, they have moved to
3530         Makefile.in files
3531         * configure,
3532         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3533         * install-sh: fix bug #1204398 by setting umask 0022
3534         * device/lib/Makefile: separate build of z80 and gbz80 lib
3535
3536 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3537
3538         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3539         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3540
3541         One basic decision: e.g. src/clean.mk includes further files. In order
3542         to make this work there are two solutions:
3543         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3544           run configure on them. This way they can use
3545           'include $(srcdir)/port-clean.mk'
3546         - always include clean.mk by the Makefile at the same level. To avoid
3547           that `make clean` tries to include and build Makefile.dep the
3548           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3549           implemented, because now even `make uninstall` doesn't create
3550           Makefile.in. clean.mk could be eliminated by pasting it in
3551           Makefile.in.
3552
3553         * debugger/mcs51/Makefile.in: build own objects from library sources
3554         (SLIB, SDCC) in current directory
3555
3556         * configure, configure.in: renamed --disable-device-lib-build in
3557         --disable-device-lib; added --enable-doc, the required tools are
3558         searched by configure; added result message; the toolchain for the
3559         belonging ports are now only built, if the port is enabled.
3560
3561         * support/regression/*: all output is written in directory gen, because
3562         the fwk and ports directories don't livet in the build tree using vpath
3563
3564         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3565         --disable-device-lib, added --enable-doc, added section VPATH
3566
3567         * sim/ucsim/configure.in,
3568         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3569         z80 are enabled by default
3570
3571 2006-04-24 Raphael Neider <rneider AT web.de>
3572
3573         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3574             to config word, "pic14_"-prefixed some extern functions
3575           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3576             config word has been found
3577         * src/pic/device.h: added prototypes
3578         * src/pic/pcode.c: added "pic14_"-prefix where needed
3579         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3580             fixup
3581         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3582             words,
3583           (pic14emitRegularMap): ignore config words,
3584           (pic14createInterruptVect): moved generating __config directives away
3585           (picglue): have __config directives emitted
3586
3587 2006-04-24 Borut Razem <borut.razem AT siol.net>
3588
3589         * doc/Makefile: sync with nightly build makefile
3590
3591 2006-04-24 Raphael Neider <rneider AT web.de>
3592
3593         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3594             registers that have not been assigned proper liveranges,
3595             fixes #1469504 and #1474602,
3596           (pCodeRegOptimizeRegUsage): fixed typo in comment
3597
3598 2006-04-24 Borut Razem <borut.razem AT siol.net>
3599
3600         * device/examples/main8051.c: deleted - it was removed from CVS
3601           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3602           after the transition to Subversion
3603         * src/SDCCalloc.h: deleted - it was removed  from CVS
3604           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3605           after the transition to Subversion
3606         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3607           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3608           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3609           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3610
3611 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3612
3613         * as/asx8051.dsp: added mcs51/strcmpi.h
3614         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3615         * as/hc08/aslink.h: updated lnksect prototype
3616         * as/hc08/asm.h,
3617         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3618         * as/hc08/asmain.c,
3619         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3620           (newdot): handle A_ABS
3621         * as/hc08/asout.c,
3622         * as/mcs51/asout.c (outarea): output address
3623         * as/hc08/lkaomf51.c,
3624         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3625         * as/hc08/m08pst.c,
3626         * as/mcs51/i51pst.c,
3627         * as/z80/z80pst.c: "ABS" is not A_OVR
3628         * as/hc08/lkarea.c (newarea): read a_addr,
3629           (lnkarea): added codemap array, sort absolute areas to the front,
3630            combine all GSINITx/GSFINAL,
3631           (find_empty_space, allocate_space): new functions,
3632           (lnksect): return next address, handle absolute sections
3633         * as/mcs51/lkarea.c (newarea): read a_addr,
3634           lnksect2 prototype changed,
3635           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3636           (find_empty_space, allocate_space): new, factored out of lnksect2,
3637           (lnksect2): return next address, handle absolute sections
3638         * as/hc08/lkhead.c,
3639         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3640         * as/hc08/lklibr.c (addfile, fndsym),
3641         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3642           index out of range and detect both '\' and '/'
3643         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3644         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3645           regression tests (ds390 cannot return bool yet)
3646         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3647           document critical interrupts on z80, document changed SDCC define
3648         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3649           (_a390_mapping): added .org directive
3650         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3651           (genMultOneByte): fixed warnings
3652         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3653           ones
3654         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3655         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3656           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3657         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3658         * src/pic16/main.c: removed newReg prototype
3659         * src/pic16/pcode.c,
3660         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3661           warnings
3662         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3663           ones
3664         * src/pic16/ralloc.c
3665         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3666           to fix warnings
3667         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3668           from short to PIC_OPTYPE
3669         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3670         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3671           optype from short to PIC_OPTYPE
3672         * src/port.h: made int_size unsigned to fix warnings
3673         * src/SDCC.y: fixed warning on MSVC
3674         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3675         * src/SDCCopt.c (convertToFcall): fixed warnings
3676         * src/SDCCsymt.h: removed double prototype for genSymName
3677         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3678           offset int to fix warnings
3679
3680 2006-04-22 Borut Razem <borut.razem AT siol.net>
3681
3682         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3683           references to CVS replaced with Subversion
3684
3685 2006-04-21 Borut Razem <borut.razem AT siol.net>
3686
3687         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3688           references to CVS replaced with Subversion
3689
3690 2006-04-19 Borut Razem <borut.razem AT siol.net>
3691
3692         * src/version.awk: adapted for svn
3693         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3694           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3695           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3696           /binutils-avr/etc/*.vi, *.jin: removed all properties
3697           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3698
3699 2006-04-19 Borut Razem <borut.razem AT siol.net>
3700
3701         * CVS to Subversion migration completed
3702
3703 2006-04-18 Borut Razem <borut.razem AT siol.net>
3704
3705         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3706           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3707
3708 2006-04-17 Borut Razem <borut.razem AT siol.net>
3709
3710         * device/include/Makefile.in: added pic/*.inc to the installation
3711
3712 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3713
3714         * support/regression/collate-results.py: fixed output in case of
3715         a valdiag error
3716         * support/regression/generate-cases.py: fixed splitting of pathnames
3717         with dots
3718         * as/hc08/lklibr.c (addfile),
3719         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3720
3721 2006-04-11 Raphael Neider <rneider AT web.de>
3722
3723         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3724         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3725         * src/pic16/pcode.c (assignValnums): fixed #1460578
3726
3727 2006-04-11 Raphael Neider <rneider AT web.de>
3728
3729         * device/lib/pic/libdev/*.c,
3730         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3731           fixes #1468739, enables compilation in --std-c99 mode
3732         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3733
3734 2006-04-11 Raphael Neider <rneider AT web.de>
3735
3736         * src/pic/device.c (find_device): removed debug output
3737           (list_valid_pics): enabled verbose listing of supported devices
3738         * device/include/stdbool.h: define bool as char for pic14/16 as well
3739
3740 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3741
3742         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3743
3744 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3745
3746         * .version: bumped version to 2.5.6
3747         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3748
3749 2006-04-06 Raphael Neider <rneider AT web.de>
3750
3751         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3752         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3753         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3754           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3755             pic14_constructAbsMap
3756           (pic14printPublics): declare absolute global symbols as global
3757           (pic14createInterruptVect),
3758         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3759           (newReg): assume new registers unused, use correct name in
3760             hashtable (reg->name instead of name), more debugLog output
3761         * src/pic/device.h (PIC_device): added fields for verbose output
3762         * src/pic/device.c: moved device definition to pic14devices.txt,
3763             added routines for runtime parsing of pic14devices.txt,
3764             added support for second config word
3765         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3766           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3767           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3768           (_pic14_parseOptions): moved pCodeInitRegisters here
3769           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3770         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3771           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3772             handling the pseudo stack
3773         * device/lib/Makefile.in: ignore failures in objects-pic16,
3774         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3775         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3776         * device/lib/pic/Makefile.subdir,
3777         * device/lib/pic16/Makefile.subdir: improved clean rules
3778         * device/lib/pic/libdev/: NEW, pic14 device libraries
3779         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3780         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3781         * device/include/Makefile.in: create subdir and install pic14 headers
3782         * device/include/pic/p16f_common.inc: removed unused declarations
3783         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3784             PICs from inc2h.pl v1.6,
3785             replaced BIT_AT macros with struct declarations
3786         * device/include/pic/pic14devices.txt: definition of supported devices,
3787             all above improvements contributed by Zik Saleeba, thanks
3788         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3789         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3790             headers
3791
3792 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3793
3794         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3795         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3796           thanks to Charles Olds
3797
3798 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3799
3800         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3801
3802 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3803
3804         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3805         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3806         * support/regression/bug1464657.c: added, new test
3807
3808 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3809
3810         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3811           version number
3812
3813 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3814
3815         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3816           --no-peep and --peep-file <file> are used don't use default rules but
3817           do use the <file>
3818
3819 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3820
3821         * src/mcs51/gen.c (genCall): fixed bug 1457608
3822
3823 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3824
3825         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3826         changes seem to cause (trigger?) problems with the build system.
3827
3828 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3829
3830         * src/SDCCpeeph.c (operandsLiteral): new, added,
3831           (callFuncByName): inserted operandsLiteral
3832         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3833
3834 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3835
3836         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3837         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3838
3839 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3840
3841         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3842           implemented patch 1120823 Thanks to Willy De la Court (normal
3843           interrupts need an interrupt number now if they are made critical),
3844           and enabled nesting of critical functions though not for gbz80
3845           (genCritical, genEndCritical): added functions
3846           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3847         * src/z80/mappings.i: added "ei" to all mappings
3848
3849 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3850
3851         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3852         submitted by the Debian SDCC maintainer Aurelien Jarno:
3853         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3854         archive with gcc 4.1 on mips and wrote the patch"
3855
3856 2006-03-16 Raphael Neider <rneider AT web.de>
3857
3858         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3859           the left operand is shorter than the result (c* = lit-c* + int),
3860           fixes bug #1450796
3861         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3862           OP_SYMBOL
3863
3864 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3865
3866         * src/.version: increased version number to 2.5.5
3867         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3868         linking is done manually in pic16 port's _linkEdit,
3869         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3870         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3871         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3872         allocate asmop as AOP_ACC,
3873         (aopForRemat): added parameter 'bool result' in function declaration,
3874         (pic16_aopGet): return AOP_ACC when accessing WREG,
3875         (pic16_popGetTempReg): minor modification,
3876         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3877         'pic16_allocWithIdx',
3878         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3879         calling function in absolute addresses,
3880         (genAssign): take into account AOP_ACC asmop,
3881         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3882         * src/pic16/pcoderegs.c: some debug functions and lines added,
3883         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3884         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3885         register too,
3886         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3887         call to allocReg, not by manually allocating a new one,
3888         (pic16_assignRegisters): now before going through the register
3889         allocating functions mark all registers as free. This eliminates some
3890         side effects resulting from peephole parser done earlier in the backbone
3891
3892 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3893
3894         * src/SDCCicode.c (geniCodeLogic),
3895         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3896
3897 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3898
3899         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3900           (genSend): bugfix, do not allocate and free twice,
3901           (shiftRLong): handle partially overlapping aops
3902         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3903
3904 2006-03-08 Borut Razem <borut.razem AT siol.net>
3905
3906         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3907           for pic16
3908
3909 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3910
3911         * support/regression/tests/bug1409955.c: new, added
3912         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3913         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3914           (aopForSym, aopOp): increment asmop.allocated if reused,
3915           (freeAsmop): decrement asmop.allocated and check for zero instead of
3916           using asmop.freed,
3917           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3918           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3919            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3920            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3921            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3922            genSignedRightShift, genRightShift, genDataPointerGet,
3923            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3924            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3925             in reverse order from allocation,
3926           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3927             added swappedLR to keep track
3928         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3929           pdata & code for GCC, z80, gbz80 & hc08
3930         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3931
3932 2006-03-08 Raphael Neider <rneider AT web.de>
3933
3934         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3935
3936 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3937
3938         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3939         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3940         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3941
3942 2006-03-06 Borut Razem <borut.razem AT siol.net>
3943
3944         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3945           made the linker quiet
3946
3947 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3948
3949         * src/pic16/gen.c (genPcall): fixed bug #1443644
3950         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3951         which dumps before the function entry point a data byte which represents
3952         the number of the local variables used by the specified function, added
3953         'xinst' for initial support for Extended Instruction Support,
3954         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3955         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3956         port->fun_prefix anymore (may change later),
3957         (genFunction, genEndFunction): do not store/restore local registers for
3958         _main (this should take care the --main-return command line option in
3959         the future),
3960         (genOr): removed some legacy pic-port instructions,
3961         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3962         performing operations with SFR's causes data to be written more than
3963         once to each SFR. Perhaps SFRs should be handled in special cases...
3964         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3965         pcode.h
3966         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3967         into account for stack starting position,
3968         (struct OPTIONS pic16_optionsTable): added command line argument
3969         --extended or -y for Extended Instruction Support,
3970         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3971         (deassignLRs): *** perhaps the most important change, old 'for' code
3972         (commented out for reference), didn't account for some registers which
3973         were left marked 'not free' after a pointer operation. The change
3974         reduces register usage a lot in some cases
3975
3976 2006-03-04 Borut Razem <borut.razem AT siol.net>
3977
3978         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3979           _clean
3980         * support/regression/tests/bug-524697.c: decreased array size for
3981           mcs51 to fit into the internal RAM
3982         * support/regression/Makefile.in: a little bit more verbose
3983
3984 2006-03-03 Borut Razem <borut.razem AT siol.net>
3985
3986         * support/regression/fwk/lib/testfwk.c,
3987           support/regression/fwk/include/testfwk.h: introduced function
3988           _prints(), nonrecursive _printn(), call _initEmu() from main()
3989         * support/regression/ports/gbz80/support.asm,
3990           support/regression/ports/ucz80/support.asm,
3991           support/regression/ports/z80/support.asm,
3992           support/regression/ports/ds390/support.c,
3993           support/regression/ports/hc08/support.c,
3994           support/regression/ports/host/support.c,
3995           support/regression/ports/mcs51/support.c,
3996           support/regression/ports/xa51/support.c: added empty _initEmu()
3997           function
3998         * support/regression/ports/pic16/gpsim.cmd,
3999           support/regression/ports/pic16/spec.mk,
4000           support/regression/ports/pic16/support.c,
4001           support/regression/Makefile.in: added pic16 regression test
4002
4003 2006-03-01 Raphael Neider <rneider AT web.de>
4004
4005         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
4006           genConstPointerGet): use safe way of generating MOVFF to cover
4007             literals as well as registers, fixes bug #1440527
4008         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4009             dereference
4010           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4011             more correctly, fixes bug #1232186
4012           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4013         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4014             gplink guess the correct processor in more cases, applied patch
4015             from Till Riedel attached to and fixing bug #1436552
4016
4017 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4018
4019         * support/regression/tests/array.c: added, contains check for #1434401
4020         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4021
4022 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4023
4024         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4025         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4026         * device/include/mcs51/c8051f326.h,
4027         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4028         * device/include/mcs51/c8051f000.h,
4029         * device/include/mcs51/c8051f018.h,
4030         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4031           PCON_IDLE,PCON_STOP and added sfr16 definitions
4032
4033 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4034
4035         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4036           genGetWord): fixed bug 1409955
4037
4038 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4039
4040         * device/include/hc08/mc68hc908gp32.h,
4041         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4042
4043 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4044
4045         * src/SDCCast.c (constExprValue): return NULL if not a value
4046         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4047         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4048         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4049
4050 2006-02-13 Borut Razem <borut.razem AT siol.net>
4051
4052         * src/regression/ptrarg.c: added, fails due to bug #1430967
4053         * src/regression/Makefile: ptrarg.c added, ...
4054
4055 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4056
4057         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4058         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4059
4060 2006-02-11 Borut Razem <borut.razem AT siol.net>
4061
4062         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4063           print "Processor: xxx" message to stdout only if --verbose
4064
4065 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4066
4067         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4068         * support/regression/tests/bug1426356.c: added
4069         * support/regression/tests/bitfields.c: removed 2 tests
4070
4071 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4072
4073         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4074         * device/include/mcs51/c8051f330.h,
4075         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4076           PCON_IDLE,PCON_STOP and added sfr16 definitions
4077         * device/lib/_divsint.c,
4078         * device/lib/_divuint.c,
4079         * device/lib/_divulong.c,
4080         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4081           register bank bug for small stackauto
4082
4083 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4084
4085         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4086
4087 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4088
4089         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4090         * all.dsp: corrected several bin paths
4091         * device/include/mcs51/c8051f120.h,
4092         * device/include/mcs51/c8051f300.h,
4093         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4094           to PCON_IDLE,PCON_STOP
4095         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4096         * device/lib/printf_large.c (output_float): fixed bug 1388703
4097         * support/regression/tests/bug1057979.c: added test for bug 1388703
4098
4099 2006-02-08 Raphael Neider <rneider AT web.de>
4100
4101         * src/pic/pcode.c (pciTRIS): fixed typo,
4102           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4103           (LinkFlow): fixed handling of flows that end in a call,
4104           (ReuseReg): perform safety check earlier
4105         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4106             to work with flows at the beginning of a pBlock,
4107             fixes #1426557 (Symbol not previously defined),
4108           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4109             usage information
4110           (RemoveUnusedRegisters): update register usage info
4111         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4112             created, reuse existing ones instead
4113         * src/pic/gen.c (genPcall): fixed #1424719
4114
4115 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4116
4117         * link/z80/lkmain.c,
4118         * link/z80/lklex.c,
4119         * link/z80/lkdata.c,
4120         * link/z80/aslink.h: fixed build on current cygwin:
4121         replaced getline() by lk_getline()
4122
4123 2006-02-01 Borut Razem <borut.razem AT siol.net>
4124
4125         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4126           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4127           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4128           src/regression/bool1.c, src/regression/bool2.c,
4129           src/regression/bool3.c, src/regression/call1.c,
4130           src/regression/compare.c, src/regression/compare10.c,
4131           src/regression/compare2.c, src/regression/compare3.c,
4132           src/regression/compare4.c, src/regression/compare5.c,
4133           src/regression/compare6.c, src/regression/compare7.c,
4134           src/regression/compare8.c, src/regression/compare9.c,
4135           src/regression/configword.c, src/regression/for.c,
4136           src/regression/inline.c, src/regression/mult1.c,
4137           src/regression/nestfor.c, src/regression/or1.c,
4138           src/regression/pointer1.c, src/regression/ptrfunc.c,
4139           src/regression/rotate1.c, src/regression/rotate2.c,
4140           src/regression/rotate3.c, src/regression/rotate4.c,
4141           src/regression/rotate5.c, src/regression/rotate6.c,
4142           src/regression/rotate7.c, src/regression/string1.c,
4143           src/regression/struct1.c, src/regression/sub.c,
4144           src/regression/sub2.c, src/regression/switch1.c,
4145           src/regression/while.c, src/regression/xor.c,
4146           src/regression/create_stc, src/regression/simulate,
4147           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4148           regression tests
4149         * src/regression/gpsim_assert.h: added
4150
4151 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4152
4153         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4154         ((void (code *) (void)) 0) ();
4155         * as/hc08/aslex.c,
4156         * as/hc08/aslink.h,
4157         * as/hc08/asm.h,
4158         * as/hc08/asmain.c,
4159         * as/hc08/lkdata.c,
4160         * as/hc08/lklex.c,
4161         * as/hc08/lkmain.c,
4162         * as/mcs51/aslex.c,
4163         * as/mcs51/aslink.h,
4164         * as/mcs51/asm.h,
4165         * as/mcs51/asmain.c,
4166         * as/mcs51/lkdata.c,
4167         * as/mcs51/lklex.c,
4168         * as/mcs51/lkmain.c,
4169         * as/z80/aslex.c,
4170         * as/z80/asm.h,
4171         * as/z80/asmain.c: fixed build on current cygwin:
4172         replaced getline() by as_getline()
4173
4174 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4175
4176         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4177         declarator in the symbol chain
4178         * src/SDCCsymt.h,
4179         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4180         parameter list for function pointers
4181         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4182         * support/regression/tests/bug-716242.c: added
4183
4184 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4185
4186         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4187         offset if possible
4188         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4189
4190 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4191
4192         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4193         inifinitely recurseable, added static
4194         * support/regression/tests/bug-1408066.c: added
4195
4196 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4197
4198         * src/SDCCicode.h,
4199         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4200         renamed, added possibility to create "postLoopLbl"-labels
4201         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4202         newiTempLoopHeaderLabel
4203         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4204         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4205         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4206         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4207         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4208         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4209         (basicInduction): fixed bug #136564, made static,
4210         (loopInduction): changed parameter of basicInduction, made static,
4211         (addPostLoopBlock): added
4212         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4213         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4214         findLoopEndSeq
4215         * support/regression/tests/bug-136564.c: added
4216         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4217         --std-sdcc99 to LIBSDCCFLAGS
4218
4219 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4220
4221         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4222         while loop
4223         * support/regression/tests/bug-1406131.c: added
4224
4225 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4226
4227         * src/SDCCast.c (decorateType): fix promotion of unary minus
4228         * src/SDCCsymt.c (computeType): beautified
4229         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4230         (valUnaryPM, valComplement): fix sign and promotion,
4231         (valNot): ANSI: result type is int (SDCC: unsigned char)
4232         * support/regression/tests/uminus.c: speedup by removing superflous
4233         test case 'int'
4234         * support/regression/tests/onebyte.c: added promotion and signedness
4235         tests for unary minus
4236         * support/regressions/tests/bug-477927.c: disable warning about
4237         uninitialized variables
4238         * support/regression/tests/not.c: added
4239
4240 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4241
4242         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4243         * src/mcs51/gen.c (gen51Code): show final register usage after
4244         fillGaps in asm with --i-code-in-asm
4245         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4246         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4247         incUsed, rliveClear, adjustIChain): made static,
4248         (setFromRange): excluded because it's unused,
4249         (findPrevUseSym, markWholeLoop): added,
4250         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4251         through all branches of predecessors enables sdcc to emit the warning
4252         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4253         (rlivePoint): made static, added parameter emitWarnings which is only
4254         true during the first run out of two,
4255         (findRecursiveSucc, findRecursivePred): removed,
4256         (computeLiveRanges): made static, added parameter emitWarnings,
4257         (dumpIcRlive): added for debugging only
4258         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4259         removed prototype of setFromRange()
4260         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4261         in call of computeLiveRanges()
4262         * support/regression/tests/bug-895992.c: added
4263         * support/regression/tests/bug-971834.c: added
4264         * support/valdiag/tests/bug-895992.c: added
4265         * support/valdiag/tests/bug-971834.c: added
4266
4267 2005-12-18 Raphael Neider <rneider AT web.de>
4268
4269         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4270           (genUnpackBits): improved code for direct operands,
4271           (genPackBits): improved code for literal assignment to bitfields
4272             and for direct destination operands (no FSR indirection),
4273             prevented redundant AND, fixes #1362800,
4274           (AccLsh): added parameter to disable masking of the result
4275         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4276           skip instructions with side-effects (like incfsz),
4277           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4278         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4279         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4280           fixes #1375263
4281
4282 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4283
4284         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4285         volatile variables as spill location
4286
4287 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4288
4289         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4290         replacing literals
4291         * support/regression/tests/bug-1376320.c: added
4292
4293 2005-12-08 Raphael Neider <rneider AT web.de>
4294
4295         * src/pic/device.c: renamed is_shared to pic14_is_shared
4296         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4297         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4298           (is_valid_identifier): added for above workaround
4299
4300 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4301
4302         * device/lib/Makefile.in: fixed to enable port-specific-objects
4303         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4304           char, thanks Hubert Sack
4305         * doc/sdccman.lyx: documented --xstack-loc,
4306           elaborated a bit more on interrupts and pitfalls,
4307           removed "setjmp/longjmp unsupported",
4308           documented some unsupported C99 features
4309         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4310         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4311           if, thanks Hubert Sack
4312         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4313         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4314           make make_library
4315         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4316           regression tests can report resource usage (rfe 700441)
4317         * support/regression/collate-results.py: report resource usage
4318         * support/regression/ports/ds390/spec.mk,
4319         * support/regression/ports/hc08/spec.mk,
4320         * support/regression/ports/mcs51/spec.mk,
4321         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4322         * support/regression/ports/ds390/uCsim.cmd,
4323         * support/regression/ports/hc08/uCsim.cmd,
4324         * support/regression/ports/mcs51/uCsim.cmd,
4325         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4326         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4327           library, use the default one
4328         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4329           building the library
4330
4331 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4332
4333         * config.dsp: added dependency on .version and configure_vc.awk
4334         * device/include/setjmp.h: updated for --stack-auto and --xstack
4335         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4336         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4337         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4338         * device/lib/libsdcc.lib: added _setjmp
4339         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4340           (decorateType): fixed bug 1372851,
4341           (optimizeGetHbit): fixed warning
4342         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4343           array initialisation
4344         * support/regression/tests/bug1057979.c: added test for bug 1358192
4345         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4346
4347 2005-12-03 Borut Razem <borut.razem AT siol.net>
4348
4349         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4350           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4351
4352 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4353
4354         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4355         createIval): implement symbol independant "flexible array member",
4356         (createIvalCharPtr): implemented flexible array initialisation with a
4357         string
4358         * src/SDCCsymt.c (copyStruct): removed,
4359         (getSize): fixed misleading comment,
4360         (getAllocSize): removed, the additional allocation size is now in
4361         sym->flexArrayLength,
4362         (checkStructFlexArray): new, syntax checks for flexible array members,
4363         (compStructSize): added syntax checks for "flexible array members"
4364         (copyStruct): removed,
4365         (copyLinkChain): removed inefficient fix for bug 770487
4366         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4367         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4368         symbol->flexArrayLength
4369         * src/SDCCerr.c,
4370         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4371         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4372         * support/regression/tests/structflexarray.c: added
4373         * support/valdiag/tests/structflexiblearray.c: added
4374
4375 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4376
4377         * src/SDCCast.c (decorateType): fixed bug 1368489
4378         * support/Util/SDCCerr.c,
4379         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4380
4381 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4382
4383         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4384           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4385
4386 2005-11-27 Borut Razem <borut.razem AT siol.net>
4387
4388         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4389           support/cpp2/mkdeps.h: added command line option
4390           -obj-ext=<extension> to SDCPP to define object file externion, used
4391           for generation of make dependencies (-M)
4392         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4393
4394 2005-11-26 Borut Razem <borut.razem AT siol.net>
4395
4396         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4397           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4398           added pic and pic16 libraries
4399
4400 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4401
4402         * device/include/float.h: Corrected typo in prototype of __fsgt
4403
4404 2005-11-25 Borut Razem <borut.razem AT siol.net>
4405
4406         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4407           added creation of model-mcs51-stack-auto libraries
4408
4409 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4410
4411         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4412         and fields-list too
4413         * src/SDCCast.c (createIvalArray): removed obsolete comment
4414
4415 2005-11-24 Borut Razem <borut.razem AT siol.net>
4416
4417         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4418           added missing device/lib/mcs51/crt*.asm sources
4419
4420 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4421
4422         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4423
4424 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4425
4426         * device/lib/_fs2schar.c,
4427         * device/lib/_fs2sint.c,
4428         * device/lib/_fs2slong.c: optimized inline asm
4429
4430 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4431
4432         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4433           Better handling of floats between -1.0 and 0.0.
4434
4435 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4436
4437         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4438           (the missing "if"s prohibited removal of redundant labels)
4439
4440 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4441
4442         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4443           Properly convert floats between -1.0 and 0.0 to long, int, and char
4444           types (max integer value of negative floats tends to zero).
4445         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4446           Removed changes made so to work properly with floats between
4447           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4448           and _fs2char.c
4449
4450 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4451
4452         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4453         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4454         (genCast) cosmetic change
4455         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4456         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4457         from mcs51
4458         * support/regression/tests/bitfields (testSignedBitfields): added
4459
4460 2005-11-18 Borut Razem <borut.razem AT siol.net>
4461
4462         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4463         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4464           introduced SILENT option to make building of pic16 libraries less
4465
4466 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4467
4468         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4469           Now they work properly with floats between -1.0 and 0.0
4470         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4471
4472 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4473
4474         * src/SDCCicode.c (printOperand): added missing else
4475
4476 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4477
4478         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4479         reformatted for better readability
4480         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4481         signed bitfields
4482
4483 2005-11-17 Borut Razem <borut.razem AT siol.net>
4484
4485         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4486           introduced SILENT option to make building of pic16 libraries less
4487           verbose - used for nightly snapshot build
4488         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4489           available on Win32 platforms.
4490         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4491           medium, large, pic and pic16
4492
4493 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4494
4495         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4496           printf("%f"...) sets fraction to zero.
4497
4498 2005-11-16 Raphael Neider <rneider AT web.de>
4499
4500         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4501           fixes #1357221
4502         * src/pic/gen.c (genIfx): implemented for CARRY bit
4503         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4504           to generic pointers, fixes #1357332,
4505           (pic16_movLit2f): NEW,
4506           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4507
4508 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4509
4510         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4511
4512 2005-11-11 Raphael Neider <rneider AT web.de>
4513
4514         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4515         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4516           compute pointer's type from operand,
4517           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4518           improved single bit reads, fixes bug #1353379
4519
4520 2005-11-09 Borut Razem <borut.razem AT siol.net>
4521
4522         * support/scripts/sdcc.nsi: added lib/pic to the package
4523
4524 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4525
4526         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4527
4528 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4529
4530         * support/regression/tests/bug1348008.c: added
4531         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4532         * support/regression/tests/bug1337835.c: updated comment
4533
4534 2005-11-06 Borut Razem <borut.razem AT siol.net>
4535
4536         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4537           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4538           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4539           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4540           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4541           dynamic construction of cl_error_class and derivates - 2.nd try
4542
4543 2005-11-05 Borut Razem <borut.razem AT siol.net>
4544
4545         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4546           bug, which caused Bus Errors on sparc solaris
4547
4548 2005-11-04 Borut Razem <borut.razem AT siol.net>
4549
4550         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4551           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4552           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4553           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4554           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4555           and derivates to resolve the initialization problem on OSX
4556
4557 2005-11-02 Borut Razem <borut.razem AT siol.net>
4558
4559         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4560           corrected typo - #include <winsock2.h>
4561
4562 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4563
4564         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4565           (_asxxxx_mapping): added org directive for future enhancements
4566
4567 2005-11-01 Borut Razem <borut.razem AT siol.net>
4568
4569         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4570           enabled sockets on WIN32
4571         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4572
4573 2005-10-31 Borut Razem <borut.razem AT siol.net>
4574
4575         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4576           WIN32 backslash path delimiters should be escaped when used in C strings
4577         * support/regression/tests/bitfields.c: exclude failing assertions for
4578           __CYGWIN32__ and __MINGW32__ hosts
4579
4580 2005-10-30 Borut Razem <borut.razem AT siol.net>
4581
4582         * src/SDCCutil.c: corrected double comparison typo
4583
4584 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4585
4586         * device/lib/medium/Makefile: added for new memory model medium
4587         * device/include/asm/mcs51/features.h: updated for medium/pdata
4588         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4589           added Multiply & Accumulate sbit's and MAC0_PAGE define
4590         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4591         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4592         * device/lib/_mullong.c: update for medium model
4593         * device/lib/incl.mk: added medium model
4594         * doc/sdccman.lyx: documented medium model
4595         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4596         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4597         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4598         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4599           (allocParms): set SCLS and OCLS to pdata for medium model
4600         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4601           for pdata,
4602           (powof2): return <0 if not power of 2
4603         * src/avr/gen.c (genBitWise): use updated powof2
4604         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4605           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4606           (shiftLLeftOrResult): use B if necessary
4607         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4608         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4609         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4610         * support/regression/Makefile.in: added test-mcs51-medium
4611         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4612
4613 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4614
4615         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4616         specifier unsigned
4617         * device/lib/time.c (mktime): fixed bug 1334315
4618
4619 2005-10-28 Raphael Neider <rneider AT web.de>
4620
4621         * device/include/pic/p16f_common.inc: added common declarations
4622         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4623
4624 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4625
4626         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4627           (aopPutUsesAcc): added to predict accumulator use,
4628           (assignResultValue): save acc if necessary,
4629           (genMinusDec): store result if indirectly addressed,
4630           (genDivOneByte):  save acc if necessary,
4631           (movLeft2Result): bugfix if left already in acc,
4632           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4633             attention to accumulator use (esp. pdata),
4634           (genReceive): receive pdata correctly
4635         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4636         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4637
4638 2005-10-27 Raphael Neider <rneider AT web.de>
4639
4640         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4641
4642 2005-10-27 Raphael Neider <rneider AT web.de>
4643
4644         * .version: changed version to 2.5.4
4645         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4646         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4647           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4648             arithmetics support routines
4649         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4650         * device/lib/Makefile.in: also create installdir for pic
4651
4652         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4653           pic14 port as well
4654         * src/pic/device.c (dump_sfr): rewritten to delegate register
4655           placement to the linker (use `extern sym' rather than sym EQU addr),
4656           (validAddress): fixed to check last specified address
4657         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4658           (popGetLit): truncate literal value to 8 bit,
4659           (popGet): moved assert to more appropriate place
4660           (popGetExternal): create pCode operand from and mark the according
4661             symbol as being `extern'
4662           (popGetAddr): added sanity check on immediate's offset, provide
4663             GPOINTER tag on demand
4664           (aopPut): fixed for immediates,
4665           (mov2w_op): move operand's address or contents to WREG (depending on
4666             operand type), safer variant of mov2w,
4667           (movwf,call_libraryfunc): NEW, handy abbreviations,
4668           (get_argument_pcop,get_return_val_pcop,pass_argument,
4669           get_returnvalue): interface for accessing function parameters and
4670             return values,
4671           (assignResultValuei,genRet): use new parameter/return value interface
4672           (pic14_getDataSize): back to old version handling generic pointers,
4673           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4674             provided implementation and/or fixed old one,
4675           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4676             calls, removed legacy 8051 reference code
4677           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4678           (loadSignToC): NEW, move the operands sign bit to CARRY,
4679           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4680             genRightShiftSigned, accepts negative shift counts,
4681           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4682           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4683             generic pointers, __data pointers and __code pointers,
4684           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4685             and signed bitfields, limit bitfields to 8 bit,
4686           (genDataPointerGet): fixed number of bytes read,
4687           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4688           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4689             pointers to constant data are no longer assumed to point to __code
4690             space, removed invalid pointer types,
4691           (bitpatternFromVal): retrieve the PICs representation of an integer
4692             or float literal,
4693           (genDataPointerSet): fixed assigning to po_immediate operands,
4694           (genGenPointerSet): implemented as library call,
4695           (genIfx): fixed incorrect condition,
4696           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4697             provide GPOINTER tag according to destination's storage class,
4698           (genCast): added code to handle casting to generic pointers, added
4699             sign-/zero extension of the result
4700           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4701         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4702         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4703           extend the result
4704         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4705           address/register resides in the shared banks
4706           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4707             put all variables into separate sections (have the linker arrange
4708             them)
4709           (picglue): put init code and interrupt handlers in separate sections
4710         * src/pic/main.c: added port specific options table, modified to PORT
4711           structure to make GPOINTERs 3 byte, added pic14_options
4712           (_pic14_do_link): private linking routine (update paths to libraries,
4713             add libsdcc.lib by default)
4714         * src/pic/main.h: declare pic14_options
4715         * src/pic/pcode.c: fixed instructions i/o relations,
4716           (RegCond): reverted to correct version,
4717           (newpCodeOpLit): truncate literals to 8 bit,
4718           (genericPrint): added debug output,
4719           (getRegFromInstruction): fixed for various operand types, simplified
4720           (BuildFlow): fixed broken handling of isntructions with labels
4721           (LinkFlow): start at last instruction in flow (skip trailing comments),
4722             pass the flow on to the next instruction after CALL
4723           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4724           (insertPCodeInstruction): fixed inserting after a skip instruction,
4725           (DoBankSelect): fixed for labeled instructions
4726           (OptimizepBlock): honor --nopeep switch
4727           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4728         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4729         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4730           (pCodeOptime2pCodes): allow disabling this optimization via
4731             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4732             but is still buggy), started implementation of a dataflow based
4733             pCode optimization (CSE + dead code elimination)
4734           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4735         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4736           names are independant of the stack location and therefore portable across
4737           devices
4738
4739 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4740
4741         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4742           (selectSpil): fixed bug 1337835 by not spilling bit variables
4743         * support/regression/tests/bug1337835.c: added test for this bug
4744         * src/mcs51/peeph.def: restart after rule 3.c,
4745           addded rules 263.x to optimize loading constants
4746
4747 2005-10-26 Raphael Neider <rneider AT web.de>
4748
4749         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4750         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4751           (genAssign): emit warning when casting literals to generic pointer
4752             type, also applies when taking the address of a fixed variable,
4753           (genCast): improved casting to generic pointers
4754         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4755           extern variables, added verbose error message
4756         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4757
4758 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4759
4760         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4761         carry must be complemented too
4762         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4763         could be emitted by genMinus
4764         * src/SDCCval.c (constVal): fixed bug 1305065
4765
4766 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4767
4768         * src/SDCCast.c (addCast): added promotion for bit variables
4769         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4770         promotion casts + optimisation
4771         (optimizeGetWord): fix warning 'i' might be used uninitialized
4772         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4773         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4774
4775 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4776
4777         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4778         all chars are promoted to int; promotion should be handled in SDCCast.c
4779
4780 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4781
4782         * device/lib/_strcmp.c: Fixed bug 1326457
4783
4784 2005-10-11 Raphael Neider <rneider AT web.de>
4785
4786         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4787         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4788
4789 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4790
4791         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4792         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4793
4794 2005-10-04 Raphael Neider <rneider AT web.de>
4795
4796         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4797           device/lib/pic16/pics.all: added pic18f1320
4798         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4799
4800 2005-09-30 Raphael Neider <rneider AT web.de>
4801
4802         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4803         * src/pic16/devices.inc: NEW, provides device descriptions
4804         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4805
4806 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4807
4808         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4809           GETHBIT
4810
4811 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4812
4813         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4814           documented Any Order Bit, Higher Order Byte and Higher Order Word
4815         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4816         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4817           (optimizeGetAbit): new, to get any bit, not only the high bit,
4818           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4819           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4820           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4821           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4822             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4823             GETABIT, GETBYTE, GETWORD: decorate them,
4824           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4825           (ast_print): added GETABIT, GETBYTE, GETWORD
4826         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4827         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4828           (geniCodeBinary): new generic binary icode,
4829           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4830         * src/port.h: updated comment for PORT.hasExtBitOp
4831         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4832           (genGetByte): new, to get a single byte,
4833           (genGetWord): new, to get a word from a long,
4834           (gen51Code): added GETABIT, GETBYTE, GETWORD
4835         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4836
4837 2005-09-23 Raphael Neider <rneider AT web.de>
4838
4839         * configure.in, configure: have device/lib/pic configured
4840         * device/lib/Makefile.in: added model-pic14
4841         * device/lib/clean.mk: added pic/ to clean rule
4842         * device/lib/pic: added rudimentary pic14 library providing support
4843           functions for multiplication/division/generic pointer access
4844         * src/SDCCopt.c (convilong): mark support functions as extern
4845           for pic14 port as well
4846         * src/pic/gen.c (genMult): added assertions,
4847           (genpic14Code): emit warning on unhandled iCodes
4848         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4849         * src/pic/pcode.c (pCodeOpCopy),
4850         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4851           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4852           SFR_REGISTER}), made safe for future extensions
4853         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4854           instructions even if preceeded by SKIP instructions (also remove
4855           them); removed unused code
4856         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4857           prevents leaving parts of the structure uninitialized after copying
4858
4859 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4860
4861         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4862           ago by me
4863         * support/regression/tests/addsub.c: added test for the bug
4864
4865 2005-09-21 Raphael Neider <rneider AT web.de>
4866
4867         * device/include/pic16/pic18f1220.h,
4868           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4869         * device/lib/pic16/Makefile.rules: added missing opening paren
4870         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4871           are provided in genutils.c,
4872           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4873           operand/result sizes,
4874           (genCmp): assert on NULL pointers first, then check deref'ed values
4875         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4876           result size
4877
4878 2005-09-18 Raphael Neider <rneider AT web.de>
4879
4880         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4881           as these are now unused,
4882           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4883         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4884           local, avoids uninitialized pointer dereference on r->name
4885         * src/pic16/ralloc.c (newReg): fixed indentation
4886
4887 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4888
4889         * src/SDCCval.c (constVal): fixed bug 730366
4890         * support/Util/SDCCerr.c,
4891         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4892
4893 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4894
4895         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4896
4897 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4898
4899         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4900
4901 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4902
4903         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4904           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4905         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4906           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4907         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4908         * packihx/packihx.c (hexDigit): made c unsigned char
4909         * as/mcs51/lklibr.c (fndsym),
4910         * link/z80/lkgb.c (gb),
4911         * link/z80/lklibr.c (fndsym),
4912         * link/z80/lkrloc.c (relr),
4913         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4914         * src/SDCC.lex (checkCurrFile, process_pragma),
4915         * src/SDCCglue.c (spacesToUnderscores),
4916         * src/SDCCmain.c (setParseWithComma, processFile),
4917         * src/asm.c (tvsprintf, printCLine),
4918         * src/avr/gen.c (emitcode, aopPut),
4919         * src/ds390/gen.c (emitcode),
4920         * src/hc08/gen.c (emitcode, emitinline),
4921         * src/mcs51/gen.c (emitcode, genInline),
4922         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4923           tokenizeLineNode),
4924         * src/pic/ralloc.c (debugLog),
4925         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4926           tokenizeLineNode),
4927         * src/pic16/ralloc.c (debugLog),
4928         * src/z80/main.c (_process_pragma):
4929            made all ctype.h function calls safe
4930         * src/SDCCopt.c: include math.h for fabs
4931         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4932           and used them throughout the code to make ctype.h function calls safe
4933         * src/ds390/main.c (asmLineNodeFromLineNode),
4934         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4935         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4936            unsigned char*
4937         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4938           (newpCodeAsmDir): made ctype.h function calls safe
4939         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4940           pic16_emitcode):  made lbp unsigned char*
4941         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4942           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4943         * src/xa51/gen.c (emitcode),
4944         * src/z80/gen.c (_emit2): made lbp unsigned char*
4945         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4946            char*
4947
4948 2005-09-05 Raphael Neider <rneider AT web.de>
4949
4950         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4951           access bank splitpoint
4952
4953 2005-09-05 Raphael Neider <rneider AT web.de>
4954
4955         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4956
4957 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4958
4959         * .version: changed to version 2.5.3
4960         * doc/sdccman.lyx: changed version to 2.5.3,
4961           documented --codeseg and --constseg and pragma codeseg and constseg,
4962           documented bit parameters (reentrant) and bit returning
4963         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4964            currFunc->recvSize, but is this ok for all ports?
4965           (ast2iCode): result of ~ on unsigned char must be cast to int for
4966            bool to work
4967         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4968           function pointers in bit space
4969         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4970           (processFuncArgs): call port.reg_parm() with reentrancy info
4971         * src/port.h,
4972         * src/avr/main.c,
4973         * src/ds390/main.c,
4974         * src/hc08/main.c,
4975         * src/pic/main.c,
4976         * src/pic16/main.c,
4977         * src/xa51/main.c,
4978         * src/z80/main.c: port.reg_parm prototype extended with
4979           "bool reentrant" parameter
4980         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4981           options.stackAuto for allocating bit register parameters
4982         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4983           (genSend): set BitBankUsed if it is,
4984           (selectRegBank): factored out of genCall for use in genPcall,
4985           (genCall): removed redundant dtype assignmen, use selectRegBank,
4986           (genPcall): handle returning in Carry properly, save in F0 if needed,
4987           (genReceive): handle bit register parameters
4988         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4989           (mcs51_assignRegisters): enable bit registers for all reentrant
4990            functions and don't set BitBankUsed unconditionally
4991         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4992         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4993         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4994
4995 2005-08-27 Borut Razem <borut.razem AT siol.net>
4996
4997         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4998         ppc-osx (Darwin) does not support -u option. It seems that it is
4999         supported only on Linux - GNU cp
5000
5001 2005-08-25 Borut Razem <borut.razem AT siol.net>
5002
5003         * sim/ucsim/gui.src/serio.src/Makefile.in,
5004           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
5005           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5006           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5007           install and strip, since the strip at /usr/ccs/bin should be used
5008           on solaris
5009
5010 2005-08-24 Borut Razem <borut.razem AT siol.net>
5011
5012         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5013
5014 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5015
5016         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5017         ffffffffu
5018
5019 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5020
5021         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5022         * as/mcs51/lkmain.c (link_main): fixed warning
5023         * device/include/stdbool.h: ds390 has no advanced bit support yet
5024         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5025         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5026         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5027           and updated their macros
5028         * src/SDCCval.c (constVal): updated comment for renamed b_long
5029
5030 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5031
5032         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5033         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5034           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5035           (oprio): set priority for '['
5036         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5037            and adb_24_bit
5038         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5039         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5040         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5041         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5042           added overlayable BIT_BANK area
5043         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5044           (summary2): explain 'T' in legenda
5045         * as/mcs51/lkrloc.c: replaced old K&R style,
5046           (relr): added R_BIT processing,
5047           (errmsg): added "Bit-addressable relocation error",
5048           (adb_bit): added for converting from byte- to bit-addressable space,
5049           (adb_24_bit): added for converting from byte- to bit-addressable space
5050         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5051            used in reentrant functions now even as return value
5052         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5053         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5054           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5055         * src/SDCCglobl.h: added indicator BitBankUsed
5056         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5057            the bit registers b0-b7
5058         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5059           (geniCodeCast): fixed bug 1263853,
5060           (geniCodeLogicAndOr): put result in bool or char,
5061           (geniCodeReceive): added parameter func for accessing the return type,
5062           (geniCodeFunctionBody): pass func to geniCodeReceive
5063         * src/SDCCmain.c: added indicator BitBankUsed
5064         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5065         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5066           (checkSClass): don't put automatic bool/bit on stack,
5067           (checkFunction): removed check on function cannot return bit
5068         * src/SDCCsymt.h: added newBoolLink prototype
5069         * src/mcs51/gen.c (rb1regs): added bit registers,
5070           (movc): created for assigning to carry,
5071           (pushReg, popReg): created for pushing registers,
5072           (sameRegs): check both AOP_REG and AOP_CRY types,
5073           (aopOp): handle bit registers,
5074           (aopPut): optimization no self-assign,
5075           (saveRegisters): push reg->base (bits) only once for bit registers,
5076            and use pushReg,
5077           (unsaveRegisters): pop reg->base only once and use popReg,
5078           (assignResultValue): added parameter func and return in carry for bits,
5079           (genIpush): optimization no reload in A if not changed,
5080           (genSend): bit parameters in reentrant functions are passed in bit
5081            registers by first assigning to bits in B, then save registers and
5082            copy B to bits,
5083           (genCall): handle returning in Carry properly, save it in F0 if needed,
5084           (genPcall): updated assignResultValue call, this is not safe yet for bit
5085            returning function !!!
5086           (genFunction): don't generate equ's for bit registers and use pushReg,
5087           (genEndFunction): take care of bit returning functions and use popReg,
5088           (genRet): return bit in Carry,
5089           (genIfx): optimize bit registers and other directly addressable bits,
5090           (genReceive): updated assignResultValue call
5091         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5092           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5093            registers when using stack-auto
5094         * src/mcs51/ralloc.c (_G): added allBitregs,
5095           (regs8051): added the bit registers,
5096           (createStackSpil): use macro IS_BIT,
5097           (getRegBit): added to allocate a bit register, else spill,
5098           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5099           (updateRegUsage): factored out to ease stepping while debugging,
5100           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5101            also allocate bit registers,
5102           (fillGaps): handle bit registers,
5103           (findAllBitregs): added to create bit vector with all bit registers,
5104           (mcs51_allBitregs): returns this bit vector,
5105           (mcs51_assignRegisters): when using stack-auto use bit registers for
5106            passing parameters and creating local variables
5107         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5108
5109 2005-08-22 Borut Razem <borut.razem AT siol.net>
5110
5111         * device/lib/Makefile.in: replaced find option -or with -o
5112           to make it run on solaris
5113
5114 2005-08-22 Raphael Neider <rneider AT web.de>
5115
5116         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5117           fixes #1265442 (crash on Solaris)
5118
5119 2005-08-20 Borut Razem <borut.razem AT siol.net>
5120
5121         * configure, configure.in: added tests for libsocket and libnsl libraries,
5122           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5123           from support/regression/Makefile.in
5124         * support/regression/Makefile.in: added
5125         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5126         * sim/ucsim/libtool: regenerated on sparc-solaris
5127         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5128           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5129           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5130           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5131           sparc-solaris, which doesn't use GNU ld linker
5132         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5133         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5134
5135 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5136
5137         * src/mcs51/peeph.def: updated comments
5138
5139 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5140
5141         * device/lib/_gptrget.c,
5142         * device/lib/_gptrput.c: slightly shorter
5143         * doc/sdccman.lyx: incremented version
5144         * src/mcs51/peeph.def: moved peephole comments to the line of first
5145           change to better keep line correlation, reanimated 186.e
5146         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5147
5148 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5149
5150         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5151           David Saxton with quotes around file name.
5152
5153 2005-08-15 Borut Razem <borut.razem AT siol.net>
5154
5155         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5156           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5157           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5158           make tests run on x86_64 platform
5159
5160 2005-08-13 Raphael Neider <rneider AT web.de>
5161
5162         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5163           as it might be executed DURING a build (parallel make is wonderful)
5164
5165 2005-08-13 Raphael Neider <rneider AT web.de>
5166
5167         * device/lib/Makefile.in (port-specific-objects-pic16):
5168           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5169         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5170           dependency
5171         * device/lib/pic16/Makefile.rules: build subdirs before creating
5172           the library, removed builddir rule, create $(builddir) early in
5173           recurse rule, use empty recurse rule for leaf directories
5174         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5175           mkdir errors (race condition), removed duplicate suffix "hex"
5176           from clean rules
5177         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5178         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5179           prevents mkdir -p from aborting on Alpha
5180
5181 2005-08-12 Raphael Neider <rneider AT web.de>
5182
5183         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5184           db-statements in order to allow for arrays of pointers in code
5185           sections to be placed without interspersed 0-padding, fixes
5186           bug #1256215
5187         * (emitStatistics): fixed division by zero for pic18f1220
5188         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5189           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5190         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5191         * (pic16_pCodeConstString): keep track of already emitted string
5192           literals to prevent "duplicate definitions of symbol _str_NR"
5193         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5194           debug message
5195         * device/lib/Makefile.in: ignore failing PIC16 library builds
5196         * device/lib/pic16/Makefile: do not build if gputils are missing
5197         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5198
5199 2005-08-10 Raphael Neider <rneider AT web.de>
5200
5201         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5202           my last commit)
5203
5204 2005-08-10 Raphael Neider <rneider AT web.de>
5205
5206         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5207           Rokas' patch to add the new fixed point type "__fixed16x16"
5208         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5209           functions for __fixed16x16 arithmetics
5210         * device/lib/pic16: reimplemented the build system to support
5211           a separate build directory, better handling of libio (create
5212           the library in a separate subdir for each architecture) and
5213           easier configuration (centralized in Makefile.common)
5214
5215 2005-08-07 Raphael Neider <rneider AT web.de>
5216
5217         * src/pic16/gen.c (genrshTwo): fixed sign extension
5218         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5219         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5220           added T0CONbits
5221         * device/include/pic16/pic18f4220.h: NEW, header for
5222           pic18f4220 and pic18f4320
5223         * device/include/pic16/pic18fregs.h: added new devices,
5224           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5225         * device/include/pic16/signal.h: resolved name clashes
5226           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5227           to also allow testing for interrupt enable bits, added
5228           comments on how to use the macros
5229         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5230         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5231           register definitions for the devices
5232         * device/lib/pic16/pics.all: added new devices
5233         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5234           allocated memory
5235         * device/lib/pic16/libc/stdlib/memfree: do not count
5236           the block header as free memory
5237         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5238           simplified and added missing end-of-blocklist-marker
5239           (reported by Peter Onion, fixes #1252814)
5240         * (_mergeHeapBlock): fixed loop condition
5241         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5242           len==0, restructured code
5243         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5244           up a bit, reduced bitfield accesses, prevent endless loops
5245           in case of heap corruption
5246         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5247           "unreferenced arguments/must return a value" warnings
5248         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5249           replaced BAUDREG with SPBRG
5250         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5251           device/lib/pic16/debug/gstack/gstack.c: replaced
5252           _naked, _asm, _endasm with __naked, __asm, __endasm
5253
5254 2005-08-05 Raphael Neider <rneider AT web.de>
5255
5256         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5257           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5258
5259 2005-08-05 Borut Razem <borut.razem AT siol.net>
5260
5261         * device/lib/Makefile.in: added missing ';'
5262         * configure: removed ^M characters
5263
5264 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5265
5266         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5267           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5268           License
5269
5270 2005-08-04 Borut Razem <borut.razem AT siol.net>
5271
5272         * configure.in: pic16 libraries build 2nd try - enable running
5273           configure in device/lib/pic16
5274         * configure: regenerated from configure.in
5275         * device/lib/Makefile.in: create $(PORT)/bin directory
5276
5277 2005-08-03 Raphael Neider <rneider AT web.de>
5278
5279         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5280           to get/set values via pointers
5281         * (genUnpackBits,genPackBits): changed detection of
5282           ptr->bitfield vs. sym.bitfield, fixed access via generic
5283           pointers, removed dead (wrong) code for multibyte bitfields
5284         * (genNearPointerGet, genGenPointerGet): removed useless code,
5285           fixed bitfield detection, fixes #1250594
5286         * (genNearPointerSet): removed useless code
5287         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5288           and introduced macro pic16_emitpcode that conditionally emits
5289           the origin of the following pCode (useful for debugging SDCC)
5290         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5291         * (createDefmap): fixed handling of LFSR for --optimize-df
5292
5293 2005-08-02 Borut Razem <borut.razem AT siol.net>
5294
5295         * device/lib/Makefile.in: pic16 libraries build enabled since
5296           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5297
5298 2005-08-02 Raphael Neider <rneider AT web.de>
5299
5300         * src/pic16/gen.c (genPackBits): removed deprecated warning
5301         * (genGenPointerSet): fixed bitfield detection
5302
5303 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5304
5305         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5306
5307 2005-07-31 Raphael Neider <rneider AT web.de>
5308
5309         * device/lib/pic16/libdev/pic18f458.c,
5310           device/include/pic16/pic18f458.h: added missing T0CONbits
5311
5312 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5313
5314         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5315
5316 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5317
5318         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5319
5320 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5321
5322         * device/include/mcs51/at89c51ed2.h: added.
5323
5324 2005-07-23 Raphael Neider <rneider AT web.de>
5325
5326         * src/pic/gen.h: added emitpcode macro for debugging
5327         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5328           and replace by macro adding debug information on demand
5329         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5330         * (gencjne): tried to fix; replaced with correct (slower) code
5331         * (gen{Unp,P}ackBits): fixed single bit access
5332         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5333         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5334           previous instruction
5335         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5336           register has to be handled with care (forbidding movement
5337           of assignments/uses, removing assignments completely, ...)
5338         * (pCodeOptime2pCodes): make use of regIsSpecial
5339         * added lots of debugging output (commented out)
5340         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5341           from being reused as result UNLESS it is known to work
5342
5343 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5344
5345         * support/Util/dbuf.h: include <stddef.h> for size_t
5346         * .version: changed to version 2.5.2
5347
5348 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5349
5350         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5351
5352 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5353
5354         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5355           (genModOneByte): removed needless psha/pula
5356
5357 2005-07-22 Raphael Neider <rneider AT web.de>
5358
5359         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5360           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5361         * src/pic/gen.c (resolveIfx): do not "invent" labels
5362         * (genSkipc): changed to positive logic
5363         * (genSkipCond): removed as no longer needed
5364         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5365           backport from PIC16
5366         * (genLeftShift): check operands are in different registers
5367         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5368           INCF does not update CARRY...
5369         * src/pic/main.c: fixed _linkCmd
5370         * src/pic/pcode.c (unlinkpCode): added inactive code
5371         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5372           alive (do not assign result and operand overlapping registers)
5373
5374 2005-07-22 Raphael Neider <rneider AT web.de>
5375
5376         * src/pic/device.c (dump_sfr): replaced register declaration with
5377           call to emitSymbolToFile() to avoid duplicate symbols
5378         * (assignRelocatableRegisters): do not declare external symbols
5379         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5380           right (take size of type, not etype)
5381         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5382         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5383         * (packRegsForAccUse): disabled assignment of WREG as
5384           the result reg to prevent occurence of just fixed #1235003,
5385           fixes #1242954
5386         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5387           symbols (avoids duplicate symbols in .asm file)
5388         * (pic14emitRegularMap): use emitSymbolToFile()
5389         * src/pic/gen.c (aopOp): fixed spillLocation handling
5390         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5391         * (genDataPointerSet): removed unneccessary variables/output
5392
5393 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5394
5395         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5396         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5397
5398 2005-07-21 Raphael Neider <rneider AT web.de>
5399
5400         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5401           architecture cannot handle them efficiently, fixes bug #1235003
5402         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5403           check for empty sets before using them (fixes bug #1232190)
5404
5405 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5406
5407         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5408           (lnksect2): generate warnings for memory overlap
5409         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5410           constseg to set the name of these segments so you can instruct the linker
5411           to place them in banks
5412         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5413         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5414           added code_seg and const_seg to options
5415         * src/SDCCglue.c (emitMaps): use options.const_seg,
5416           (createInterruptVect): put interrupt vectors in segment HOME,
5417           (glue): put HOME before static segment and put the main glue in HOME,
5418           (glue): use options.code_seg
5419         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5420         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5421           these segments so you can instruct the linker to place them in banks
5422           (linkEdit): use code_loc for HOME segment which should be the first
5423           segment in code memory now
5424         * src/SDCCmem.c: fixed more stuff like bug 1238386
5425         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5426           (changePointer): don't change function pointers to code pointers for
5427           banked functions,
5428           (compareType): added exceptional check for banked function pointers
5429         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5430         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5431           after static in code memory
5432         * src/mcs51/gen.c: added aopLiteralLong prototype,
5433           (aopForSym): use getSize for functions,
5434           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5435           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5436           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5437           the segment,
5438           (genPcall): use call for literal function pointers and generate banked
5439           calls over the one trampoline so there's only one place for the user to
5440           modify according to his/hers hardware,
5441           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5442           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5443         * src/mcs51/main.c: added keyword banked,
5444           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5445         * support/Util/SDCCerr.c,
5446         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5447           needed for passing the bank and address to the trampoline
5448         * device/lib/mcs51/crtbank.asm: added for bankswitching
5449         * device/lib/mcs51/Makefile: added crtbank
5450
5451 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5452
5453         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5454           for fields at offset 0 of a struct or union as reported
5455           on 2005-07-07 in the developer mailing list.
5456
5457 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5458
5459         * src/SDCCmem.c: fixed bug 1238386
5460
5461 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5462
5463         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5464           (patch #1144962), added peephole 300, enabled 259.x
5465         * doc/sdccman.lyx: removed screenshot and provided link instead
5466
5467 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5468
5469         * doc/sdccman.lyx: added section about debugging with ddd
5470         * doc/figures/ddd_example.eps: screenshot of debugging session
5471
5472 2005-07-04 Raphael Neider <rneider AT web.de>
5473
5474         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5475           like CODE pointers, fixes #1115683
5476         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5477           call, fixes bugs #1232211, #1228110,
5478           fixed wrong casts to pCodeFlow from pCodeInstructions
5479
5480 2005-07-04 Raphael Neider <rneider AT web.de>
5481
5482         * src/pic/gen.c (popGet): changed assert to allow for
5483           bit operands
5484         * (popGetAddr): changed signature to provide
5485           an additional index, patched all call sites
5486         * (genCmpEq): handle literal-like operands correctly
5487         * (genAddrOf): added sanity checks on __code/__data pointers
5488         * (genAssign): added handling of symbols from __code section
5489         * (gencjne): do not generate code for comparisons whose result
5490           is neither stored nor used, fixes bug #1171114
5491         * (AccLsh, AccRsh): operate on operand instead of WREG
5492         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5493           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5494           by known count
5495         * rewrote complete shift-by-literal logic, commented unused
5496           functions out
5497         * (genConstPointerGet): get multiple bytes (if result size > 1),
5498           fixed handling of non-immediate addresses
5499         * (genPointerGet): handle CODE pointers like CONST pointers
5500         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5501         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5502           operand is to be treated as a literal or not
5503         * (mov2w,genPcall,genCmpEq),
5504           src/pic/genarith.c: use aop_isLitLike() to decide between
5505           literal/register contents
5506         * (addSign): added missing offset
5507         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5508           only emit comment in debug-mode,
5509           use {aop,op}_isLitLike throughout the file
5510         * src/pic/glue.c: fix initializers for pointers (work in progress)
5511         * src/pic/pcode.c (get_op): honor index on _const symbols
5512         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5513         * (dumppBlock): added pCode size estimation
5514         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5515           check for IS_SYMOP before OP_SYMBOL'ing
5516         * fixed indentation, compacted switch-statements
5517         * (allocReg): find free register and allocate it instead of
5518           allocating new registers all the time
5519         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5520           registers as its operands (necessary only for multibyte GETs)
5521
5522 2005-07-01 Raphael Neider <rneider AT web.de>
5523
5524         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5525           debugging .asm-output macros FENTRY + FEXIT
5526         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5527           way... I wonder...
5528         * (emitpComment): NEW, printf to pCode
5529         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5530           offset handling
5531         * (popGetAddr): NEW, variant of popGet to access an immediates
5532           high(er) bytes instead of the n'th byte of memory they reference,
5533           replaced popGet with popGetAddr where neccessary
5534         * (genDataPointerGet): reactivated and fixed implementation
5535         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5536           accesses
5537         * (genDataPointerSet): fixed multibyte assignments
5538         * (genpic14Code): fixed --i-code-in-asm handling
5539         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5540         * (genPlus): fixed index-out-of-bounds error
5541         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5542         * src/pic/ralloc.c: added debugging output macro FENTRY2
5543         * (spillThis): fixed indentation, enbraced for-body for clarity
5544         * (rematStr): commented out as now unused
5545         * (regTypeNum): commented out special spill case (overwrites
5546           arbitrary values)
5547         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5548
5549 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5550
5551         * doc/sdccman.lyx: documented sfr16/sfr32,
5552           added example for using storage class with function pointers
5553         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5554
5555 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5556
5557         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5558         * device/lib/_itoa.c,
5559         * device/lib/_ltoa.c: optimized codesize
5560         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5561           but don't know how to suppress the double warning.
5562         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5563         * support/Util/SDCCerr.c,
5564         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5565
5566 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5567
5568         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5569           fixed old K&R prototypes
5570         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5571         * device/lib/_gptrget.c,
5572         * device/lib/_gptrgetc.c,
5573         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5574           also new versions for small generic pointers and banked generic pointers
5575         * src/port.h: added const_name
5576         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5577         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5578         * src/SDCCcse.c (findPrevIc): check all associative operators
5579         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5580         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5581         * src/SDCCmem.c: updated comments,
5582           set far-space to 0 for pdata, results in optimized code
5583         * src/SDCCmem.h: added macro CONST_NAME
5584         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5585           moving the info into the highest bits, see also gptrget/gptrput
5586         * src/src.dsp: added sdcc.ico to project files
5587         * src/avr/gen.c (genCast): fixed bug 0x%d
5588         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5589         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5590           relation between ptr_type and DCL_TYPE,
5591           (genCast): fixed bug 0x%d
5592         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5593           (CODE)" for const_name
5594         * src/hc08/gen.c (genCast): fixed bug 0x%d
5595         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5596           (hc08_port): added "CONST (CODE)" for const_name
5597         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5598           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5599           between ptr_type and DCL_TYPE,
5600           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5601           operand* and took AOP() inside function so sfr-ness can be checked,
5602           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5603           new prototype,
5604           (genFunction, genEndFunction): optimized stack setup,
5605           (genMinus): optimized for literals with ending zeroes (in bytes),
5606           (genCast): fixed bug 0x%d
5607         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5608           (mcs51_port): added "CONST (CODE)" for const_name
5609         * src/mcs51/peeph.def: made rule 226 more generic
5610         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5611         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5612         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5613         * src/z80/main.c (z80_port): added NULL for const_name,
5614           (gbz80_port): added NULL for const_name
5615         * support/regression/tests/bug663539.c,
5616         * support/regression/tests/sfr16.c: new tests
5617
5618 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5619
5620         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5621
5622 2005-06-24 Raphael Neider <rneider AT web.de>
5623
5624         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5625           corrected typos...
5626         * device/include/pic16/signal.h: added USBIF
5627           and SIG_USB
5628
5629 2005-06-24 Raphael Neider <rneider AT web.de>
5630
5631         * device/lib/pic16/libdev/pic18f2455.c,
5632           device/include/pic16/pic18f2455.h: NEW
5633         * device/include/pic16/pic18fregs.h,
5634           device/lib/pic16/pics.all,
5635           src/pic16/device.c: added 18f2455
5636         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5637           device/include/pic16/{pic18f[68][567].h,usart.h}:
5638           replaced MULTIPLE_USARTS define with more relaible
5639           compatibility sfrs (for USART access)
5640
5641 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5642
5643         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5644           and the output asm file line is printed on two lines.
5645
5646 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5647
5648         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5649           BGT, BLE, BHI, and BLS instructions
5650         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5651           genCmpEq): removed
5652         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5653           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5654           fixes bug #1216342
5655         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5656
5657 2005-06-15 Raphael Neider <rneider AT web.de>
5658
5659         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5660         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5661         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5662           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5663           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5664
5665 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5666
5667         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5668           Marcel Telka in bug #1215704
5669
5670 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5671
5672         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5673           located in shared memory bank.
5674
5675 2005-05-31 Raphael Neider <rneider AT web.de>
5676
5677         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5678           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5679           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5680
5681 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5682
5683         * device/lib/_strncpy.c: fixed the fix
5684
5685 2005-05-26 Raphael Neider <rneider AT web.de>
5686
5687         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5688           initializers with \0, bug #1208187
5689         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5690           intializers with \0, bug #1208187
5691
5692 2005-05-26 Raphael Neider <rneider AT web.de>
5693
5694         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5695           initializers with \0, bug #1208187
5696         * src/pic16/main.c (_process_pragma): added sanity checks
5697           for stack position and size, emit warnings when appropriate
5698
5699 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5700
5701         * device/lib/_strncpy.c: fixed not filling with \0
5702
5703 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5704
5705         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5706           createFunction),
5707         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5708           compound_statement),
5709         * src/SDCCsymt.h,
5710         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5711
5712 2005-05-24 Raphael Neider <rneider AT web.de>
5713
5714         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5715
5716 2005-05-24 Raphael Neider <rneider AT web.de>
5717
5718         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5719           TRISE definitions, closes bug #1162453
5720
5721 2005-05-22 Raphael Neider <rneider AT web.de>
5722
5723         * src/pic16/main.c (_process_pragma): check for missing
5724           arguments to pragmas code and udata
5725         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5726           consistency fixes to match other headers (thanks to Jim Paris)
5727         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5728
5729 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5730
5731         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5732
5733 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5734
5735         * support/regression/tests/bug1198642.c: new test
5736         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5737         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5738         * support/scripts/resource.h,
5739         * support/scripts/resource.rc,
5740         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5741         * support/scripts/sdcc.ico: added 32x32 icon
5742
5743 2005-05-18 Raphael Neider <rneider AT web.de>
5744
5745         * device/lib/pic16/libdev/pic18f*.c,
5746         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5747           keywords to "__sfr" and "__at (X)"
5748         * device/include/pic16/pic18fregs.h: added pic18f4520
5749         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5750           #1203088 (MPLAB compatibility)
5751
5752 2005-05-17 Raphael Neider <rneider AT web.de>
5753
5754         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5755         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5756         * device/lib/pic16/pics.all: added new devices
5757         * src/pic16/device.c: added support for pic18f4520
5758
5759 2005-05-16 Raphael Neider <rneider AT web.de>
5760         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5761         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5762         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5763           convenience function for bit access
5764
5765 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5766
5767         * device/lib/printf_large.c: fixed bug 1193299
5768         * support/regression/tests/bug1057979.c: added test %3.3s
5769
5770 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5771
5772         * device/include/mcs51/8051.h,
5773         * device/include/mcs51/8052.h: made parseable with lint
5774         * device/include/mcs51/lint.h: added include file for (sp)lint
5775         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5776         * doc/cdbfileformat.lyx,
5777         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5778
5779 2005-05-14 Raphael Neider <rneider AT web.de>
5780
5781         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5782         * device/lib/pic16/libc/stdlib/itoa.c (new)
5783         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5784         * device/lib/pic16/libio/Makefile: exclude subdir according to
5785           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5786         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5787         * src/pic16/gen.c (genFunction): prevent annoying warning
5788         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5789           nameclashes on BeOS
5790         * support/cpp2/cppmain.c (cpp_output_string): new
5791         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5792           fixes bug 1116802
5793
5794 2005-05-13 Borut Razem <borut.razem AT siol.net>
5795
5796         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5797
5798 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5799
5800         * .version: changed to version 2.5.1; back to bleeding edge development
5801
5802 2005-05-11 Borut Razem <borut.razem AT siol.net>
5803
5804         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5805           generate PDF version 1.3 documents
5806
5807 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5808
5809         * .version: changed to version 2.5.0
5810
5811 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5812
5813         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5814
5815 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5816
5817         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5818         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5819         well as many smaller updates.
5820         * .version: changed to version 2.5.0-pre1
5821
5822 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5823
5824         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5825
5826 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5827
5828         * support/regression/tests/bug1185672.c: added
5829         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5830           bug 1185672
5831         * src/mcs51/gen.c (genCall): added comments, made it look safer
5832         * src/mcs51/gen.c (genEndFunction): simplified
5833
5834 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5835
5836         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5837
5838 2005-04-14 Borut Razem <borut.razem AT siol.net>
5839
5840         * fixed bug 1045046 - SIGSEGV with really simple code?:
5841           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5842           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5843
5844 2005-04-14 Borut Razem <borut.razem AT siol.net>
5845
5846         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5847           src/pic16/device.h: temporarily disabled experimental #inline pragma
5848           for 2.5.0 release
5849
5850 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5851
5852         * device/include/z80/stdio.h,
5853         * device/include/z80/string.h: removed these highly incomplete files so
5854           SDCC can use the default ones in device/include/
5855
5856 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5857
5858         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5859         gcc warning.
5860         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5861         fix sdcpp warnings.
5862
5863 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5864
5865         * device/include/malloc.h: removed redundant __reentrant prototypes
5866         * device/lib/_mullong.c: added working xstack variant in asm (C version
5867           doesn't pass regression tests)
5868         * device/lib/bpx.c: used __data and made bpx char for mcs51
5869         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5870           (createFunction): fixed bug with xstackPtr
5871         * src/SDCCcse.c: corrected comments
5872         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5873           (killDeadCode, eBBlockFromiCode): removed unused code
5874         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5875           corrected comments
5876         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5877           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5878           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5879           (genModOneByte): fixed warning in MSVC
5880         * src/mcs51/main.c (): added comments
5881         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5882
5883 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5884
5885         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5886
5887 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5888
5889         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5890
5891 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5892
5893         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5894         characters arrays of larger size than the declared one.
5895
5896 2005-04-10 Borut Razem <borut.razem AT siol.net>
5897
5898         * src/pic/gen.c (genInline),
5899           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5900           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5901           (findNextInstruction), (findPrevInstruction),
5902           (findInstructionUsingLabel),
5903           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5904         * src/pic/pcode.c (findLabel): added missing '\n'
5905         * src/src.dsp: added SDCCdwarf2.c to the project
5906
5907 2005-04-09 Borut Razem <borut.razem AT siol.net>
5908
5909         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5910
5911 2005-04-08 Raphael Neider <rneider AT web.de>
5912
5913         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5914           into the chain after a given one) and mergeDefmapSymbols (combine
5915           defmap entries for each symbol per pcode)
5916         * (createDefmap): have defmap entries merged in the end
5917         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5918           a symbol before replacing one access type's symbol, merge symbols in
5919           the end (replacement symbol might already have an entry)
5920         * (assignValnums): keep reference to written WREG intact
5921
5922 2005-04-08 Raphael Neider <rneider AT web.de>
5923
5924         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5925           Alpha)
5926
5927 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5928
5929         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5930         bytes
5931
5932 2005-04-07 Raphael Neider <rneider AT web.de>
5933
5934         * device/include/pic16/usart.h: added compatibility defines for
5935           devices with more than one USART
5936         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5937
5938 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5939
5940         * device/lib/Makefile.in: updated for port specific include
5941
5942 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5943
5944         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5945
5946 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5947
5948         * device/include/8051.h,
5949         * device/include/8052.h,
5950         * device/include/at89S8252.h,
5951         * device/include/at89c55.h,
5952         * device/include/at89x051.h,
5953         * device/include/at89x51.h,
5954         * device/include/at89x52.h,
5955         * device/include/mcs51reg.h,
5956         * device/include/reg51.h,
5957         * device/include/reg764.h,
5958         * device/include/regc515c.h,
5959         * device/include/sab80515.h: (re)moved these 12 files
5960         * device/include/mcs51/8051.h,
5961         * device/include/mcs51/8052.h,
5962         * device/include/mcs51/at89S8252.h,
5963         * device/include/mcs51/at89c55.h,
5964         * device/include/mcs51/at89x051.h,
5965         * device/include/mcs51/at89x51.h,
5966         * device/include/mcs51/at89x52.h,
5967         * device/include/mcs51/mcs51reg.h,
5968         * device/include/mcs51/reg51.h,
5969         * device/include/mcs51/reg764.h,
5970         * device/include/mcs51/regc515c.h,
5971         * device/include/mcs51/sab80515.h: and added them here
5972
5973 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5974
5975         * device/include/stdarg.h: changed SDCC specific keywords to double
5976           underlined form.
5977         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5978           mcs51 and ds390.
5979         * device/include/hc08/mc68hc908gp32.h,
5980         * device/include/hc08/mc68hc908jb8.h,
5981         * device/include/hc08/mc68hc908jkjl.h,
5982         * device/include/hc08/mc68hc908qy.h: fixed comments
5983         * device/include/mcs51/README: updated
5984         * device/include/mcs51/c8051f120.h: added PINRSF
5985         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5986         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5987           amidst code. Also inline is not supported.
5988
5989 2005-04-06 Raphael Neider <rneider AT web.de>
5990
5991         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5992         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5993           callers stack/frame pointers
5994
5995 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5996
5997         * device/include/pic16/usart.h: added, missing in previous commit,
5998         * device/include/pic16/adc.h: fixed typo,
5999         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
6000         commit,
6001         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
6002         <p18fxxx.inc>
6003         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
6004         uninitialized because a bug appears with gplink
6005         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
6006         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6007         complains for unrecognised option
6008
6009 2005-04-05 Raphael Neider <rneider AT web.de>
6010
6011         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6012           structs as well (using memcpy)
6013         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6014           on ISRs (GOTO has no label)
6015         * src/pic16/device.h: added OF_OPTIMIZE_DF
6016         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6017           new data flow analysis/optimization
6018         * src/pic16/pcode.c: added (prototypes for and implementation of)
6019           dataflow analysis functions, fixed pCodeInstructions' inCond and
6020           outCond values, made RCALL a branch instruction
6021         * (pic16_unlinkpCode): keep C line if possible
6022         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6023           C line moved if possible
6024         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6025         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6026           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6027         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6028           new flow)
6029         * (pic16_getJumptabpCode): NEW, needed in...
6030         * (LinkFlow): fixed handling of jumptables, calls and conditional
6031           branches
6032         * (pic16_InsertCommentAfter): NEW
6033         * (pic16_pCodeReplace): made verbose and flow preserving
6034         * (AnalyzeFlow): added call to data flow analysis
6035         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6036         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6037         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6038
6039 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6040
6041         * src/SDCCast.c (decorateType): fixed bug #1105626
6042
6043 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6044
6045         * device/include/asm/pic16/features.h,
6046         * pic18f*.h headers,
6047         * device/include/pic16/adc.h,
6048         * device/include/pic16/delay.h,
6049         * device/include/pic16/i2c.h,
6050         * device/include/pic16/malloc.h,
6051         * device/include/pic16/stdio.h,
6052         * device/include/pic16/stdlib.h,
6053         * device/include/pic16/string.h,
6054         * device/lib/pic16/libc/stdio/printf_tiny.c,
6055         * device/lib/pic16/libc/stdio/printf_small.c,
6056         * device/lib/pic16/libc/stdio/strmgpsim.c,
6057         * device/lib/pic16/libc/stdio/strmmssp.c,
6058         * device/lib/pic16/libc/stdio/strmusart.c,
6059         * device/lib/pic16/libc/stdio/vfprintf.c,
6060         * device/lib/pic16/libc/stdlib/ltoa.c,
6061         * device/lib/pic16/libc/stdlib/putchar.c,
6062         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6063         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6064         * device/lib/pic16/libc/stdlib/memchrram.c,
6065         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6066         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6067         * device/lib/pic16/libio/adc/adcbusy.c,
6068         * device/lib/pic16/libio/adc/adcread.c,
6069         * device/lib/pic16/libio/adc/adcsetch.c,
6070         * device/lib/pic16/libio/usart/ubaud.c,
6071         * device/lib/pic16/libio/usart/ubusy.c,
6072         * device/lib/pic16/libio/usart/udrdy.c,
6073         * device/lib/pic16/libio/usart/uopen.c,
6074         * device/lib/pic16/libio/usart/uputc.c,
6075         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6076         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6077         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6078         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6079         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6080         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6081         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6082         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6083         specific keywords to double underlined form,
6084         * device/lib/pic16/libc/Makefile.rules,
6085         * device/lib/pic16/libsdcc/Makefile.rules,
6086         * device/lib/pic16/libm/Makefile,
6087         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6088         to compile with C standard set in Makefile.common
6089         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6090         rand.c and crc.c in compilation process,
6091         * device/lib/pic16/libsdcc/int/divuint.c,
6092         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6093         `c' from signed to unsigned,
6094         * device/lib/pic16/startup/crt0.c,
6095         * device/lib/pic16/startup/crt0i.c,
6096         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6097         keywords to double underlined form, bug fixes in _do_cinit function
6098         which prevented the correct initialization of the .idata segment,
6099         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6100         core to enter a infinite loop
6101         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6102
6103 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6104
6105         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6106
6107 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6108
6109         * device/include/Makefile.in: add support for hc08 subdirectory
6110         * device/include/hc08/: new subdirectory
6111         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6112         Lucas Loizaga, thanks!
6113         * device/include/hc08/mc68hc908qy.h,
6114         * device/include/hc08/mc68hc908gp32.h,
6115         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6116         their own directory. Changed internal macro names to use the compiler
6117         reserved namespace. Changed SDCC specific keywords to double
6118         underlined form.
6119         * device/include/math.h,
6120         * device/include/malloc.h,
6121         * device/include/stdarg.h,
6122         * device/include/stdbool.h
6123         * device/include/string.h,
6124         * device/include/tinibios.h,
6125         * device/include/ds400rom.h,
6126         * device/include/8051.h,
6127         * device/include/8052.h,
6128         * device/include/80c51xa.h,
6129         * device/include/at89c55.h,
6130         * device/include/at89S8252.h,
6131         * device/include/at89x51.h,
6132         * device/include/at89x52.h,
6133         * device/include/ds80c390.h,
6134         * device/include/reg764.h,
6135         * device/include/regc515c.h,
6136         * device/include/sab80515.h,
6137         * device/include/mcs51/c8051f000.h,
6138         * device/include/mcs51/c8051f018.h,
6139         * device/include/mcs51/c8051f020.h,
6140         * device/include/mcs51/c8051f040.h,
6141         * device/include/mcs51/c8051f060.h,
6142         * device/include/mcs51/c8051f120.h,
6143         * device/include/mcs51/c8051f300.h,
6144         * device/include/mcs51/c8051f310.h,
6145         * device/include/mcs51/c8051f320.h,
6146         * device/include/mcs51/c8051f330.h,
6147         * device/include/mcs51/c8051f350.h,
6148         * device/include/z180.h: Changed SDCC specific keywords to double
6149         underlined form.
6150
6151 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6152
6153         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6154         18F4455,
6155         * (pic16_assignConfigWordValue): disable testing of configuration
6156         register value with config mask,
6157         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6158         function with port->fun_prefix,
6159         * (genFunction): when generating a naked interrupt function never
6160         create an absolute segment placed in interrupt vector address, place
6161         the actual interrupt function at IVA instead, when an interrupt
6162         function is generated with unspecified interrupt then do not create
6163         the absolute section,
6164         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6165         code for generating a call to generic pointer get/put function with
6166         a call to function pic16_callGenericPointer(),
6167         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6168         the call to the generic pointer get/put functions with prefixing the
6169         function name with port->fun_prefix,
6170         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6171         * src/pic16/main.c (_process_pragma): prefix function with
6172         port->fun_prefix,
6173         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6174         calling assembler, old 18Fxxxx macro is deprecated,
6175         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6176         PC_ASMDIR in while condition,
6177         * (findInstruction): add PC_ASMDIR in while condition,
6178         * (buildCallTree): prefix main with port->fun_prefix,
6179         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6180         identifier for variable with banked access in instructions BTFSS,
6181         BTFSC, BCF, BSF, BTG
6182         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6183         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6184         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6185         perform optimization when enviroment variable NO_REG_OPT is set,
6186         * (insideLRBlock): NEW, return 1 if register is inside an
6187         INF_LOCALREGS block,
6188         * (RemoveRegFromLRBlock): remove a register that is completely
6189         eliminated by register optimization, but it is still left in local
6190         register store/restore in/from stack block,
6191         * (Remove2pcodes): after removing register, check to see if it
6192         should be removed from local register store/restore in/from stack
6193         block,
6194         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6195         DUMMY_READ_VOLATILE,
6196
6197         * device/include/pic16/adc.h: minor prototype modifications and
6198         update,
6199         * device/include/pic16/malloc.h: added GPL notice various
6200         modifications,
6201         * device/include/pic16/stdint.h: NEW, standard header for ints
6202         * device/include/pic16/delay.h: NEW, header for delay functions,
6203         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6204         delay1mtcy,
6205         * device/include/pic16/signal.h: NEW, header providing helper macros
6206         for implementing signal handlers,
6207         * device/include/pic16/stdio.h: added prototypes for functions,
6208         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6209         prototypes for stdin and stdout, added macro PUTCHAR to
6210         automatically implement putchar function prototype,
6211         * device/include/pic16/usart.h: modified and updated USART library,
6212         * device/lib/pic16/libio/adc/,
6213         * device/lib/pic16/libio/i2c: some modifications to improve library
6214         performance,
6215         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6216         family of functions,
6217         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6218         family of functions and other sources,
6219         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6220         of the PIC18Fxx[28] devices,
6221         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6222         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6223         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6224         _do_cinit function, because the previous failed when local variables
6225         where not placed in the same memory bank,
6226         * device/lib/pic16/libsdcc/char/: various modifications to improve
6227         library performance,
6228         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6229         information on the new functions of the c library and more...
6230
6231 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6232
6233         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6234
6235 2005-03-26 Raphael Neider <rneider AT web.de>
6236
6237         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6238           if condition == CARRY)
6239         * (genCmp): adapted to new genSkipc semantics
6240         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6241           on rIfx (genCmp was broken)
6242
6243 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6244
6245         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6246         * src/z80/main.c (_keywords[]),
6247         * src/SDCCglobal.h (struct options),
6248         * src/SDCC.y,
6249         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6250         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6251         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6252         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6253         always available in leading double underscore form. The C99 support is
6254         mostly missing, but it's a start.
6255         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6256         reserved identifier "__data".
6257
6258 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6259
6260         * src/mcs51/peeph.def: fixed bug 1170013
6261
6262 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6263
6264         * device/include/mcs51reg.h: fixed bug 842007
6265
6266 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6267
6268         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6269         last time.
6270
6271 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6272
6273         * src/port.h (struct PORT),
6274         * src/avr/ralloc.c (avr_assignRegisters),
6275         * src/avr/main.c,
6276         * src/ds390/ralloc.c (ds390_assignRegisters),
6277         * src/ds390/main.c,
6278         * src/hc08/ralloc.c (hc08_assignRegisters),
6279         * src/hc08/main.c,
6280         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6281         * src/mcs51/main.c,
6282         * src/pic/ralloc.c (pic14_assignRegisters),
6283         * src/pic/main.c,
6284         * src/pic16/ralloc.c (pic16_assignRegisters),
6285         * src/pic16/main.c,
6286         * src/xa51/ralloc.c (xa51_assignRegisters),
6287         * src/xa51/main.c,
6288         * src/z80/ralloc.c (z80_assignRegisters),
6289         * src/z80/ralloc.h,
6290         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6291         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6292         * src/SDCCcse.h,
6293         * src/SDCCdflow.c (computeDataFlow),
6294         * src/SDCCdflow.h,
6295         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6296         * src/SDCCloop.h,
6297         * src/SDCCcflow.c (*),
6298         * src/SDCCcflow.h,
6299         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6300         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6301         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6302         immedDom() returning wrong block; probably fixes bug #1160833)
6303
6304 2005-03-20 Borut Razem <borut.razem AT siol.net>
6305
6306         * support/scripts/inc2h.pl: WIN32 port
6307
6308 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6309
6310         * device/lib/makefile.in: added abs.c and labs.c
6311
6312 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6313
6314         * device/include/stdint.h: added
6315         * device/lib/abs.c: added
6316         * device/lib/labs.c: added
6317         * device/include/stdlib.h: added abs() and labs() prototypes
6318         * device/lib/libsdcc.lib: added abs and labs
6319         * device/include/float.h,
6320         * device/lib/_fsmul.c,
6321         * device/lib/printf_fast.c,
6322         * device/lib/printf_tiny.c: updated comments
6323
6324 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6325
6326         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6327         bug #1164313
6328
6329 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6330
6331         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6332         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6333
6334 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6335
6336         * device/lib/printf_large.c: removed inline assembly for portability and
6337           readability. Use printf_fast if speed or size are more important.
6338         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6339         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6340
6341 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6342
6343         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6344         prevent compiler warning
6345
6346 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6347
6348         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6349         moved to level 0 and declared as static. Also they are explicit
6350         placed in access bank. This was necessery because some times they
6351         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6352         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6353         optimizations. Currently only compare to unsigned char is implemented,
6354         * src/pic16/gen.c: added fReturnIdx array,
6355         * (struct resolvedIfx) is moved to gen.h and made public,
6356         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6357         * (aopForSym): added an optimization to directly store in stack of
6358         the operand of a SEND iCode,
6359         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6360         but as registers instead (AOP_REG) using the fReturnIdx array,
6361         * (pic16_freeAsmop): remove the freed register from the
6362         _G.sregsAlloc field,
6363         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6364         a compare of 'WREG',
6365         * (pic16_popGetTempRegCond): changed function prototype, now
6366         function takes also a bitVector argument v which holds the current
6367         set of registers that are allocated for stack access by aopForSym,
6368         registers allocated in aopForSym for accessing stack symbols are not
6369         any more part of the functions usedRegs field,
6370         * (genCall): some times aopOp is called for a stack variable to be
6371         send, aopForSym might perform the push, if this is true make sure
6372         that genCall doesn't push the variable twice by testing _G.resDirect,
6373         * (genFunction): changed testing for unspecified interrupt number
6374         from 256 to INTNO_UNSPEC,
6375         * modified selection scheme of frame pointer generation. Previously
6376         if function did use local registers a frame pointer was generated,
6377         now a frame pointer is generated only if function has arguments
6378         (that need PLUSW2 register access), or has stack arguments, or the
6379         compiler is not instructed to omit the frame pointer,
6380         * (genEndFunction): before restoring local registers that were saved
6381         in the function preamble, also restore the registers that *might*
6382         have been allocated for stack access,
6383         * (genRet): removed some old comments,
6384         * (genCmp, the active (RN's) version): added a call to the
6385         pic16_genCmp_special function to perform the compare with a more
6386         robust and optimized way,
6387         * (genInline): a feature has been added in inline code generation,
6388         which allows a wildcard variable substitution when writing inline
6389         assembly. Code is incomplete and experimental therefore undocumented,
6390         * (genCast): changed order of aopOp for result and right to allow
6391         aopForSym to directly load the result if possible,
6392         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6393         perform an optimized compare on some selected special occasions,
6394         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6395         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6396         generate an IVT any more,
6397         * src/pic16/main.c (pic16_optionsTable): added command line option
6398         --optimize-cmp,
6399         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6400         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6401         macros,
6402         * src/pic16/NOTES: Raphael Neider added in list of active developers
6403         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6404         jumptable_end to prevent bug #,
6405         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6406         inCond and outCond fields,
6407         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6408         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6409         turn off register spilling,
6410         * (packRegsForOneUse): synced with other ports' versions although it
6411         is not used currently,
6412         * (pic16_packRegisters): added an optimization while reading
6413         structure bitfields, some registers may be saved (malloc code is
6414         decreased by 80 bytes)
6415
6416 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6417
6418         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6419         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6420         this can be optimized more?
6421
6422 2005-03-10 Raphael Neider <rneider AT web.de>
6423
6424         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6425           genNearPointerGet): (hopefully) fixed access to bitfields via
6426           pointers (p->bitN = x; and x = p->bitN; failed)
6427
6428 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6429
6430         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6431
6432 2005-03-09 Raphael Neider <rneider AT web.de>
6433
6434         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6435
6436 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6437
6438         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6439         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6440           (regTypeNum): set REG_BIT type if necessary
6441         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6442         * support/regression/tests/critical.c: check bug 1144613
6443
6444 2005-03-02 Raphael Neider <rneider AT web.de>
6445
6446         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6447
6448 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6449
6450         * src/avr/ralloc.c (serialRegAssign),
6451         * src/ds390/ralloc.c (serialRegAssign),
6452         * src/hc08/ralloc.c (serialRegAssign),
6453         * src/mcs51/ralloc.c (serialRegAssign),
6454         * src/pic/ralloc.c (serialRegAssign),
6455         * src/pic16/ralloc.c (serialRegAssign),
6456         * src/xa51/ralloc.c (serialRegAssign),
6457         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6458
6459 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6460
6461         * src/SDCCast.c (decorateType): fixed bug 1124787
6462
6463 2005-02-20 Hubert Sack <sack AT digiplan.de>
6464         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6465
6466         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6467         patch #1121755
6468
6469 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6470
6471         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6472         to keep the correct label reference count when adding/removing references
6473         to labels. A peephole file using this is appended to patch #1144962.
6474
6475 2005-02-14 Raphael Neider <rneider AT web.de>
6476
6477         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6478         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6479         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6480           retrievals of result operand's value on assignment
6481
6482 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6483
6484         * device/include/pic16/string.h: modified prototype for memccpy()
6485         to memccpy(void *, void *, char, size_t)
6486         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6487         check whether to omit frame pointer or not,
6488         * (genInline): convert all occurences of "\n" to LF in inline
6489         assembler blocks, this helps formatting the inline text,
6490         * (pic16_loadFSR0): modified prototype,
6491         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6492         removed some 8051 legacy code,
6493         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6494         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6495         before allocating temporary registers in functions,
6496
6497 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6498
6499         * support/regression/tests/bitvars.c: corrected the "fix"
6500
6501 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6502
6503         * support/regression/tests/bitvars.c,
6504         * support/regression/tests/bitwise.c,
6505         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6506
6507 2005-02-10 Raphael Neider <rneider AT web.de>
6508
6509         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6510           different size for Alpha
6511         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6512
6513 2005-02-09 Raphael Neider <rneider AT web.de>
6514
6515         * src/SDCC.lex(doPragma) : save and restore warning options as well
6516           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6517         * have #pragma less_pedantic set the errorlevel to WARNING
6518           (fixes #1117001)
6519         * (cloneOptimize) : fixed wrong malloc's size
6520         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6521           facilitate correct handling of #pragma (save|restore)
6522
6523 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6524
6525         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6526
6527 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6528
6529         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6530
6531 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6532
6533         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6534
6535 2005-02-02 Raphael Neider <rneider AT web.de>
6536
6537         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6538         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6539         * (pic16_storeForReturn): fixed to allow returning function pointers
6540         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6541         * device/include/pic16/{stddef.h,stdbool.h}: added
6542
6543 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6544
6545         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6546
6547 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6548
6549         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6550         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6551          appeared to be required
6552
6553 2005-01-31 Borut Razem <borut.razem AT siol.net>
6554
6555         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6556           include/mcs51 and include/z80 directories to the package
6557
6558 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6559
6560         * src/hc08/gen.c (genFunction): fixed bug #1112752
6561
6562 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6563
6564         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6565
6566 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6567
6568         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6569
6570 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6571
6572         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6573
6574 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6575
6576         * device/include/c8051fxxx.h: removed these 6 files
6577         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6578
6579 2005-01-26 Raphael Neider <rneider AT web.de>
6580
6581         * src/pic16/gen.c (genAssign): fixed assignment from longs
6582           in codespace (were cut to three bytes)
6583         * (genDummyRead): implemented (except for CODESPACE...),
6584           fixed bug #1108575
6585         * src/pic16/glue.c (emitStatistics): beautified
6586         * device/lib/pic16/libm/Makefile: added include path
6587
6588 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6589
6590         * src/z80/gen.c (aopPut): fixed bug #1103902
6591
6592 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6593
6594         * device/lib/expf.c: fixed bug #1095792
6595
6596 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6597
6598         * device/lib/pic16/libm: added Math library sources
6599
6600 2005-01-24 Raphael Neider <rneider AT web.de>
6601
6602         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6603           to enable upcast to pCodeOpReg2 (there is no type tag to
6604           differenciate the two and pic16_popGet2p cast into PCOR2)
6605         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6606           (sizeof(sectNames) changed to sizeof(sectName))
6607           Both patches fix segfaults under MinGW.
6608
6609 2005-01-23 Raphael Neider <rneider AT web.de>
6610
6611         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6612           Safe_[mc]?alloc()'ed variables
6613         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6614           of (byte sized) temporaries (assign them to WREG for now)
6615         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6616           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6617           this might fix SIGSEGVs on MinGW...
6618         * src/SDCCopt.c (killDeadCode): restored original behaviour
6619           (volatile operands might get thrown away though)
6620
6621 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6622
6623         * src/pic16/gen.c: fixed bug #1106975,
6624         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6625         pointer update, INTCON is saved, global interrupts are disabled and
6626         restored after updateing TOS.
6627         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6628         * added function attribute 'shadowregs' to take advantage of shadow
6629         registers,
6630         * added function attribute 'wparam' as an alternative to the wparam
6631         pragma,
6632         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6633         user declares a non-ISR function as 'shadowregs',
6634         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6635
6636 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6637
6638         * .version: bumped version number to 2.4.8
6639         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6640         pic16 port,
6641         * device/lib/pic16/libio/i2c/: I2C module support library,
6642         * device/include/pic16/i2c.h: I2C support library header,
6643         * device/lib/pic16/libc/stdio/: standard IO support sources,
6644         * (printf_small.c): printf_small() source, supports float print,
6645         * (printf_tiny.c): printf_tiny() source, does not support floats,
6646         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6647         enable global optimizations for entire library source, other
6648         Makefiles in the source tree are also modified to reflect this,
6649         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6650         function,
6651         * doc/sdccman.lyx: updated to reflect new changes,
6652         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6653         sym->onStack if-case,
6654         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6655         sbit, idata, _idata, xdata, _xdata,
6656         * added pragma library, to link an external library, (see doc),
6657         * removed command line options, --pomit-config-words, --pomit-ivt,
6658         --pleave-reset-vector,
6659         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6660         when calling assembler to reflect memory model used, also define
6661         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6662         reflect stack model used,
6663         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6664         on stack return NULL,
6665
6666 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6667
6668         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6669           of the operands is volatile. Fixes #1020220
6670
6671 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6672
6673         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6674         * (OptimizeRegUsage): make sure that there is really no other flow where
6675           the first pCode is used
6676
6677 2005-01-22 Raphael Neider <rneider AT web.de>
6678
6679         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6680           to fix #1106967 (pCode->seq are not set up correctly)
6681
6682 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6683
6684         * src/SDCCglue.c (glue): make sure code area is declared before the
6685         static initialization area.
6686
6687 2005-01-21 Raphael Neider <rneider AT web.de>
6688
6689         * device/lib/Makefile.in: fixed test for pic16 install dir
6690         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6691           optimizations
6692         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6693           added --optimize-goto compiler switch and pragma wparam documentation
6694         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6695         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6696           and PRODH closing bug #1071770 (peephole optimizer)
6697
6698 2005-01-19 Raphael Neider <rneider AT web.de>
6699
6700         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6701           cmdLine buffers (used when calling sdcpp...) are large enough
6702           (MAX_PATH=256 truncates arguments leading to system halts when
6703           used in MinGW...)
6704         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6705         * (genUminus): rewritten to for efficiency
6706         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6707           used uninitialized in some cases)
6708         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6709           copy the third byte from the int -- now assumes 0x80 (data memory)
6710         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6711           operands (genAddLit expects the iCode's operands to swapped as
6712           well), fixed leftover bytes (crashed for short left operands)
6713         * (pic16_genMinusDec): performance improvements, removed false
6714           PIC14 emitSKPNCs
6715         * (pic16_genMinus): fixed to cope with differently sized operands
6716         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6717           for --obanksel > 1
6718         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6719         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6720           new banksel optimization
6721         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6722           analysis for temporary registers (segfaults...)
6723         * src/pic16/peeph.def: added rule
6724
6725 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6726
6727         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6728         which converts a float number to its ASCII representation
6729         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6730         functions to convert the fractional and integer part of a float to ASCII,
6731         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6732         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6733         ram
6734         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6735         _STATMEM macros,
6736         * device/include/pic16/adc.h: added GPL info,
6737         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6738         a pCodeOp as tested operand,
6739         * (genNearPointerGet): optimized bit testing, does not use
6740         intermediate register for bit value, test directly instead with
6741         BTFSS, BTFSC, works only for single bits,
6742         * (genpic16Code): dump the name of the iCode in the asm,
6743         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6744         renamed to pic16_decodeOp,
6745         * (serialRegAssign): do not allocate a temporary register for iCode
6746         sequences that test a single bit for 1/0
6747
6748 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6749
6750         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6751         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6752         access stack and frame pointers. They are initially assigned to
6753         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6754         accessing SFRs. Updated all occurences of modification of stack or
6755         frame pointer in gen.c and pcode.c,
6756         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6757         assigning of a literal value to pointers,
6758         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6759         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6760         selected
6761
6762 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6763
6764         * doc/sdccman.lyx: update documentation about stack pragma, added
6765         some info for stack memory models
6766
6767 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6768
6769         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6770
6771 2005-01-08 Raphael Neider <rneider AT web.de>
6772
6773         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6774           udata sections to fix bug #1097823
6775
6776 2005-01-05 Raphael Neider <rneider AT web.de>
6777
6778         * src/pic16/gen.c (genGenericShift): added handling of differently
6779           sized left operand and result
6780
6781 2005-01-04 Raphael Neider <rneider AT web.de>
6782
6783         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6784         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6785           to hold the condition bit)
6786         * added new version of genCmp (old code available via #define)
6787         * added new version of genShiftLeft/genShiftRight in a generic
6788           way, now supports shifting by negative values
6789         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6790           shiftCount (expected by genGenericShift)
6791         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6792         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6793           dump
6794         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6795           is an invalid literal too...)
6796
6797 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6798
6799         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6800         from Raphael Neider,
6801         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6802         for 8-bit literals. This fixes some literal operands which are sign
6803         extended to 16-bits ints when instruction needs only 8-bits.
6804
6805 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6806
6807         * device/lib/logf.c: added mcs51 assembly version
6808         * device/lib/expf.c: added mcs51 assembly version
6809         * device/lib/_logexpf.c: new shared asm code for expf and logf
6810         * device/include/math.h: add defines for assembly math library
6811         * device/lib/Makefile.in: build new _logexpf.c
6812         * device/lib/libfloat.lib: use new _logexpf.c
6813
6814 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6815
6816         * src/pic/device.c
6817         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6818           device types which have less than 0x7f registers.
6819
6820 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6821
6822         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6823
6824 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6825
6826         * device/lib/printf_fast.c: only build on supported arch.
6827         * device/lib/printf_tiny.c: only build on supported arch.
6828         * device/lib/printf_fast_f.c: only build if asm float lib
6829         * device/lib/_fsget1arg.c: only build if asm float lib
6830         * device/lib/_fsget2args.c: only build if asm float lib
6831         * device/lib/_fsnormalize.c: only build if asm float lib
6832         * device/lib/_fsreturnval.c: only build if asm float lib
6833         * device/lib/_fsrshift.c: only build if asm float lib
6834         * device/lib/_fsswapargs.c: only build if asm float lib
6835         * device/include/stdio.h: don't provide print_fast,
6836           print_fast_f, print_tiny prototypes if --xstack used
6837
6838 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6839
6840         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6841         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6842           to the SOURCES
6843
6844 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6845
6846         * device/lib/printf_fast_f.c: same as printf_fast, but
6847           with floating point enabled
6848         * device/lib/printf_fast.c: minor tweaks
6849         * device/include/stdio.h: add printf_fast_f
6850
6851 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6852
6853         * src/SDCCmain.c: make --float-reent default for mcs51
6854         * device/lib/_fsadd.c: added mcs51 assembly version
6855         * device/lib/_fssub.c: added mcs51 assembly version
6856         * device/lib/_fsmul.c: added mcs51 assembly version
6857         * device/lib/_fsdiv.c: added mcs51 assembly version
6858         * device/lib/_fseq.c: added mcs51 assembly version
6859         * device/lib/_fsneq.c: added mcs51 assembly version
6860         * device/lib/_fsgt.c: added mcs51 assembly version
6861         * device/lib/_fslt.c: added mcs51 assembly version
6862         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6863         * device/lib/Makefile.in: add _fscmp to build
6864         * device/lib/libfloat.lib: add _fscmp to build
6865
6866 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6867
6868         * device/lib/_fs2slong.c: added mcs51 assembly version
6869         * device/lib/_fs2sint.c: added mcs51 assembly version
6870         * device/lib/_fs2schar.c: added mcs51 assembly version
6871         * device/lib/_fs2ulong.c: added mcs51 assembly version
6872         * device/lib/_fs2uint.c: added mcs51 assembly version
6873         * device/lib/_fs2uchar.c: added mcs51 assembly version
6874         * device/lib/_slong2fs.c: added mcs51 assembly version
6875         * device/lib/_sint2fs.c: added mcs51 assembly version
6876         * device/lib/_schar2fs.c: added mcs51 assembly version
6877         * device/lib/_ulong2fs.c: added mcs51 assembly version
6878         * device/lib/_uint2fs.c: added mcs51 assembly version
6879         * device/lib/_uchar2fs.c: added mcs51 assembly version
6880         * device/include/float.h: added #define to select asm vs c
6881
6882 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6883
6884         * device/lib/printf_fast.c: improvements to float output
6885         * device/include/float.h: add defines for assembly float library
6886         * device/lib/_fsget1arg.c: receive 1 float arg
6887         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6888         * device/lib/_fsnormalize.c: normalize a float
6889         * device/lib/_fsreturnval.c: return float, various helper routines
6890         * device/lib/_fsrshift.c: right shift a float's mantissa
6891         * device/lib/_fsswapargs.c: swap 2 floats
6892         * device/lib/Makefile.in: build these 6 new files for mcs51
6893         * device/lib/libfloat.lib: add these 6 files to the library
6894
6895 2004-12-26 Borut Razem <borut.razem AT siol.net>
6896
6897         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6898           built by gcc 3.4.2
6899
6900 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6901
6902         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6903           and fully reentrant and register bank neutral.
6904         * device/lib/printf_fast.c: added float (not enabled by default),
6905           added compact/slower integer (also not enabled by default),
6906           improved size/speed of fast integer code, other minor changes
6907         * device/include/stdio.h, device/lib/Makefile.in,
6908           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6909
6910 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6911
6912         * src/pic16/pcode.c: declaring variables other than at the start of a
6913           block is not supported in C by VC6.
6914
6915 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6916
6917         * applied a previous patch from Raphael Neider that wasn't included
6918         in the previous commits, which fixes infinite loops within jumptable
6919         improvements,
6920         * made some fixes that previous patches introduced
6921
6922 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6923
6924         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6925         that fixes an issue with AOP_PCODE asmop's offset,
6926         * (pic16_popCopyReg): update instance field too,
6927         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6928         function of pic port,
6929         * (genCmp, genAnd, genAssign),
6930         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6931
6932 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6933
6934         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6935         variables initial values to idata section,
6936         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6937         variables in some functions. This utilizes parmBytes field of iCode
6938         structure to hold the offset of the variable in stack. (might be
6939         able to use the stack field too?)
6940         * applied patch from Raphael Neider # ### , # ###
6941         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6942         variable initial values in idata section,
6943         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6944         for static variables with initial value
6945         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6946         applied fix in while loop from Raphael Neider.
6947
6948 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6949
6950         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6951         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6952         * src/ds390/ralloc.c (serialRegAssign): spill bits
6953         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6954         * support/Util/SDCCerr.c,
6955         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6956         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6957         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6958
6959 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6960
6961         * device/include/sdcc-lib.h: inserted LGPL, added includes
6962           asm/ds390/features.h and asm/mcs51/features.h
6963         * device/include/asm/default/features.h,
6964         * device/include/asm/gbz80/features.h,
6965         * device/include/asm/z80/features.h: added empty _AUTOMEM
6966           and _STATMEM
6967         * device/include/asm/ds390/features.h,
6968         * device/include/asm/mcs51/features.h: added files with defines for
6969           _AUTOMEM and _STATMEM indicating automatic and static storage class
6970         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6971         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6972         * src/SDCCicode.c (geniCodeCast),
6973         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6974         * src/SDCCloop.c (loopInduction): removed unused variable lr
6975         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6976           to convertToFcall to include char modulo (RFE 1065037), added check
6977           if left operand is unsigned and use abs of literal value
6978         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6979           as it doesn't work after conversion from peephole.def to peephole.rul
6980         * src/mcs51/gen.c (toBoolean): added check for size,
6981           (genModOneByte): optimized code for signed char modulo a literal
6982           power of 2 (thanks to Hubert Sack),
6983           (genRRC): removed unnecessary "clr c",
6984           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6985         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6986           jump optimization,
6987           swapped rules 256.c and 256.d,
6988           extended 256.d by using new multiple checks (thanks Erik),
6989           added rules 256.e and 256.f,
6990           updated rule 261.a and 261.b to new generated code
6991         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6992
6993 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6994
6995         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6996           induction related bugs, including first part of bug #1074377
6997
6998 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6999
7000         * applied patch from bug-report #1076292,
7001         * applied patches for genAnd and Goto-optimizations for Raphael
7002         Neider,
7003         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
7004         dump a less iCode information,
7005         * src/pic16/device.h (pic16_options_t): added field debgen,
7006         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7007         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7008         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7009         puclic,
7010         * (various functions): added macros FENTRY and FENTRY2 to functions,
7011         to emit function prologue,
7012         * (various functions): fixed indentation,
7013         * (genNearPointerGet): fixed loading of FSR0,
7014         * (genPackBits): applied patch from Raphael Neider to fix updating
7015         of FSR0 and touching only the modified bits,
7016         * src/pic16/genarith.c (various functions): added macros FENTRY to
7017         emit function prologue in comments,
7018         * src/pic16/pcode.h: added functions debugf2, debugf3,
7019         * src/pic16/ralloc.c: partial fix for packForPush caused
7020         segmentation fault,
7021
7022 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7023
7024         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7025           <stsp AT users.sourceforge.net> with reversed byte order
7026         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7027
7028 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7029
7030         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7031           bug #1074377
7032         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7033         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7034
7035 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7036
7037         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7038
7039 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7040
7041         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7042           conditions,
7043           (setFromConditionArgs): friendly operand parser for peephole rules,
7044           (operandBaseName, operandsNotRelated): new peephole condition
7045           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7046           architecture specific register naming into account, handles n-way
7047           comparisons, and supports quoted literals
7048         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7049
7050 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7051
7052         * src/mcs51/peeph.def: fixed bug #1076940
7053
7054 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7055
7056         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7057
7058 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7059
7060         Adding support for replacing ljmps with sjmps in jumptables
7061         generated for switch statements. For now you need to set the
7062         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7063         Now 4 algorithms for mcs51 jumptable generation are used:
7064         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7065         addresses loaded pc-relative for up to 112 cases and stack-pushing
7066         target addresses loaded with offset from dptr for up to 256 cases.
7067
7068         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7069         * src/mcs51/main.c: adapted constants for switch table generation
7070         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7071
7072 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7073
7074         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7075         * support/regression/tests/bug1057979.c: added test for bug 1073386
7076
7077 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7078
7079         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7080         compilers
7081
7082 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7083
7084         * src/pic16/device.h,
7085         * src/pic16/genarith.c,
7086         * src/pic16/glue.c,
7087         * src/pic16/main.c,
7088         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7089
7090 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7091
7092         Large cummulative patch for pic16 port.
7093         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7094         to call when a stack overflow occurs,
7095         * (malloc.h): added CVS Id tag,
7096         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7097         variable,
7098         * added libc directory. The current version of LibC contains string
7099         functions, ctype functions and macros and some functions of the
7100         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7101         be extensively tested in the future. Standard disclaimer here.
7102         Library is not automatically build yet. But one can build it by
7103         invoking 'make' inside the libc directory.
7104         * added ADC library under libio. Preliminary version yet.
7105
7106         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7107         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7108         aopForRemat() now and not by pic16_aopOp(),
7109         * (pic16_popGetTempReg): removed warning messgae when allocating
7110         temporary registers, its a buggy feature and will be removed,
7111         * (pic16_popGet): set register instance field in AOP_CRY,
7112         * (pic16_outBitC): fixed for results in size greater than 1,
7113         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7114         * (pic16_storeForReturn): optimized return of 0,
7115         * (genCmp): experimental code for new genCmp which uses PIC18's
7116         special compare&skip instructions. Initial tests fail some times
7117         with variables grater than 1 byte in size, so new code is disabled,
7118         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7119         a single bit,
7120         * (genCast): began a fix to optimize the casting of a bit to another
7121         bit, now assigning a bitfield to another bitfield will fail, sorry,
7122         * src/pic16/main.c: disabled the use of lr-support feature,
7123         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7124         * added some function prototypes, added function _debugf prototype,
7125         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7126         bits with offset (case PO_GPR_BIT),
7127         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7128         command line,
7129         * (isBankInstruction): modified to return 0 for no banking instruction,
7130         and 1 for banking instruction,
7131         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7132         caused stop processing pCodes after a inline assembly block,
7133         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7134         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7135         registers when it shouldn't,
7136         * src/pic16/ralloc.c (allocReg): add preliminary support for
7137         supporting a limited set of temporary registers,
7138
7139 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7140
7141         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7142           genDataPointerSet): ensure assignments always copy in MSB to LSB
7143           order,
7144           (loadRegFromAop): recognize CLRH optimization,
7145           (genFunction): optimize RECEIVE iCodes in reentrant functions
7146
7147 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7148
7149         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7150           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7151           selected.
7152         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7153         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7154           contiguous with data
7155
7156 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7157
7158         * device/lib/_gptrget.c (_gptrget),
7159         * device/lib/_gptrgetc.c (_gptrgetc),
7160         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7161           instead of sjmp to ret
7162         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7163           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7164
7165 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7166
7167         * .version: bumped version to 2.4.7
7168         * device/lib/_gptrget.c (_gptrget): is now _naked
7169         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7170         * device/lib/_gptrput.c (_gptrput): is now _naked
7171         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7172           (createFunction): fixed xstack
7173         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7174         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7175           or bit either,
7176           (geniCodeCritical): store original interrupt state in an iTemp bit
7177           var unless stack-auto
7178         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7179         * src/SDCCmain.c (setIncludePath): added include/target to search path
7180         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7181         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7182           prototype,
7183           (processFuncArgs): put bit vars in bit area
7184         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7185           unsaveRBank): fixed xstack,
7186           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7187           (genFunction, genEndFunction): fixed xstack,
7188           (genAssign): optimization don't walk backwards through mem
7189         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7190         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7191         * support/regression/Makefile: also make library (for stack-auto) when
7192           making "all" and added "test-mcs51-xstack-auto"
7193         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7194         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7195         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7196         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7197         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7198           make-library by MAKE_LIBRARY
7199         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7200           regression tests for xstack
7201         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7202         * support/regression/tests/critical.c: test for critical on mcs51
7203
7204 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7205
7206         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7207           built version of sdcc instead of installed version
7208
7209 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7210
7211         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7212         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7213           vprintf.c now
7214         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7215         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7216           WARNING: remove device/lib/build/z80/printf.o by hand when
7217           updating from previous build!
7218         * device/lib/z80/printf.c: updated comment
7219         * support/regression/tests/bug1057979.c: test all ports now
7220         * support/regression/tests/bug1065458.c: file added
7221
7222 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7223
7224         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7225           *_start and *_end symbols for static functions
7226
7227 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7228
7229         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7230           and search crt0.o in all library paths,
7231           (setIncludePath): proper handling of --nostdinc,
7232           (setLibPath): proper handling of --nostdlib
7233         * support/regression/Makefile,
7234         * support/regression/ports/ds390/spec.mk,
7235         * support/regression/ports/gbz80/spec.mk,
7236         * support/regression/ports/hc08/spec.mk,
7237         * support/regression/ports/mcs51/spec.mk,
7238         * support/regression/ports/mcs51-large/spec.mk,
7239         * support/regression/ports/mcs51-stack-auto/spec.mk,
7240         * support/regression/ports/z80/spec.mk: use include and lib files from
7241           built version of sdcc instead of installed version
7242         * doc/sdccman.lyx: fixed typo in --nostdinc
7243
7244 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7245
7246         * src/pic/pcode.c,
7247         * src/pic/device.c,
7248         * src/pic/ralloc.c,
7249         * src/pic/gen.c : added support to generate code for struct bit fields.
7250
7251 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7252
7253         * as/xa51/xa_version.h,
7254         * device/include/errno.h,
7255         * device/include/regc515c.h,
7256         * device/lib/_itoa.c,
7257         * device/lib/_ltoa.c,
7258         * device/lib/ser_ir_cts_rts.c,
7259         * sim/ucsim/xa.src/glob.cc,
7260         * sim/ucsim/xa.src/inst_gen.cc,
7261         * sim/ucsim/xa.src/xa_bit.cc,
7262         * sim/ucsim/xa.src/xa_sfr.cc,
7263         * sim/ucsim/z80.src/inst_dd.cc,
7264         * sim/ucsim/z80.src/inst_fdcb.cc,
7265         * support/scripts/keil2sdcc.pl,
7266         * src/pic16/pic16.dsp,
7267         * src/pic16/pic16a.dsp: corrected cvs line endings
7268         * device/lib/printf_large.c: fixed bug 1057979
7269         * src/pic16/gen.c: fixed non-C standard code
7270         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7271         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7272         * support/regression/ports/mcs51/support.c: reload T1 asap
7273         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7274           pdata use and clear idata startup behaviour
7275         * support/regression/tests/bug1057979.c: added
7276
7277 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7278
7279         * device/examples/ds390/ow390/ad26.h,
7280         * device/examples/ds390/ow390/cnt1d.h,
7281         * device/examples/ds390/ow390/crcutil.c,
7282         * device/examples/ds390/ow390/ownet.h,
7283         * device/examples/ds390/ow390/owsesu.c,
7284         * device/examples/ds390/ow390/swt12.h,
7285         * device/examples/ds390/ow390/swtoper.c,
7286         * device/examples/ds390/ow390/temp10.h,
7287         * device/examples/ds390/ow390/thermodl.c,
7288         * device/examples/ds390/tinitalk/tinitalk.dsp,
7289         * device/examples/ds390/tinitalk/tinitalk.dsw,
7290         * device/examples/mcs51/clock/hw.h,
7291         * device/examples/mcs51/simple2/go.bat,
7292         * device/examples/serialcomm/windows/serial.h,
7293         * device/examples/xa51/dummy.c,
7294         * device/examples/xa51/hello.c,
7295         * device/include/80c51xa.h,
7296         * device/include/at89x051.h: corrected cvs line endings
7297
7298 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7299
7300         * src/pic16/main.c (options): added command line --gstack, to trace
7301         stack over/under flows,
7302         * added pragma 'wparam' to allow passing first byte of function
7303         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7304         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7305         call to __gstack_test function and sets up the symbol as extern,
7306         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7307         * popaop): added call to pic16_testStackOverflow,
7308         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7309         wparamList list,
7310         * (genCall, genPcall): now all parameters are passed via stack
7311         except in functions that are pass to wparam pragma in which WREG is
7312         used too,
7313         * (genPcall): REENTRANT flag is checked to see if variable prototype
7314         contains reentrant keyword, don't call a non-reentrant function, via
7315         a reentrant function pointer or vice versa, functions are never
7316         passed via WREG,
7317         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7318         D.Winkler,
7319         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7320         SIGSEGV when accessing a NULL register stucture,
7321         * (pic16_printGPointerType): modified to handle UPPER modifier for
7322         function initializers, changed prototype of function to simpler one,
7323         * (pic16_printIvalFuncPtr): check to see if function is already
7324         added in externs list,
7325         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7326         optimized a move from W to SFR with a move to the same register
7327         later after a CALL,
7328         * device/lib/pic16/debug: NEW directory, contains debug features
7329         which are enabled when linking with libdebug.lib, currently command
7330         line option --gstack enables stack pointer tracing for over/under
7331         flow, corresponding sources are in debug/gstack
7332
7333 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7334
7335         * doc/sdccman.lyx: updated SDCC version,
7336         * (PIC16 port): update list of command line options,
7337         * src/pic16/device.h (structure pic16_options_t): added field gstack
7338         to enable stack overflow tracing on push/pops,
7339         * src/pic16/device.c (statistics structure): added statistics
7340         structure,
7341         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7342         pic16_dump_int_registers): increase statistics counters for each
7343         * variable which is encountered
7344         * (pic16_dump_usection): emit each .udata variable to its own udata
7345         section,
7346         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7347         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7348         parameters via stack, otherwise use old scheme,
7349         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7350         assembler output file,
7351         * src/pic16/main.c: added command line options --gstack to enable
7352         push/pop tracing for stack overflow,
7353         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7354         instructions): added size of each instruction,
7355         * (pic16_countInstruction): estimate size of instructions in
7356         the_pFile list, inline assembly blocks are not counted,
7357         * (pic16_FixRegisterBanking): trace previous register usage, when
7358         banksel optimizations is greater than 0, don't emit a redudant
7359         banksel directive,
7360
7361 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7362
7363         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7364         * src/pic16/ralloc.c : applied same fix for pic16.
7365         * src/pic/gen.c : tidied it up a little.
7366
7367 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7368
7369         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7370         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7371
7372 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7373
7374         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7375
7376 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7377
7378         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7379         non-reentrant function __modsint in the interrupt function (thus
7380         corrupting math operations during serial I/O)
7381         * device/lib/ser_ir.c: as above, changed buffersize
7382         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7383         256.c,d for zeroing
7384         * doc/Makefile: added option -t for rsync
7385
7386 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7387
7388         * src/SDCCast.h (struct ast),
7389         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7390
7391 2004-10-20 Borut Razem <borut.razem AT siol.net>
7392
7393         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7394         package
7395
7396 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7397
7398         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7399         makefile targets,
7400         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7401         support functions to replace long sequences of MOVFF's from access
7402         bank registers to stack and vice versa,
7403         * src/pic16/device.h: added new field opt_flags, where optimization
7404         flags can be set to enable certain features,
7405         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7406         * pBlock, (genFunction, genEndFunction): surroung loop for
7407         saving/loading used registers in stack with PC_INFO pCodes,
7408         INF_LREGS. Code in between can then be optimized by pCode optimizer
7409         to support function calls,
7410         * (genDataPointerSet): fixed bug which loaded float fields in
7411         structures with corrupt data,
7412         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7413         in a standard way debug info on stderr. Feature used for developing
7414         and debugging only,
7415         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7416         obsolete chunks of code,
7417         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7418         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7419         * pic16/src/pcode.c (pic16_newpCodeInfo,
7420         * (pic16_newpCodeOpLocalRegs),
7421         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7422         feature,
7423         * (pic16_pCodeConstString): printing of the initial value of a
7424         symbol as a comment is inhibited since parsing was already done by
7425         copyStr and output is corrupt,
7426         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7427
7428 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7429
7430         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7431
7432 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7433
7434         * as/mcs51/lkarea.c: removed old K&R style,
7435           (lnksect): changed check on boundary error,
7436           (lnksect2): changed check on boundary error,
7437           (lnksect2): extend XSTK to end of page if size = 1
7438         * as/mcs51/lkmain.c: removed old K&R style,
7439           (Areas51): create l_IRAM symbol
7440         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7441         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7442           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7443         * device/lib/_mullong.c: added version to be compiled with xstack
7444         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7445         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7446         * device/lib/mcs51/crtxstack.asm: fixed comment
7447         * src/SDCCglue.c: maxInterrupts defaults to 0,
7448           (emitMaps): added pdata,
7449           (createInterruptVect): (re)moved default,
7450           (glue): added pdata,
7451           (glue): moved __start__xstack to XSTK with default size 1
7452         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7453           and options.float_rent when options.stackAuto is set,
7454           (linkEdit): only write XDATA_NAME if provided on command line
7455         * src/SDCCmem.h,
7456         * src/SDCCmem.c: added pdata
7457         * src/port.h: added pdata_name to PORT
7458         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7459           (saveRegisters, unsaveRegisters): removed usage of B,
7460           (genMinus): fixed accumulator clash,
7461           (genJumpTab): added comment, this needs another look
7462         * src/mcs51/gen.c: added check for "B in use" paranoia,
7463           added pushB() and popB()
7464         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7465           chance
7466         * src/avr/main.c,
7467         * src/ds390/main.c,
7468         * src/hc08/main.c,
7469         * src/mcs51/main.c,
7470         * src/pic/main.c,
7471         * src/pic16/main.c,
7472         * src/xa51/main.c,
7473         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7474           added PSEG (PAG,XDATA) or NULL to port specifier
7475         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7476         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7477           (_mcs51_genInitStartup): removed __start__xstack equ,
7478           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7479         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7480         * src/z80/gen.c (_rleAppend): fixed warnings
7481         * support/regression/tests/zeropad.c: added pdata test
7482         * .version: bumped to 2.4.6
7483
7484 2004-10-17 Borut Razem <borut.razem AT siol.net>
7485
7486         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7487         as a part of nightly build
7488
7489 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7490
7491         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7492         WREG holds the first byte function parameters,
7493         * (aopForSym): take special case for symbols which are in FARSPACE
7494         but in CODESPACE too,
7495         * (assignResultValue): modified to take into account _G.useWreg,
7496         * (genCall): don't use wreg for parameter passing when function is
7497         declared as reentrant, too, added optimization INCF to stack
7498         pointer when stack parameter count is 1,
7499         * (genFunction, genEndFunction): refurnished and fixed to not using
7500         wreg for passing parameters when function has varargs or is
7501         reentrant, fixed bug with symbol name compare for generating
7502         functions in absolute address,
7503         * (pic16_storeForReturn): refurnished,
7504         * (genCmp): began writing a new version of the function, not ready
7505         yet, therefore it is disabled,
7506         * (genAssign): do not read code memory when assigning a function to
7507         a pointer function,
7508         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7509         array of characters, not pointer,
7510         * (pic16initialComments): in debug mode emit an .ident directive for
7511         the assembler,
7512         * (_process_pragma): emit a new warning type (internal to pic16)
7513         when setting stack to default length, emit a similar warning when
7514         placing a function at absolute address and address is not word aligned
7515         * (_pic16_parseOptions): added 'return TRUE' statement,
7516         * (_pic16_linkEdit): if compiling a source, then add the source's
7517         file object, first in the list of objects to link,
7518
7519 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7520
7521         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7522         * src/pic/main.c : removed VC warning.
7523         * src/pic/gen.c : changed comment.
7524
7525 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7526
7527         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7528         reference to a deprecated symbol _GPTRREG was causing failure to
7529         link. Thanks G. M. Gallant for the info.
7530
7531 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7532
7533         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7534         comments for Bugs item #954788.
7535
7536 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7537
7538         * src/pic16/device.c (pic16_dump_gsection,
7539         * pic16_groupRegistersInSection): handle symbols declared to be in
7540         access bank differently,
7541         * src/pic16/gen.c (struct _G): added field resDirect,
7542         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7543         send values read from stack directly to result and don't allocate
7544         temporary values,
7545         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7546         same registers,
7547         * (pic16_sameRegsOfs): NEW,
7548         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7549         free because they were not allocated from temporary pool,
7550         * pic16_popRegFromString): workaround to fix a problem with
7551         allocating variables twice or never,
7552         * (genGenPointerGet): using PRODL instead of FSR0H,
7553         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7554         instead of FSR0H,
7555         * (genAssign): take advantage of the _G.resDirect flag,
7556         * (genCast): around line 11844, use mov2f instead of directly
7557         MOVFF'ing between operands to account for literal values,
7558         * src/pic16/genutils.c: some new debug functions for gpsim have been
7559         added,
7560         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7561         float with integer part only,
7562         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7563         place variables in access bank
7564         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7565         updated sources to reflect recent changes in gen.c
7566
7567 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7568
7569         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7570         sources that searched for headers in installation path, now the
7571         device/include/pic16 is used,
7572         * src/pic16/glue.c (pic16glue),
7573         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7574         .line directives if not in debug mode, this suppresses assembler's
7575         warnings for ignored directives
7576
7577 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7578
7579         * src/port.h: made reset_regparms prototype void parameter explicit.
7580         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7581         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7582         * doc/sdccman.lyx: documented warning disabling and how to use
7583           printf_large to make it print floats.
7584         * device/include/stdbool.h: NEW
7585         * device/lib/_atof.c,
7586         * device/lib/_divuint.c,
7587         * device/lib/_divulong.c,
7588         * device/lib/expf.c,
7589         * device/lib/printf_large.c,
7590         * device/lib/sincosf.c,
7591         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7592         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7593           a completely reentrant lib.
7594
7595 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7596
7597         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7598         * device/include/pic16/stdio.h: fixed bug with colon
7599
7600 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7601
7602         * device/include/pic16/stdio.h,
7603         * device/include/pic16/stdlib.h,
7604         * device/include/pic16/math.h: NEW
7605         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7606         declared as _naked to reduce overhead
7607         * device/lib/Makefile.in (target port-specific-objects-pic16):
7608         changed * to *.* so to ignore the CVS directory,
7609         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7610         stacked variables back in stack,
7611         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7612         corruption
7613
7614 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7615
7616         * .version: bumped version number to 2.4.5
7617         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7618         * support/Util/SDCCerr.c (messages structure): added entry for
7619         W_POSSBUG2
7620
7621         Large cumulative patch for pic16 port and libraries.
7622         * device/include/pic16/sdcc-lib.h,
7623         * device/include/pic16/stdarg.h,
7624         * device/include/asm/pic16/features.h,
7625         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7626         * device/include/pic16/float.h: changes reentrant keyword with
7627         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7628         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7629         updated target build-libraries to include objects from gptr,
7630         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7631         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7632         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7633         all function headings,
7634         * src/SDCCmain.c: added global parameter userIncDirsSet,
7635         * (parseCmdLine): when option -I is encountered add directory to
7636         userIncDirsSet too,
7637         * src/version.awk: added space between control and long,
7638         * src/pic16/NOTES: added some notes for the port,
7639         * src/pic16/gen.c: added prototype for mov2fp function,
7640         * (fReturnpic16[]): properly named return value registers,
7641         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7642         * (aopForSym): added code to handle symbols with onStack flag set,
7643         symbols onStack are allocated PTRSIZE bytes,
7644         * (aopFreeAsmop): handles special case where asmops are stack objects,
7645         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7646         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7647         added argument lock to trace flaws in allocating temporary registers
7648         when developing port,
7649         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7650         * (pic16_popRegFromString): reenabled allocating a direct register
7651         from string,
7652         * (assignResultValue): various beautifications,
7653         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7654         referenced function argument,
7655         * (genIpush): reenabled to allow stacked arguments, handles only
7656         ic->parmPush iCodes,
7657         * (genCall, genPcall): major changes to allow for variable argument
7658         functions, fixed a bug with falsely restoring stack pointer after
7659         returning from call,
7660         * (genFunction): pending code for critical function,
7661         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7662         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7663         * (genNearPointerGet): fixed bug with indirect reading, was always
7664         reading from INDF0
7665         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7666         pointers,
7667         * (genAddrOf): rewrote code to take address of a stacked function parameter
7668         * (genCast): fixed casting to generic pointer type,
7669         * src/pic16/gen.h: added AOP_STA,
7670         * (struct asmop): added field stk,
7671         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7672         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7673         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7674         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7675         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7676         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7677         generic pointers,
7678         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7679         and library paths,
7680         * (pic16_port structure): generic pointer size is set to 3,
7681         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7682         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7683         compiler warning,
7684         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7685         operand is an iTemp,
7686
7687 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7688
7689         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7690         * debugger/mcs51/simi.c: addapt new syntax of s51
7691
7692 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7693
7694         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7695         * src/pic16/pcode.c: commented out some calls to free() in order to
7696         fix bug #989576,
7697
7698 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7699
7700         * src/SDCCicode.h,
7701         * src/SDCCicode.c (isiCodeInFunctionCall),
7702         * src/avr/ralloc.c (selectSpil),
7703         * src/pic/ralloc.c (selectSpil),
7704         * src/pic16/ralloc.c (selectSpil),
7705         * src/ds390/ralloc.c (selectSpil),
7706         * src/hc08/ralloc.c (selectSpil),
7707         * src/xa51/ralloc.c (selectSpil),
7708         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7709         stack in the middle of a function call sequence (fixes bug #1020268)
7710         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7711         costs associated with the minimum switch case.
7712
7713 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7714
7715         * src/SDCC.lex: fixed bug #1030549
7716
7717 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7718
7719         * src/SDCCcse.h (struct cseDef),
7720         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7721         over a function call if the CSE is derived from a symbol whose
7722         address has been taken (fixes bug #1029883)
7723         * support/regression/tests/bug-1029883: a new regression test for
7724         this bug
7725
7726 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7727
7728         * src/hc08/gen.c (emitinline): fixed bug #1029778
7729         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7730         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7731         and starts toward RFE #905167)
7732
7733 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7734
7735         * src/pic16/gen.c (mov2f): New function to move an operand to
7736         another without considering if it is a literal or a register,
7737         * (pic16_sameRegs): don't check if they are both AOP_REG,
7738         * (AccRsh): removed andmask=0 lines,
7739         * (genLeftShift): duplicated to be improved in future versions,
7740         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7741         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7742         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7743         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7744         * (insertBankSwitch): fixed inserting banksel directives algorithm
7745         for instructions that follow a skip instruction, this fixes a report
7746         for broken subtraction code generation,
7747         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7748         iCode is a left op, just in case result and right share the same
7749         registers
7750
7751 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7752
7753         * src/hc08/main.c,
7754         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7755         preservation of HX
7756         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7757         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7758         on 2004-09-12; it was buggy
7759
7760 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7761
7762         * src/SDCCsymt.h: removed RESULT_CHECK
7763         * src/SDCCast.c,
7764         * src/SDCCglue.c,
7765         * src/SDCCval.c,
7766         * src/pic/glue.c,
7767         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7768
7769 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7770
7771         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7772         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7773         configuration values no more rejected by compiler, they are assigned
7774         to configuration registers with a warning message instead,
7775         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7776         the for-loop so last conf register is emitted too,
7777         * (_pic16_initPaths): link library libsdcc.lib by default,
7778         * (_hasNativeMulFor): modified test for multiplication according to
7779         Raphael Neider's remarks. Integer multiplication is also done with
7780         support functions,
7781         * device/include/pic16/pic18fregs.h: corrected type error in while
7782         testing and including 18f6720 header file
7783
7784 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7785
7786         * src/pic16/device.h (pic16_options): removed field use_crt,
7787         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7788         until an optimization to handle single bits is added,
7789         * (pic16_loadFSR0): moved before genUnpackBits,
7790         * (genAnd): some white lines removed,
7791         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7792         leave_reset flags in pic16_options when using crt modules,
7793
7794 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7795
7796         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7797           for bugs 898889 & 979599. Also used some safer print instructions.
7798
7799 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7800
7801         * src/pic16/device.h (pic16_options_t): added field use_crt,
7802         crt_name, no_crt,
7803         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7804         catch a probable future bug,
7805         * src/pic16/gen.c: aopIdx function commented out,
7806         * (genAssign): commented out old code which used aopIdx,
7807         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7808         code, added if conditionals to take into account the --use-crt
7809         command line options,
7810         * src/pic16/main.c (pic16_optionsTable): added new command line
7811         options, --use-crt= and --no-crt,
7812         * (_pic16_linkEdit): now the proper crt object is added in the
7813         linker command line except than when --no-crt is specified,
7814         * src/pic16/pcode.c,
7815         * src/pic16/pcode.h: added some structures and functions for a new
7816         optimization scheme to compansate for instruction overhead between
7817         same iCodes, this scheme is currently under development and is not
7818         working in any way,
7819         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7820         to && operator,
7821         * device/lib/pic16/startup/crt0i.c,
7822         * device/lib/pic16/startup/crt0iz.c: added global char variable
7823         __uflags to force the generation of an idata section
7824
7825 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7826
7827         * doc/Makefile,
7828         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7829         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7830
7831 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7832
7833         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7834         Frieder) and clarified the default code optimization mode
7835
7836 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7837
7838         * src/SDCC.lex (doPragma, process_pragma),
7839         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7840         "opt_code_size", and "opt_code_balanced"
7841         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7842         regrouped options by category, added support for category headers
7843         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7844         and "--opt-code-size"
7845         * doc/sdccman.lyx: documented these new options and pragmas
7846         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7847         preference into account
7848
7849 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7850
7851         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7852           geniCodePreDec): Fixed bug 904237 by generating a warning
7853         * src/SDCCerr.h,
7854         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7855
7856 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7857
7858         * src/pic/device.c : When no max ram set validate full memory range.
7859         * src/pic/pcode.c,
7860         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7861
7862 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7863
7864         * device/lib/_gptrget.c,
7865         * device/lib/_gptrput.c: updated comment
7866         * device/lib/calloc.c,
7867         * device/lib/free.c,
7868         * device/lib/malloc.c,
7869         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7870         * src/SDCCcse.c (cseBBlock),
7871         * src/SDCCicode.c (printOperand, geniCodeArray),
7872         * src/SDCCicode.h (struct operand): fixed bug 868103
7873         * support/regression/tests/bug-868103.c: added
7874         * src/SDCCast.c (searchLitOp),
7875         * src/SDCCcse.h (struct cseDef),
7876         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7877         * src/SDCCicode.h (struct operand),
7878         * src/SDCCsymt.h (struct sym_link),
7879         * src/avr/gen.c (hasInc),
7880         * src/ds390/gen.c (hasInc),
7881         * src/hc08/gen.c (genPlusIncr, hasInc),
7882         * src/mcs51/gen.c (hasInc),
7883         * src/pic16/glue.c (pic16_printIvalChar),
7884         * src/pic16/ralloc.c (regWithIdx),
7885         * src/xa51/gen.c (hasInc) : removed warnings
7886         * src/SDCCast.c (createBlock): added comment ???
7887         * src/hc08/ralloc.c: updated comments
7888
7889 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7890
7891         * doc/sdccman.lyx: updated section on switch statements, added
7892         section about semaphore locking
7893         * doc/Makefile: added option -info for latex2html
7894         * device/lib/_gptrget.c,
7895         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7896
7897 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7898
7899         * src/pic/device.h,
7900         * src/pic/device.c,
7901         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7902          maxram is less than 0x100.
7903
7904 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7905
7906         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7907
7908 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7909
7910         * src/port.h,
7911         * src/mcs51/main.c,
7912         * src/ds390/main.c,
7913         * src/z80/main.c,
7914         * src/hc08/main.c,
7915         * src/pic/main.c,
7916         * src/pic16/main.c,
7917         * src/avr/main.c,
7918         * src/xa51/main.c
7919         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7920         a jump table is the best form for a switch statement, including
7921         automatic insertion of missing cases to make the case range
7922         continuous. Developed in collaboration with Frieder Ferlemann.
7923
7924 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7925
7926         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7927         accumulator result if it needs sign extension
7928
7929 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7930
7931         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7932
7933 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7934
7935         * device/lib/gbz80/printf.c,
7936         * device/lib/z80/printf.c: removed define for NULL
7937
7938 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7939
7940         * as/xa51/xa_link.c,
7941         * device/examples/ds390/ow390/ad26.c,
7942         * device/examples/ds390/ow390/cnt1d.c,
7943         * device/examples/ds390/ow390/counter.c,
7944         * device/examples/ds390/ow390/ds2480.h,
7945         * device/examples/ds390/ow390/ds2480ut.c,
7946         * device/examples/ds390/ow390/findtype.c,
7947         * device/examples/ds390/ow390/gethumd.c,
7948         * device/examples/ds390/ow390/owllu.c,
7949         * device/examples/ds390/ow390/ownetu.c,
7950         * device/examples/ds390/ow390/swt12.c,
7951         * device/examples/ds390/ow390/swtloop.c,
7952         * device/examples/ds390/ow390/temp.c,
7953         * device/examples/ds390/ow390/temp10.c,
7954         * device/examples/ds390/ow390/thermo21.c,
7955         * device/examples/ds390/ow390/tinilnk.c,
7956         * device/examples/ds390/ow390/tstfind.c,
7957         * device/examples/serialcomm/windows/serial.cpp,
7958         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7959         * device/include/reg51.h: fixed line endings for cvs
7960
7961 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7962
7963         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7964         packRegsForAccUse, packRegisters): new accumulator register
7965         packing algorithm
7966         * support/regression/ports/hc08/support.c (_putchar): suppress
7967         warning of unused variable
7968         * src/SDCCicode.c: added SWAP entry to codeTable
7969
7970 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7971
7972         * device/lib/sprintf.c: forgot to add this file before previous commit
7973
7974 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7975
7976         * src/pic16/gen.c (genPackBits): added operand right in function
7977         parameters, load result directly if p_type is POINTER (that is
7978         called by genNearPointerSet)
7979         * (genUnPackBits): added operand left in function parameters,
7980         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7981         FSR0 if accessing bitfields,
7982
7983 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7984
7985         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7986           _print_format; updated printf, sprintf, vsprintf
7987         * device/include/asm/default/features.h: corrected comment/define
7988         * device/lib/Makefile.in: added sprintf.c
7989         * device/lib/libsdcc.lib: added sprintf module
7990         * device/lib/printf_large.c,
7991         * device/lib/vprintf.c,
7992         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7993           into these 3 files
7994         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7995         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7996         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7997           hc08 test
7998         * support/regression/tests/zeropad.c: define idata as data for hc08
7999
8000 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8001
8002         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
8003         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
8004         labels are referenced at least once (even if a reference is not found)
8005         * src/hc08/gen.c (emitcode): set isComment flag for comments
8006         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8007         loads), rules 6a..6b (optimize jumps to return)
8008
8009 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8010
8011         * device/lib/acosf.c (acosf),
8012         * device/lib/asinf.c (asinf),
8013         * device/lib/atanf.c (atanf),
8014         * device/lib/ceilf.c (ceilf),
8015         * device/lib/cosf.c (cosf),
8016         * device/lib/coshf.c (coshf),
8017         * device/lib/cotf.c (cotf),
8018         * device/lib/fabsf.c (fabsf),
8019         * device/lib/floorf.c (floorf),
8020         * device/lib/log10f.c (log10f),
8021         * device/lib/logf.c (logf),
8022         * device/lib/sinf.c (sinf),
8023         * device/lib/sinhf.c (sinhf),
8024         * device/lib/sqrtf.c (sqrtf),
8025         * device/lib/tanf.c (tanf),
8026         * device/lib/tanhf.c (tanhf),
8027         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8028         replaced all instances of "reentrant" in the library functions
8029         defined in math.h with this macro.
8030         * support/regression/tests/float_trans.c: reenabled test for hc08
8031
8032 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8033
8034         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8035         erroneously deleted
8036
8037 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8038
8039         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8040         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8041         multi-byte volatile operands are used
8042         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8043         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8044         initialization to area GSINIT0 so that it would always precede
8045         any static initializers in GSINIT
8046         * support/regression/tests/zeropad.c: fixed idata define for hc08
8047         * support/regression/tests/bug-927659.c,
8048         * support/regression/tests/float_trans.c: disabled tests for hc08
8049         pending missing library routines
8050         * .version: increased version number to 2.4.4 - hc08 port now passes
8051         regression tests
8052
8053
8054 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8055
8056         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8057         * Makefile.common.in,
8058         * as/Makefile,
8059         * as/hc08/Makefile.in,
8060         * as/mcs51/Makefile.in,
8061         * as/z80/Makefile.in,
8062         * debugger/mcs51/Makefile.in,
8063         * device/include/Makefile.in,
8064         * device/lib/Makefile.in,
8065         * doc/Makefile,
8066         * link/Makefile,
8067         * link/z80/Makefile.in,
8068         * packihx/Makefile.in,
8069         * sim/ucsim/main_in.mk,
8070         * sim/ucsim/avr.src/Makefile.in,
8071         * sim/ucsim/doc/Makefile.in,
8072         * sim/ucsim/gui.src/serio.src/Makefile.in,
8073         * sim/ucsim/hc08.src/Makefile.in,
8074         * sim/ucsim/s51.src/Makefile.in,
8075         * sim/ucsim/xa.src/Makefile.in,
8076         * sim/ucsim/z80.src/Makefile.in,
8077         * src/Makefile.in,
8078         * support/cpp2/Makefile.in,
8079         * support/librarian/Makefile,
8080         * support/makebin/Makefile: added DESTDIR to the install path proposed
8081         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8082         * doc/sdccman.lyx: added DESTDIR documentation
8083
8084 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8085
8086         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8087         instruction for interrupt handlers, use fast returns when returning
8088         from high priority interrupts
8089
8090 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8091
8092         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8093         code generation
8094         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8095         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8096         bugs, ported much of Bernhard's code from mcs51
8097         * src/mcs51/gen.c (genSend),
8098         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8099         than one when calling a reentrant function
8100         * device/lib/_mullong.c: defined an alternate struct layout for big
8101         endian ports (hc08)
8102
8103 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8104
8105         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8106         test
8107
8108 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8109
8110         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8111         are sane and complete before asking the port its prefered parameter
8112         passing method (fixes bug #1017633)
8113         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8114         and _ret3
8115
8116 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8117
8118         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8119         problem in bitfields >= 8 bits.
8120
8121 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8122
8123         * src/SDCCsymt.c: undid changes that were not meant to be committed
8124
8125 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8126
8127         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8128
8129 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8130
8131         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8132           copied and wrong bit got inverted
8133
8134 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8135
8136         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8137         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8138         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8139         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8140         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8141         assignments to bitfields at known addresses
8142         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8143         reads from bitfields at known addresses
8144         * src/hc08/ralloc.c (packRegisters),
8145         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8146         genhc08Code): optimize pointer get values used as conditionals
8147         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8148         and branch
8149
8150 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8151
8152         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8153         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8154         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8155         as conditionals
8156
8157 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8158
8159         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8160
8161 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8162
8163         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8164         related problems
8165
8166 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8167
8168         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8169
8170 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8171
8172         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8173         mcs51 port
8174
8175 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8176
8177         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8178
8179 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8180
8181         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8182         cases use more compact code.
8183
8184 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8185
8186         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8187
8188 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8189
8190         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8191
8192 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8193
8194         * src/SDCCsymt.h,
8195         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8196         parameter of changePointer() from symbol* to sym_link*
8197         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8198         * src/SDCCsymt.c (compareType): void* type is castable to other
8199         pointers, but not necesarily an exact match.
8200         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8201         is no longer blindly treated as an exact match.
8202         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8203
8204 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8205
8206         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8207
8208 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8209
8210         * src/pic/gen.c,
8211         * src/pic/pcode.c,
8212         * src/pic/ralloc.h,
8213         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8214
8215 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8216
8217         * src/pic/device.c,
8218         * src/pic/device.h,
8219         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8220
8221 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8222
8223         * src/mcs51/gen.c (emitcode): fixed bug #992819
8224
8225 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8226
8227         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8228           there's no need to make it worse
8229
8230 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8231
8232         * src/mcs51/ralloc.c (deassignLR),
8233         * src/ds390/ralloc.c (deassignLR),
8234         * src/hc08/ralloc.c (deassignLR),
8235         * src/z80/ralloc.c (deassignLR),
8236         * src/pic/ralloc.c (deassignLR),
8237         * src/pic16/ralloc.c (deassignLR),
8238         * src/avr/ralloc.c (deassignLR),
8239         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8240         rlivePoint): fixed another part of bug #971834
8241
8242 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8243
8244         * src/z80/main.c: enabled "critical" keyword
8245         * src/z80/mappings.i,
8246         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8247         functions (fixes bug #979646)
8248         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8249
8250 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8251
8252         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8253           such as c:\mydir.
8254
8255 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8256
8257         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8258           doesn't disable too much optimizations
8259
8260 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8261
8262         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8263
8264 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8265
8266         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8267
8268 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8269
8270         * src/pic/gen.c tidied up tabs
8271         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8272         * src/pic/main.c tidied up tabs
8273         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8274         * src/pic/pcoderegs.c tidied up tabs
8275         * src/pic/ralloc.c tidied up tabs
8276
8277 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8278
8279         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8280         to S_FIXED for pic16 port and when symbol is not in level 0,
8281         allocate for S_REGISTER storage class and pic16 port, too,
8282         * src/pic16/device.h: prototype for checkSym,
8283         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8284         * (pic16_assignConfigWordValue): test the value and the mask to
8285         validate that the value is suitable for the configuration word,
8286         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8287         collect extern declared symbols, don't emit symbol twice, check
8288         first if symbol is in publics set first,
8289         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8290         * added command line '--fstack' which enables an experimental
8291         feature for stack access, too buggy to be used yet...
8292         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8293         * (pic16_allocDirReg): when register has storage class S_REGISTER
8294         allocate in pic16_dynAccessRegs,
8295         * device/include/pic16/pic18f????.h: modified configuration word
8296         naming convention, words started as CONFIG0H but should be CONFIG1H
8297
8298 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8299
8300         * device/include/mcs51reg.h: fixed bug 970993
8301
8302 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8303
8304         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8305         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8306         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8307         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8308         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8309         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8310           error/warning numbers,
8311           added function setWarningDisabled()
8312         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8313         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8314           _memcmp.c _memmove.c calloc.c realloc.c free.c
8315         * support/regression/tests/malloc.c: added tests for new functionality
8316         * support/regression/tests/zeropad.c: added tests for truncated initializers
8317           and initialized char arrays starting with '\x0'
8318         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8319
8320 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8321
8322         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8323
8324 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8325
8326         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8327         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8328         peephole 177.e. Thanks to anonymous
8329
8330 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8331
8332         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8333         function isn't used in the source but referenced as a
8334         variable initializer then declare it as extern in .asm file
8335
8336 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8337
8338         * .version: increased version number to 2.4.3
8339
8340         Adding version extension according to ChangeLog CVS revision
8341         * src/Makefile.in (target all): added dependency 'version.h'
8342         * (rule version.h): added rule to create version.h from ChangeLog,
8343         * (rule dep): added dependency version.h,
8344         * src/version.awk: AWK script to create version.h
8345         * src/SDCCdwarf2.c (dwWriteModule),
8346         * src/SDCCglue.c (initialComments),
8347         * src/SDCCmain.c (printVersionInfo): modified to write after
8348         version string the version extension number,
8349         * src/SDCCutil.c: included "version.h"
8350         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8351         number,
8352         * src/SDCCutil.h: added prototype for getBuildNumber
8353
8354         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8355         includeDirsSet, too,
8356         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8357         const char [] is found in function prototype...
8358
8359         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8360         moving to WREG with source is already in WREG,
8361         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8362         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8363         * (aopForSym): stack'ed symbols are partially supported, added
8364         if-clause to support symbols in FARSPACE,
8365         * (sameRegs): added test for AOP_ACC to see if registers are same,
8366         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8367         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8368         * (pic16_popRegFromString): will not allocate a new register if it
8369         doesn't find one by name, bug may have introduced...
8370         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8371         * (genIpush): revived to use pic16 port's stack,
8372         * (genAddrOf): added incomplete case for stack'ed operand,
8373         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8374         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8375         can handle multibyte operands,
8376         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8377         * (pic16initialComments): added message for MPLAB compatibility
8378         mode enabled,
8379         * src/pic16/main.h: prototype for pic16_mplab_comp,
8380         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8381         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8382         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8383         because of increased complexity of procedure,
8384         * (_process_pragma): stack pragma changed to format 'stack pos len',
8385         emit symbol '_stack_end' to conform with gplink,
8386         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8387         to search for register,
8388         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8389         PO_GPR_REGISTER,
8390         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8391         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8392         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8393         case for PO_GPR_REGISTER,
8394         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8395         dies, the new era is ahead !...
8396         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8397         pic16_dynInternalRegs,
8398         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8399         * (pic16_allocDirReg): minor optimizations and bug fixes,
8400         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8401
8402         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8403         load stack and frame pointer with address of 'stack_end' symbol
8404
8405 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8406
8407         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8408         without source code but only variable initializers
8409
8410 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8411
8412         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8413         external are not declared as extern to reduce overhead while linking
8414
8415 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8416
8417         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8418
8419 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8420
8421         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8422           Yee Keat for the patch
8423         * src/SDCCast.c (decorateType): fixed bug #979599
8424         * src/ds390/gen.h: removed local fReturnSizeDS390
8425         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8426         * src/ds390/gen.c (genAnd, genOr, genXor),
8427         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8428
8429 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8430
8431         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8432         add relFilesSet to $3, manipulate $2 to handle linking of object
8433         files without source files in command line,
8434         * device/include/pic16 (all headers): added ID location macros,
8435         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8436         entries for ID location bytes,
8437         * (pic16_assignIdByteValue): NEW,
8438         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8439         added field dumpcalltree to pic16_options_t,
8440         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8441         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8442         emitting rFalseIfx label after check_carry label,
8443         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8444         pic16_emitDIRegs), NEW
8445         * (pic16glue): dump .calltree file when option --calltree found,
8446         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8447         * (_pic16_genAssemblerPreamble): emit ID locations after
8448         configuration registers,
8449         * (pic16_linkCmd): modifications of the link command,
8450         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8451         * (pic16_pCodeInitRegisters): don't init stack registers,
8452         * (pic16_findPrevInstruction): fixed bug,
8453         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8454         bug with immediate registers,
8455         * (buildCallTree): traces stack push and pop,
8456         * (pct2): dump also stack usage for each function,
8457         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8458         * (pic16_allocDirReg): various modifications,
8459         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8460         fixed to 1,
8461
8462 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8463
8464         * src/pic16/pcode.c: removed buggy double colon
8465
8466 2004-07-01 Borut Razem <borut.razem AT siol.net>
8467
8468         * support/scripts/sdcc.nsi: added include/pic16 to setup
8469
8470 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8471
8472         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8473         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8474         target 'clean',
8475         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8476         specific command line arguments. Also added sample lkr script
8477         for placing a variable at a specific memory bank.
8478         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8479         at a specific memory bank,
8480         * (pic16_dump_isection): fixed bug which caused string literals to
8481         be omitted when dumping idata section,
8482         * (pic16_groupRegistersInSection): added code to handle registers
8483         in specific memory banks,
8484         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8485         public, all references are renamed too,
8486         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8487         AOP_DPTR2,
8488         * (pic16_storeForReturn): added case to handle when dest is WREG,
8489         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8490         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8491         pic16_rel_udata, check to see if that register is marked as being
8492         a member of a specific memory bank,
8493         * (pic16_printIvalCharPtr): added code to add string literals either
8494         to code or the idata sections,
8495         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8496         also accept the 'udata' pragma,
8497         * src/pic16/main.h: new structure types sectName and sectSym
8498         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8499         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8500         * (pic16_findPrevInstruction): fixed, it returned nothing,
8501         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8502         instruction combinations,
8503         * (pic16_FixRegisterBanking): heavily reorganised,
8504         * (pic16_AnalyzeBanking): if generating banksel directives is
8505         disabled, then don't call FixRegisterBanking at all,
8506         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8507         completely removed,
8508         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8509
8510 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8511
8512         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8513         Phuah Yee Keat <yk.phuah AT nestac.com>
8514
8515 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8516
8517         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8518         correctly the IVT even if it is relocated to some other location
8519
8520 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8521
8522         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8523         * device/include/pic16/pic18f2220.h: NEW,
8524         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8525         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8526         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8527         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8528         nodefaultlibs, ivt_loc is the location of the interrupt vector
8529         table, and nodefaultlibs signs that default libraries should not be
8530         linked in link stage,
8531         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8532         according to --ivt-loc argument,
8533         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8534         when pragma stack is found,
8535
8536 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8537
8538         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8539         256 (range check), 257 (do while), 258.a-f (bit banging
8540         f.e. on 3-wire SPI bus)
8541
8542 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8543
8544         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8545         variables used exclusively within a loop
8546
8547 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8548
8549         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8550
8551 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8552
8553         * src/SDCClrange.c (computeClash): fixed bug #971834
8554
8555 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8556
8557         * src/mcs51/gen.c (genCmp): fixed bug #975903
8558         * src/hc08/gen.c (operandsEqu),
8559         * src/ds390/gen.c (operandsEqu),
8560         * src/z80/gen.c (operandsEqu),
8561         * src/pic/gen.c (operandsEqu),
8562         * src/pic16/gen.c (operandsEqu),
8563         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8564         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8565
8566 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8567
8568         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8569
8570 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8571
8572         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8573         default case in switch statement,
8574         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8575         to eliminate problem with initialisation of pointers, but problem
8576         still exists,
8577         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8578         * (emitStaticSegment): removed various lines emitting debug info,
8579         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8580         added processor registers for utilizing EEPROM,
8581         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8582         configurable and set 8
8583
8584 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8585
8586         * .version: increased version number to 2.4.2,
8587
8588         Cumulative patch for pic16 port
8589         * src/pic16/device.c: changed scheme to dump initial values for
8590         variables in idata segment, all print_idata* functions were removed,
8591         now the pic16_printIval* will be called,
8592         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8593         * _pic16_printPointerType, pic16_printPointerType,
8594         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8595         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8596         NEW, similar to the respective functions in SDCCglue.c,
8597         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8598         way, emitting hex bytes,
8599         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8600
8601 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8602
8603         * src/avr/ralloc.c (serialRegAssign),
8604         * src/xa51/ralloc.c (serialRegAssign),
8605         * src/pic/ralloc.c (serialRegAssign),
8606         * src/pic16/ralloc.c (serialRegAssign),
8607         * src/hc08/ralloc.c (serialRegAssign),
8608         * src/z80/ralloc.c (serialRegAssign),
8609         * src/ds390/ralloc.c (serialRegAssign),
8610         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8611
8612 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8613
8614         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8615         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8616
8617 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8618
8619         Cumulative patch for pic16 port:
8620         * src/pic16/device.h (typedef PIC16_device) modified fields for
8621         defining microcontrollers,
8622         * src/pic16/device.c: added new info for all devices in Pics16 array,
8623         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8624         to be optimised out by the pCode optimiser,
8625         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8626         specially, bug reported by G.M. Gallant,
8627         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8628         as force'd so that cannot be optimised out by pCode optimiser,
8629         * src/pic16/pcode.c,
8630         * src/pic16/pcodepeeph.c,
8631         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8632         they are disabled by default, but can be enabled explicit with
8633         command argument --denable-peeps, for testing,
8634         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8635         --pomit-ivt in COMPILE_FLAGS
8636
8637 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8638
8639         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8640           compilation on MSVC
8641
8642 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8643
8644         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8645
8646 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8647
8648         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8649         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8650
8651 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8652
8653         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8654         would only assign 0x300001 register.
8655
8656 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8657
8658         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8659         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8660
8661 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8662
8663         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8664         for ds80c400
8665         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8666         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8667         added peephole 254 (left shift), 255 (jump table)
8668
8669 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8670
8671         * device/lib/Makefile.in: removed comment line with model-pic16,
8672         * (target port-specific-objects-pic16): the libraries and objects
8673         are copied to the build directory form the device/lib/pic16/bin
8674         directory
8675
8676         Cumulative patch concerning pic16 port:
8677         * library directory has been re-organized,
8678         * added support for PIC18F1220,
8679         * added headers and library sources for chips 18f1220,18f6520,
8680         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8681
8682         * configuration registers setting has changed, now each supported
8683         device has a complete description of the registers it uses,
8684         * all initialisations are moved to idata sections, these section
8685         can be absolute or relocatable,
8686         * fixed initialisation of codespace variables,
8687         * fixed warning about PCLATU and gpsim,
8688         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8689         * (genAssign): use table reads when assigning from variables in codespace,
8690         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8691         char/int variables placed in codespace,
8692         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8693         registers set in .asm file, no need for --pomit-config-words anymore,
8694         * (pic16glue): some 8051 legacy segments are commented out
8695         (to be removed completely),
8696         * added support for alternative assembler and linker with --asm=
8697         and --link= command line arguments,
8698         * peepholes are disabled automatically in the port, no need to
8699         specify on command line,
8700         * port supports natively char/int/long multiplication, but converts
8701         all divisions to support functions,
8702         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8703         to the file set in variable $2,
8704         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8705         strings in ASCII format and not in hex,
8706         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8707         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8708         allocate proper register if iCodes aren't temporary,
8709
8710 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8711
8712         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8713
8714 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8715
8716         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8717         is commented out
8718
8719 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8720
8721         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8722         computed address is reused
8723         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8724         multi-byte bitfields
8725
8726 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8727
8728         * src/z80/gen.c: (genArrayInit): must check for pointers too
8729
8730 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8731
8732         * support/regression/tests/zeropad.c: never meant to commit the
8733           nestedstruct test: removed, added check for GCC version
8734
8735 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8736
8737         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8738         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8739         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8740           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8741           bugs 928906 and 954082 half-empty initializers
8742         * src/SDCCsymt.h,
8743         * src/SDCCsymt.c (getAllocSize): added for above fix
8744         * src/z80/gen.c (genArrayInit): fixed bug 741044
8745         * support/regression/tests/zeropad.c: added tests
8746
8747 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8748
8749         * src/pic16/device.c (pic16_dump_section): corrected bug which
8750         caused some symbols of the libraries to be misplaced
8751
8752 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8753
8754         * src/pic16/glue.c,
8755         * src/pic16/ralloc.h,
8756         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8757         to fix conflict with pic port
8758
8759 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8760
8761         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8762         externs configuration variables,
8763         * src/pic16/ralloc.h,
8764         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8765         prototype in header, commented out some debug messages
8766
8767 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8768
8769         * src/pic16/glue.c,
8770         * src/pic16/main.c,
8771         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8772         for gpasm COFF object generation. Thanks to D. Hawkins for
8773         his patch info
8774
8775 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8776
8777         * src/ds390/main.c,
8778         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8779         Brock for spotting this)
8780         * src/ds390/gen.c (genEndFunction),
8781         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8782         interrupt handler and critical. Disable push/pop optimizations when
8783         peephole optimizations disabled.
8784
8785 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8786
8787         Updated pic16 library sources and headers.
8788         * device/lib/pic16/pic18f*/ ,
8789         * device/include/pic16/*.h: modified to handle structured SFR
8790         definitions
8791
8792 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8793
8794         * src/port.h (PORT structure): added hook initPaths, now each
8795         port can declare its own default search paths,
8796         which can been seen with the --print-search-dirs option,
8797         see pic16 port for example,
8798         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8799         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8800         * (doPrintSearchDirs): NEW, replaces in a central manner the
8801         printing of search dirs which was split in set*Paths functions,
8802         * (main): added call to port->initPaths and doPrintSearchDirs,
8803         * src/avr/main.c,
8804         * src/ds390/main.c,
8805         * src/hc08/main.c,
8806         * src/izt/i186.c,
8807         * src/izt/tlcs900h.c,
8808         * src/mcs51/main.c,
8809         * src/pic/main.c,
8810         * src/pic16/main.c: modified port structures to reflect addition of
8811         initPaths hook,
8812
8813         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8814         * (pic16_dump_section): for registers in same address reserve memory once,
8815         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8816         to no_banksel,
8817         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8818         result is greater in size than right or left,
8819         * (pic16_genUMult8X8_8): there are some cases where the result can
8820         be 16 bits size, so handle these,
8821         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8822         * (pic16_outBitC): modified to emit pcodes,
8823         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8824         or not,
8825         * (genDivOneByte): implemented algorithm to divide 8-bits,
8826         * (genCmp): uncommented goto, but issues still exist,
8827         * (genAnd): fixed a bug with variables >8bits,
8828         * (genPackBits): optimization added that uses BCF/BSF to change a
8829         single bit,
8830         * (genAssign): fixed bug when assigning floating point literals,
8831         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8832         __sdcc_gsinit_startup label,
8833         * src/pic16/main.c (_pic16_init): removed search directory
8834         initialisations,
8835         * (_pic16_initPaths): NEW, used to initialise search directories,
8836         * (_hasNativeMulFor): support functions for all except char/int
8837         multiplication, and char division,
8838         * (PIC16_port struct): modified entry for native mul support,
8839         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8840         no_banksel option,
8841         * (buildCallTree): call to register_usage is ifdef'ed out,
8842
8843 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8844
8845         * device/include/string.h: applied Stas Sergeev's patch to make this
8846         header file compatible with the preprocessor -Wundef option
8847         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8848         failure (fixes bug #941458)
8849
8850 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8851
8852         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8853         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8854         that the variable, not the function, should be static
8855         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8856         to be consistent with non-literal case
8857
8858 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8859
8860         * src/SDCCast.c (isConformingBody): fixed bug #949967
8861         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8862         convilong): fixed bug #952086
8863
8864 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8865
8866         * src/SDCCmem.c (allocVariables): fixed bug #955321
8867
8868 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8869
8870         * src/hc08/main.c (_hc08_genAssemblerEnd),
8871         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8872         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8873         completely eliminated the use of a temporary file
8874         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8875         when more than one file linked
8876         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8877
8878 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8879
8880         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8881         which fixes bug #543481
8882         * support/regression/tests/bug-751703.c: fixed comments left from a
8883         cut and paste error
8884         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8885         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8886         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8887         scopes
8888         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8889         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8890         are now changed to underscores in moduleName
8891
8892 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8893
8894         * as/mcs51/lkmem.c: better fix for bug #954173
8895
8896 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8897         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8898
8899         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8900         * device/include/c8051f000.h,
8901         * device/include/c8051f120.h,
8902         * device/include/c8051f300.h,
8903         * device/include/c8051f310.h,
8904         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8905         PWM16) and detab'ed
8906
8907 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8908
8909         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8910         and mailing lists, doc'ed --no-peep-comments, removed reference
8911         to knoppix (newest version has no LyX/LaTeX), other minor changes
8912         * src/SDCCglue.c (glue): save 2 bytes stack space with
8913         option --main-return. The ljmp could probably be avoided too
8914
8915 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8916
8917         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8918
8919 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8920
8921         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8922         * src/SDCCopt.c (isLocalWithoutDef),
8923         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8924         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8925         (credit to Maarten Brock for patch #949363, on which this is based)
8926         * support/regression/tests/bug-751703.c: some test cases of extern used
8927         within inner scopes.
8928
8929 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8930
8931         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8932         SPEC_STRUCT
8933         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8934         struct definitions
8935         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8936         dwWriteLabel): fix to create valid debugger symbols even when
8937         the module name has non-alphanumeric symbols in it
8938         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8939         when a variable's allocation has been optimized away
8940
8941
8942 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8943
8944         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8945         * src/hc08/main.c,
8946         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8947         * src/mcs51/main.c,
8948         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8949         * src/ds390/main.c,
8950         * src/z80/gen.c (z80_emitDebuggerSymbol),
8951         * src/z80/main.c,
8952         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8953         * src/pic/main.c,
8954         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8955         * src/pic16/main.c,
8956         * src/avr/gen.c (avr_emitDebuggerSymbol),
8957         * src/avr/main.c,
8958         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8959         * src/xa51/main.c,
8960         * src/SDCCdebug.c (emitDebuggerSymbol),
8961         * src/SDCCdebug.h,
8962         * src/port.h: added a debugger struct to the port struct. Added a
8963         callback for defining debugger symbols
8964
8965         * src/SDCCast.c (createLabel),
8966         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8967         with isitmp = 1
8968         * src/SDCCicode.h,
8969         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8970         iCode back to the ast for the function
8971
8972         * src/hc08/ralloc.c (hc08_assignRegisters),
8973         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8974         unneeded fields from the regs struct.
8975         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8976         pushReg() & pullReg() functions instead of emitcode()
8977
8978         * src/hc08/gen.c (genLabel, genhc08Code),
8979         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8980
8981         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8982         debugger hooks
8983
8984         * src/hc08/gen.c (genEndFunction, genhc08Code),
8985         * src/hc08/gen.h,
8986         * src/mcs51/gen.c (genEndFunction, gen51Code),
8987         * src/mcs51/gen.h,
8988         * src/ds390/gen.c (genEndFunction, gen390Code),
8989         * src/ds390/gen.h,
8990         * src/z80/gen.c (genEndFunction, genZ80Code),
8991         * src/z80/gen.h,
8992         * src/z80/z80.h,
8993         * src/pic/gen.c (genEndFunction, genpic14Code),
8994         * src/pic/gen.h,
8995         * src/pic16/gen.c (genEndFunction, genpic16Code),
8996         * src/pic16/gen.h,
8997         * src/avr/gen.c (genEndFunction, genAVRCode),
8998         * src/avr/gen.h,
8999         * src/xa51/gen.c (genEndFunction, genXA51Code),
9000         * src/xa51/gen.h,
9001         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
9002         specific code to cdbFile.c and out of the backend code generators
9003
9004         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
9005         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
9006         starting address is now 0
9007
9008         * as/hc08/asm.h,
9009         * as/hc08/m08pst.c,
9010         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9011         assembler directive for DWARF support
9012         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9013
9014         * src/src.dsp,
9015         * src/Makefile.in,
9016         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9017
9018 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9019
9020         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9021         and inappropriate peephole optimization in jump tables
9022
9023 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9024
9025         * as/hc08/m08pst.c,
9026         * src/SDCCglue.c: sdccopt works for the hc08 port now
9027
9028 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9029
9030         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9031
9032 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9033
9034         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9035
9036 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9037
9038         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9039         rules
9040         * src/SDCCmain.c,
9041         * src/SDCCglobl.h,
9042         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9043         comments from the peephole optimizer replacement rules
9044         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9045         symbols
9046         * src/SDCCcse.c (updateSpillLocation),
9047         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9048         equivalents
9049         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9050         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9051         objects far pointers
9052
9053 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9054
9055         * src/SDCCsymt.h: a missing part of my last change
9056         * src/pic/ralloc.c (regTypeNum),
9057         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9058
9059 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9060
9061         * src/SDCCicode.h,
9062         * src/SDCCicode.c (aggrToPtrDclType),
9063         * src/SDCCptropt.h,
9064         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9065         ptrPseudoSymConvert),
9066         * src/pic/ralloc.c (regTypeNum),
9067         * src/pic16/ralloc.c (regTypeNum),
9068         * src/hc08/ralloc.c (regTypeNum),
9069         * src/ds390/ralloc.c (regTypeNum),
9070         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9071         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9072
9073 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9074
9075         * link/z80/lkmain.c (afile),
9076         * as/hc08/lkmain.c (afile),
9077         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9078         prevent a pointer problem when a filename has no directory and
9079         no extension specified.
9080
9081 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9082
9083         * link/z80/lkmain.c (afile): allow periods in directory names
9084         * link/z80/lkmain.c (afile),
9085         * as/mcs51/lkmain.c (afile),
9086         * as/hc08/lkmain.c (afile): allow linker script file to have an
9087         extension other than ".lnk"
9088         * link/z80/lklex.c (getfid),
9089         * link/z80/lkmain.c (parse),
9090         * as/mcs51/lklex.c (getfid),
9091         * as/mcs51/lkmain.c (parse),
9092         * as/hc08/lklex.c (getfid),
9093         * as/hc08/lkmain.c (parse): Support comments in the linker script
9094         file on lines by themselves and after filenames
9095
9096 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9097
9098         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9099
9100 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9101
9102         * src/z80/peeph-z80.def: removed some peephole rules that don't
9103         work with multibyte arithmetic (fixed bug #937126)
9104         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9105         to registers and not global variables
9106         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9107         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9108         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9109         checking for assignments not internally generated (fixed bug #931895)
9110         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9111         structure member (fixed bug #930072)
9112
9113 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9114
9115         * src/SDCCmain.c (linkEdit),
9116         * src/hc08/main.c (_hc08_parseOptions),
9117         * as/hc08/Makefile.in,
9118         * as/hc08/aslink.h,
9119         * as/hc08/asm.h,
9120         * as/hc08/m08pst.c,
9121         * as/hc08/lkrloc.c (relr, rele),
9122         * as/hc08/lkarea.c (lnkarea)
9123         * as/hc08/lkmain.c (afile, parse),
9124         * as/hc08/lkelf.c: support for ELF output
9125         * as/hc08/lks19.c (s19),
9126         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9127
9128 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9129
9130         * as/mcs51/lkihx.c: Fixed bug #899105.
9131
9132 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9133
9134         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9135         .dsp files from Unix to DOS.
9136
9137 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9138
9139         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9140         function pointers; we have been compliant for several months now.
9141         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9142         change that was accidently commented out
9143         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9144         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9145         bug #922319
9146
9147 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9148
9149         * src/hc08/gen.c: output of all of the internal debugging information
9150         is now controlled by the D() macro; it is disabled by default
9151
9152 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9153
9154         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9155         harder to keep the same registers during a CAST iCode
9156         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9157         long via int can be done in a single cast, if the signedness is
9158         correct.
9159         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9160         putchar() in tinibios.c in ds390's library
9161
9162 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9163
9164         * src/SDCCast.c (decorateType): fixed bug #898889,
9165         cast result of a literal complement too
9166         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9167         fixed check for bitfields
9168
9169 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9170
9171         * src/SDCCicode.c (geniCodeLogic): made it static,
9172         (geniCodeLogicAndOr): added in order to fix bug #905492,
9173         (ast2iCode): fixed bug #905492
9174         * support/regression/tests/bug-905492.c: added
9175         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9176         (processParms): fixed bug #927659: don't copy parms, this will clear
9177         decorated flag
9178         * support/regression/tests/bug-927659.c: added
9179
9180 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9181
9182         * src/SDCCast.c (addCast): don't cast float to char
9183         * device/lib/libsdcc.lib: added _memmove
9184
9185 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9186
9187         * device/lib/large/Makefile: fixed parallel execution by
9188         replacing `make` by `$(MAKE)`
9189
9190 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9191
9192         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9193         offsets (fixes bug #923936)
9194
9195 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9196
9197         * device/lib/small/Makefile: fixed parallel execution by
9198         replacing `make` by `$(MAKE)`
9199
9200 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9201
9202         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9203
9204 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9205
9206         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9207         * src/regression/Makefile: Regression test was not running.
9208
9209 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9210
9211         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9212         complement if possible
9213         * src/SDCCval.c (valComplement),
9214         * src/SDCCicode.c (operandOperation): fixed complement of literal
9215         * support/regression/tests/onebyte.c (testComplement): added
9216
9217 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9218
9219         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9220         return an optimized tree; actually replace actParm with the new tree
9221         * src/SDCCast.h: added some parantheses to remove side effects
9222         * support/regression/tests/bug-920866.c
9223
9224 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9225         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9226         Bit operands were not being handled properly in the pic14 port.
9227         (now src/regression/add.c passes again).
9228
9229 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9230
9231         * src/SDCC.y (labeled_statement): case and default no longer require
9232         a following statement (RFE #893037)
9233
9234 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9235
9236         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9237         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9238         disabled (fixes bug #916294)
9239         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9240         "mov a,acc"; patch provided by Lenny Story
9241         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9242
9243 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9244
9245         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9246         functions
9247         * src/ds390/gen.c (genFunction, genEndFunction),
9248         * src/ds390/ralloc.c (ds390_assignRegisters),
9249         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9250         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9251         pushed if there are parameters passed on the stack. Also, a cleaner
9252         way to decide if r0/r1 should be pushed/popped. (Together they fix
9253         bug #918693)
9254
9255 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9256
9257         * doc/sdccman.lyx,
9258         * device/lib/mcs51/crtpagesfr.asm,
9259         * device/lib/mcs51/crtxinit.asm,
9260         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9261         to avoid confusion with Si Lab's SFRPAGE register.
9262
9263 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9264
9265         * src/SDCCglue.c (emitMaps): allow public sfr variables
9266         * src/SDCCglue.c (initialComments): include compiler build date
9267         with compiler version and put the timestamp of the generated
9268         assembly file on a serperate line to be less confusing.
9269         * src/port.h: added genInitStartup hook
9270         * src/avr/main.c,
9271         * src/ds390/main.c,
9272         * src/hc08/main.c,
9273         * src/pic/main.c,
9274         * src/pic16/main.c,
9275         * src/xa51/main.c,
9276         * src/z80/main.c: genInitStartup initialize as NULL (default to
9277         historical behaviour)
9278         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9279         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9280         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9281         library instead of hard coding it into the compiler.
9282         * support/regression/ports/mcs51-stack-auto/spec.mk,
9283         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9284         * device/lib/mcs51/Makefile,
9285         * device/lib/small/Makefile,
9286         * device/lib/large/Makefile,
9287         * device/lib/mcs51/crtpagesfr.asm,
9288         * device/lib/mcs51/crtstart.asm,
9289         * device/lib/mcs51/crtxclear.asm,
9290         * device/lib/mcs51/crtxinit.asm,
9291         * device/lib/mcs51/crtclear.asm,
9292         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9293         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9294         and into user configurable files.
9295         * device/lib/clean.mk: clean mcs51 directory too
9296         * support/regression/tests/longlit.c: added static to T1 declaration
9297         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9298         accesses in the initialization code
9299
9300 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9301
9302         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9303         OSCTRIMVAL as noted in bug #916008
9304
9305 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9306
9307         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9308         in loops with multiple exits (reported as incorrect registers
9309         used by Martin Helmling in Sdcc-user list)
9310
9311 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9312
9313         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9314         made ds390 register extensions look less like error messages
9315
9316 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9317
9318         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9319         reported by Adam Wozniak in Sdcc-user list
9320
9321 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9322
9323         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9324         arithmetic optimizations, added debug output
9325
9326 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9327
9328         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9329         * sdcc.spec: updated and split sdcc into 3 rpms
9330         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9331         needed for literals of LEFT_OP and '+'
9332         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9333         introduced RESULT_TYPE_NOPROM
9334         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9335         left shift
9336         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9337         limited promotion to int only for '*'
9338         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9339
9340 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9341
9342         * src/pic16/gen.c (genSkip),
9343         (genc16bit2lit), (gencjneshort): commented out
9344         (is_LitOp): new helper function, checks operand type
9345         (genCmpEq): rewritten
9346
9347 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9348
9349         * support/regression/tests/bug-908454.c: added
9350
9351 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9352
9353         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9354         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9355         (geniCodeCast): cosmetic, don't preserve bit storage class
9356         (geniCodeLeftShift): added promotion
9357         (geniCodeLogic): fixed regression
9358         * src/SDCCsymt.c (computeTypeOr): accept bits too
9359         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9360
9361 2004-03-07  Borut Razem <borut.razem AT siol.net>
9362
9363         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9364
9365 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9366
9367         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9368         version of pic16_genPackRegisters which does not check if ic is a
9369         CAST operator,
9370         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9371         function cause string1.c regression test fails
9372
9373 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9374
9375         * sim/ucsim/configure.in,
9376         * sim/ucsim/configure,
9377         * sim/ucsim/doc/Makefile.in: use docdir
9378         * src/SDCC.y: fixed sbit atrributes
9379         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9380         * src/SDCCast.c (decorateType): |^& need special promotion handling
9381         * src/SDCCast.h,
9382         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9383         * src/SDCCsymt.h (computeType),
9384         * src/SDCCicode.c: computeType() needs op
9385         * src/SDCCsymt.c (checkTypeSanity),
9386         * doc/sddman.lyx: "plain" bitfields are unsigned
9387         * src/SDCCsymt.c (computeTypeOr): added
9388         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9389         |^& ops
9390         * src/SDCCval.c (val*): computeType() needs op
9391         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9392         * support/regression/tests/onebyte.c: added tests for |^&
9393
9394 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9395
9396         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9397         for writing icode into asm output.
9398
9399 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9400
9401         * src/pic16/device.c: added some debug lines enabled
9402         with macro DEBUG_CHECK,
9403         * src/pic16/genarith.c: more debug in genPlus,
9404         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9405         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9406         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9407         * (aopForSym): onStack symbols are re-placed in data memspace,
9408         and onStack flag is cleared,
9409         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9410         copy temporary pcodeop,
9411         * (genPcall): added warning for not updating PCLATU,
9412         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9413         always true for pic16 port,
9414         * (genMultOneWord): NEW, supports integer multiplication,
9415         * (genMult): modified to call genMultOneWord,
9416         * (ifxForOp): added warning when return NULL,
9417         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9418         flag is set before call to operandFromSymbol for implicit
9419         added structures,
9420         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9421         options.intlong_rent are set by default,
9422         * (_hasNativeMulFor): modified to allow port generation of integer
9423         multiplication,
9424         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9425         set regtype to REG_SFR for all registers, restricting seting the
9426         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9427
9428 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9429
9430         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9431         more than 500 times in the regression tests
9432
9433 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9434
9435         * support/Util/SDCCerr.h,
9436         * support/Util/SDCCerr.c,
9437         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9438         enumerator_list),
9439         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9440         for symbol conflicts.
9441         * support/valdiags/tests/enum.c,
9442         * support/valdiags/tests/tentdecl.c,
9443         * support/valdiags/tests/struct.c: expect possible error messages
9444         referring to original symbol definitions.
9445         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9446         * src/SDCCsymt.h,
9447         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9448
9449 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9450
9451         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9452
9453 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9454
9455         * src/pic16/ralloc.c (newReg): fixed bug #908929
9456
9457 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9458
9459         * src/ds390/gen.c: added missing #include "main.h"
9460
9461 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9462
9463         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9464         checking if symbol is already in set,
9465         * src/pic16/device.h: prototype for checkAddSym,
9466         * src/pic16/gen.c: (_G): added entry interruptvector,
9467         * (assignResultValue): removed some commented out lines,
9468         * (genFunction): check for ISR via sym->type, absolute section for
9469         interrupt code is created via a new pBlock, the goto instruction is
9470         placed now correctly at the interrupt vector position, changed all
9471         references from ivec to _G.interruptvector,
9472         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9473         is the interrupt is a high priority one, same for return from ISR,
9474         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9475         externs to calls of checkAddSym,
9476         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9477         pic16_pcode_verbose flag is set,
9478         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9479         * src/pic16/pcoderegs.c: message about how many registers are saved
9480         will only be emitted if pic16_pcode_verbose flag is set,
9481
9482 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9483
9484         * src/ds390/ralloc.h,
9485         * src/ds390/ralloc.c (ds390_regWithIdx),
9486         * src/ds390/gen.c (emitcode),
9487         * src/ds390/main.h,
9488         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9489         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9490         ds390operandCompare, getRegsRead, getRegsWritten,
9491         initializeAsmLineNode): customized instruction size calculation for
9492         ds390, started basis for some register optimizations
9493         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9494         corresponding assembly output
9495         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9496         missing push/pop of r0/r1. Optimized push/pops
9497
9498 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9499
9500         * src/mcs51/main.c (instructionSize): fixed ACALL size
9501         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9502
9503 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9504
9505         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9506         the sorting of rlist with NULL elements
9507         * (print_idataType, print_idata): NEW to create idata sections
9508         * src/pic16/device.h: idataSymSet new variable
9509         * src/pic16/gen.c (genFunction): fixed some bugs in string
9510         comparing, improved the absolute section creation for ISRs,
9511         added FSR0L/FSR0H in registers that are saved in an ISR,
9512         * (genInline): fixed the processing of inline snippets,
9513         now they undergo no process by the peephole optimizer
9514         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9515         are placed in idataSymSet,
9516         * (pic16emitStaticSeg): extern symbols are added in externs,
9517         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9518         switching when aboslute variables are placed in access bank memory
9519         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9520         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9521         commented out with #if,
9522         * (pic16_packRegisters): reintroduce the check for CAST because some
9523         symbols are not correctly handled,
9524         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9525         pCodeInstruction instead of pCode,
9526         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9527         pCodeAsmDir definition,
9528         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9529         directive, then the argument directive is emitted without the leading
9530         tab, hack for inline labels which must be in the first column,
9531         * (compareLabel,pic16_findNextInstruction),
9532         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9533         * (insertBankSwitch): modified for the new pCodeAsmDir,
9534
9535 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9536         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9537
9538         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9539         instance,
9540         * (pushSide): commented out with #if,
9541         * (assignResultValue): fixed some typos in saving
9542         registers,
9543         * (genPcall): FIXED and sync'ed with genCall,
9544         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9545         * (genNearPointerGet): fixed to handle some more cases,
9546         implementation scheme via table reads,
9547         * (genConstPointerGet): modified to access code memory correct,
9548         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9549         and improved to handle some cases
9550         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9551         instead of "RETLW" for init data
9552         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9553         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9554         variables are placed in access bank memory (<0x80 and >=0xf80),
9555         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9556         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9557         TBLWT_POSTDEC,TBLWT_PREINC
9558         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9559         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9560         directives
9561         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9562         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9563         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9564         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9565
9566 2004-02-29  Borut Razem <borut.razem AT siol.net>
9567
9568         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9569         support/Util/findme.h, support/Util/system.h: enhance binary relative
9570         search for lib and include by using findProgramPath()
9571
9572 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9573
9574         * src/SDCCpeeph.h,
9575         * src/SDCCpeeph.c (pcDistance),
9576         * src/port.h,
9577         * src/mcs51/ralloc.h,
9578         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9579         * src/mcs51/main.h,
9580         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9581         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9582         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9583         size calculation port specific, started basis for some register
9584         optimizations
9585         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9586         missing push/pop of r0/r1. Optimized push/pops
9587         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9588         * device/lib/_modsint.c (_modsint),
9589         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9590         and stack version so regression tests pass
9591
9592 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9593
9594         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9595         * src/SDCCast.c (decorateType): catch another small optimization
9596         with '?' operator
9597         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9598         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9599         modified to finally use computeType() all over SDCC,
9600         see Feature Request #877103
9601         * src/SDCCval.h: cosmetic
9602         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9603         valCompare(); regression tested in muldiv.c
9604         * support/regression/tests/muldiv.c (testMod): mod sign follows
9605         dividend only
9606
9607 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9608
9609         * src/SDCCast.c (decorateType): fixed bug #902362
9610         * doc/INSTALL.txt: fixed install instructions for win32
9611
9612 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9613
9614         * device/include/Makefile.in (install): fixed by replacing spaces
9615         by tabs
9616         * doc/README.txt,
9617         * doc/INSTALL.txt: updated for release
9618         * doc/sdccman.lyx: added warning for --xstack being buggy
9619
9620 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9621
9622         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9623         to eliminate build warnings.
9624         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9625
9626 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9627            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9628
9629         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9630         removed -penable-stack, added comment for stack pragma, added
9631         warning for not initializing the stack/frame registers, removed
9632         comment at interrupts section
9633
9634         Stack is made permanent, there is no ability to disable stack usage.
9635         * src/pic16/device.h,
9636         * src/pic16/device.c: removed all references to USE_STACK macro,
9637         * src/pic16/device.c (pic16_dump_section): when no elements in
9638         rlist, free rlist before return,
9639         * (pic16_dump_int_registers): NEW, internal registers are a new set
9640         of general purpose registers reused by each function,
9641         * (checkAddReg): returns 1 if registers is added to set,
9642         * (pic16_groupRegistersInSection): when a registers is of type
9643         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9644         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9645         SRCASECMP macro is moved here from device.c
9646         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9647         PO_PCLATU, PO_PRODL, PO_PRODH,
9648         * (pic16_pCodeOpType, genMinus,
9649         changed compares to "a" register, with AOP_ACC,
9650         * (pic16_genPlus): fixed some bugs and indented properly,
9651         * (pic16_addSign): changed size to size+offset in the MOVWF
9652         instruction,
9653         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9654         multiply 8-bit operand by literal, result is 8-bit,
9655         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9656         multiply 2 8-bit operand, result is 8-bit,
9657         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9658         genUMult8X*_16,
9659         * src/pic16/gen.c: changed accUse to contain WREG only,
9660         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9661         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9662         true, do not use immediate addressing any more unless sym is a
9663         pointer in codespace,
9664         * (aopForRemat): do not use immediate addressing when symbol not in
9665         codespace and when symbol's address is requested,
9666         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9667         accUse size (= 1),
9668         * (aopGet): added case for AOP_ACC and don't return "accumulator
9669         bug" but WREG instead,
9670         * (popGetTempReg): pushes contents of temporary register in stack,
9671         * (popReleaseTempReg): pops contents of temporary register from
9672         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9673         * (pic16_popGet): separated case AOP_ACC to return register WREG
9674         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9675         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9676         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9677         the use of immediate pointers to certain cases only.
9678
9679         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9680         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9681         * (assignResultValue, genCall, genRet): modified to use the new
9682         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9683         genPcall is still broken,
9684         * (genFunction): added code to create 'A' type pBlocks when
9685         interrupt functions are generated, code not extensively tested yet,
9686         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9687         * (genEndFunction): modified so ISRs pop stored registers from stack,
9688         * (genMultOneByte): cleanup,
9689         * (AccRsh): added flag andmask, to and result with appropriate mask,
9690         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9691         * (genDataPointerGet): fixed and reenabled its use,
9692         * (genNearDataPointerGet): bugs fixed,
9693         * (genDataPointerSet): bugs fixed,
9694         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9695         pic16_DumpSymbol, pic16_DumpOp,
9696         * src/pic16/genutils.h: function prototypes for the above functions,
9697         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9698         pointers,
9699         * (pic16emitRegularMap): many many many improvements, but needs a
9700         major cleanup,
9701         * src/pic16/main.c: enable_stack in pic16_options is removed,
9702         * (_pic16_parseOptions): removed command line options -penable-stack,
9703         * (_process_pragma): emit stack symbol only when stack pragma is
9704         processed,
9705         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9706         redirected to FSR0L/FSR0H pair,
9707         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9708         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9709         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9710         for immediates,
9711         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9712         * (dumpPicOptype): NEW,
9713         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9714         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9715         with movff instruction,
9716         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9717         added pic16_int_regs, some packRegsFor* functions are commented out,
9718         because produce errors,
9719         * src/pic16/NOTES: minor modifications
9720
9721 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9722
9723         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9724         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9725         --pack-iram.
9726         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9727         * as/mcs51/lkaomf51.c: fixed bug #895763
9728
9729 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9730
9731         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9732
9733 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9734
9735         * doc/sdccman.lyx: added details about the HC08 storage classes and
9736         interrupts, fixed the register usage info for z80 & gbz80
9737
9738 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9739
9740         * doc/sdccman.lyx: added more pic16 port documentation
9741         * device/include/pic16/: added header pic18fregs.h
9742
9743 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9744
9745         * doc/sdccman.lyx: added Vangelis' contribution
9746
9747 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9748
9749         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9750         extend to the next CALL or PCALL, not just to the next CALL.
9751
9752 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9753
9754         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9755
9756 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9757
9758         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9759         bug #895752 and a better fix for bug #716790
9760
9761 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9762
9763         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9764
9765 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9766
9767         * doc/sdccman.lyx: minor changes, minor changed
9768
9769 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9770
9771         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9772         which can't handle SDCC_NEWONEBYTEOPS,
9773         (geniCodeMultiply): removed conversion from mult to shift for pic14
9774         and pic16
9775
9776 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9777
9778         * src/hc08/gen.h,
9779         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9780         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9781         thus fixing bug #895406
9782
9783 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9784
9785         * device/lib/_modsint.c,
9786         * device/lib/_modslong.c: sign follows divisor only
9787         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9788         signs or signedness can be ignored
9789         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9790         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9791         added optimization for IFX,
9792         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9793         arguments;
9794         reenabled optimization for IFX, which was removed on 2004-01-11
9795         * src/SDCCast.h: added return type IFX
9796         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9797         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9798         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9799         SDCC_OLDONEBYTEOPS selects the old behaviour
9800         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9801         changed again and commented promotion rule
9802         * src/SDCCval.c (valDiv): promotion no longer necessary
9803         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9804         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9805         rewritten
9806         * support/regression/tests/onebyte.c: added
9807
9808 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9809
9810         * gen.c (genInline): reverted to old code for assemnling inline
9811         code because of bug reported James Chadd
9812
9813 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9814
9815         * ralloc.h: missing declarations from previous patch,
9816         seems that patch for ralloc.h was never applied, fixed
9817
9818 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9819            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9820
9821         * pcode.c,
9822         * pcode.h,
9823         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9824         indirect addressing. Marked FSR0 as deprecated
9825         * gen.c (pointerCode): commented out, not needed now
9826         (pic16_popGet2p): new MOVFF helper function
9827         (genGenPointerGet),
9828         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9829         (shiftRLong): removed duplicate debugging info
9830
9831 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         * src/ds390/gen.c (genNearPointerGet),
9834         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9835         optimization with bits, but not bitfields.
9836         * src/ds390/ralloc.c (packRegisters),
9837         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9838
9839 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9840
9841         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9842
9843 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9844
9845         * src/SDCCsymt.h,
9846         * src/SDCCicode.c (operandFromSymbol),
9847         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9848         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9849         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9850         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9851         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9852         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9853         bug #892038
9854         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9855         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9856         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9857         * src/SDCCsymt.c (newSymbol),
9858         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9859         enumerator_list),
9860         * src/SDCCval.h,
9861         * src/SDCCval.c (newiList): fixed bug #885705
9862
9863 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9864
9865         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9866         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9867
9868 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9869
9870         * device/include/c8051f120.h,
9871         * device/include/c8051f300.h,
9872         * device/include/c8051f310.h: added/updated header files for Silicon
9873         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9874         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9875         in new section Submitting patches
9876
9877 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9878
9879         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9880         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9881         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9882         genGenPointerSet),
9883         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9884         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9885         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9886         genGenPointerSet),
9887         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9888         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9889         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9890         genGenPointerSet),
9891         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9892         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9893         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9894         genGenPointerSet): fixed bug #892400
9895         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9896         to eliminate build warnings.
9897         * src/SDCCast.c (processParms),
9898         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9899         fixed bug 751859
9900         * support/valdiag/valdiag.py: added GCC to the list of defines active
9901         when compiling with gcc
9902
9903 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9904
9905         * support/Util/SDCCerr.h,
9906         * support/Util/SDCCerr.c,
9907         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9908         with an incomplete type (fixed bug #883734)
9909         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9910
9911 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9912
9913         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9914
9915 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9916
9917         * src/SDCCast.c (decorateType),
9918         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9919         function pointer implementation
9920         * support/regression/tests/funptrs.c: added tests to verify both forms
9921         of function pointers work correctly. Added tests to verify parameters
9922         are passed in the correct order.
9923
9924 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9925
9926         * device.c (regCompare): registers are sorted by ascending
9927         address and increasing size,
9928         * main.c (_pic16_finaliseOptions): removed the declaration
9929         of compiler macro MCU. Now a macro of the format pic18fxxxx
9930         will be defined from the command line
9931
9932 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9933             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9934
9935         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9936         PCOP_RLCF was overwritten!
9937         * gen.c (genSkip): commented out calls to pic16_emitcode,
9938         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9939         * (genlshTwo),
9940         * (genRRC): added debugging info,
9941         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9942         overwritten while shifting,
9943         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9944         overwritten while shifting,
9945         * (AccLsh),
9946         * (AccRsh),
9947         * (shiftLLeftOrResult),
9948         * (shiftRLeftOrResult),
9949         * (shiftRLong),
9950         * (shiftLLong): Implemented with pic16_emitpcode
9951         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9952         * (genLeftShift): Fixed bug, operand for shift by variable always
9953         was "and"ed with 0x0f,
9954         * (genLeftShiftLiteral),
9955         * (genrshTwo),
9956         * (genRightShiftLiteral): added debugging info,
9957         * (genrshFour): added comment,
9958         * (genRightShift): determined signedness from operand "left"
9959         instead of "result"
9960
9961 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9962
9963         * src/SDCCicode.c (geniCodeParms),
9964         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9965         function pointers, fixed function pointer bugs #861242 and #861896
9966
9967 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9968
9969         * device/include/c8051f000.h,
9970         * device/include/c8051f120.h,
9971         * device/include/c8051f300.h: added header files for Silicon
9972         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9973
9974 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9975
9976         * src/SDCCast.c (processParams): added new type flow and restructured
9977         (gatherAutoInit): added new type flow
9978         (addCast): cosmetic changes
9979         (getLeftResultType): added new type flow for array indices, patch
9980         provided by Stas, see FR #877103
9981         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9982         array index patch by Stas
9983         * src/SDCCast.h: added prototype getResultTypeFromType()
9984         * src/SDCCval.h,
9985         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9986         * src/pic/glue.c (pic14emitStaticSeg),
9987         * src/pic16/glue.c (pic16emitStaticSeg),
9988         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9989         for initialization of symbols
9990         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9991         * support/Util/SDCCerr.h:
9992         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9993         * .version: bumped version number to 2.3.8
9994         * device/include/Makefile.in (install),
9995         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9996         avoid warnings
9997
9998 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9999
10000         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
10001         Slade Rich fixed an optimization bug
10002         * src/pic/pcodepeep.c,
10003         * src/pic/pcoderegs.c
10004         * doc/Makefile (install): added test for directory
10005
10006 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10007
10008         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10009         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10010         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10011         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10012         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10013         * as/mcs51/asexpr.c (term),
10014         * as/hc08/asexpr.c (term): fixed bug #887146
10015
10016 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10017
10018         * src/z80/gen.c (genMult): handle single byte result product
10019         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10020         DUMMY_READ_VOLATILE (fixed bug #886367)
10021
10022 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10023
10024         * support/regression/tests/libmullong.c: fixed logic, on little endian
10025         hosts we ended without a mullong_wrapper()
10026
10027 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10028
10029         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10030         virus/worm forged address usage.
10031
10032 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10033
10034         Fixed promotion, it should be done on AST level:
10035         * src/SDCCast.c (addCast): added promotion to int
10036         (decorateType): updated call to upCast()
10037         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10038         usualUnaryConversions()
10039
10040 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10041
10042         * support/regression/tests/literalop.c (mulWrapper): Added a
10043         wrapper to remove integer overflow warnings.
10044
10045         * support/regression/tests/float_trans.c: Made work on host.
10046
10047         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10048         location of sz80.
10049
10050         * support/regression/generate-cases.py (main): Changed from inline
10051         to a main method.
10052
10053         * doc/Makefile (install): Changed to depth first to get rid of
10054         missing directory install warning.
10055
10056         * as/Makefile (install-doc): Made work on Mac.
10057
10058 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10059
10060         * src/SDCCast.c: added an additional type flow in decorateType() of
10061         opposite direction, see feature request #860006; it's enabled at runtime
10062         by setting the environment variable SDCC_NEWTYPEFLOW
10063         * src/SDCCast.h: changed prototype of decorateType()
10064         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10065         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10066         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10067         see feature request #877103
10068         * src/SDCCval.c: updated call of decorateType()
10069         (valBitwise): fixed bug #882876
10070         (valMinus): added promotion
10071         (valLogicAndOr): result is unsigned
10072         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10073         * src/SDCCsymt.c (computeType),
10074         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10075         must not cause an unsigned operation
10076         * src/pic/glue (pic14emitRegularMap),
10077         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10078
10079 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10080
10081         * src/pic/pcode.c (PCodeID): commented out left over debug code
10082
10083 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10084
10085         * support/valdiag/tests/overflow.c: added shift tests
10086         * src/pic/device.c,
10087         * src/pic/gen.c,
10088         * src/pic/gen.h,
10089         * src/pic/glue.c,
10090         * src/pic/main.c,
10091         * src/pic/pcode.c,
10092         * src/pic/pcode.h,
10093         * src/pic/pcodepeep.c,
10094         * src/pic/pcoderegs.c,
10095         * src/pic/ralloc.c,
10096         * src/pic/ralloc.h: applied patch from Slade Rich;
10097         added support for multiple code pages and multiple RAM banks on the
10098         PIC 14 port. The ASM files now no longer simply assume all the
10099         code / RAM are in the same page / bank. This means the linker can
10100         safely allocate code/RAM of separate ASM files to different pages/banks.
10101         * doc/sdccman.lyx: added Slade's tips
10102         * src/mcs51/peeph.def: fixed bug #880768
10103
10104 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10105
10106         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10107         * src/SDCCast.c (decorateType): fixed bug #880197
10108
10109 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10110
10111         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10112         getopt.h.
10113
10114         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10115         strtof is not part of C89 and isn't included with Mac OS X.
10116
10117 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10118
10119         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10120         shiftL2Left2Result): fixed bug #879326
10121         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10122         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10123         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10124         address fetch for clr instruction
10125         * device/lib/hc08/_mulint.c: created optimized assembly version
10126         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10127
10128 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10129
10130         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10131         proposed in FR #877103
10132
10133 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10134
10135         * src/SDCCval.c (cheapestVal): added missing checks
10136         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10137         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10138
10139 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10140
10141         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10142         equal operands
10143
10144 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10145
10146         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10147         loaded with the linker search paths (-L arguments) and the libraries
10148         to be linked with the current source (-l arguments). Changes
10149         currently will affect only the pic16 port.
10150         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10151         include path the port specific paths and port specific libraries,
10152         * gplink command now contains the $3 argument,
10153         * src/pic16/device.h,
10154         * src/pic16/device.c,: structure PIC_device is made public and
10155         renamed to PIC16_device, the same for variable Pics which is renamed
10156         to Pics16. Updated all references to them.
10157         * src/pic16/glue.c (pic16glue): corrected bug with code
10158         initialization which bypassed the variable initializations block.
10159
10160         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10161         COMPILE_FLAGS and added the --nostdinc option
10162
10163 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10164
10165         * device/include/mc68hc908jb8.h: Register defs for another member
10166         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10167
10168 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10169
10170         Documenting changes from previous commits.
10171         * configure.in (version 1.56),
10172         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10173         when generating output files to configure the pic16 library,
10174         but now I've commented it out, since gputils aren't installed in the
10175         SF compile farm, so library won't compile
10176
10177         * device/lib/Makefile.in (version 1.56): initially I've added in
10178         target 'all' the prerequestive 'model-pic16' so it compiled the
10179         pic16 library, but now I've commented it out for the same reasons
10180         above,
10181         * added targets 'model-pic16' and 'objects-pic16' to compile the
10182         library
10183         * added target 'port-specific-objects-pic16' to handle the
10184         generated libraries and copy them into the build/ directory
10185         * added target 'clean-intermediate-pic16' to clean intermediate
10186         files into pic16 directory
10187         * in target 'installdirs' added line to create directory pic16 in
10188         the installation path
10189
10190         * device/include/Makefile.in (version 1.11): in target 'install'
10191         added lines to copy all header files to installation path,
10192         * in target 'installdirs' added line create directory for pic16
10193         headers in the installation path
10194
10195 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10196
10197         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10198          a function call
10199
10200 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10201
10202         * configure,
10203         * device/lib/configure.in,
10204         * device/lib/configure: fixed for autoconf 2.57
10205
10206 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10207
10208         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10209         option so that it actually works. Made it specific to the z80, since
10210         the gbz80 doesn't have these kinds of I/O ports.
10211
10212 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10213
10214         * device/include/z180.h,
10215         * device/lib/_memcpy.c,
10216         * device/lib/_memmove.c,
10217         * device/lib/_mulint.c,
10218         * device/lib/ser_ir.c,
10219         * device/lib/ser_ir_cts_rts.c,
10220         * device/lib/_strcmp.c,
10221         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10222         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10223         portmode; added deprecation warning for bank= and protmode= forms.
10224         Also, guard against buffer overflow.
10225         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10226
10227 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10228
10229         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10230         changed interrupt vector table generation to only emit declared vectors.
10231         * device/include/Makefile.in: added missing backslash
10232         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10233
10234 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10235
10236         Mainly changes to support compilation of the device libraries
10237         * src/pic16/device.c: stack is allocated via symbol and not
10238         via literal number. The symbol is placed in the corresponding
10239         position of the data ram
10240         * (pic16_dump_section): relocatable and absolute uninitialized
10241         data are now emitted in sorted order to reduce section naming,
10242         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10243         weren't marked as being in the access bank,
10244
10245 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10246
10247         Added portion of GNU PIC Library under the directory
10248         device/include/pic16 and device/lib/pic16. These files
10249         contain the declarations of SFRs for the PIC18Fxx2 devices.
10250         The directory is initialized via configure from toplevel.
10251
10252 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10253
10254         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10255         the spilllocations to be compared correctly
10256
10257 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10258
10259         * src/SDCCast.c (decorateType): fixed bug introduced today
10260
10261 2004-01-12  Borut Razem <borut.razem AT siol.net>
10262
10263         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10264         doc/sdccman.lyx: upper case pragmas are deprecated
10265
10266 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10267
10268         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10269         in simpler and even better code
10270
10271 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10272
10273         * src/SDCCicode.c (operandOperation): fixed bug #874819
10274         * src/SDCCast.c (decorateType): fixed
10275         char foo (unsigned long ul) { return ul > 0; }
10276
10277 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10278
10279         * doc/sdccman.lyx: Moved and added some sections, small changes
10280         all over. Telling LaTeX to be less strict with word spacing
10281         to better keep the right margin. Changed some notes about
10282         maintainance of the ports in section 3.2.1 - is it OK like this?
10283
10284 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10285
10286         SDCC source changes:
10287         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10288         convilong): modified to inform the pic16 port that builtin functions
10289         are external
10290
10291         PIC16 PORT specific changes:
10292         * src/pic16/device.c pic16_dump_equates() added,
10293         processor registers declared internally by the port are emitted in
10294         the translation as equates,
10295         * src/pic16/gen.c: inline code is passed unprocessed to the
10296         translation,
10297         * (pic16_popGetLit2): fnuction modified to take second operand as
10298         pCodeOp pointer and not as literal,
10299         * (popRegFromIdx): prefixed with pic16_,
10300         * (pic16_popCombine2): modified to receive already allocated pCode
10301         operands,
10302         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10303         * (genFunction): initializes local stack frame and pushes on stack
10304         all the registers used by this function,
10305         * (genEndFunction): restores all registers from stack and restores
10306         stack frame,
10307         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10308         improvements,
10309         * (pic16glue): changed the program startup sequence,
10310         * added new dbName code 'A' for functions placed in absolute section
10311         * src/pic16/main.c: added function attribute _naked,
10312         * added pragma 'code' to place a fnuction at an absolute address,
10313         * added command line arguments --debug-ralloc and --pcode-verbose,
10314         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10315         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10316         * (pic16_newpCodeOpLit2): modified to take the second operand as
10317         pCodeOp pointer,
10318         * (pic16_printpBlock): modified to emit each function in a separate
10319         section,
10320         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10321         UPPER for immediate operands,
10322         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10323         instruction,
10324         * src/pic16/peeph.def: all peepholes with movff are commented out,
10325         because there is a problem in the pcode peep optimizer,
10326         * src/pic16/ralloc.c: the register allocator can now reuse local
10327         function symbols for another function. This saves register usage.
10328         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10329
10330         Added file src/pic16/NOTES with information about program writing on
10331         the current port version.
10332
10333 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10334
10335         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10336         and peephole 252 (array access)
10337
10338 2004-01-09  Borut Razem <borut.razem AT siol.net>
10339
10340         * src/SDCCmain.c : fixed #872250: -l command line defined library
10341           files are scanned before standard library files
10342
10343 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10344
10345         * src/SDCCast.c (decorateType): fixed bug #874046
10346
10347 2004-01-09  Borut Razem <borut.razem AT siol.net>
10348
10349         * support/scripts/sdcc.nsi: remove previous installation
10350
10351 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10352
10353         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10354         bytes for last interrupt vector (mcs51)
10355         * sdcc.spec: fixed typo
10356
10357 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10358
10359         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10360         gen51Code): more efficient parameter receive for --model-large
10361         ("bug" #845294)
10362
10363 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10364
10365         * src/ds390/main.c,
10366         * src/z80/main.c: added missed needLinkerScript flags (more than
10367         one port structure defined in these file)
10368         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10369         bug #795325
10370
10371 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10372
10373         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10374         * src/port.h: added flag needLinkerScript in port->linker
10375         structure to inform whether to create a .lnk file or not,
10376         * src/avr/main.c,
10377         * src/ds390/main.c,
10378         * src/hc08/main.c,
10379         * src/mcs51/main.c,
10380         * src/pic/main.c,
10381         * src/pic16/main.c,
10382         * src/xa51/main.c,
10383         * src/z80/main.c: changed appropriately to configure
10384         needLinkerScript flag
10385         * src/pic/gen.c,
10386         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10387         * src/pic/glue.c: added variable udata_section_name to
10388         override default uninitialized data segment definition for
10389         devices only with SHAREBANK memory (reported from Erik Epetrich)
10390         * (pic14emitOverlay): modified to emit a commented overlay segment
10391         directive when no overlay data exist
10392         * (picglue): modified to emit uninitialized data segment
10393         according to udata_section_name
10394         * src/pic/main.c (_pic14_parseOptions): added command line
10395         options --udata-section-name=[name] to override default
10396         udata definition name
10397         * modified _linkCmd and _asmCmd to include compiler passed
10398         arguments via -W option
10399         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10400         object file from '.rel' to '.o' in port->linker structure,
10401         changed size of fptr from 2 to 3 in port structure
10402
10403 2004-01-07  Borut Razem <borut.razem AT siol.net>
10404
10405         * support/scripts/sdcc.nsi: update PATH
10406         * support/scripts/sdcc.ico: craeted
10407
10408 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10409
10410         * device/include/Makefile.in: fix install
10411         * doc/Makefile: fix install
10412
10413 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10414
10415         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10416         in bug #860505
10417         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10418         how the function variable allocation summary is displayed; also
10419         include information about variables allocated to the overlay
10420         segment
10421
10422 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10423
10424         * as/mcs51/lkmain.c: Help about -Y option
10425         * as/mcs51/lkarea.c: Fixed gcc warnings
10426
10427 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10428
10429         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10430         fixed warning
10431         * support/valdiag/tests/overflow.c: added
10432         * src/SDCCast.c (decorateType),
10433         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10434         LEFT_OP (left shift)
10435
10436 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10437
10438         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10439         (default behaviour).
10440
10441 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10442
10443         A python script to validate compiler diagnostic messages. It can be
10444         used to verify that sdcc complains about bad c source code and
10445         gives a good location of the error.
10446         * support/valdiag/Makefile,
10447         * support/valdiag/valdiag.py,
10448         * support/valdiag/tests/*
10449
10450 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10451
10452         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10453         * src/SDCCsymt.c (newEnumType),
10454         * src/SDCCsymt.h
10455         * support/Util/SDCCerr.c,
10456         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10457         enum related bugs.
10458         * support/regression/tests/enum.c: added test for enum values that
10459         require at least 2 bytes of storage.
10460
10461 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10462
10463         * src/common.h: added ifndef/define/endif macros
10464         around the header file.
10465         Bug reported from Jesus Calvino-Fraga
10466
10467 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10468
10469         * sdcc.spec: updated
10470         * device/include/Makefile.in: don't install CVS directories
10471         * device/lib/Makefile.in: added removal of CVS directories after install
10472         * doc/Makefile: fixed install, added local_icons
10473         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10474         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10475         * src/ds390/gen.c (genRightShift): fixed bug #870788
10476         * src/SDCCast.c (decorateType): fixed bug #870781
10477
10478 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10479
10480         PIC16 port related changes:
10481         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10482         added variable stackPos,
10483
10484         * gen.c: genCall, assignResultValue: added support for
10485         pushing/retrieving function parameters to/from stack,
10486         genFunction,genEndFunction: setup stack frame for the
10487         generated function,
10488         genAddrOf: will be changed according to bug 863624
10489
10490         * added files genutils.c and genutils.h which contain gen*
10491         debugged and optimised functions extracted from gen.c
10492
10493         * glue.c: added variable 'externs' which holds extern symbols,
10494         pic16emitRegularMap: is modified to properly handle relocatable
10495          symbols under the new scheme,
10496         pic16createInterruptVect: is modified
10497         pic16printPublics: is modified to emit 'global' assembler directives,
10498         added pic16_printExterns to print extern symbols,
10499         pic16glue: initializes stack/frame pointer in the beginning of
10500         the assembly output. Temporary hack, will be corrected later,
10501         because gplink yet does not support stack and SDCC does not
10502         yet support a type of crt0.o object to create the final binary.
10503
10504         * Removed many lines that contain 8051 legacy code.
10505         * The code is finally placed under a 'code' directive.
10506         * Added port specific options.
10507
10508         * _process_pragma: simplified since now we do not need *special*
10509         include file to define SFR registers. But a separate header
10510         will be needed. This will be developed later.
10511         * _pic16_parseOptions: added, parses port specific options:
10512         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10513         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10514         --preplace-udata-with=
10515
10516         * _pic16_setDefaultOptions: modified to initialize section names,
10517         but hack is temporarly out of order since it needs improvement.
10518         * _pic16_genAssemblerPreamble: configuration words are emitted by
10519         their address instead of their name. This part is incomplete and
10520         supports only the 18Fxx2 devices. Other devices will emit an error
10521         during assembly since they do not contain the same set of config
10522         registers
10523         * _pic16_genIVT: is modified,
10524
10525         * pcode.c: added definitions for some hardware registers that are needed
10526         for stack support
10527         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10528         All PCI entries are updated. Now LFSR is supported.
10529         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10530         * added pic16_newpCodeOpLit2 to support instructions with
10531         two literal arguments
10532         * pic16_pCode2str: corrected code that emits assembler instructions
10533         with two literal operands and those that have an access bit modifier
10534         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10535         this fixes a bug which caused some labels to be lost, when an
10536         assembler directive was added, i.e. banksel,
10537         * pic16_FixRegisterBanking: improved logic that causes the insertion
10538         of bank switching,
10539         * InlineFunction: functions that are called once, are not any more
10540         inlined. This can be a port option in the future,
10541
10542         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10543
10544         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10545         hold the corresponding uninitialized symbols,
10546         * pic16_allocProcessorRegister: registers have explicit marked the
10547         accessBank field,
10548         * pic16_allocInternalRegister: registers are explicit marked as
10549         not used,
10550         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10551         processing list, so bit registers were lost,
10552         *
10553
10554         * ralloc.h: added field 'accessBank' and original symbol operand
10555         in register definition,
10556         * removed the field isMapped from register definition,
10557
10558         ** Several functions have been removed from various sources:
10559         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10560         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10561         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10562         pic16_assignRelocatableRegisters
10563
10564         ** others have been introduced:
10565         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10566         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10567
10568 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10569
10570         * support/scripts/inc2h.pl: changed definition of BIT_AT
10571         to emit 'sbit at' instead of 'bit at'. This was a request.
10572
10573         PIC16 port related preliminary changes:
10574         * gen.c: prefixed function popRegFromString with
10575         pic16_ and all references to it corrected
10576         * pcode.c: all pic16_pc_* hardware registers prefixed
10577         with underscore (_),
10578         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10579         * ralloc.c: newReg(): when register is REG_SFR then
10580         set address to rIdx,
10581         pic16_allocProcessorRegister(): marks register wasUsed=0
10582         pic16_writeUsedRegs(): added a call to assign processor
10583         registers via pic16_assignFixedRegisters
10584
10585 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10586
10587         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10588         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10589         variables in unused register banks.  Also the SSEG is placed
10590         wherever there is enough space for it, and IDATA can be anywhere
10591         in internal RAM.  For now compile using -Wl-Y[stack_size].
10592         The mem file is different for this option as well, since it
10593         makes no sense of talking about DSEG lenght.
10594
10595 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10596
10597         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10598         in certain cases, e.g. when ROM assignment, patch provided
10599         from Albert den Haan.
10600
10601 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10602
10603         Many signedness and type propagation fixes:
10604         * src/SDCCicode.c: made geniCodeCast() static
10605         replaced SPEC_ by IS_ (cosmetic)
10606         (operandOperation): fixed div and mod operation
10607         (usualBinaryConversions): added support for promotion of char
10608         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10609         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10610         (geniCodeAdd): an array index will stay unsigned, even if promoted
10611         from char to int
10612         (geniCodeArray): ditto
10613         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10614         * src/SDCCsymt.c (computeType): added more support for char;
10615         promotion of char is selectable by promoteCharToInt, fixed signedness
10616         for all cases
10617         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10618         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10619         * src/SDCCval (val*): replaced signedness calculation by
10620         computeType()
10621         rearranged if-branches (cosmetic)
10622         (valShift): added warning W_SHIFT_CHANGED
10623         (valCompare): fixed problem with different types
10624         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10625         * support/regression/tests/literalop.c: added many cases
10626         * support/regression/tests/ast_constant_folding.c: changed finally to
10627         'unsigned int'
10628         * .version: new year, new version: 2.3.7
10629         * src/SDCCmain.c (main): applied patch #866468
10630         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10631         provided by Scott Bronson
10632         * doc/sdccman.lyx: updated documentation for sdcdb
10633         updated and added chapter tips
10634
10635 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10636
10637         * src/SDCCsymt.h: missing from yesterday's commits
10638
10639 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/SDCC.y (struct_or_union_specifier),
10642         * support/Util/SDCCerr.c,
10643         * support/Util/SDCCerr.h: verify that struct & union tags are used
10644         as declared.
10645
10646 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10647
10648         * src/SDCCglobl.h: missing from yesterday's commits
10649
10650 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10651
10652         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10653         sft_attributes, struct_declaration, parameter_declaration,
10654         type_name, start_block, declaration_list),
10655         * src/SDCC.lex (check_type): support redefinition of typedef names
10656
10657 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10658
10659         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10660         aligned xdata arrays. Erik helped me with the if clause.
10661
10662 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10663
10664         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10665         warning
10666
10667 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10668
10669         * src/SDCCast.h,
10670         * src/SDCCast.c (newAst_),
10671         * src/SDCCicode.h,
10672         * src/SDCCicode.c (ast2iCode, newiCode),
10673         * src/SDCCglobl.h,
10674         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10675         expr, statement, expression_statement, selection_statement,
10676         iteration_statement, expr_opt, jump_statement): foundation for tracking
10677         sequence points
10678         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10679         point code too)
10680
10681 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10682
10683         * support/Util/SDCCerr.c,
10684         * src/SDCCast.h,
10685         * src/SDCCast.c (createCase, createDefault, decorateType),
10686         * src/SDCClabel.c (labelUnreach),
10687         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10688         to error messages.
10689         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10690         (with thanks to Stas Sergeev)
10691         * device/include/time.h,
10692         * device/lib/time.c (CheckTime): suppress unreachable code warning
10693
10694 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10695
10696         * src/SDCCast.c (createIvalCharPtr),
10697         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10698         bug #753752)
10699         * support/regression/tests/nullstring.c: tests for these two bugs
10700
10701 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10702
10703         * support/Util/SDCCerr.h,
10704         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10705         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10706         about storage class and 'at' used inside struct or union
10707         * src/SDCCBBlock.c (iCodeFromeBBlock),
10708         * src/SDCCcse.c (ifxOptimize),
10709         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10710         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10711         printIval, emitStaticSeg, emitOverlay),
10712         * src/SDCClabel.c (deleteIfx),
10713         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10714         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10715         gatherAutoInit, processParms),
10716         * support/Util/SDCCerr.h,
10717         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10718         reporting for post-parse errors.
10719
10720 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10721
10722         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10723         implicit casts via union; they don't work on big endian systems
10724         (possible fix for bug #861138)
10725
10726 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10727
10728         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10729         * src/mcs51/main.c: fixed the fix for bug #737001
10730
10731 2003-12-15  Borut Razem <borut.razem AT siol.net>
10732
10733         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10734
10735 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10736
10737         * support/makebin/makebin.c: put output in binary mode
10738
10739 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10740
10741         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10742         xdata and data memory on startup. Set the environment variable
10743         SDCC_NOGENRAMCLEAR to disable this.
10744         * src/mcs51/peephole.def,
10745         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10746         (allows non-interrupt and interrupt code to safely compete for a resource
10747         without the non-interrupt code having to disable interrupts)
10748
10749 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10750
10751         * src/SDCCicode.c (geniCodeAdd),
10752         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10753         with valFromType if type might be a pointer and host is big endian).
10754         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10755         types, not just integer types.
10756         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10757         multiply defined with mismatching "at" address.
10758
10759 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10760
10761         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10762         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10763         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10764         with embedded nulls (fixed bug #753752)
10765
10766 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10767
10768         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10769         Apparently this did not see much testing (endless loop)
10770
10771 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10772
10773         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10774
10775 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10776
10777         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10778         gracefully handle NULL memmap pointers
10779
10780 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10781
10782         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10783         instead of deleting the iCode when an operand is volatile
10784         * src/z80/gen.c (genDummyRead),
10785         * src/mcs51/gen.c (genDummyRead),
10786         * src/ds390/gen.c (genDummyRead),
10787         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10788         not just IC_RIGHT
10789         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10790         * src/SDCC.y: fixed bug #850420
10791
10792 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10793
10794         Applied z80 i/o port patch from Peter Townson and fixed some operators
10795         to better handle operands in A register.
10796         * device/include/z180.h
10797         * src/SDCC.y
10798         * src/SDCCglue.c
10799         * src/z80/gen.c
10800         * src/z80/gen.h
10801         * src/z80/main.c
10802         * src/z80/peeph-z80.def
10803         * src/z80/peeph.def
10804         * src/z80/z80.h
10805
10806 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10807
10808         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10809
10810 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10811
10812         * device/lib/hc08/_mullong.c: Removed extra #endif
10813
10814 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10815
10816         * sim/ucsim/hc08.src/inst.cc,
10817         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10818         carries from x to h
10819         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10820         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10821         * device/include/stdarg.h: fixed varargs for hc08
10822         * device/lib/Makefile.in,
10823         * device/lib/hc08/Makefile,
10824         * device/lib/hc08/_mulint.c,
10825         * device/lib/hc08/_mullong.c: fixed some endian problems
10826
10827 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10828
10829         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10830         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10831         * device/lib/_gptrget.c,
10832         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10833
10834 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10835
10836         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10837         * src/SDCCast.c (astErrors): fixed bug #846007
10838         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10839
10840 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10841
10842         * src/SDCCast.c (decorateType): disabled a transformation I added in
10843         revision 1.188 (access to fields of a structure at an absolute address);
10844         it breaks with bitfields, extern declarations, and gcse analysis.
10845         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10846         could be assigned through a pointer, so don't complain.
10847         * src/SDCCast.c (astErrors),
10848         * src/SDCCast.h,
10849         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10850
10851 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10852
10853         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10854         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10855         output of __config directives, since gpasm now supports them
10856         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10857         pre-processor macro, i.e. -DMCU=p18f452
10858         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10859         and modified to handle 'cast' icode similarly to '=' icode
10860         * src/pic16/device.h (typedef struct PIC_device): added field
10861         'extMIface' to indicate that chip has external memory interface
10862         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10863         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10864         18F8720
10865
10866 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10867
10868         * src/SDCC.y (pointer): fixed bug #846006
10869         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10870         * src/SDCCast.c (decorateType): fixed bug #846009
10871         * src/ds390/peeph.def,
10872         * src/ds390/gen.c (genAnd, genOr),
10873         * src/mcs51/peeph.def,
10874         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10875
10876 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10877
10878         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10879         * src/SDCCdflow.c
10880         * src/SDCCcse.c
10881         * src/SDCCcse.h
10882         * src/SDCCBBlock.h
10883         * src/SDCCBBlock.c
10884
10885 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10886
10887         fixed bug #845089
10888         * src/SDCCbitv.h,
10889         * src/SDCCbitv.c: added function to free a bitvector
10890         * src/SDCClrange.h,
10891         * src/SDCClrange.c: added function to recompute the liveranges
10892         * src/avr/ralloc.c,
10893         * src/ds390/ralloc.c,
10894         * src/hc08/ralloc.c,
10895         * src/mcs51/ralloc.c,
10896         * src/pic/ralloc.c,
10897         * src/pic16/ralloc.c,
10898         * src/xa51/ralloc.c,
10899         * src/z80/ralloc.c: recompute the liveranges after register packing
10900
10901 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10902
10903         * src/SDCCloop.c (newInduction): fixed bug #845630
10904
10905 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10906
10907         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10908         inadvertantly left behind from my 2003-11-12 change
10909
10910 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10911
10912         Updated headers I neglected to commit yesterday.
10913         * src/SDCClrange.h,
10914         * src/SDCCicode.h
10915
10916 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10917
10918         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10919         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10920         * src/SDCCopt.c (eBBlockFromiCode),
10921         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10922         the creation of the key hash table from the sequencing so it can be used
10923         earlier (for some GCSE bug fixes still pending)
10924
10925 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10926
10927         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10928         * support/regression/tests/addsub.c: testing genPlus shortcut
10929
10930 2003-11-15  Borut Razem <borut.razem AT siol.net>
10931
10932         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10933
10934 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10935
10936         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10937         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10938         ordering is immaterial.
10939         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10940
10941 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10942
10943         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10944         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10945         (SIGSEV) of bug #840381
10946         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10947         unlink new file before rename if new and old filenames are the same)
10948
10949 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10950
10951         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10952         uninitialized variables) for the mcs51. Set environment variable
10953         SDCC_GENRAMCLEAR to test.
10954         xdata initialization slightly shorter
10955
10956 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10957
10958         * src/SDCCsymt.h,
10959         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10960         #838241 & 780691 (basicly the same bug)
10961         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10962         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10963
10964 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10965
10966         * src/SDCCmain.c (linkEdit): "fix" #834252
10967
10968 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10969
10970         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10971         * src/SDCCast.h,
10972         * src/SDCC.y: fixed bug #819403
10973
10974 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10975
10976         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10977         the reentrant attribute.
10978         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10979         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10980         simulation
10981         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10982         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10983         erroneously reduced to a literal.
10984         * src/hc08/ralloc.c (packRegisters, rematStr),
10985         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10986         some cases
10987
10988 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10989
10990         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10991         * doc/sdccman.lyx: changed from 'article' to 'book'
10992         * doc/Makefile: readded test_suite_spec and cdbfileformat
10993
10994 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10995
10996         * device/include/stdlib.h: include malloc.h to comply with ANSI
10997         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10998
10999 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11000
11001         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
11002         * doc/clean.mk: also remove *.out files
11003         * doc/sdccman.lyx: some additions, larger top/bottom margins
11004
11005 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11006
11007         * src/SDCC.y: fixed bug #837365
11008         * support/regression/tests/bitopcse.c
11009         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11010         a symbol (might be valop instead)
11011         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11012         * device/lib/clean.mk: added hc08 to the cleaning list
11013
11014 2003-11-04  Borut Razem <borut.razem AT siol.net>
11015
11016         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11017           made 2003-11-04
11018         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11019           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11020           malloc is declared in standard stdlib.h
11021
11022 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11023
11024         * device/lib/hc08/Makefile: need to clean .rel not .o files
11025         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11026
11027 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11028
11029         * src/port.h,
11030         * src/hc08/main.c,
11031         * src/mcs51/main.c,
11032         * src/ds390/main.c,
11033         * src/z80/main.c,
11034         * src/avr/main.c,
11035         * src/pic/main.c,
11036         * src/pic16/main.c,
11037         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11038         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11039         tests (which uses the port's oclsExpense function)
11040         * src/SDCC.y,
11041         * src/SDCCast.c,
11042         * src/SDCCicode.c,
11043         * src/hc08/gen.c,
11044         * src/ds390/gen.c,
11045         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11046
11047 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11048
11049         * src/SDCCcse.c (ifxOptimize),
11050         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11051         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11052         deleting the IFX iCode.
11053         * src/hc08/ralloc.c: reduced unneeded slocs
11054         * src/hc08/gen.c: fixed bug in asmopToBoolean
11055
11056 2003-11-04  Borut Razem <borut.razem AT siol.net>
11057
11058         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11059           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11060           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11061           transferred to configure
11062
11063 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11064
11065         Use headers defined in the C[++] standards:
11066         * sim/ucsim/gui.src/serio.src/fileio.cc
11067         * sim/ucsim/gui.src/serio.src/frontend.cc
11068         * sim/ucsim/gui.src/serio.src/main.cc
11069         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11070         * support/Util/NewAlloc.c
11071         * as/hc08/lklibr.c
11072         * as/mcs51/lklibr.c
11073         * as/z80/aslist.c
11074         * as/z80/assym.c
11075
11076 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11077
11078         * Added MSVC projects for hc08 assembler and linker:
11079         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11080         /as/hc08/link_hc08.dsp
11081
11082 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11083
11084         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11085
11086 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11087
11088         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11089
11090 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11091
11092         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11093
11094 2003-10-31  Borut Razem <borut.razem AT siol.net>
11095
11096         * support/cpp2/cpplib.h,
11097           support/cpp2/cpplib.c,
11098           support/cpp2/cpplex.c,
11099           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11100           to switch _asm block preprocessing on / off. Default is
11101           #pragma preproc_asm +
11102
11103 2003-10-31  Borut Razem <borut.razem AT siol.net>
11104
11105         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11106           when outputting comment blocks (when executed with -C option) and
11107           _asm (SDCPP specific) blocks
11108
11109 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11110
11111         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11112
11113 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11114
11115         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11116
11117 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11118
11119         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11120         * src/SDCCast.c (decorateType): fixed bug #832664
11121
11122 2003-10-31  Borut Razem <borut.razem AT siol.net>
11123
11124         * support/cpp2/cpplex.c: fixed for SDCPP:
11125           comments(when executed with -C option) and _asm blocks
11126           were included even if they where in skipped #if block.
11127           Applied solution from GCC cpp 3.3.2
11128
11129 2003-10-31  Borut Razem <borut.razem AT siol.net>
11130
11131         * src/SDCC.lex: sdcc now understands both formats:
11132           '# <line_number> <file_name>' and
11133           '#line <line_number> <file_name>'
11134         * support/cpp2/cppmain.c: sdcpp now generates the standard
11135           '# <line_number> <file_name>' instead of former
11136           '#line <line_number> <file_name>'
11137
11138 2003-10-30  Borut Razem <borut.razem AT siol.net>
11139
11140         * support/cpp2/cpphash.h,
11141         * support/cpp2/cpplib.h
11142         * support/cpp2/cpplex.c,
11143         * support/cpp2/cppmain.c,
11144         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11145
11146 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11147
11148         Fixed a number of problems revealed by bug #827883.
11149         * src/SDCCloop.c (loopInvariants): Spill location of the
11150         result operand should be recomputed if extracted from
11151         a loop. Also, don't extract assignments of an iTemp
11152         from a literal.
11153         * src/SDCCast.c (isConformingBody): loop reversal should
11154         not occur if the control variable is involved with a
11155         relational operator.
11156
11157 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11158
11159         * .version: bumped to 2.3.6 to reflect the big improvements
11160         made by Erik and Klaus. Thanks!
11161
11162 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11163
11164         Replaced the livrange code.
11165         * src/SDCClrange.c: added new LR code
11166         * src/SDCCloop.c,
11167         * src/SDCCBBlock.h: removed remainig parts from old LR code
11168         * src/ds390/ralloc.c,
11169         * src/ds390/gen.c: minor fixes to make it work with new code
11170
11171 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11172
11173         * as/hc08/asm.h,
11174         * as/hc08/lkrloc.c,
11175         * src/hc08/gen.c,
11176         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11177         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11178         (tweaked fix for bug #818696)
11179
11180 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11181
11182         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11183
11184 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11185
11186         * src/SDCCmain.c,
11187         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11188         * src/mcs51/gen.c (gencjneshort),
11189         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11190         more efficient (per Scott Bronson's suggestion)
11191
11192 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11193
11194         Extended the semantics of the critical keyword to include
11195         individual statements. See RFE #827755 and #799831
11196         * src/SDCC.y
11197         * src/SDCCicode.c
11198         * src/SDCCopt.c
11199         * src/SDCCast.c
11200         * support/Util/SDCCerr.c
11201         * support/Util/SDCCerr.h
11202         * src/mcs51/gen.c
11203         * src/ds390/gen.c
11204         * src/hc08/gen.c
11205
11206 2003-10-19  Borut Razem <borut.razem AT siol.net>
11207
11208         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11209
11210 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11211
11212         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11213         Fixed bug #818696
11214         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11215         and predecrement operand is displayed
11216
11217 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11218
11219         * src/SDCCval.c (valMinus): fixed bug #826041
11220
11221 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11222
11223         Some hc08 related updates that I missed earlier
11224         * sim/ucsim/stypes.h
11225         * support/regression/ports/hc08/spec.mk
11226
11227 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11228
11229         New target "hc08" for the Motorola 68hc08 family of micros
11230
11231         * configure
11232         * configure.in
11233         * Makefile
11234         * src/hc08/*
11235         * src/SDCCmain.c
11236         * src/port.h
11237         * sim/ucsim/hc08.src/*
11238         * sim/ucsim/configure.in
11239         * src/ucsim/configure
11240         * sim/ucsim/packages_in.mk
11241         * as/hc08/*
11242         * as/Makefile
11243         * device/include/mc68hc908qy.h
11244         * device/lib/hc08/*
11245         * device/lib/Makefile.in
11246         * support/regression/ports/hc08/*
11247         * support/regression/Makefile
11248
11249 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11250
11251         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11252         regression test
11253         * src/ds390/gen.c (genCast): fixed bug #821957
11254
11255 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11256
11257         * device/lib/logf.c: "fixed" overlay bug
11258         * support/regression/ports/host/spec.mk: added m library
11259         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11260         * support/regression/tests/float_trans: added (for Eric)
11261
11262 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11263
11264         * src/mcs51/gen.c (genCpl): fixed bug
11265         http://sf.net/mailarchive/message.php?msg_id=6263915
11266
11267 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11268
11269         * src/SDCCast.c (decorateType): added extended constant folding
11270         * src/SDCCsymt.c (computeType): cleanup
11271         * src/SDCCval.c (valShift): minor optimization
11272         * support/regression/tests/ast_constant_folding.c: added
11273
11274 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11275
11276         * src/SDCCmain.c: removed some unintended changes
11277
11278 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11279
11280         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11281         * src/z80/gen.c: fixed part of bug #817589
11282         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11283
11284 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11285
11286         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11287         * src/SDCCcflow.c
11288         * src/SDCCcse.c
11289         * src/SDCCdflow.c
11290         * src/SDCClabel.c
11291         * src/SDCClrange.c
11292         * src/SDCCmem.c
11293         * src/SDCCopt.c
11294         * src/SDCCpeeph.c
11295         * src/SDCCset.c
11296         * src/avr/ralloc.c
11297         * src/ds390/ralloc.c
11298         * src/izt/ralloc.c
11299         * src/mcs51/ralloc.c
11300         * src/pic/ralloc.c
11301         * src/pic16/ralloc.c
11302         * src/xa51/ralloc.c
11303         * src/z80/ralloc.c
11304         * src/z80/gen.c: removed unused label "release:"
11305
11306 2003-10-06  Borut Razem <borut.razem AT siol.net>
11307
11308         * src/SDCC.lex: removed definition of unused variables
11309           save_optimize and save_options
11310
11311 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11312
11313         * clean.mk: removed '=' in "-maxdepth=1"
11314         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11315         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11316
11317 2003-10-06  Borut Razem <borut.razem AT siol.net>
11318
11319         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11320           my_unput() replaced by unput()
11321
11322 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11323
11324         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11325         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11326         type-punned pointer will break strict-aliasing rules"
11327         Old LR behaviour is again default; Klaus' LR can be choosen by
11328         defining the environment variable LRKLAUS
11329         * src/SDCCBBlock.h
11330         * src/SDCCloop.c
11331         * src/SDCClrange.c
11332         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11333         * clean.mk: fixed removal of files in bin/CVS/
11334         * device/lib/clean.mk: fixed removal of directories small and large
11335         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11336         * src/SDCCicode.c,
11337         * src/SDCCval.c: removed superflous test for pedantic
11338
11339 2003-10-05  Borut Razem <borut.razem AT siol.net>
11340
11341         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11342           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11343           message "unmatched #pragma SAVE and #pragma RESTORE"
11344
11345 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11346
11347         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11348           assembly, critical functions, atomic, nojtbound)
11349
11350 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11351
11352         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11353         * src/SDCCBBlock.h
11354         * src/SDCCloop.c
11355         * src/SDCCloop.h
11356         * src/SDCClrange.c
11357
11358 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11359
11360         * src/z80/gen.h,
11361         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11362         * src/mcs51/gen.h
11363         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11364         * src/ds390/gen.h
11365         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11366         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11367         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11368
11369 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11370
11371         * src/z80/gen.c (genRet): fixed bug #524753
11372         * src/z80/gen.c (genCast): fixed internal error on cast from
11373         pointer to long
11374         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11375         fix for bug #477835 to the z80
11376         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11377         for tracking iCodes in the peephole optimizer for z80
11378
11379 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11380
11381         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11382         the other part of bug #814548
11383         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11384
11385 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11386
11387         * src/SDCCcse.c: fixed part of bug #814548
11388
11389 2003-09-28  Borut Razem <borut.razem AT siol.net>
11390
11391         * src/asm.c: rewrite of printILine() to use temporary file instead
11392           a pipe
11393         * src/xa51/main.c: commented out declaration of int rewinds
11394
11395 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11396
11397         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11398
11399 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11400
11401         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11402         * src/asm.c (printILine): Fixed bug #811015
11403
11404 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11405
11406         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11407         freeing.
11408
11409 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11410
11411         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11412         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11413         to correctly handle general case of AOP_PAIRPTR
11414         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11415
11416 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11417
11418         * src/mcs51/ralloc.c (fillGaps),
11419         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11420         register positioning bug)
11421
11422 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11423
11424         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11425
11426 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11427
11428         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11429         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11430         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11431         (ralloc doesn't intentionally do this now, but perhaps later)
11432         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11433         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11434         register positioning bugs (Fixed bug #762602 and #795325)
11435         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11436         (Fixed bug #808779)
11437         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11438         lines that --i-code-in-asm generates
11439
11440 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11441
11442         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11443         trying to fclose a FILE* that was already closed.
11444
11445 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11446
11447         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11448         of const struct should be treated as if const themselves)
11449
11450 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11451
11452         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11453
11454 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11455
11456         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11457         Unix (/n) and DOS (/r/n) line terminations.
11458
11459 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11460
11461         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11462         bug #613775
11463
11464 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11465
11466         * src/mcs51/gen.c (genFunction, genEndFunction),
11467         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11468         and restore of EA so that stack offsets to parameters are
11469         correct when using both critical and reentrant/stack-auto.
11470         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11471         size (can be triggered in error if sloc is shared between
11472         different sized objects)
11473         * device/include/float.h: fixed macros to explicitly use
11474         unsigned long where needed
11475
11476 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11477
11478         Feature req. 799831: added code to allow nesting of critical functions
11479         * src/mcs51/gen.c (genFunction, genEndFunction)
11480         * src/ds390/gen.c (genFunction, genEndFunction)
11481
11482 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11483
11484         * src/SDCCsymt.c (sclsFromPtr),
11485         * src/SDCCsymt.h,
11486         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11487         support for standard C idiom of memory mapped variables; for
11488         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11489         to xdata int at 0x1234 tempvar = 1.
11490         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11491         provided by Akiya ISHIDA
11492
11493 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11494
11495         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11496         * src/SDCCval.c (constVal): added reduction from int to char
11497         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11498         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11499         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11500         to ignore the sign
11501         * support/regression/tests/shifts.c: fixed
11502
11503 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11504
11505         * src/z80/gen.c (genXor): Fixed bug #805445
11506
11507 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11508
11509         Fixed bug #621531 (const & volatile confusion in the type chain).
11510         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11511         refer to the const or volatile state of the pointer itself.
11512
11513         * src/SDCCast.c
11514         * src/SDCCglue.c
11515         * src/SDCCicode.c
11516         * src/SDCCsymt.c
11517         * src/SDCCval.c
11518         * src/SDCC.y
11519         * src/SDCCsymt.h
11520         * src/pic/gen.c
11521         * src/pic/ralloc.c
11522         * src/pic16/gen.c
11523         * src/pic16/ralloc.c
11524         * support/regression/tests/const.c
11525
11526 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11527
11528         When checking for duplicated modules, use absolute paths
11529         instead of relative paths.  Files changed:
11530
11531         * as/mcs51/lklib.c
11532         * link/z80/lklib.c
11533
11534 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11535
11536         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11537
11538 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11539
11540         * device/include/string.h: added size_t typedef, changed
11541         prototypes to use size_t, eliminated separate reentrant and
11542         non-reentrant declarations, added _memmove declaration
11543         * device/lib/_memcpy.c: changed to use size_t instead of int,
11544         changed /4 to >>2 to avoid division library call
11545         * device/lib/_memcmp.c,
11546         * device/lib/_memset.c,
11547         * device/lib/_strncat.c,
11548         * device/lib/_strncpy.c,
11549         * device/lib/_strncmp.c: changed to use size_t instead of int
11550         * device/lib/_memmove.c: new file (fixed bug #772294)
11551         * device/lib/Makefile.in: added _memmove.c
11552         * device/lib/z80/asm_strings.s: fixed bug #772290
11553         * support/regression/tests/bitfields.c: attempt to fix host assertion
11554         failure on amd64-unknown-linux2.2
11555
11556 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11557
11558         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11559         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11560         * as/z80/asmain.c (main): fixed bug #801766
11561
11562 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11563
11564         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11565         compilers
11566
11567 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11568
11569         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11570         reported in bug #800609
11571
11572 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11573
11574         * Top header beautifications in src/pic16 directory:
11575           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11576           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11577           pcoderegs.h, ralloc.c, ralloc.h
11578         * main.c: added top header and GPL license notice
11579         * pcode.c: fixed the if-conditional warning
11580
11581 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11582
11583         * device/lib/_mullong.c: replaced int by short for gcc
11584
11585 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11586
11587         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11588         and JUMPTABLE iCodes properly now (worked by accident before)
11589         * src/mcs51/gen.c (leftRightUseAcc),
11590         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11591         iCode properly now. Use getSize instead of nRegs since a & b
11592         aren't part of the nRegs tally.
11593
11594 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11595
11596         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11597         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11598           before instructions that use the _STATUS register
11599
11600 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11601
11602         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11603         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11604         fetching of the pointer
11605         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11606         copied from genNearPointerSet()
11607         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11608         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11609         If they pop r0/r1 they must be called in the opposite order than aopOp().
11610         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11611         (resp. --stack-auto), prepared for --xstack
11612
11613 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11614
11615         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11616
11617 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11618
11619         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11620         these ports have their own __sdcc_external_start()
11621
11622 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11623
11624         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11625         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11626         type for bits was changed. It resulted in bit variables becoming
11627         global, which is not permitted in PIC 14 assembly output.
11628
11629 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11630
11631         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11632
11633 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11634
11635         Z80 and MCS51 linkers complaint if a public symbol is defined
11636         in more than one library module:
11637
11638         * as/mcs51/lklib.c
11639         * link/z80/lklib.c
11640         * as/mcs51/Makefile.in
11641
11642 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11643
11644         A few small changes that speed up the peephole optimizer.
11645
11646         * src/SDCCpeeph.c
11647
11648 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11649
11650         Try to make the peephole optimizer smarter by maintaining
11651         an association between the assembly source code and the
11652         iCodes that originated them. Put this information to use
11653         with a new peephole rule condition "notVolatile" so that
11654         the rules can be aggressive yet still safe.
11655
11656         * src/SDCCpeeph.c
11657         * src/SDCCpeeph.h
11658         * src/mcs51/gen.c
11659         * src/mcs51/peeph.def
11660
11661 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11662
11663         Fixed bug #741761
11664
11665         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11666         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11667         if the left or right operand symbols have the accuse flag set.
11668
11669 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11670
11671         Changed the type of the result of the ! (NOT) operator to char;
11672         previously it returned the same type as the source. This allows
11673         us to eliminate all the genFloatNot functions (all of its target
11674         implementations were very buggy) since !float can use the same
11675         code as !long now.
11676
11677         * src/SDCCicode.c (ast2iCode): ! returns char
11678         * src/mcs51/gen.c (genNot, genNotFloat),
11679         * src/ds390/gen.c (genNot, genNotFloat),
11680         * src/z80/gen.c (genNot, genNotFloat),
11681         * src/pic/gen.c (genNot, genNotFloat),
11682         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11683
11684 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11685
11686         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11687         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11688            during interrupts. Ensure WSAVE is located at a shared bank address.
11689         2. Fixed page selection in some places
11690         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11691            the registers name strings.
11692         4. Fixed "signed / unsigned compare" compiler warnings.
11693         5. The PIC port manages its own allocation of the general purpose
11694            registers, but makes no attempt to reuse them. As a result when
11695            compiling it soon runs out of general purpose registers. Some
11696            additional code was added to the files pcode.c and device.c to walk
11697            through the function call tree and rename the registers so that they
11698            get reused.
11699
11700         * src/pic/device.c
11701         * src/pic/gen.c
11702         * src/pic/glue.c
11703         * src/pic/pcode.c
11704         * src/pic/pcode.h
11705         * src/pic/ralloc.c
11706         * src/pic/ralloc.h
11707         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11708         genPlus() & genMinus() when the result is the same as left or right
11709
11710 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11711
11712         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11713
11714 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11715
11716         Made bitfield a distinct type from bit so that bitfields
11717         convert as per ANSI C and bits retain their traditional
11718         boolean style behaviour. Implemented bitfield support in
11719         the z80 port.
11720
11721         * src/SDCCsymt.h,
11722         * src/SDCCsymt.c,
11723         * src/SDCCast.c,
11724         * src/cdbFile.c,
11725         * src/mcs51/gen.c,
11726         * src/ds390/gen.c: bit v bitfield split
11727         * src/z80/gen.c: New support for bitfields
11728         * support/regression/tests/bitfields.c: reenabled z80,
11729         added more tests
11730
11731 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11732
11733         Rules 246.x, 247.x relate to bitfields, the others speed up
11734         access to xdata mapped I/O devices.
11735
11736         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11737
11738 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11739
11740         Cleaned up genPackBits and genUnpackBits and added two helper
11741         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11742         for literal assignments in genPackBits (thanks to Frieder for
11743         reminding me).
11744
11745         * src/mcs51/gen.c
11746         * src/ds390/gen.c
11747
11748 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11749
11750         Fixed bug #748310 (pointer to function type mishandled when the
11751         function name is omitted). Also fixed a SIGSEGV when a function
11752         attribute (reentrant, etc) is used on a non-function or on a
11753         function but misplaced before the parameter list.
11754
11755         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11756         bug #748310
11757         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11758         * support/Util/SDCCerr.h,
11759         * support/Util/SDCCerr.c: Added func attr misuse error msg
11760
11761 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11762
11763         Fixed bug #787649 by anonymous
11764         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11765         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11766
11767 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11768
11769         Fixed numerous bitfield problems.
11770
11771         * src/SDCC.y: More bitfield related error checking
11772         * src/SDCCsymt.h,
11773         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11774         * support/Util/SDCCerr.h,
11775         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11776         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11777         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11778         * support/regression/tests/bitfields.c: tests added
11779
11780 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11781
11782         Made the constant following the "interrupt" keyword optional. If
11783         omitted, the function will not automatically be given an entry
11784         in the interrupt vector table (similar to #pragma NOIV, but
11785         less syntacticly kludgy). The interrupt number is also now
11786         range checked. Also fixed a bug in the high order bit example
11787         in the manual.
11788
11789         * src/SDCC.y
11790         * src/SDCCmem.c
11791         * src/SDCCglue.c
11792         * src/SDCCsymt.h
11793         * support/Util/SDCCerr.c
11794         * support/Util/SDCCerr.h
11795         * doc/sdccman.lyx
11796
11797 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11798
11799         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11800         * src/SDCCicode.c (operandOperation): rewritten some ops
11801         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11802         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11803         other type
11804         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11805         be re-activated by defining REDUCE_LITERALS)
11806         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11807         unsigned, but are signed by default
11808         * src/SDCCval.c (constVal): rearranged
11809         * src/SDCCval.c (valMod): preliminary fix
11810         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11811         * support/regression/literalop.c: added, work in progress
11812
11813 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11814
11815         Generate warnings for useless declarations like "char data;"
11816         that don't do what new users expect.
11817
11818         * src/SDCC.y
11819         * support/Util/SDCCerr.h
11820         * support/Util/SDCCerr.c
11821
11822 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11823
11824         * src/SDCCval.c (valMult): fix overflow detection of negative int
11825
11826 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11827
11828         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11829
11830         Changes to support big endian targets:
11831
11832         * src/ports.h
11833         * src/SDCCglue.c
11834         * src/avr/main.c
11835         * src/ds390/main.c
11836         * src/izt/i186.c
11837         * src/mcs51/main.c
11838         * src/pic/main.c
11839         * src/pic16/main.c
11840         * src/xa51/main.c
11841         * src/z80/main.c
11842
11843 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11844
11845         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11846         * device/lib/time.c: fixed warning "integer overflow in expression"
11847
11848 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11849
11850         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11851         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11852         constants are unsigned; added recognition of "u" flag for unsigned
11853         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11854         * src/SDCCval.c (valDiv, valMod): fixed signdness
11855         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11856         signedness of modulo, left and right shift
11857         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11858         * support/Util/SDCCerr.h: added warning W_INT_OVL
11859         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11860         * src/SDCCast.c (ast_print): improved output of constants
11861
11862 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11863
11864         Fixed some warnings when building with MSVC:
11865
11866         * as/mcs51/asdata.c
11867         * as/z80/asdata.c
11868         * as/mcs51/asm.h
11869         * as/z80/asm.h
11870         * link/z80/aslink.h
11871         * link/z80/lkdata.c
11872         * link/z80/lkeval.c
11873         * link/z80/lkgb.c
11874         * link/z80/lkihx.c
11875         * link/z80/lks19.c
11876         * link/z80/lksym.c
11877         * support/cpp2/cpplib.c
11878         * src/ds390/gen.c
11879         * src/mcs51/gen.c
11880
11881 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11882
11883         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11884
11885 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11886
11887         * support/librarian/clean.mk: Do not remove Makefile.
11888         * support/librarian/Makefile: added.
11889
11890 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11891
11892         Added librarian to MSVC build:
11893         * all.dsp
11894         * sdcc.dsw
11895         * support/librarian/librarian.dsp
11896
11897         'configure' not needed for librarian, removed:
11898         * support/librarian/configure
11899         * support/librarian/configure.in
11900         * support/librarian/config_in.h
11901         * support/librarian/Makefile.in
11902
11903         Hopefully these ones built the librarian and the rest of sdcc properly:
11904         * Makefile
11905         * Makefile.common.in
11906
11907         Messed up 'configure', so revert to previous version:
11908         * configure
11909         * configure.in
11910
11911 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11912
11913         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11914         there, while the mantissa of a double is "only" 53 bits wide.
11915
11916 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11917
11918         Adding sdcclib to the build.  MSVC project coming soon.
11919         Files added/changed:
11920
11921         * support/librarian/clean.mk
11922         * support/librarian/configure
11923         * support/librarian/configure.in
11924         * support/librarian/config_in.h
11925         * support/librarian/Makefile.bcc
11926         * support/librarian/Makefile.in
11927         * support/librarian/sdcclib.c
11928         * Makefile.bcc
11929         * Makefile
11930         * Makefile.common.in
11931         * configure
11932         * configure.in
11933
11934 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11935
11936         Linker now complaints if linked modules have conflicting options, for
11937         example, one compiled using --model-large and another one compiled with
11938         --model-small.  The following files were modified:
11939
11940         * as/mcs51/asdata.c
11941         * as/mcs51/aslink.h
11942         * as/mcs51/asm.h
11943         * as/mcs51/asmain.c
11944         * as/mcs51/asout.c
11945         * as/mcs51/i51pst.c
11946         * as/mcs51/lkdata.c
11947         * as/mcs51/lklibr.c
11948         * as/mcs51/lkmain.c
11949         * as/z80/asdata.c
11950         * as/z80/asm.h
11951         * as/z80/asmain.c
11952         * as/z80/asout.c
11953         * as/z80/z80pst.c
11954         * link/z80/aslink.h
11955         * link/z80/lkdata.c
11956         * link/z80/lklibr.c
11957         * link/z80/lkmain.c
11958         * src/SDCCglue.c
11959
11960 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11961
11962         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11963         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11964
11965 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11966
11967         * src/z80/mappings.i: fix _mul[us][int,long] entries
11968
11969 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11970
11971         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11972
11973 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11974
11975         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11976         * support/regression/tests/bitopcse.c: added
11977         fixed warning:
11978         * src/avr/gen.c:
11979         * src/pic/gen.c:
11980         * src/pic16/gen.c:
11981         * src/z80/gen.c:
11982         * src/xa51/gen.c:
11983
11984 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11985
11986         added support for new library format to z80, gbz80 linkers:
11987         *link/z80/aslink.h
11988         *link/z80/lklex.c
11989         *link/z80/lklib.c
11990         *link/z80/lklist.c
11991
11992 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11993
11994         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11995         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11996
11997 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11998
11999         added DUMMY_READ_VOLATILE:
12000         * src/SDCC.y:
12001         * src/avr/gen.c:
12002         * src/xa51/gen.c:
12003         * src/z80/gen.c:
12004         * src/pic/gen.c:
12005         * src/pic16/gen.c:
12006         * src/mcs51/gen.c:
12007         * src/ds390/gen.c:
12008         * src/SDCCcse.c (algebraicOpts): many improvements
12009         * src/SDCCcse.h: removed algebraicOpts()
12010         * src/SDCCicode.c (picDummyRead): added
12011
12012 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12013
12014         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12015         "Insufficient space in data memory".
12016
12017 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12018
12019         * src/mcs51/gen.c: fixed bug #771358
12020         * src/z80/gen.c: fixed bug #759087
12021
12022 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12023
12024         * src/pic16/glue.c: minor cleanup by Vangelis
12025
12026 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12027
12028         * device/include/regc515c.h: fixed #758477
12029         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12030         * device/lib/_gptrput.c: saved a few bytes
12031         * my tab spacing is 8, yours too?)
12032         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12033         * device/lib/serial.c: process RX bytes earlier than TX bytes
12034         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12035
12036 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12037
12038         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12039
12040 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12041
12042     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12043
12044 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12045
12046         * device/lib/Makefile.in: bad fix, reverted to 1.43
12047
12048 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12049
12050         * device/lib/Makefile.in: added missing z80 object files
12051
12052 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12053
12054         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12055         pic16 progress by Vangelis:
12056         * src/SDCCglobl.h:
12057         * src/SDCCmain.c:
12058         * src/pic/Makefile:
12059         * src/pic:
12060         * pic/Makefile:
12061         * pic16/device.c:
12062         * pic16/device.h:
12063         * pic16/gen.c:
12064         * pic16/gen.h:
12065         * pic16/genarith.c:
12066         * pic16/glue.c:
12067         * pic16/main.c:
12068         * pic16/pcode.c:
12069         * pic16/pcode.h:
12070         * pic16/pcodepeep.c:
12071         * pic16/peeph.def:
12072
12073 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12074
12075     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12076
12077 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12078
12079     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12080     added gbz80 build to MSVC project.
12081     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12082     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12083     from 8051 stuff and setup so it links using a .lnk file.
12084
12085 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12086
12087     * support/librarian/sdcclib.c: sdcc librarian.
12088     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12089     with sdcclib.
12090
12091 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12092
12093     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12094
12095 2003-07-02  Borut Razem <borut.razem AT siol.net>
12096
12097         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12098         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12099         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12100         src/xa51/main.c, src/z80/main.c:
12101         virtualization of glue() function: each port has it's own glue function,
12102         which is accessed by do_glue function pointer in PORT.general structure
12103
12104 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12105
12106         * DS800C400 fun, improved ROM interface and tinibios.
12107
12108 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12109
12110         * More support for DS80C400. Now includes beginning of interface to ROM.
12111
12112 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12113
12114         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12115
12116 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12117
12118         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12119
12120 2003-06-19  Borut Razem <borut.razem AT siol.net>
12121
12122         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12123
12124 2003-06-19  Borut Razem <borut.razem AT siol.net>
12125
12126         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12127         fixed Z80 port - crt0.o: cannot open.
12128
12129 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12130
12131         * support/Util/MySystem.c (merge_command): revert bad fix
12132
12133 2003-06-18  Borut Razem <borut.razem AT siol.net>
12134
12135         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12136
12137 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12138
12139         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12140         option --use-stdout sends errors to stdout instead of stderr.
12141
12142 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12143
12144         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12145
12146 2003-06-15  Borut Razem <borut.razem AT siol.net>
12147
12148         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12149         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12150         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12151         fixed width array of pointers replaced with sets;
12152         multiple include and lib paths ared transferred to preprocessor and linker
12153         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12154         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12155         fixed width array of pointers
12156         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12157         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12158         fixupPath(), getPathDifference()
12159         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12160         fixed width array of pointers
12161
12162 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12163
12164         * src/pic16/ralloc.c: fix warnings
12165         * src/pic16/pcode.c: fix warning
12166
12167 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12168
12169          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12170         know all the details, but essentially this set of changes enable
12171         the pic16 port to generate movff instructions and generate assembler
12172         directives,
12173         * src/SDCCmain.c:
12174         * src/pic16/gen.c:
12175         * src/pic16/glue.c:
12176         * src/pic16/pcode.c:
12177         * src/pic16/device.c:
12178         * src/pic16/main.c:
12179         * src/pic16/pcode.h:
12180         * src/pic16/pcoderegs.c:
12181         * src/pic16/ralloc.c:
12182         * src/pic16/ralloc.h:
12183
12184 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12185
12186         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12187         added option --vc, so sdcc errors and warnings are compatible with
12188         Microsoft Visual Studio.
12189
12190 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12191
12192         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12193           device/lib/libfloat.lib: added atof function.
12194
12195 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12196
12197         * doc/sdccman.lyx: updated to Lyx 1.3
12198         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12199         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12200         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12201
12202 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12203
12204         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12205
12206 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12207
12208         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12209           additions to the "related tools/documentation" section
12210
12211 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12212
12213         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12214
12215 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12216
12217         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12218         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12219
12220 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12221
12222         * doc/sdccman.lyx: fix double dash and other minor things
12223         * doc/Makefile: fix double dash
12224
12225 2003-05-28  Karl Bongers(patches from Martin Helmling)
12226         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12227           condition and ignore commands.
12228
12229 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12230
12231         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12232           is in parts still quite out of date, I did changes as far as I felt makes sense
12233           for a non-native english speaker.
12234           Please feel free to add to the manual or to correct my changes.
12235         * doc/Makefile: undid touching the date of intermediate tex files.
12236
12237 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12238
12239         * doc/sdccman.lyx: Manual has an index now
12240
12241 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12242
12243         Finalize muluint/mulsint and mululong/mulslong merging:
12244         * device/lib/_mulint.c
12245         * device/lib/_mullong.c
12246         * device/lib/gbz80/mul.s
12247         * device/lib/gbz80/stubs.s
12248         * device/lib/z80/mul.s
12249         * device/lib/z80/stubs.s
12250         * src/SDCCsymt.c (initCSupport)
12251
12252 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12253
12254         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12255         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12256           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12257           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12258           instead of /Zm500.
12259
12260 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12261
12262         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12263           the regression tests I'm not brave enough to enable 245.b, 245.c
12264         * doc/sdccman.lyx: added latex preamble for hyperref package.
12265           Using pdflatex this will give you a hyperlinked pdf file with
12266           bookmarks. (prepend '%' before /usepackage if this breaks something)
12267
12268 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12269
12270          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12271
12272 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12273
12274         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12275
12276 2003-05-21    <johan AT balder>
12277
12278         * src/SDCCglue.c (printIval): fixed bug #739934
12279
12280 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12281
12282         Applied patch from bug 737905 (renamed yylineo to mylineno):
12283         * src/altlex.c
12284         * src/SDCCast.c
12285         * src/SDCglobl.h
12286         * src/SDCC.lex
12287         * src/SDCCsymt.c
12288         * src/SDCCval.c
12289         * src/pic16/pcode.c: Cleaned warnings
12290         * src/pic16/pcodeflow.c: Cleaned warnings
12291         * src/pic16/pcoderegs.c: Cleaned warnings
12292
12293 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12294
12295         * src/pic16/pcode.c: Cleaned warnings
12296         * src/pic16/pcodepeep.c: Cleaned warnings
12297         * src/pic16/ralloc.c: Cleaned warnings
12298
12299 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12300
12301         * doc/sdccman.lyx: fixed bug 739745
12302         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12303
12304 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12305
12306         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12307         it can be defined with CFLAGS when running configure
12308         * src/SDCCmain.c: fixed compiling + linking with object files
12309
12310 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12311
12312         * configure.in: configure for pic16 port,
12313             added --disable-pic16-port
12314         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12315         * src/SDCCmain.c: linkOptions is changed to set *,
12316             added if/endif conditional macros to remove options help
12317             messages from optionsTable when a port is not configured, added
12318             support for the PIc16 port in the ports table, when executing
12319             the compiler with no port specified on command line, a default
12320             port is selected with the new macro DEFAULT_PORT which is
12321             defined in port.h, in setDefaultOptions() linkOptions is removed
12322             from initialization assignment, since now it is a set,
12323             parseCmdLine uses setParseWithComma for linkOptions, in
12324             linkEdit() linkOptions are accessed with new function indexSet()
12325             which returns the i'th item of a set variable. See SDCCset.c, in
12326             linkEdit() when calling buildCmdLine(), added linkOptions as
12327             last argument. Now users can pass arguments to gplink via the
12328             -Wl option, main() uses pic16glue() to glue up pic16 programs
12329         * src/SDCCpeeph.c: various changes to support pic16
12330         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12331             return the i'th item of the set
12332         * src/SDCCset.h: added function prototype for indexSet()
12333         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12334         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12335         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12336             added macro DEFAULT_PORT
12337         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12338         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12339             generated
12340         * src/pic16/glue.c: commented out some error producing lines
12341         * src/pic16/main.c: __config directives are commented out to stop
12342             gpasm complaining and test the linkage with gplink, _linkCmd and
12343             _asmCmd changed to be more gplink and gpasm friendly
12344         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12345             produced an error when parsed, peep rule 12 is added to utilize
12346             movff, but it is commented out since the pCode does not support
12347             yet a command with 2 address arguments
12348
12349 2003-05-18    <johan AT balder>
12350
12351         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12352         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12353 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12354
12355         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12356   Added feature to script commands from file.
12357
12358 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12359
12360         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12361         * src/SDCCutil.c: include ctype.h for win32
12362
12363 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12364
12365         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12366
12367 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12368
12369         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12370   Fixed so you can set breakpoints prior to run, run does not stop
12371   on entry now.  Add tbreak.  Other enhancements and fixes for use
12372   with ddd.
12373
12374 2003-05-12  Borut Razem <borut.razem AT siol.net>
12375
12376         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12377
12378 2003-05-11  Borut Razem <borut.razem AT siol.net>
12379
12380         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12381         the path of bin directory, so that PATH is the only env. variable, which has to be set
12382         in case of standard installation.
12383         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12384         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12385         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12386
12387 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12388
12389         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12390         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12391         temp files are in the port dir; clean the gen/test directory when
12392         generating new test.c
12393         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12394         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12395         * support/regression/tests/zeropad.c: added
12396
12397 2003-05-09    <johan AT balder>
12398
12399         * src/SDCCglue.c: fixed bug #597940
12400
12401 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12402
12403         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12404   cache sfr, optimize next,step, fix off by one sourceline,
12405   support ddd list function.
12406         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12407
12408 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12409
12410         * support/regression/HTMLgen.py: added compare_s2f()
12411         * support/regression/Makefile: redo 1.27
12412         * support/regression/generate-cases.py: redo 1.5
12413
12414 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12415
12416         * support/regression/tests/float.c: workaround 33 bit hex constant
12417         * support/regression/tests/simplefloat.c: fix division for host
12418
12419 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12420
12421         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12422         that tame's the PIC's over-aggressive optimizer.
12423
12424 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12425
12426          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12427          support for MSVC.
12428
12429 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12430
12431         Initial support for DS80C400. "Hello world" runs on TINIm400
12432         (with polled I/O).
12433
12434 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12435
12436          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12437          * Some notes on ddd usage added in debugger/README
12438          Martin Helmling adding more features and fixes for ddd GUI debugger.
12439          Code added for nexti, stepi, up, down, and other adjustments.
12440
12441 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12442
12443         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12444         * src/pic/peeph.def Added two rules to optimize carry manipulation
12445         * src/pic/* removed debug printfs
12446
12447 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12448
12449         * debugger/mcs51/cmd.c: added header newalloc.h
12450
12451 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12452
12453         * as/Makefile: new EXEEXT
12454         * as/z80/Makefile: remove trailing slash of BUILDIR
12455         * as/z80/clean.mk: new EXEEXT
12456         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12457         * support/cpp2/Makefile.in: new EXEEXT
12458         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12459
12460 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12461
12462         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12463         EXEEXT was introduced to fix all related problems with targets
12464         "clean", "install" and "uninstall"; a couple of further flaws
12465         especially with "clean" have been fixed too
12466         * as/mcs51/Makefile.in
12467         * as/mcs51/clean.mk
12468         * as/z80/Makefile
12469         * Makefile
12470         * clean.mk
12471         * debugger/mcs51/Makefile.in
12472         * debugger/mcs51/clean.mk
12473         * link/z80/Makefile
12474         * link/z80/Makefile.in
12475         * link/z80/clean.mk
12476         * link/Makefile
12477         * packihx/Makefile.in
12478         * packihx/clean.mk
12479         * sim/ucsim/Makefile
12480         * sim/ucsim/clean.mk
12481         * sim/ucsim/avr.src/Makefile.in
12482         * sim/ucsim/avr.src/clean.mk
12483         * sim/ucsim/s51.src/Makefile.in
12484         * sim/ucsim/s51.src/clean.mk
12485         * sim/ucsim/xa.src/Makefile.in
12486         * sim/ucsim/xa.src/clean.mk
12487         * sim/ucsim/z80.src/Makefile.in
12488         * sim/ucsim/z80.src/clean.mk
12489         * sim/ucsim/main_in.mk
12490         * sim/ucsim/packages_in.mk
12491         * sim/ucsim/gui.src/Makefile.in
12492         * sim/ucsim/gui.src/serio.src/Makefile.in
12493         * sim/ucsim/gui.src/serio.src/clean.mk
12494         * src/Makefile.in
12495         * src/clean.mk
12496         * support/cpp2/Makefile.in
12497         * support/cpp2/clean.mk
12498         * support/makebin/Makefile
12499         * support/makebin/clean.mk
12500         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12501         * doc/sdccman.lyx: --program-suffix no longer needed
12502
12503 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12504
12505          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12506          Martin Helmling added support for ddd GUI debugger.
12507          Code added to display assembly, set variables, and other commands
12508          to interface to ddd.
12509
12510 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12511
12512         * as/Makefile: fix target clean
12513         * as/clean.mk: fix target clean
12514         * as/z80/clean.mk: fix target clean
12515
12516 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12517
12518         * Makefile.common.in: added  AT EXEEXT AT
12519         * configure.in: removed all mingw32 stuff
12520         * configure: rebuilt from configure.in
12521         * doc/sdccman.lyx: updated section "installation"
12522         * support/scripts/sdcc_mingw32: adapted to configure
12523         * support/scripts/sdcc_cygwin_mingw32: added
12524
12525 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12526
12527         * src/pic Added object file support for the PIC port
12528         * src/pic Applied patch from Craig Franklin (this started the object file support)
12529         * src/regression Updated the PIC regression tests for object files
12530
12531 2003-04-20  Borut Razem <borut.razem AT siol.net>
12532
12533         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12534           lklex.c: In function `getfid':
12535           lklex.c:203: warning: array subscript has type `char'
12536         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12537           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12538         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12539           stack handling macros
12540
12541 2003-04-19  Borut Razem <borut.razem AT siol.net>
12542
12543         * "handling space characters in file path" task:
12544         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12545         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12546         * support/Util/MySystem.h: make it self-sufficient
12547         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12548           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12549           handling space characters in file path
12550         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12551           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12552         * support/Util/MySystem.c: handling space characters in executable's path
12553
12554 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12555
12556         * as/z80/Makefile: fix permanent rebuild of z80
12557         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12558         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12559
12560 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12561
12562         * src/SDCCopt.c: add special case optimization to replace modulo by
12563           a power of two with a bitwise AND.
12564
12565 2003-04-18    <johan AT balder>
12566
12567         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12568
12569 2003-04-17    <johan AT balder>
12570
12571         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12572         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12573
12574 2003-04-13  Borut Razem <borut.razem AT siol.net>
12575
12576         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12577         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12578           fixed mingw problem in adl_NORMALIZE_PATH
12579
12580 2003-04-12  Borut Razem <borut.razem AT siol.net>
12581
12582         * fixed "#pragma SAVE/RESTORE can not be nested":
12583         * src/SDCC.lex: reworked pragma handling functions
12584         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12585         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12586
12587 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12588
12589         * src/SDCCutil.c (pathEquivalent): defined but not used
12590         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12591         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12592         * configure: rebuilt from configure.in
12593         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12594         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12595         * device/include/Makefile.in: replace sdcc_datadir
12596         * device/lib/Makefile.in: replace sdcc_datadir
12597         * Makefile.common.in: add LDFLAGS from configure
12598         * packihx/Makefile.in: use LDFLAGS
12599         * src/Makefile.in: use LDFLAGS
12600         * support/cpp2/Makefile.in: add LDFLAGS from configure
12601         * support/makebin/Makefile: use LDFLAGS
12602         * .version: bumped version number to 2.3.5
12603
12604 2003-04-12  Borut Razem <borut.razem AT siol.net>
12605
12606         * completed "different paths" task:
12607         * src/SDCCmacro.c: fixed bug in handling quotes
12608         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12609         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12610
12611 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12612
12613         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12614
12615 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12616
12617         * ds390/gen.c ds390/peeph.def: fix bug 706781
12618
12619 2003-04-11  Borut Razem <borut.razem AT siol.net>
12620
12621         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12622
12623 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12624
12625         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12626         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12627          set - this bit used to not be set...).
12628         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12629           bad code in PIC Port
12630         * src/regression/and2.c added to test bug 609268
12631         * src/regression/Makefile added and2.c to regression test
12632
12633
12634 2003-04-08    <johan AT CP255758-A>
12635
12636         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12637         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12638         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12639
12640 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12641
12642         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12643         fix bug #487815
12644         * support/cpp2/Makefile.in: fix bug #487815
12645         * configure: rebuilt from configure.in
12646         * Makefile.common.in: docdir changed, new path suffixes
12647         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12648         * sdcc_vc_in.h: reflect changes from sdccconf.h
12649         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12650         * src/SDCCutil.h: remove BINDIR hack
12651         * doc/sdccman.lyx: update new path hierarchy
12652
12653 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12654
12655         * src/SDCCpeeph.c: added okToRemoveSLOC test
12656
12657 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12658
12659         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12660
12661 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12662
12663         * src/SDCCpeeph.c: added labelIsReturnOnly test
12664         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12665
12666 2003-04-05    <johan AT balder>
12667
12668         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12669         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12670         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12671         * src/SDCCast.c: fixed a warning
12672         * src/SDCCast.h: fixed a warning
12673         * src/SDCCicode.c (operandFromAst): fixed a warning
12674
12675 2003-04-04    <johan AT balder>
12676
12677         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12678         * src/SDCCast.c (decorateType): fixed bug #715076
12679         * src/SDCC.y: fixed bug #702907
12680
12681 2003-04-03    <johan AT balder>
12682
12683         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12684         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12685         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12686         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12687         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12688
12689 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12690
12691         * _decdptr.c: fix return values
12692         * _gptrget.c: fix return values
12693         * _gptrgetc.c: fix return values
12694         * _gptrput.c: fix return values
12695         * _mulint.c: fix return values
12696         * as/z80/Makefile: fix 'make -j' problem
12697
12698 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12699
12700         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12701         * configure.in: big cleanup, updated to autoconf 2.5x
12702         * configure: rebuilt from configure.in
12703         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12704         * sdcc_vc_in.h: reflect changes from sdccconf.h
12705         * doc/Makefile: fixed a flaw in "make install"
12706
12707 2003-04-02    <johan AT balder>
12708
12709         * src/ds390/gen.c (genCmp): no comments
12710         * src/mcs51/gen.c (genCmp): no comments
12711         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12712         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12713
12714 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12715
12716         * support/regression/generate-cases.py: place generated file in given sub directory
12717         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12718         * support/regression/Makefile: improvements for 'make -j';
12719         side effect: it's simpler and faster now
12720
12721 2003-03-31  Borut Razem <borut.razem AT siol.net>
12722
12723         * src/z80/main.c: link-{port} and as-{port} defined without path
12724         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12725
12726 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12727
12728         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12729
12730 2003-03-30  Borut Razem <borut.razem AT siol.net>
12731
12732         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12733           changed type of list parameter to set
12734         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12735         * src/port.h: changed type of do_assemble() parameter to set
12736         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12737           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12738           definition of "cppoutfilename" macro with NULL value in preProcess()
12739         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12740         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12741         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12742           replaced with set *binPathSet
12743         * shash_add() deallocates the item, if allready exsists, before adding the new one
12744         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12745
12746 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12747
12748         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12749           a nested for loop bug in the PIC port
12750         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12751           for loops
12752
12753 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12754
12755         * support/Util/dbuf.h: remove C++ stuff to make it portable
12756
12757 2003-03-28  Borut Razem <borut.razem AT siol.net>
12758
12759         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12760           literal strings in stringLiteral()
12761         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12762         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12763           to the project
12764
12765 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12766
12767         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12768
12769 2003-03-26    <johan AT balder>
12770
12771         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12772         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12773         * src/SDCCast.c (decorateType): fixed " -v < 3"
12774
12775 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12776
12777         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12778         Added Lenny Story's debug infrastructure changes:
12779         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12780         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12781         * src/cdbFile.c: added
12782         * src/SDCCdebug.c: added
12783         * src/SDCCdebug.h: added
12784         * src/SDCCast.c (createFunction)
12785         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12786         * src/SDCCmain.c (parseCmdLine, main)
12787         * src/SDCCmem.c (redoStackOffsets)
12788         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12789         * src/SDCCsymt.h
12790         * src/common.h
12791         * src/avr/gen.c (genAVRCode)
12792         * src/ds390/gen.c (gen390Code)
12793         * src/mcs51/gen.c (gen51Code)
12794         * src/pic/gen.c (genpic14Code)
12795         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12796         * src/xa51/gen.c (genXA51Code)
12797         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12798
12799 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12800
12801         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12802         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12803
12804 2003-03-22    <johan AT balder>
12805
12806         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12807
12808 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12809
12810         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12811         * doc/cdbfileformat.lyx: added, written by Lenny Story
12812         * doc/Makefile: added cdbfileformat.lyx
12813         * doc/clean.mk: added cdbfileformat.lyx
12814
12815 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12816
12817         * src/mcs51/peeph.def: fix bug #705773
12818
12819 2003-03-20    <johan AT balder>
12820
12821         An sfr/sbit can have an "at #" AND an initializer
12822         * src/SDCCsymt.c (checkSClass):
12823         * src/SDCCmem.c (allocGlobal):
12824         * src/SDCCmem.c (allocLocal):
12825         * src/SDCCast.c (createBlock):
12826
12827 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12828
12829         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12830
12831 2003-03-16    <johan AT balder>
12832
12833         Undid the hackup of const and volatile, the problem is much bigger
12834         * src/SDCC.y:1.65
12835         * src/SDCCast.c:1.171
12836         * src/SDCCglue.c:1.138
12837         * src/SDCCicode.c:1.146
12838         * src/SDCCsymt.c:1.150
12839         * src/SDCCval.c:1.65
12840
12841 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12842
12843         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12844         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12845
12846 2003-03-13    <johan AT balder>
12847
12848         Hackup const and volatile modifiers in type chains a bit:
12849         * src/SDCC.y:1.63
12850         * src/SDCCast.c:1.169
12851         * src/SDCCglue.c:1.136
12852         * src/SDCCicode.c:1.143
12853         * src/SDCCsymt.c1.146
12854         * src/SDCCsymt.h1.59
12855         * src/SDCCval.c:1.63
12856
12857 2003-03-12    <johan AT balder>
12858
12859         * src/SDCCBBlock.h: more LRH debugging junk
12860         * src/SDCCcflow.h: more LRH debugging junk
12861         * src/SDCCloop.c: more LRH debugging junk
12862         * src/SDCC.y (struct_declaration): fixed bug #697590
12863         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12864         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12865         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12866
12867 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12868         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12869         test function names must now match exactly).
12870         * src/SDCCcse.c: added special case in findCheaperOp to allow
12871         extending a short integer. Makes less awful code for bug 700121 test case.
12872
12873 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12874
12875         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12876         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12877
12878 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12879
12880         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12881         actually called (operandsNotEqual() was called for all
12882         operandsNotEqualX tests).
12883
12884 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12885
12886         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12887         with shorter literals. Fixes bug 700121.
12888
12889 2003-03-11    <johan AT balder>
12890
12891         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12892
12893 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12894
12895         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12896         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12897
12898 2003-03-10  Borut Razem <borut.razem AT siol.net>
12899
12900         * src/SDCCmain.c: pipe preprocessor's output
12901         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12902         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12903         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12904         which closes all pipes in pipeSet set
12905         * src/SDCCset.c: free deleted item in function deleteSetItem()
12906         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12907         moved from z80 to src subproject
12908         * .version: increased version number to 2.3.4
12909
12910 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12911
12912         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12913         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12914         * support/regression/ports/xa51/spec.mk: fix typo
12915
12916 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12917
12918         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12919
12920 2003-03-09  Borut Razem <borut.razem AT siol.net>
12921
12922         * src/SDCCmain.c: pipe preprocessor's output
12923         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12924         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12925         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12926         which closes all pipes in pipeSet set
12927         * src/SDCCset.c: free deleted item in function deleteSetItem()
12928         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12929         moved from z80 to src subproject
12930
12931 2003-03-09  Borut Razem <borut.razem AT siol.net>
12932
12933         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12934         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12935         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12936         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12937         * src/SDCCglobl.h: unification of WIN32 native definitions
12938
12939 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12940
12941         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12942
12943 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12944
12945         * src/configure.in:   check for endianess (even while cross-compiling)
12946         * src/configure:      check for endianess (even while cross-compiling)
12947         * src/configure_in.h: check for endianess (even while cross-compiling)
12948         * src/avr/gen.c:        remove old endianess stuff
12949         * src/mcs51/gen.c:      remove old endianess stuff
12950         * src/ds390/gen.c:      remove old endianess stuff
12951         * src/pic/gen.c:        remove old endianess stuff
12952         * src/pic/genarith.c:   remove old endianess stuff
12953         * src/pic/glue.c:       fix endianess check
12954         * src/pic16/gen.c:      remove old endianess stuff
12955         * src/pic16/genarith.c: remove old endianess stuff
12956         * src/pic16/glue.c:     fix endianess check
12957         * src/xa51/gen.c:       remove old endianess stuff
12958         * src/z80/gen.c:        fix endianess check
12959         * src/SDCCglue.c:       fix endianess check
12960         * src/ds390/peeph.def: fix bug 700036
12961
12962 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12963
12964         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12965         * src/configure: find appropriate data-types on host for SDCC's int and long
12966         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12967         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12968         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12969
12970 2003-03-07    <johan AT balder>
12971
12972         Just a big NOOP:
12973                 some minor cleanups before the big shot
12974                 OP_DEFS and OP_USES now use Kevin's protection
12975                 new option --nolabelopt
12976
12977         * src/SDCCBBlock.c:
12978         * src/SDCCast.c,:
12979         * src/SDCCcflow.c:
12980         * src/SDCCcse.c:
12981         * src/SDCCicode.c:
12982         * src/SDCCicode.h:
12983         * src/SDCClabel.c:
12984         * src/SDCCloop.c:
12985         * src/SDCCmain.c:
12986         * src/ds390/ralloc.c:
12987         * src/mcs51/ralloc.c:
12988         * src/pic/ralloc.c:
12989         * src/xa51/ralloc.c:
12990         * src/z80/ralloc.c:
12991
12992 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12993
12994         * src/pic/pcode.c (get_op): fix 64 bit warnings
12995         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12996         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12997         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12998         * support/regression/tests/malloc.c: fix 64 bit warnings
12999
13000 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
13001
13002         * src/mcs51/gen.c (genMinus): fixed bug 696436
13003
13004 2003-03-02  Borut Razem <borut.razem AT siol.net>
13005
13006         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13007
13008 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13009
13010         * configure.in: test for mkstemp
13011         * sdccconf_in.h: add HAVE_MKSTEMP
13012
13013 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13014
13015         * device/include/ctype.h: removed warning while using --stack-auto
13016         * device/include/malloc.h: removed warning while using --stack-auto
13017         * device/include/string.h: removed warning while using --stack-auto
13018
13019 2003-02-23  Borut Razem <borut.razem AT siol.net>
13020
13021         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13022         because NDEBUG is defined (see man assert)
13023         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13024
13025 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13026
13027         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13028         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13029
13030 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13031
13032         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13033         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13034
13035 2003-02-18    <johan AT balder>
13036
13037         * as/mcs51/asmain.c (asmbl): module can start with a digit
13038         * as/z80/asmain.c (asmbl): module can start with a digit
13039
13040 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13041
13042         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13043         * src/asm.c: fix pipe() for Mingw32
13044
13045 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13046
13047         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13048         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13049         make -V work again; --c1mode reads now from stdin
13050         * doc/sdccman.lyx: added --c1mode
13051         * support/Util/SDCCerr.c: new messages for c1 mode
13052         * support/Util/SDCCerr.h: new messages for c1 mode
13053         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13054
13055 2003-02-15    <johan AT balder>
13056
13057         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13058
13059 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13060
13061         * doc/sdccman.lyx: Environment variables, -o and other minor things
13062
13063 2003-02-14    <johan AT balder>
13064
13065         * src/xa51/main.c: before anyone really tries to use it :)
13066
13067         * Install doc's in share/sdcc/doc
13068         * removed some obsolete files
13069         * Do a proper make distclean and uninstall
13070         M Makefile.common.in
13071         R sdccbuild.sh
13072         M as/Makefile
13073         M device/include/Makefile.in
13074         M device/lib/Makefile.in
13075         M doc/sdccman.lyx
13076         M link/Makefile
13077         M sim/ucsim/doc/Makefile.in
13078         M src/clean.mk
13079         R src/avr/peeph.rul
13080         R src/xa51/peeph.rul
13081         M support/cpp2/Makefile.in
13082         M support/makebin/Makefile
13083
13084
13085 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13086
13087         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13088
13089 2003-02-10  Borut Razem <borut.razem AT siol.net>
13090
13091         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13092         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13093         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13094         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13095         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13096         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13097         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13098         src/z80/Makefile.bcc: Borland Makefile cleanup
13099         * as/z80/Makefile.bcc: Added Borland Makefile
13100         * support/cpp2/borland.h: Removed
13101
13102 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13103
13104         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13105         * src/SDCC.lex: new pragma NOIV
13106         * src/SDCCglobl.h: new pragma NOIV
13107         * src/SDCCmem.c: new pragma NOIV
13108
13109 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13110
13111         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13112
13113 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13114
13115         * src/SDCCmain.c: signal handling is switched off by --debug
13116         * doc/Makefile: small fix for install; use clean.mk again
13117         * doc/clean.mk: clean *.pdf and *.html too
13118
13119 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13120
13121         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13122         * device/lib/printfl.c: fix a ds390 bug by making it portable
13123         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13124         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13125         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13126         * debugger/mcs51/cmd.c: converted multi-line string literals
13127         * sim/ucsim/globals.cc: converted multi-line string literals
13128         * src/SDCCmain.c: introduced signal handler to remove temp files
13129         * doc/Makefile: small tweaks, implement clean
13130         * doc: removed generated files
13131
13132 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13133
13134         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13135         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13136         Address Record is not correctly generated for DS390."
13137
13138 2003-02-02  Borut Razem <borut.razem AT siol.net>
13139
13140         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13141         * as/mcs51/asm.h: fixed compilation with Borland C
13142         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13143         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13144         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13145         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13146         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13147         src/z80/Makefile.bcc: delete $(LIB) only if exist
13148         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13149
13150 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13151
13152         * device/include/malloc.h: introduced NULL
13153         * device/include/string.h: introduced NULL
13154         * device/include/stdlib.h: introduced NULL
13155         * device/lib/_memcpy.c: removed NULL
13156         * device/lib/_strcat.c: removed NULL
13157         * device/lib/_strchr.c: removed NULL
13158         * device/lib/_strcmp.c: removed NULL
13159         * device/lib/_strcpy.c: removed NULL
13160         * device/lib/_strcspn.c: removed NULL
13161         * device/lib/_strlen.c: removed NULL
13162         * device/lib/_strncat.c: removed NULL
13163         * device/lib/_strncmp.c: removed NULL
13164         * device/lib/_strncpy.c: removed NULL
13165         * device/lib/_strpbrk.c: removed NULL
13166         * device/lib/_strrchr.c: removed NULL
13167         * device/lib/_strspn.c: removed NULL
13168         * device/lib/_strstr.c: removed NULL
13169         * device/lib/_strtok.c: removed NULL
13170         * device/lib/malloc.c: removed NULL, include own header
13171
13172 2003-02-02    <johan AT balder>
13173
13174         * 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
13175         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13176         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13177         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13178         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13179         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13180
13181 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13182
13183         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13184         area 'DATA'"
13185
13186 2003-02-01    <johan AT balder>
13187
13188         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13189
13190 2003-01-31    <johan AT CP255758-A>
13191
13192         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13193
13194 2003-01-30    <johan AT balder>
13195
13196         * src/SDCCBBlock.c: automatic bug detection
13197         * src/SDCCicode.c: automatic bug detection
13198
13199 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13200
13201         * src/SDCCglobl.h:   now --xram-size 0 works
13202         * src/SDCCmain.c:    now --xram-size 0 works
13203
13204 2003-01-29    <johan AT balder>
13205
13206         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13207
13208 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13209
13210         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13211         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13212         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13213         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13214         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13215         * src/SDCCmain.c:    Added options --xram-size and --code-size
13216
13217 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13218
13219         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13220         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13221
13222 2003-01-27    <johan AT balder>
13223
13224         * src/SDCC.y: fixed bug #613764
13225
13226 2003-01-26    <johan AT balder>
13227
13228         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13229         * src/SDCCsymt.h: fixed bug #673374
13230         * src/SDCCglue.c: fixed bug #661910
13231         * src/SDCCast.c: fixed bug #458099 and 673374
13232
13233 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13234
13235         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13236         * as/mcs51/strcmpi.h: added
13237         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13238         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13239         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13240         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13241         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13242         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13243         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13244         * as/mcs51/Makefile.aslink: new module strcmpi
13245         * as/mcs51/Makefile.asx8051: new module strcmpi
13246         * as/mcs51/Makefil.bcc: new module strcmpi
13247         * as/mcs51/Makefile.in: new module strcmpi
13248         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13249
13250 2003-01-26    <johan AT balder>
13251
13252         * src/SDCCglue.c: reverted back to 1.124
13253         * src/SDCCast.c: reverted back to 1.156
13254         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13255
13256 2003-01-25    <johan AT balder>
13257
13258         * src/SDCCglue.c: A better fix for bug #661910
13259         * src/SDCCast.c: A better fix for bug #661910
13260         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13261
13262 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13263
13264         * src/Makefile.in: remove spawn.o
13265         * src/SDCCmain.c: remove spawn.h
13266         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13267         * src/spawn.c: removed
13268         * src/spawn.h: removed
13269         * support/regression/ports/ds390/spec.mk: link with -r
13270
13271 2003-01-24    <johan AT CP255758-A>
13272
13273         * src/ds390/gen.c (aopOp): fixed bug #667458
13274         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13275         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13276         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13277
13278 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13279
13280         * src/mcs51/peeph.def: better assembler identation by Frieder
13281         * src/mcs51/gen.c: better assembler identation by Frieder
13282
13283 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13284
13285         * as/z80/string.h: removed for gcc 3.2
13286         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13287         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13288
13289 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13290
13291         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13292         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13293         * support/regression/Makefile: separate temp files for ports
13294         * support/regression/generate-cases.py: separate temp files for ports
13295         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13296         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13297
13298 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13299
13300         * moved tinitalk to device/examples/ds390
13301
13302 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13303
13304         * as/mcs51/lkmem.c: rflag is for DS390
13305         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13306         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13307                          (linkEdit): move mem- and map-files the same way as ihx-files
13308         * src/z80/main.c (_setDefaultOptions): removed --generic
13309         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13310         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13311         * src/pic/glue.c (picglue): --c1mode works again
13312         * src/pic16/glue.c (pic16glue): --c1mode works again
13313         * src/asm.c (printCLine): fix #660034
13314
13315 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13316
13317         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13318         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13319         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13320         * as/mcs51/lkmem (summary): better fix for sp problem
13321         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13322         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13323         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13324                                               remove --stack-after-data
13325
13326 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13327
13328         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13329         * src/SDCCutil.c (join): ugly bug: missing '\0'
13330         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13331
13332 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13333
13334         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13335         * src/port.h: typo
13336         * src/pic/main.c (_asmCmd): gpasm supports -o
13337         * src/z80/main.c: more general macros
13338         * device/lib/Makefile.in: remove intermediate files
13339
13340 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13341
13342         * .version: Bumped version number to 2.3.3
13343         * src/SDCCBBlock.c: new option -o
13344         * src/SDCCglobl.h: new option -o
13345         * src/SDCCglue.c: new option -o
13346         * src/SDCCmain.c: new option -o
13347         * src/asm.c: new option -o
13348         * src/ds390/main.c: new option -o
13349         * src/pic/glue.c: new option -o
13350         * src/pic/pcode.c: new option -o
13351         * src/pic/ralloc.c: new option -o
13352         * src/pic16/glue.c: new option -o
13353         * src/pic16/pcode.c: new option -o
13354         * src/pic16/ralloc.c: new option -o
13355         * src/z80/main.c: new option -o
13356         * device/lib/Makefile.in: use -o
13357         * support/regression/ports/ds390/spec.mk: use -o
13358         * support/regression/ports/gbz80/spec.mk: use -o
13359         * support/regression/ports/mcs51/spec.mk: use -o
13360         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13361         * support/regression/ports/z80/spec.mk: use -o
13362         * support/regression/ports/ucz80/spec.mk: use -o
13363         * support/regression/ports/xa51/spec.mk: use -o
13364         * support/regression/fwk/lib/timeout.c: fix usage string
13365
13366 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13367         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13368
13369 2003-01-07    <johan AT balder>
13370
13371         * src/SDCCast.c (decorateType): fixed bug #600035
13372
13373 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13374         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13375         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13376         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13377         * src/pic/pcode.c: outcommented unused variable to remove warnings
13378         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13379
13380 2003-01-06    <karl AT turbobit.com>
13381         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13382    regression tests.
13383
13384 2003-01-06    <johan AT balder>
13385
13386         * src/SDCCicode.c: fixed array add
13387
13388 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13389         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13390         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13391
13392 2003-01-04    <johan AT balder>
13393
13394         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13395
13396 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13397         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13398
13399 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13400         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13401         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13402
13403 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13404         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13405
13406 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13407         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13408
13409 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13410         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13411
13412 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13413
13414     * in /sdcc/as/mcs51/ changed these files in order to create an
13415     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13416     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13417     following files to include the previous two files: aslink.dsp,
13418     Makefile.aslink, Makefile.bcc, and Makefile.in.
13419
13420     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13421     .adb instead of .cdb
13422
13423 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13424
13425         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13426         value from option --iram-size.
13427
13428 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13429
13430         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13431         dram[] array.
13432
13433 2002-09-18    <wiml AT hhhh.org>
13434
13435         * SDCClrange.h: exposed setFromRange() and setToRange()
13436         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13437           packRegsForAccUse() (bug 542397)
13438         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13439           multiple times and emitting the fetch operations more than once
13440           added aopGetUsesAcc() function to allow binary operators to
13441           fetch their operands in the correct order; made genMinus() emit
13442           compact code for X = LITERAL - Y
13443
13444 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13445         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13446         sprintf() in line 1267.
13447
13448 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13449         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13450         like ports.
13451
13452 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13453         Changes to aslink (All the changes are marked with 'JCF'):
13454
13455         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13456         summary().
13457
13458         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13459         area BSEG.  Also moves, if possible, the DATA area down into the internal
13460         ram so more space is available.
13461
13462         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13463         sflag.
13464
13465         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13466         not bytes.  Function summary() which creates a memory usage summary
13467         file with extension .mem.  Reports of overlaping stack and small stack
13468         size.  If the space for the stack is less than 16 bytes aslink trows a
13469         warning.
13470
13471         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13472         the 8051.  Option 'y' for memory summary output file.
13473
13474         Changes to sdcc (All the changes are marked with 'JCF'):
13475
13476         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13477
13478         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13479         overlaying area for it (uses RegBankUsed[4]).
13480
13481         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13482         bank zero as used by default.  By default aslink locates the stack
13483         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13484         the creation of the .mem file.  Delegates the allocation of data area
13485         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13486         the begining of the stack area to aslink.
13487
13488         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13489         glue() in SDCCglue.c creates an area for it.
13490
13491 2002-09-03  Borut Razem <borut.razem AT siol.net>
13492         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13493         sdcc/src/pic/glue.c:
13494         introduced atexit() handler for teporay files removal in case of
13495         errors, assertions, ...
13496
13497 2002-08-29  Borut Razem <borut.razem AT siol.net>
13498         * sdcc/support/cpp2/auto-host_vc_in.h:
13499         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13500         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13501         Maybe there is a similar problem with BORLANDC? It should be checked!
13502
13503         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13504         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13505         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13506         was not executed, and the compiler (cl) launched a warning:
13507         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13508
13509 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13510         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13511
13512 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13513         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13514
13515         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13516           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13517           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13518           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13519           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13520           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13521           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13522         - added Release configuration in VS projects
13523         - review of compiler an linker options
13524         - VC .exe files are generated in bin_vc directory, not to interfere
13525           with binaries generated from other projects (cygwin, mingw, bcc ...)
13526
13527         * sdcc/src/yacc.dsp: added
13528
13529         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13530         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13531         and insert the version number definitions from .version
13532
13533         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13534
13535         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13536         added - genarate auto-host.h using auto-host_vc_in.h as template
13537
13538         * sdcc/sdcc_vc.h,
13539         removed from CVS, generated automatically
13540
13541 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13542         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13543
13544 2002-08-11  Borut Razem <borut.razem AT siol.net>
13545         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13546
13547 2002-08-10  Borut Razem <borut.razem AT siol.net>
13548         * src/SDCCmain.c (main):
13549         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13550         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13551         The consequence was that some temporary files were not removed.
13552
13553         * src/SDCCglue.c:
13554         unification of code in functions tempfilename() and tempfile():
13555         function tempnam() is defined in Visual Studio 6.0 and .NET
13556
13557         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13558
13559         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13560           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13561         - removed compiler command line option /WX: Treats all warnings as errors
13562         - update a list of source files, included into the project
13563
13564         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13565           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13566         changed project type to Generic Project so that can be correcly converted to VS.NET project
13567
13568         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13569
13570         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13571
13572         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13573
13574         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13575         added return 0 statements after assert() to make compiler happy
13576
13577         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13578         added newline in the def file to keep MSC compiler satisfied
13579
13580         * sdcc/src/z80/gen.c:
13581         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13582           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13583         - solved MSC error in function aopDump()
13584
13585         * sdcc_vc.h: define PREFIX as "\\sdcc"
13586
13587 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13588         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13589
13590 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13591         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13592         - Rewrote the register banking algorithm.
13593         - Added pCode live-range analysis to registers (for now, only non-used and
13594         singly-used registers optimized away)
13595
13596         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13597
13598         * 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.
13599
13600 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13601         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13602
13603 2002-04-22  Michael Hope  <michaelh AT vroom>
13604
13605         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13606
13607         * configure.in (DD_COPT): Added include support required for gbdk.
13608
13609         * .version: Bumped version number just to increase it.
13610
13611         * src/SDCCmain.c: Added -nostdinc to the default options.
13612
13613 2002-04-15  Michael Hope  <michaelh AT vroom>
13614
13615         * device/lib/z80/printf.c (sprintf): Added.
13616
13617         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13618
13619         * src/z80/peeph.def: Added transpose redundent load rule.
13620
13621         * src/z80/main.c: Added force callee saves for jaune.
13622
13623         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13624
13625         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13626
13627 2002-03-28  Johan Knol  <johan AT balder>
13628
13629         * src/SDCCval.c: fixed bug #532436
13630
13631 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13632         * /src/port.h:
13633         Added "char *Processor" field to the port structure.
13634
13635         * /src/SDCCmain.c:
13636         Added -p option. Allows port dependent processor to be specified.
13637
13638         * all ports:
13639         Initialized the new field char *Processor field to NULL in all ports
13640
13641         * /src/pic/*:
13642         Compiler generated registers for interrupt context saving
13643         were not getting allocated.
13644
13645 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13646
13647         * /src/SDCCast.c:
13648         Fixed left shift. Will promote the left side of a left shift
13649         if a) left shifting more than size of operand or b) when assigned
13650         to something size > size of left side
13651
13652 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13653         * src/pic/*
13654         tons of changes. Register allocation has been
13655         rewritten. Added customization for the various PICs. Flow
13656         analysis is restructured. ...
13657
13658         * src/pic/device.h:
13659         Added
13660
13661         * src/pic/device.c:
13662         Added. device.c is a PIC port hack to accomodate variations
13663         in PIC devices.
13664
13665 2002-03-13  Michael Hope  <michaelh AT vroom>
13666
13667         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13668
13669 2002-03-04  johanknol  <johanknol AT manik>
13670
13671         * /src/SDCCval.c: fixed
13672
13673         const unsigned char arr[][2] = { { 0, 1 } };
13674         t18.c:1: error: Initializer element is not constant
13675
13676 2002-03-04  bela  <bela AT manik>
13677
13678         * /device/include/mcs51reg.h:
13679         ds89c420 register definition update
13680
13681 2002-03-03    <johan AT FRIJA>
13682
13683         * support/Util/SDCCerr.c: did something, but don't no why anymore
13684
13685         * support/regression/tests/bug-524691.c: made it a little less shy
13686
13687         * src/SDCCast.c (decorateType): fixed bug #524697
13688
13689         * src/SDCCast.c: made some lineno improvements
13690
13691         * src/SDCCval.c (getNelements): changed warning to error
13692
13693         * src/SDCCglue.c (printIvalArray): changed warning to error
13694
13695         * src/SDCCicode.c: fixed a warning for mingw
13696
13697         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13698
13699         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13700
13701 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13702
13703         * src/ds390/peeph.def:
13704         Added some more peephole rules
13705
13706         * src/ds390/gen.c: Various fixes & enhancements
13707
13708         * src/SDCClrange.c, src/SDCClrange.h:
13709         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13710
13711         * src/ds390/ralloc.c:
13712         various fixes & enhancements (ds390) specific
13713
13714         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13715         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13716         from rallocs.
13717
13718         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13719
13720 2002-03-02    <johan AT FRIJA>
13721
13722         * src/SDCCast.c (decorateType): fixed bug #524708
13723
13724         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13725
13726         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13727
13728 2002-03-01  Michael Hope  <michaelh AT vroom>
13729
13730         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13731
13732         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13733
13734 2002-03-01    <johan AT FRIJA>
13735
13736         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13737
13738         * src/SDCCast.c (decorateType): fixed bug #524209
13739
13740         * src/SDCCval.c (valNot): fixed bug #524195
13741
13742 2002-02-26    <johan AT balder>
13743
13744         * src/xa51/gen.c: fixed a warning
13745
13746         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13747
13748         * src/SDCCast.c (decorateType): fixed bug #522534
13749
13750 2002-02-23    <johan AT balder>
13751
13752         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13753
13754 2002-02-22    <johan AT balder>
13755
13756         * src/SDCCast.c: fixed bug #514865
13757
13758         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13759
13760 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13761
13762         * sdcc/src/SDCCloop.c:
13763         Previous fix was not good. basic blocks that have "break" or "return" are
13764         not really partof a loop , but live ranges used in these blocks should
13765         be live thru the entire loop, so set partOfLoop but don't add them to
13766         loop region
13767
13768 2002-02-21    <johan AT FRIJA>
13769
13770         * src/SDCCcse.c: fixed bug #514308
13771
13772 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13773
13774         * src/SDCCloop.c:
13775         Fixed BUG #519583. If a conditional block ended in a return/break
13776         statement inside a loop, it was not being considered part of the loop.
13777
13778         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13779
13780 2002-02-10  Karl Bongers <karl AT turbobit.com>
13781
13782         * debugger/*:
13783         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13784         with lots of comments and notes.
13785
13786         * device/examples/test2.c:
13787         Fix bug, "red" variable not being initialized(compiler complained).
13788
13789         * device/examples/Makefile, examples/test3.c:
13790         Add Makefile in device/examples folder, compiles test3.c
13791         for use as a multiple module SDCDB test case.
13792
13793         * sim/ucsim/cmd.src/cmdset.cc:
13794         Took out debug printfs in ucsim "next" command.
13795
13796         * sim/ucsim/xa.src:
13797         Karl and Johan start ucsim XA support.  Most dissassembly working,
13798         about 75% emulation done(plenty of work remaining).
13799
13800         * sim/ucsim/z80.src:
13801         Add Z80 support to ucsim, add test-ucz80 regression test,
13802         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13803         Notice z80 compiler fails on examples/test3.c/crc code.
13804
13805 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13806
13807         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13808         Added support for --parms-in-bank1
13809
13810         * src/ds390/peeph.def:
13811         added a few more peephole optimzations
13812
13813         * src/ds390/main.c:
13814         1) added __builtin_inp & __builtin_outp used to read in data of given length
13815            from a memory mapped port
13816         2) added __builtin_memcmp
13817         3) added __builtin_swapw swap bytes of a short
13818
13819         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13820         1) handle multiple send & receives from register bank1
13821         2) ralloc can now allocate DPTR1 to some liveRanges
13822
13823         * src/SDCCsymt.c, src/SDCCsymt.h:
13824         changes to handle multiple sends & receives
13825
13826         * src/SDCCptropt.h:
13827         added some pointer arithmetic optimization
13828
13829         * src/SDCCptropt.c:
13830         added some pointer arithmetic optimizations but not stable yet so not
13831         called from anywhere (will get this working shortly)
13832
13833         * src/SDCCopt.c: fixed for multiple sends & receives
13834
13835         * src/SDCCmain.c:
13836         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13837         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13838            set preprocessor defines (depending on options)
13839
13840         * src/SDCCicode.c, src/SDCCicode.h:
13841         changes made to handle multiple sends & receives
13842
13843         * src/SDCCglobl.h:
13844         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13845
13846         * src/SDCCcse.c, src/SDCCcse.h:
13847         added function findbackward def (to be used in upcoming optimization)
13848
13849         * src/SDCCcflow.c, src/SDCCcflow.h:
13850         added function returnAtEnd - to determine if a basic block terminates with
13851         a RETURN iCode
13852
13853         * src/SDCCast.c, src/SDCCast.h:
13854         added option parms-in-bank1
13855
13856         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13857         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13858         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13859         adjusted for --parms-in-bank1 option
13860
13861         * device/include/string.h:
13862         donot redefine "reentrant" keyword
13863
13864         * device/include/ds80c390.h: Added some more SFRs
13865
13866 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13867
13868         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13869
13870 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13871
13872         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13873
13874 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13875
13876         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13877
13878 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13879
13880         * Added --xram-movc option
13881
13882 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13883
13884         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13885
13886 2002-01-11  Johan Knol
13887
13888         * Added math lib of Jesus Calvino-Fraga
13889
13890 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13891
13892         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13893         * support/regression/Makefile: new target test-mcs51-stack-auto
13894         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13895
13896 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13897
13898         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13899
13900 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13901
13902         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13903
13904 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13905
13906         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13907
13908         * src/SDCCglue.h: add definition for printIvalChar()
13909
13910 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13911
13912         * src/SDCCast.c: fix #498138 by Johan
13913
13914         * src/SDCCglue.c: fix #498138 by Johan
13915
13916 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13917
13918         * support/regression/Makefile: fix clean
13919
13920         * support/regression/ports/ds390/support.c: fix transmission of last character
13921
13922 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13923
13924         * /sdcc/src/ds390/gen.c:
13925         a) improved computing address of stack variable
13926         b) took out some #if 0 code
13927         c) improved parmBytes adjustment
13928         d) improved genPlusIncr & genMinusIncr
13929         e) genCmp could generate bad code (when left assigned to DPTR)
13930         f) Fixed bug in hasInc
13931
13932         * /sdcc/src/ds390/ralloc.c:
13933         a) packRegsForSupport could mess up live information (Fixed)
13934         b) packRegsDPTRuse could be incorrect for left & right shift
13935
13936         * /sdcc/src/mcs51/ralloc.c:
13937         packRegsForSupport could mess up the live information (Fixed)
13938
13939         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13940
13941         * /sdcc/src/SDCCast.c:
13942         can reverse a loop even if function call is present as long
13943         as the loop control variable is local & is not passed as parameter
13944
13945 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13946
13947         * /sdcc/ChangeLog: *** empty log message ***
13948
13949         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13950         More builtin function additions for TININative
13951
13952         * /sdcc/src/ds390/ralloc.c:
13953         Had broken the regression testsuite
13954
13955         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13956
13957         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13958         Added funcattr hasStackParms will be set for reentrant functions when there
13959         are paramteres on the stack, this helps in minimizing frame pointer generation
13960         typeFromStr can handle function pointers now
13961
13962         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13963         *** empty log message ***
13964
13965 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13966
13967         * /src/ds390/gen.c, /src/ds390/main.c:
13968         More builtin function additions for TININative
13969
13970         * /src/ds390/ralloc.c:
13971         Had broken the regression testsuite
13972
13973         * /src/SDCCast.c: Fixed a bug in dumptree
13974
13975         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13976         Added funcattr hasStackParms will be set for reentrant functions when there
13977         are paramteres on the stack, this helps in minimizing frame pointer generation
13978         typeFromStr can handle function pointers now
13979
13980         * /doc/builtins.txt, /doc/TININative.txt:
13981         *** empty log message ***
13982
13983
13984 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13985
13986         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13987         ALPHA version for -mTININative
13988
13989         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13990         updated to reflect changes in the port structure
13991
13992         * /src/port.h:
13993         added function do_assemble (similar to do_link) if non-null this function
13994         will be called to do assembly (-mTININative) requires a multi command
13995         assembly
13996         added function genAssemblerEnd will be called to generate assembler Epilogue
13997
13998         * /src/SDCCsymt.c:
13999         added _JavaNative to debug info printing
14000
14001         * /src/SDCCmain.c: added option --tini-libid
14002         added port->do_assemble function (-mTININative) has a multi command assemble
14003
14004         * /src/SDCCglue.c: Disabled "constExpr" check
14005         added port->genAssemblerEnd function
14006
14007         * /src/SDCCglobl.h: Added option --tini-libid value
14008
14009         * /src/SDCCast.h:
14010         tookout optimizeCompare from the header (has no external references)
14011
14012         * /src/SDCCast.c: made one more function "static"
14013
14014 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14015
14016         * src/z80/mappings.i: Added z80asm support.
14017
14018         * src/z80/main.c: Added z80asm support on --asm=z80asm
14019
14020         * src/z80/gen.c: Fixed asm portability issues.
14021
14022         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14023
14024         * src/SDCCglue.c (printExterns): Added global/extern split.
14025
14026 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14027
14028         * support/regression/Makefile: added test for mcs51 model large
14029
14030         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14031
14032         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14033
14034 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14035
14036         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14037
14038 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14039
14040         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14041
14042         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14043
14044 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14045
14046         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14047
14048         * support/regression/tests/simplefloat.c: Port to mcs51.
14049
14050 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14051         * support/regression/tests/bug-485362.c: Added.
14052
14053         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14054
14055         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14056
14057         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14058
14059         * src/z80/gen.c (aopDump): Added a dump function.
14060
14061 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14062         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14063
14064         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14065
14066         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14067
14068         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14069
14070         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14071
14072         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14073
14074         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14075
14076         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14077
14078         * support/regression/ports/ds390/support.c: Use tinibios.
14079
14080         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14081
14082 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14083
14084         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14085         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14086
14087         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14088
14089         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14090
14091 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14092
14093         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14094
14095         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14096         (packRegsForIYUse): Created and optimised.
14097
14098 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14099
14100         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14101 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14102
14103         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14104
14105         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14106
14107         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14108
14109 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14110
14111         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14112
14113         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14114
14115 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14116
14117         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14118
14119         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14120
14121         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14122
14123 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14124
14125         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14126         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14127         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14128
14129         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14130
14131         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14132         (genNotFloat): Added.
14133         (genUminusFloat): Added.
14134
14135         * device/lib/z80/Makefile: Added floating pt stubs.
14136
14137         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14138
14139         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14140
14141         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14142
14143 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14144
14145         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14146
14147         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14148
14149         * sdcc/support/regression/Makefile: Add port ds390.
14150
14151         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14152
14153         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14154
14155         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14156
14157         * sdcc/support/regression/ports/ds390/support.c: Added.
14158
14159         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14160
14161         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14162
14163         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14164
14165 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14166
14167         * device/include/malloc.h: Added z80 and gbz80 support.
14168
14169         * device/lib/gbz80/heap.s: Added.
14170
14171         * device/lib/z80/heap.s: Added.
14172
14173         * device/lib/malloc.c: Added z80 and gbz80 support.
14174
14175         * support/regression/tests/malloc.c (testMalloc): Added.
14176
14177         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14178
14179         * support/regression/tests/bug-478094.c: Added.
14180
14181         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14182
14183 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14184
14185         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14186
14187         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14188
14189         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14190
14191         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14192
14193         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14194
14195 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14196
14197         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14198
14199 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14200
14201         * support/regression/tests/bug-477927.c: Added.
14202
14203         * src/z80/peeph.def: Added minor rules.
14204
14205         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14206
14207         * src/z80/peeph.def: Added jump optimisation modification.
14208
14209 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14210
14211         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14212
14213 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14214
14215         * support/regression/tests/funptrs.c: Added.
14216
14217 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14218
14219         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14220
14221 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14222
14223         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14224
14225         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14226
14227         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14228         (movLeft2ResultLong): Created.
14229
14230         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14231         (joinPushes): Added.  Joins two char pushes into a word push.
14232
14233 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14234
14235         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14236
14237         * support/makebin/Makefile (install): Added creation of dest dir.
14238
14239 2001-10-24 Karl Bongers <karl AT turbobit.com>
14240
14241         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14242
14243 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14244
14245         * src/z80/ralloc.c: Turned off faulty pack for one use.
14246
14247         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14248
14249         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14250
14251 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14252
14253         * support/regression/Makefile: Improved clean
14254
14255         * support/regression/ports/gbz80/spec.mk: Added clean
14256
14257         * support/regression/ports/host/spec.mk: Added clean
14258
14259         * support/regression/ports/z80/spec.mk: Added clean
14260
14261         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14262
14263         * support/regression/ports/mcs51/timeout.c: little improvements
14264
14265 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14266
14267         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14268
14269         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14270
14271         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14272
14273 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14274
14275         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14276
14277         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14278
14279 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14280         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14281
14282         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14283
14284         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14285
14286         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14287
14288         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14289
14290         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14291
14292         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14293
14294         * support/regression/tests/longor.c: Added.
14295
14296 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14297
14298         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14299
14300         * as/mcs51/aslink.h: define PATH_MAX
14301
14302         * as/mcs51/asm.h: define PATH_MAX
14303
14304         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14305
14306         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14307
14308         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14309
14310         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14311
14312         * src/SDCCglobl.h: define PATH_MAX
14313
14314         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14315
14316         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14317
14318 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14319
14320         * src/z80/gen.c (gencjneshort): Fixed
14321
14322         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14323
14324 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14325
14326         * support/regression/tests/bug-469671.c: Added.
14327
14328         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14329
14330 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14331
14332         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14333
14334         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14335
14336 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14337
14338         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14339
14340         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14341
14342         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14343
14344         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14345
14346         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14347
14348         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14349
14350         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14351
14352 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14353
14354         * 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.
14355
14356         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14357
14358         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14359
14360 2001-10-07    <johan AT FRIJA>
14361
14362         * device/lib/gets.c (gets): fixed the return value.
14363
14364 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14365         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14366
14367         * 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.
14368
14369         * 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.
14370
14371         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14372
14373         * src/pic/gen.c: Removed Safe_strdup.
14374
14375         * configure.in: Added option to enable libgc support.
14376
14377         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14378         (bitVectUnion): Optimised.
14379         (bitVectIntersect): Optimised.
14380         (bitVectBitsInCommon): Optimised.
14381         (bitVectCplAnd): Optimised.
14382
14383         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14384
14385 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14386
14387         * src/SDCCmain.c: distinguish between assembler debug and plain options
14388
14389         * src/avr/main.c:   remove standard assembler options
14390
14391         * src/ds390/main.c: remove standard assembler options
14392
14393         * src/mcs51/main.c: remove standard assembler options
14394
14395         * src/port.h: removed "PENDING" comment
14396
14397 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14398
14399         * src/device/lib/_mulint.c  : new, with assember functions
14400
14401         * src/device/lib/_mullong.c : new, with assember functions
14402
14403         * src/device/lib/_divuint.c : with assember functions
14404
14405         * src/device/lib/_divsint.c : with assember functions
14406
14407         * src/device/lib/_divulong.c: with assember functions
14408
14409         * src/device/lib/_divslong.c: with assember functions
14410
14411         * src/device/lib/_moduint.c : with assember functions
14412
14413         * src/device/lib/_modsint.c : with assember functions
14414
14415         * src/device/lib/_modulong.c: with assember functions
14416
14417         * src/device/lib/_modslong.c: with assember functions
14418
14419         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14420
14421         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14422
14423         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14424                                       replaced _mululong.c and _mulslong.c by _mullong.c
14425
14426 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14427
14428         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14429
14430 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14431
14432         * src/SDCCglue.c: test, if win32api is available for MINGW
14433
14434 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14435
14436         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14437         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14438         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14439         * support/regression/ports/host/spec.mk: removed GENERIC
14440         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14441         * support/regression/ports/z80/spec.mk: removed GENERIC
14442
14443 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14444
14445         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14446
14447         * support/regression/tests/bug-467035.c: Created.
14448
14449 2001-10-01    <johan AT FRIJA>
14450
14451         * src/SDCC.y: fixed bug #466586 part 1
14452
14453 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14454
14455         * SDCCicode.c: z80 has no generic pointers
14456         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14457
14458 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14459
14460         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14461
14462 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14463
14464         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14465
14466         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14467
14468 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14469
14470         * configure.in: Fixed up so that ucsim is only configured once.
14471
14472         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14473
14474         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14475         (getPathDifference): As above.
14476
14477         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14478
14479         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14480
14481 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14482         * .version: Updated to 2.3.1
14483
14484         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14485         Added copyright header.
14486
14487         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14488         (assemble): Added support for macro based assembler commands.
14489         (linkEdit): Added support for macro based linker commands.
14490         (preProcess): Changed the pre-processor to use macros.
14491         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14492         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14493
14494         * device/lib/z80/crt0.s: Added module name for debugging.
14495
14496 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14497
14498         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14499
14500         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14501
14502         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14503
14504         * src/Makefile.in: Added SDCCmacro and SDCCutil
14505
14506 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14507
14508         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14509
14510 2001-09-16    <johan AT FRIJA>
14511
14512         * 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.
14513
14514 2001-09-15    <johan AT FRIJA>
14515
14516         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14517         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14518
14519 2001-09-11    <johan AT FRIJA>
14520
14521         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14522
14523 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14524
14525         * support/regression/tests/bug-460444.c: Added test case.
14526
14527         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14528         (genCast): Added justification for all of the asserts.
14529
14530 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14531
14532         * support/regression/support.c: _xdata replaced by xdata
14533
14534         * support/regression/spec.mk: removed _generic
14535
14536 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14537
14538         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14539
14540         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14541         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14542
14543         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14544
14545         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14546
14547         * support/regression/tests/bug-460010.c: Added test case.
14548
14549         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14550
14551 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14552
14553         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14554
14555         * support/regression/testfwk.c: removed workaround for bug #436344
14556
14557         * support/regression/tests/bp.c: use less memory with mcs51
14558
14559         * support/regression/tests/bug-441448.c: use less memory
14560
14561         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14562
14563         * support/regression/collate-results.py: typo
14564
14565 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14566
14567         * support/regression/tests/fetchoverlap.c: Added new test case.
14568
14569         * support/regression/tests/bp.c: Added new test case.
14570
14571         * support/regression/tests/bug-448984.c: Added new test case.
14572
14573         * support/regression/tests/pow2shifts.c: Added new test case.
14574
14575         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14576         (genlshTwo): Fixed right shift for count > 8.
14577
14578         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14579
14580 2001-09-08    <johan AT FRIJA>
14581
14582         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14583
14584 2001-09-07    <johan AT FRIJA>
14585
14586         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14587
14588         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14589
14590 2001-09-06    <johan AT FRIJA>
14591
14592         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14593         * bernhard noted me at this: "() equals to (void)" (1.38)
14594
14595 2001-09-05    <johan AT FRIJA>
14596
14597         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14598
14599 2001-09-04    <johan AT FRIJA>
14600
14601         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14602
14603
14604 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14605
14606         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14607
14608 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14609
14610         * link/z80/aslink.h: Fixed path for PATH_MAX
14611
14612 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14613
14614         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14615
14616         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14617
14618         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14619
14620         * 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.
14621
14622 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14623
14624         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14625         (genCmp): Fixed up genCmp for the GB with longs.
14626
14627         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14628
14629         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14630
14631         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14632
14633         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14634
14635 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14636
14637         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14638
14639 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14640
14641         * 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.
14642
14643         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14644
14645 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14646
14647         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14648
14649         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14650
14651 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14652
14653   * sim/ucsim/configure:    little improvement of Cygwin-detection
14654   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14655   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14656   * support/regression/tests/bug-221100.c: small changes for mcs51
14657   * support/regression/tests/bug-221168.c: small changes for mcs51
14658   * support/regression/tests/bug-227710.c: small changes for mcs51
14659   * support/regression/tests/staticinit.c: small changes for mcs51
14660   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14661   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14662   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14663
14664 $Revision$