* support/scripts/gen_known_bugs.pl: added script which generates knownbugs.html
[fw/sdcc] / ChangeLog
1 2007-05-10 Borut Razem <borut.razem AT siol.net>
2
3         * support/scripts/gen_known_bugs.pl: added script
4           which generates knownbugs.html
5
6 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
7
8         * doc/knownbugs.html: updated for release 2.7.0
9
10 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
11
12         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
13
14 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
15
16         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
17           (throughout): updated generating comments
18         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
19           (throughout): updated generating comments
20         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
21           rule instead of at the second, or it might skip lines when removing the
22           complete match
23         * support/regression/tests/bug1714204.c: changed test to foo
24
25 2007-05-08 Borut Razem <borut.razem AT siol.net>
26
27         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
28           thanks to SDCC Distributed Compile Farm members,
29           added Z80 and GBZ80 command line options
30         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
31
32 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
33
34         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
35         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
36         * support/regression/tests/longlit.c: modified to be tested at all and
37           to pass the actual test
38
39 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
40
41         * device/include/mcs51/uPSD33xx.h: Added.
42
43 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
44
45         * device/lib/_gptrput.c,
46         * device/lib/_gptrget.c: removed old code,
47          (_gptrgetWord),
48         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
49         * support/regression/tests/bug1714204.c: new, added
50
51 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
52
53         * support/regression/tests/regtrack.c: test was never executed
54           because of the regression test being picky about white spaces.
55         * device/lib/mcs51/crtclear.asm: added comment
56
57 2007-05-06 Raphael Neider <rneider AT web.de>
58
59         * device/lib/pic/Makefile.rules,
60         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
61           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
62
63 2007-05-06 Raphael Neider <rneider AT web.de>
64
65         * src/pic16/device.h,
66         * src/pic16/main.h,
67         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
68           _pic16_setDefaultOptions): removed/reordered command-line args
69         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
70           devices, regrouped command line args, environment variables),
71           clarified sone points, added sections on how to add devices to the
72           PIC14/PIC16 ports
73
74 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
75
76         * src/z80/peeph.def: fixed bug in rule 2
77
78 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
79
80         * src/port.h: added TARGET_MCS51_LIKE
81         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
82           take advantage of it too
83         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
84           (shiftR2Left2Result): Optimized: don't check shifting by 0
85         * src/z80/peeph-z80.def,
86         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
87           modifications, see patch 1700823
88         * src/mcs51/peep.c (): fixed bug 1712928
89         * support/regression/tests/bug1712928.c: new, added
90
91 2007-05-05 Borut Razem <borut.razem AT siol.net>
92
93         * device/lib/pic16/Makefile.common.in,
94           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
95           removed bash dependencies
96
97 2007-05-01 Borut Razem <borut.razem AT siol.net>
98
99         * src/SDCCicode.c:
100           fixed bug #1710507: --i-code-in-asm makes compile fail
101           all iCode comments are now one liners
102         * src/mcs51/gen.c: fixed memory leak
103
104 2007-05-01 Raphael Neider <rneider AT web.de>
105
106         * device/lib/pic/libdev/*.c
107         * device/include/pic/*.h: regenerated all device libs from updated
108           .inc files
109         * support/scripts/inc2h.pl: documented usage, now uses strict to
110           catch more bugs
111
112 2007-04-30 Borut Razem <borut.razem AT siol.net>
113
114         * doc/sdccman.lyx:
115           fixed bug #1669175: Problem with space in output paths
116           documented how to use paths with spaces for Windows users
117
118 2007-04-29 Borut Razem <borut.razem AT siol.net>
119
120         * Fixed svn:eol-style and svn:keywords properties
121         * src/SDCCval.c: fixed bug
122           #1592871: Segfault with "large" const arrays of characters
123           replaced recursion with iteration
124         * Removed svn:executable property from non-executable files
125
126 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
127
128         * src/mcs51/gen.c (genRet): fixed bug 1707003
129
130 2007-04-27 Raphael Neider <rneider AT web.de>
131
132         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
133           createReachingDefinitions,assignValnums,pic16_destructDF,
134           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
135           prevent NULL pointer dereferences
136         * device/lib/pic/libdev/pic16f886.c,
137         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
138           prevent building them, gputils do not really support them yet
139
140 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
141
142         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
143           helps printf_small. 32 bytes more __idata mem.
144
145 2007-04-27 Raphael Neider <rneider AT web.de>
146
147         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
148           return early when pb or pb->pcHead is NULL (patch #1708427)
149         * src/regression/empty.c,
150         * src/regression/Makefile: added test with empty functions
151         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
152
153 2007-04-27 Borut Razem <borut.razem AT siol.net>
154
155         * src/SDCCast.c: fixed feature request
156           #1547512: Redundant strings linked when using sizeof("abc")
157
158 2007-04-23 Borut Razem <borut.razem AT siol.net>
159
160         * doc/sdccman.lyx, src/SDCCmain.c:
161           peep-hole comments are generated only if --fverbose-asm option is
162           specified and --no-peep-comments is not, as proposed by Frieder.
163         * support/regression/Makefile.in: compile regression tests with
164           --fverbose-asm option so one can "grep" whether a new (or an old)
165           peephole is (still) applied; requested by Frieder.
166
167 2007-04-23 Kevin Buettner <kevin AT buettner.to>
168
169         * device/include/pic/pic16f886.h,
170         * device/include/pic/pic16f887.h,
171         * device/lib/pic/libdev/pic16f886.c,
172         * device/lib/pic/libdev/pic16f887.c,
173         * device/include/pic/pic14devices.txt,
174         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
175
176 2007-04-23 Kevin Buettner <kevin AT buettner.to>
177
178         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
179           fixes #1704666
180
181 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
182
183         * device/lib/_memset.c: assembler version for mcs51
184
185 2007-04-22 Borut Razem <borut.razem AT siol.net>
186
187         * support/scripts/listerr.c: program to create the list of errors and
188           warnings list from - added
189         * doc/sdccman.lyx: removed the note
190           "For list of warnings and corresponding codes, see err_warn.txt"
191         * src/SDCCsymt.c: fixed bug #1699804:
192           Bug with some uses of sizeof(static local array) (MCS51)
193         * support/regression/tests/bug-1699804.c: added
194
195 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
198           (main): added option -i,
199           (asmbl, case S_INCL): use search_path_fopen,
200           mostly from patch 1579668 by Peter Miller, thanks
201         * src/z80/main.c: fixed typo --callee-saves-bc
202         * device/include/mcs51/compiler.h: added sfrword for Tasking
203
204 2007-04-20 Borut Razem <borut.razem AT siol.net>
205
206         * src/z80/main.c: replaced reserved keyword asm with asmblr
207
208 2007-04-19 Borut Razem <borut.razem AT siol.net>
209
210         * src/port.h: use const pointers to strings
211         * src/SDCCargs.h: declared getStringArg() and getIntArg()
212         * src/pic16/main.c: include SDCCargs.h
213         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
214           const char, since the strings are dynamically allocated
215         * src/SDCCmain.c: options.code_seg and options.const_seg are
216           dynamically allocated; check port specific command line options
217           before the general ones
218         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
219
220 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
221
222         * device/include/ds400rom.h,
223         * device/lib/ds390/lcd390.c,
224         * device/lib/ds390/memcpyx.c,
225         * device/lib/ds390/rtc390.c,
226         * device/lib/ds400/ds400rom.c,
227         * device/lib/ds400/memcpyx.c,
228         * device/lib/hc08/_ret.c: more replacements of keywords with their
229           double underscore equivalents
230         * device/lib/ds390/Makefile.in,
231         * device/lib/ds400/Makefile.in,
232         * device/lib/gbz80/Makefile.in,
233         * device/lib/hc08/Makefile.in,
234         * device/lib/mcs51/Makefile.in,
235         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
236
237 2007-04-17 Borut Razem <borut.razem AT siol.net>
238
239         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
240           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
241           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
242           to --fverbose-asm, to be gcc'ish
243
244 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
245
246         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
247
248 2007-04-17 Borut Razem <borut.razem AT siol.net>
249
250         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
251         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
252           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
253           with their double underscore equivalent
254
255 2007-04-14 Borut Razem <borut.razem AT siol.net>
256
257         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
258           source"
259
260 2007-04-13 Borut Razem <borut.razem AT siol.net>
261
262         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
263           C99 standard
264         * device/examples/serialcomm/windows/serial.[ch],
265           device/examples/serialcomm/windows/test_serialcomm.cpp:
266           updated by Bela Torok
267         * device/examples/serialcomm/windows/serialcomm.dsw,
268           device/examples/serialcomm/windows/serialcomm.dsp: added
269
270 2007-04-13 Jan Waclawek <wek AT efton.sk>
271
272         * doc/sdccman.lyx: additions and changes at various places
273           (submitted as #1697136).
274           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
275
276 2007-04-10 Borut Razem <borut.razem AT siol.net>
277
278         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
279           LyX file format changed to 245
280         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
281           "FreeWare" replaced with "free open source"
282
283 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
284
285         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
286
287 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
288
289         * device/include/pic16/pic18fregs.h,
290         * device/lib/_bp.c,
291         * device/lib/_decdptr.c,
292         * device/lib/_divsint.c,
293         * device/lib/_divslong.c,
294         * device/lib/_divuint.c,
295         * device/lib/_divulong.c,
296         * device/lib/_fs2schar.c,
297         * device/lib/_fs2sint.c,
298         * device/lib/_fs2slong.c,
299         * device/lib/_fs2uchar.c,
300         * device/lib/_fs2uint.c,
301         * device/lib/_fs2ulong.c,
302         * device/lib/_fsadd.c,
303         * device/lib/_fscmp.c,
304         * device/lib/_fsdiv.c,
305         * device/lib/_fseq.c,
306         * device/lib/_fsget1arg.c,
307         * device/lib/_fsget2args.c,
308         * device/lib/_fsgt.c,
309         * device/lib/_fslt.c,
310         * device/lib/_fsmul.c,
311         * device/lib/_fsneq.c,
312         * device/lib/_fsnormalize.c,
313         * device/lib/_fsreturnval.c,
314         * device/lib/_fsrshift.c,
315         * device/lib/_fssub.c,
316         * device/lib/_fsswapargs.c,
317         * device/lib/_gptrget.c,
318         * device/lib/_gptrgetc.c,
319         * device/lib/_gptrput.c,
320         * device/lib/_logexpf.c,
321         * device/lib/_modsint.c,
322         * device/lib/_modslong.c,
323         * device/lib/_moduint.c,
324         * device/lib/_modulong.c,
325         * device/lib/_mulint.c,
326         * device/lib/_mullong.c,
327         * device/lib/_schar2fs.c,
328         * device/lib/_ser.c,
329         * device/lib/_setjmp.c,
330         * device/lib/_sint2fs.c,
331         * device/lib/_slong2fs.c,
332         * device/lib/_spx.c,
333         * device/lib/_uchar2fs.c,
334         * device/lib/_uint2fs.c,
335         * device/lib/_ulong2fs.c,
336         * device/lib/asincosf.c,
337         * device/lib/atanf.c,
338         * device/lib/calloc.c,
339         * device/lib/ds390/tinibios.c,
340         * device/lib/ds400/tinibios.c,
341         * device/lib/expf.c,
342         * device/lib/free.c,
343         * device/lib/hc08/_mulint.c,
344         * device/lib/logf.c,
345         * device/lib/malloc.c,
346         * device/lib/printf_fast.c,
347         * device/lib/printf_tiny.c,
348         * device/lib/printfl.c,
349         * device/lib/realloc.c,
350         * device/lib/ser_ir.c,
351         * device/lib/serial.c,
352         * support/regression/tests/libmullong.c: replaced all special keywords
353           with their double underscore equivalent
354         * support/regression/ports/mcs51-xstack-auto/spec.mk,
355         * device/lib/Makefile.in: compile libs with --std-c99 instead of
356           --std-sdcc99
357         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
358           (genRet): if the bit-symbol is ruonly it already is in the carry
359         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
360         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
361         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
362           type UCHAR if dest is not bit
363
364 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
365
366         * device/include/math.h,
367         * device/lib/cotf.c,
368         * device/lib/expf.c,
369         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
370
371 2007-04-01 Borut Razem <borut.razem AT siol.net>
372
373         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
374           fixed bug #1692042: input buffer overflow...scanner uses REJECT
375         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
376           gcc_unreachable() called internal_error()...
377
378 2007-03-30 Raphael Neider <rneider AT web.de>
379
380         * src/pic/ralloc.c (isData): suppress garbage debug output
381
382 2007-03-28 Borut Razem <borut.razem AT siol.net>
383
384         * doc/sdccman.lyx:
385           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
386           is developed, built and used worldwide, and the word "night" doesn't
387           make any sense.
388
389 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
390
391         * device/include/mcs51/C8051F360.h: new, added
392         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
393
394 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
395
396         * src/SDCC.y (declaration_specifiers, function_specifier),
397         * support/Util/SDCCerr.c,
398         * support/Util/SDCCerr.h,
399         * src/SDCCsymt.h,
400         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
401           inline keyword
402         * src/SDCCmem.c (deallocParms),
403         * src/SDCCast.c: support for function inlining, not quite complete
404         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
405           'restrict' qualifier
406
407 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
408
409         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
410           (saveRBank, unsaveRBank): don't save bits,
411           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
412         * support/regression/tests/bug1535242.c: new, added
413         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
414           thanks Alexey Shamrin <shamrin AT gmail.com>,
415           made assert.h header ANSI compliant (added a check for NDEBUG macro,
416           removed header guard)
417         * .version,
418         * sdcc.spec: bumped version to 2.6.5
419         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
420
421 2007-03-22 Borut Razem <borut.razem AT siol.net>
422
423         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
424           fixed bug #1653671: sdcdb integration into ddd is broken
425
426 2007-03-22 Raphael Neider <rneider AT web.de>
427
428         * src/pic/gen.c (popGetExternal): augmented to also create references
429           to external variables (not only labels),
430           (genCall): comment on plan to reduce PAGESEL overhead,
431           (genFunction, genEndFunction): also save/restore FSR around interrupt
432           handling code, removed lots of unused code
433           (genDivOneByte): release acquired temp register
434         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
435           of popGetExternal
436         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
437           for registers that need to be saved during interrupts (FSR, STATUS,
438           PCLATH; W needs special handling), currently only FSR is used
439
440 2007-03-22 Raphael Neider <rneider AT web.de>
441
442         * device/include/pic/pic14devices.txt: 16f688 has only one config word
443
444 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
445
446         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
447
448 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
449
450         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
451
452 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
453
454         * as/link/aslink.h: added LKOBJEXT
455         * as/link/hc08/link_hc08.dsp,
456         * as/link/hc08/Makefile.bcc,
457         * as/link/hc08/Makefile.in,
458         * as/link/mcs51/aslink.dsp,
459         * as/link/mcs51/Makefile.bcc,
460         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
461         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
462         * as/link/lkaomf51.c: merged and moved
463         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
464         * as/link/z80/lkdata.c,
465         * as/link/lkdata.c: merged and moved
466         * as/link/hc08/lkmain.c,
467         * as/link/mcs51/lkmain.c: cosmetic changes
468         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
469         * as/link/lklex.c: use LKOBJEXT
470         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
471           ANSI-fied functions, removed bubble-sorts
472         * as/link/z80/lksym.c           as/link/lksym.c: merged,
473           ANSI-fied functions
474         * as/link/z80/linkgbz80.dsp,
475         * as/link/z80/linkz80.dsp,
476         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
477           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
478         * as/link/z80/lkhead.c,
479         * as/link/z80/lklex.c: deleted
480         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
481         * as/link/z80/lkmain.c: added copyfile()
482
483 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
484
485         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
486
487 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
488
489         * device/lib/_strlen.c: assembler version for mcs51
490
491 2007-03-13 Raphael Neider <rneider AT web.de>
492
493         * device/include/pic16/pic18f2221.h,
494         * device/include/pic16/pic18f2321.h,
495         * device/include/pic16/pic18f2331.h,
496         * device/include/pic16/pic18f4221.h,
497         * device/include/pic16/pic18f4321.h,
498         * device/include/pic16/pic18f4331.h: fixed config byte location names
499         * support/scripts/inc2h-pic16.pl: removed debug output, emit
500           consistently named config byte locations
501
502 2007-03-13 Borut Razem <borut.razem AT siol.net>
503
504         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
505           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
506           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
507           as/link/z80/Makefile.in, as/z80/Makefile.in:
508           introduced LDFLAGS
509
510 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
511
512         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
513         * device/lib/printf_large.c: pointer was converted to generic
514         pointer for mcs51 models other than model-small (Maarten noticed)
515
516 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
517
518         * device/include/mcs51/ADuC84x.h: Added.
519
520 2007-03-10 Borut Razem <borut.razem AT siol.net>
521
522         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
523           fixed RFE #1624219: double backslashes in filenames;
524           functions hexEscape(), octalEscape() and copyStr() moved from
525           SDCCval.c to SDCCutil.c and made them glovbally available
526
527 2007-03-09 Borut Razem <borut.razem AT siol.net>
528
529         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
530           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
531           1673361: Missaligned comments in output files
532
533 2007-03-09 Raphael Neider <rneider AT web.de>
534
535         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
536
537 2007-03-09 Raphael Neider <rneider AT web.de>
538
539         * src/pic/gen.c,
540         * src/pic/glue.c,
541         * src/pic/ralloc.c: suppress undesired debug output
542         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
543
544 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
545
546         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
547
548 2007-03-07 Borut Razem <borut.razem AT siol.net>
549
550         * device/lib/pic16/libdev/pic18f[24][34]31.c:
551           search include files in the current directory
552
553 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
554
555         * src/SDCCglue.c (emitMaps, glue),
556         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
557           absolute xdata
558         * support/regression/tests/absolute.c: added xdata test
559
560 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
561
562         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
563           added condition to macro, fixes bug 1666080
564
565 2007-03-02 Raphael Neider <rneider AT web.de>
566
567         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
568
569 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
570
571         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
572         be cleared. Unconditionally set __XPAGE
573         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
574
575 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
576
577         * src/SDCCglobl.h,
578         * src/SDCCmain.c,
579         * src/mcs51/gen.c,
580         * src/mcs51/rtrack.c,
581         * src/ds390/gen.c,
582         * doc/sdccman.lyx: added --no-gen-comments
583         * src/mcs51/peeph.def: added 192.b, disabled 185
584
585 2007-02-25 Raphael Neider <rneider AT web.de>
586
587         * src/pic16/gen.c (genCast): fixed typo
588         * device/lib/pic16/Makefile.subdir: only install existing files
589         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
590
591 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
592
593         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
594         * device/lib/mcs51/crtclear.asm,
595         * device/lib/mcs51/crtxclear.asm: renumbered labels
596         * device/lib/mcs51/Makefile.in: added crtcall.asm
597         * doc/sdccman.lyx: documented mcs51 crt* library startup code
598         * src/mcs51/gen.c (movc): removed,
599           (aopGet, genPlusBits): clear a after loading the carry (possibly from
600             acc.x or psw.x),
601           (toCarry, genSend, genRet): added function toCarry,
602           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
603           (assignBit, genAssign, genCast): added function assignBit
604         * src/mcs51/Makefile.bcc: added rtrack.c
605         * src/mcs51/ralloc.h: made valueKnown a bitfield
606         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
607           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
608           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
609         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
610         * src/z80/gen.c: added AOP_IS_PAIRPTR,
611           (_pop): only pop valid pairs, see gencjneshort,
612           (gencjneshort): return pair that still needs to be popped, restructured,
613           (gencjne, genCmpEq): call _pop
614
615 2007-02-23 Raphael Neider <rneider AT web.de>
616
617         * device/include/pic/pic14devices.txt: 16f684 has only one config word
618
619 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
620
621         * device/include/mcs51/P89LPC925.h: Added.
622
623 2007-02-18 Raphael Neider <rneider AT web.de>
624
625         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
626
627 2007-02-17 Borut Razem <borut.razem AT siol.net>
628
629         * support/cpp2/directives.c, support/cpp2/version.c:
630           synchronized with GCC CPP 4.1.2
631
632 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
633
634         * src/mcs51/rtrack.h,
635         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
636           by checking the strings passed by emitcode() to the assembler.
637           Feel free to change. This in part addresses RFE #482179.
638           Set environment variable SDCC_RTRACK to enable.
639         * src/mcs51/gen.c: inserted hooks
640         * src/mcs51/ralloc.h: added two members to struct regs
641         * support/regression/tests/regtrack.c: added
642
643 2007-02-14 Borut Razem <borut.razem AT siol.net>
644
645         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
646         * Makefile.in: applied patch from Makefile related part of
647           #1469393: Compiler does not initialize static data
648
649 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
650
651         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
652           for better fix of bug 1273984, compiles pic16 rand.c
653
654 2007-02-12 Borut Razem <borut.razem AT siol.net>
655
656         * src/pic16/main.c: fixed pic16 standard library directory bug
657
658 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
659
660         * src/hc08/gen.c (genSwap): fix swap regression test
661
662 2007-02-10 Borut Razem <borut.razem AT siol.net>
663
664         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
665           with same scope
666         * support/regression/tests/bug-1654060.c: added regression test for
667           #1654060
668
669 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
670
671         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
672         bit moves in return statement
673
674 2007-02-09 Borut Razem <borut.razem AT siol.net>
675
676         * src/SDCC.y: fixed bug #1654060 typedef within function causes
677           syntax error
678
679 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
680
681         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
682         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
683
684 2007-02-07 Raphael Neider <rneider AT web.de>
685
686         * src/pic16/devices.inc,
687         * device/include/pic16/pic18fregs.h,
688         * device/include/pic16/pic18f[24][34]31.h,
689         * device/lib/pic16/libdev/pic18f[24][34]31.c,
690         * device/lib/pic16/pics.all: added 18f[24][34]31 family
691         * device/lib/pic16/libio/i2c.ignore: do not build i2c
692
693 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
694
695         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
696           can this have lived here for so many years?
697         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
698           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
699         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
700
701 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
702
703         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
704         appended by loop induction must be at the very end of the eBBlock
705
706 2007-02-05 Kevin Vigor
707
708         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
709
710 2007-02-05 Borut Razem <borut.razem AT siol.net>
711
712         * support/regression/fwk/lib/timeout.c: native WIN32 port,
713           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
714
715 2007-02-03 Borut Razem <borut.razem AT siol.net>
716
717         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
718           applied patch #1646602 option to set default signedness of char to
719           unsigned, added -funsigned-char command line option,
720           thanks to Gunther Jehle
721         * device/lib/Makefile.in: added the -f option to rm so it doesn't
722           prompt for file deletion a few hundred times (especially the
723           subversion files, which have ro permissions so it asks for
724           confirmation), thanks to Simon McAuliffe;
725           added {} + option to find in order to remove multiple files from a
726           single rm commad
727
728 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
729
730         * device/include/mcs51/SST89x5xRDx.h: Added.
731
732 2007-02-02 Raphael Neider <rneider AT web.de>
733
734         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
735         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
736
737 2007-02-01 Raphael Neider <rneider AT web.de>
738
739         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
740           config words again
741
742 2007-01-31 Borut Razem <borut.razem AT siol.net>
743
744         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
745           if compiled with GCC. Thanks to Raphael Neider
746
747 2007-01-31 Raphael Neider <rneider AT web.de>
748
749         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
750             operand names, handles name and (name + n) for all n,
751           (sameBank): restructured, also check bank allocation policy,
752         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
753           (pic14_operandsAllocatedInSameBank): check whether to operands
754             will be allocated into the same bank (i.e., section) to reduce
755             BANKSEL overhead, queried from pcode.c:sameBank,
756           (pic14printLocals): reintroduced clustering registers into a single
757             section: all compiler generated symbols will now reside in one
758             bank (per file), reducing BANKSEL overhead and code size,
759           (showAllMemmaps): use local dbuf where possible
760
761 2007-01-29 Raphael Neider <rneider AT web.de>
762
763         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
764           (call_libraryfunc): retrieve/create symbol and mark as used,
765           (genFunction): mark defined functions as non-extern and add again
766            to code memmap for later output
767         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
768           (pic14printLocals): reworked for new symbol emission,
769           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
770           showAllMemmaps): reworked symbol output using dbufs, added handling
771             of string literals (still incomplete),
772           (picglue): removed symbol emission, moved into showAllMemmaps,
773           (emitSymbolSet): new workhorse for symbol output,
774           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
775
776 2007-01-29 Borut Razem <borut.razem AT siol.net>
777
778         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
779           component contains the extension separator.
780
781 2007-01-28 Borut Razem <borut.razem AT siol.net>
782
783         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
784           on WIN32
785         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
786           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
787           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
788           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
789           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
790           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
791           src/z80/gen.c, support/Util/MySystem.c:
792           accept slash and backslash as directory separator on WIN32 and
793           Cygwin ports
794
795 2007-01-28 Raphael Neider <rneider AT web.de>
796
797         * src/pic16/devices.inc,
798         * device/include/pic16/pic18f[24][23]21.h,
799         * device/include/pic16/pic18fregs.h,
800         * device/lib/pic16/libdev/pic18f[24][23]21.c,
801         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
802         * device/lib/pic16/libio/adc.ignore,
803         * device/lib/pic16/libio/i2c.ignore,
804         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
805           family, as gputils do not yet support the devices
806         * device/lib/pic16/Makefile.subdir: ignore errors on install
807         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
808           headers and libraries from gputils .inc files
809
810 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
811
812         * doc/sdccman.lyx: add printf_fast_f precision limitation note
813
814 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
815
816         * doc/sdccman.lyx: add printf benchmarks
817
818 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
819
820         * device/lib/printf_fast.c: fix %c, char promoted to int
821         * device/lib/printf_tiny.c: fix %c, char promoted to int
822
823 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
824
825         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
826
827 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
828
829         * support/regression/tests/swap.c: 64 bit hosts failed
830         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
831
832 2007-01-25 Raphael Neider <rneider AT web.de>
833
834         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
835           based on absolute register address, patch by Alex Blond
836
837 2007-01-22 Raphael Neider <rneider AT web.de>
838
839         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
840           emitted, do not emit them again...
841
842 2007-01-22 Raphael Neider <rneider AT web.de>
843
844         * src/regression/bank1.c, src/regression/compare6.c,
845           src/regression/add.c: cosmetic changes
846         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
847         * src/pic/gen.c: fixed global zero and one,
848           (aopForSym): removed unued code,
849           (aopGet): assert aop is defined, check and use `index' of
850             pCodeImmd operands (fixes #1630908),
851         * src/pic/pcode.c (get_op): added output of generic pointer tag,
852           (register_reassign): prevent accidental register unification,
853           (ReuseReg): cosmetic changes (also above)
854         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
855           pic14emitStaticSeg): do not emit initialized data,
856           (printIval*): replaced with working versions,
857           (pic14createInterruptVect,picglue): use idata for initialized data,
858             now init data should work in all modules (not only main()),
859         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
860
861 2007-01-21 Borut Razem <borut.razem AT siol.net>
862
863         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
864           use -fPIC or -fpic if they are supported and not ignored
865         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
866         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
867
868 2007-01-20 Borut Razem <borut.razem AT siol.net>
869
870         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
871           implemented RFE #1470316: allow "$" in variable names
872
873 2007-01-20 Raphael Neider <rneider AT web.de>
874
875         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
876
877 2007-01-20 Raphael Neider <rneider AT web.de>
878
879         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
880         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
881         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
882         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
883           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
884         * device/lib/pic/libdev/pic*.c,
885         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
886         * device/lib/pic/libdev/Makefile.in: show progress
887
888 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
889
890         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
891         * support/scripts/sdcc_cygwin_mingw32,
892         * support/scripts/sdcc_mingw32,
893         * support/scripts/build.mak: replaced --datadir by --datarootdir for
894         conformance with autoconf 2.6
895
896 2007-01-19 Raphael Neider <rneider AT web.de>
897
898         * src/pic/device.c (register_map): fixed list construction
899         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
900           (genMod): removed case for genModbits,
901           (genModbits): removed as now unused/unimplemented
902         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
903
904 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
905
906         * support/regression/tests/swap.c: added in response to #1638622
907         * doc/sdccman.lyx: synced version, minor changes
908
909 2007-01-18 Borut Razem <borut.razem AT siol.net>
910
911         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
912           thanks to Gunther Jehle
913         * src/asm.c: don't die if the file drfined in #line couldn't be opened
914         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
915           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
916           use filename in lineno instead.
917         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
918           print the file name in ast_print()
919
920 2007-01-18 Borut Razem <borut.razem AT siol.net>
921
922         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
923           defined in MSVC
924         * src/SDCC.lex: stringLiteral() returns const char pointer,
925           EOF detection in stringLiteral(), fixed asmbuf memory leak,
926           fixed column counting
927         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
928           accept const char pointer as parameter
929         * src/SDCCdwarf2.c: corrected buffer size
930
931 2007-01-17 Borut Razem <borut.razem AT siol.net>
932
933         * support/Util/dbuf_string.c: fixed for amd64
934
935 2007-01-15 Borut Razem <borut.razem AT siol.net>
936
937         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
938           removed terminal symbol ELIPSIS, since it was never generated by the
939           lexer and it was wrongly used in parameter_identifier_list rule
940
941 2007-01-15 Raphael Neider <rneider AT web.de>
942
943         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
944             code page and data banking description
945         * src/pic/genarith.c,
946         * src/pic/gen.h: removed bit arithmetic functions,
947             updated exit(1) to exit(EXIT_FAILURE)
948         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
949         * device/include/pic16/pic18f2455.h,
950         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
951             TRISD and TRISE, fixed/added some bit names
952         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
953         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
954             updated pic18f2455.{c,h} instead of duplicating them
955
956 2007-01-14 Borut Razem <borut.razem AT siol.net>
957
958         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
959           Cannot debug files that contain spaces in the path name
960           by converting spaces in asm file name to underscores
961
962 2007-01-13 Borut Razem <borut.razem AT siol.net>
963
964         * doc/sdccman.lyx: fixed format errors
965
966 2007-01-10 Borut Razem <borut.razem AT siol.net>
967
968         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
969           codeseg/constseg #pragma fail
970         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
971         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
972           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
973           suppoprt/cpp2/sdcpp.[ch]: house cleaning
974
975 2007-01-09 Borut Razem <borut.razem AT siol.net>
976
977         * get rid of diagnistic.[ch], pretty-print.[ch],
978           c-pretty-print.[ch], ... used just for error, warning, ...
979           message formatting
980         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
981           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
982           suppoprt/cpp2/pretty-print.[ch]:
983           removed
984         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
985           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
986           suppoprt/cpp2/sdcpp.dsp:
987           changed
988
989 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
990
991         * device/lib/printf_large.c (output_float): removed recursion,
992           use smaller buffer on stack for mcs51,
993           fixed bug printing 1.96
994         * support/regression/tests/snprintf.c: added test
995
996 2007-01-07 Borut Razem <borut.razem AT siol.net>
997
998         * use dynamic memory buffers instead temporary files
999         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
1000           added
1001         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
1002           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
1003           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
1004           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
1005           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
1006           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
1007           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
1008           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
1009           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
1010           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
1011           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
1012           support/Util/dbuf.c, support/Util/dbuf.h:
1013           modified
1014         * .version, sdcc.spec: bumped version to 2.6.4
1015
1016 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1017
1018         * src/port.h: added TARGET_Z80_LIKE macro
1019         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
1020           output PSEG location if --xram-loc or --xstack-loc was used
1021         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
1022
1023 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
1024
1025         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
1026         * as/as_z80.dsp,   as/z80/as_z80.dsp,
1027         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
1028         * sdcc.dsw: moved project files into subdir
1029         * as/hc08/as_hc08.dsp,
1030         * as/hc08/Makefile.bcc,
1031         * as/hc08/Makefile.in,
1032         * as/mcs51/Makefile.bcc,
1033         * as/mcs51/Makefile.in,
1034         * as/z80/Makefile.bcc,
1035         * as/z80/Makefile.in,
1036         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
1037         * as/hc08/asm.h,
1038         * as/mcs51/asm.h,
1039         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
1040         * as/hc08/asmain.c,
1041         * as/hc08/assym.c,
1042         * as/mcs51/asmain.c,
1043         * as/mcs51/assym.c,
1044         * as/z80/assym.c: removed include "strcmpi.h"
1045         * as/hc08/strcmpi.c,
1046         * as/hc08/strcmpi.h,
1047         * as/mcs51/strcmpi.c,
1048         * as/mcs51/strcmpi.h,
1049         * support/Util/strcmpi.c,
1050         * support/Util/strcmpi.h: removed files
1051         * as/strcmpi.c: added as_strncmpi()
1052
1053 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1054
1055         * sdcc.dsw: Added some dependencies on project config.dsp
1056
1057 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
1058
1059         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
1060           with [di]ram_start to fix a regresion
1061
1062 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
1063
1064         * configure.in: added missing mcs51 in status output
1065         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
1066         directory
1067         * debugger/mcs51/clean.mk (distclean): remove config.h
1068         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
1069         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
1070         options.h, s-options-h and options.c
1071         * support/cpp2/clean.mk: unused, removed
1072         * Makefile.common.in,
1073         * main_in.mk,
1074         * as/Makefile.in,
1075         * as/hc08/Makefile.in,
1076         * as/hc08/clean.mk,
1077         * as/mcs51/Makefile.in,
1078         * as/mcs51/clean.mk,
1079         * as/z80/clean.mk,
1080         * as/z80/conf.mk,
1081         * as/z80/Makefile.in,
1082         * as/z80/clean.mk,
1083         * as/link/Makefile.in,
1084         * as/link/hc08/Makefile.in,
1085         * as/link/hc08/clean.mk,
1086         * as/link/mcs51/Makefile.in,
1087         * as/link/mcs51/clean.mk,
1088         * as/link/z80/Makefile.in,
1089         * as/link/z80/clean.mk,
1090         * as/link/z80/conf.mk,
1091         * debugger/mcs51/Makefile.in,
1092         * debugger/mcs51/clean.mk,
1093         * device/include/Makefile.in,
1094         * device/lib/Makefile.in,
1095         * device/lib/mcs51/Makefile.in,
1096         * device/lib/pic/Makefile.in,
1097         * device/lib/pic/Makefile.common.in,
1098         * device/lib/pic/Makefile.subdir,
1099         * device/lib/pic/Makefile.rules,
1100         * device/lib/pic16/libio/Makefile.in,
1101         * device/lib/pic16/Makefile.subdir,
1102         * device/lib/pic16/libdev/Makefile.in,
1103         * device/lib/pic16/Makefile.rules,
1104         * device/lib/pic16/Makefile.common.in,
1105         * sim/ucsim/avr.src/Makefile.in,
1106         * sim/ucsim/main_in.mk,
1107         * sim/ucsim/cmd.src/Makefile.in,
1108         * sim/ucsim/doc/Makefile.in,
1109         * sim/ucsim/gui.src/Makefile.in,
1110         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
1111         * sim/ucsim/gui.src/serio.src/Makefile.in,
1112         * sim/ucsim/hc08.src/Makefile.in,
1113         * sim/ucsim/libltdl/Makefile.in,
1114         * sim/ucsim/s51.src/Makefile.in,
1115         * sim/ucsim/sim.src/Makefile.in,
1116         * sim/ucsim/sim.src/conf.mk,
1117         * sim/ucsim/xa.src/Makefile.in,
1118         * sim/ucsim/z80.src/Makefile.in,
1119         * src/Makefile.in,
1120         * src/clean.mk,
1121         * src/port.mk,
1122         * support/cpp2/Makefile.in,
1123         * support/librarian/Makefile.in,
1124         * support/librarian/clean.mk,
1125         * support/makebin/Makefile.in,
1126         * support/makebin/clean.mk,
1127         * support/packihx/Makefile.in,
1128         * support/regression/Makefile.in,
1129         * support/regression/ports/ds390/spec.mk,
1130         * support/regression/ports/gbz80/spec.mk,
1131         * support/regression/ports/hc08/spec.mk,
1132         * support/regression/ports/mcs51/spec.mk,
1133         * support/regression/ports/mcs51-large/spec.mk,
1134         * support/regression/ports/mcs51-medium/spec.mk,
1135         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1136         * support/regression/ports/pic14/spec.mk,
1137         * support/regression/ports/pic16/spec.mk,
1138         * support/regression/ports/mcs51-stack-auto/spec.mk,
1139         * support/regression/ports/ucz80/spec.mk,
1140         * support/regression/ports/xa51/spec.mk,
1141         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
1142         adding a slash after $(top_builddir) and/or adding @datarootdir@
1143         * configure.in,
1144         * debugger/mcs51/configure.in,
1145         * device/lib/pic/configure.in,
1146         * device/lib/pic16/configure.in,
1147         * sim/ucsim/configure.in,
1148         * support/cpp2/configure.in,
1149         * support/packihx/configure.in: changed AC_PREREQ to 2.60
1150         * configure,
1151         * debugger/mcs51/configure,
1152         * device/lib/pic/configure,
1153         * device/lib/pic16/configure,
1154         * sim/ucsim/configure,
1155         * support/cpp2/configure,
1156         * support/packihx/configure: generated with autoconf 2.60
1157
1158 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
1159
1160         * as/link/hc08/lkihx.c (newArea),
1161         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
1162
1163 2007-01-02 Borut Razem <borut.razem AT siol.net>
1164
1165         * doc/sdccman.lyx: documented #pragma sdcc_hash
1166         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
1167           initialized to 0
1168         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
1169
1170 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
1171
1172         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
1173         empty 'while'-loop to work correctly, see regression test 'while.c'
1174         * support/regression/tests/while.c: added
1175
1176 2007-01-01 Borut Razem <borut.razem AT siol.net>
1177
1178         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
1179           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
1180           support/cpp2/libcpp/sdcpp.c:
1181           sdcpp specific pragma/directive/option handling moved to sdcpp.c
1182         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
1183         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
1184
1185 2006-12-31 Borut Razem <borut.razem AT siol.net>
1186
1187         * SDCPP synchronized with GCC CPP release version 4.1.1,
1188           currently the latest release:
1189         * support/cpp2/libcpp, support/cpp2/libcpp/include,
1190           support/cpp2/libcpp/include/cpp-id-data.h
1191           support/cpp2/libiberty/fopen_unlocked.c
1192           support/cpp2/libiberty/md5.c
1193           support/cpp2/md5.h
1194           support/cpp2/opt-functions.awk
1195           support/cpp2/opt-gather.awk
1196           support/cpp2/optc-gen.awk
1197           support/cpp2/opth-gen.awk:
1198           added
1199         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1200           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1201           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1202           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1203           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1204           support/cpp2/diagnostic.h, support/cpp2/except.h,
1205           support/cpp2/hwint.h, support/cpp2/input.h,
1206           support/cpp2/intl.h, support/cpp2/move-if-change,
1207           support/cpp2/opts.c, support/cpp2/opts.h,
1208           support/cpp2/output.h, support/cpp2/prefix.c,
1209           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1210           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1211           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1212           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1213           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1214           support/cpp2/version.c:
1215           modified
1216         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1217           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1218           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1219           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1220           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1221           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1222           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1223           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1224           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1225           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1226           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1227           moved
1228         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1229           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1230           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1231           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1232           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1233           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1234           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1235           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1236           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1237           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1238           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1239           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1240           support/cpp2/system.h:
1241           deleted / moved
1242
1243 2006-12-31 Borut Razem <borut.razem AT siol.net>
1244
1245         * configure.in, configure: fixed bug #1538756: configure dies if bison
1246           and flex are not installed, 2nd try
1247
1248 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1249
1250         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1251         400.x for better code in RFE 899102
1252
1253 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1254
1255         * src/SDCCpeeph.c (deadMove),
1256         * src/port.h,
1257         * src/mcs51/peep.h: renamed 'op' by 'reg'
1258         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1259         (scan4op): small change for removeDeadMove(), added support for
1260         'callee saves' and/or PACLL function calls,
1261         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1262         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1263         left in new dispatcher mcs51DeadMove()
1264         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1265         removeDeadMove()
1266         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1267
1268 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1269
1270         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1271           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1272
1273 2006-12-30 Borut Razem <borut.razem AT siol.net>
1274
1275         * support/cpp2/spacs.h: deleted from svn
1276         * configure.in, configure: fixed bug #1538756: configure dies if bison
1277           and flex are not installed
1278
1279 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1280
1281         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1282           with this z80 passes printf float test when enabled
1283         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1284
1285 2006-12-28 Borut Razem <borut.razem AT siol.net>
1286
1287         * support/cpp2/config.in, support/cpp2/configure.in,
1288           support/cpp2/configure, support/cpp2/Makefile.in:
1289           fix for the solaris build
1290
1291 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1292
1293         * src/SDCC.y (type_specifier2, pointer),
1294         * src/SDCCsymt.h,
1295         * src/SDCCsymt.c (mergeSpec, checkSClass),
1296         * support/Util/SDCCerr.c,
1297         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1298         * support/valdiag/valdiag.py: Allow test cases to specify
1299           required language standard
1300         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1301         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1302
1303 2006-12-27 Borut Razem <borut.razem AT siol.net>
1304
1305         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1306         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1307           mbchar removed
1308         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1309           fixed for borland C
1310         * support/cpp2/libiberty/Makefile.bcc: updated
1311         * src/pic16/main.c: fixed #pragma udata handling
1312         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1313
1314 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1315
1316         * src/SDCCpeeph.c: made labelHashEntry global,
1317         made pcDistance, FBYNAME static,
1318         (pcDistance): made static, use isComment and isLabel,
1319         (deadMove): added,
1320         (getLabelRef): added, extracted from labelRefCount(),
1321         (labelRefCount): use new getLabelRef(),
1322         (callFuncByName): made static, added deadMove,
1323         use isComment and isLabel,
1324         (newPeepRule): made static, set isLabel,
1325         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1326         labels from peephole rules,
1327         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1328         when isComment or isLabel is set
1329         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1330         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1331         to make them global
1332         * src/mcs51/peep.h: added
1333         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1334         * src/port.h: added peep->deadMove to port structure
1335         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1336         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1337         deadMove, finally removed no. 1 and 2
1338         * src/mcs51/gen.c,
1339         * src/pic/gen.c,
1340         * src/z80/gen.c,
1341         * src/z80/ralloc.c,
1342         * src/pic16/gen.c,
1343         * src/ds390/gen.c,
1344         * src/hc08/gen.c: mark lines with isComment or isLabel
1345         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1346         * .version,
1347         * sdcc.spec: bumped version to 2.6.3
1348
1349 2006-12-26 Borut Razem <borut.razem AT siol.net>
1350
1351         * support/cpp2/Makefile.in: added dependency on options.h
1352         * configure: regenerated
1353         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1354         * support/cpp2/Makefile.in: added vasprintf.c
1355
1356 2006-12-25 Borut Razem <borut.razem AT siol.net>
1357
1358         * SDCPP synchronized with GCC CPP release version 3.4.6,
1359           the latest release before 4.x:
1360         * support/cpp2/Makefile.in, support/cpp2/config.h,
1361           support/cpp2/configure, support/cpp2/configure.in,
1362           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1363           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1364           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1365           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1366           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1367           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1368           support/cpp2/cpptrad.c, support/cpp2/except.h,
1369           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1370           support/cpp2/hwint.h, support/cpp2/intl.h,
1371           support/cpp2/line-map.c, support/cpp2/line-map.h,
1372           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1373           support/cpp2/output.h, support/cpp2/prefix.c,
1374           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1375           support/cpp2/system.h, support/cpp2/version.c:
1376           modified
1377         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1378           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1379           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1380           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1381           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1382           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1383           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1384           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1385           support/cpp2/move-if-change, support/cpp2/opts.c,
1386           support/cpp2/opts.h, support/cpp2/opts.sh,
1387           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1388           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1389           support/cpp2/win32, support/cpp2/win32/dirent.c,
1390           support/cpp2/win32/dirent.h:
1391           added
1392         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1393         * support/cpp2/sdcpp.h: renamed from sdcc.h
1394         * sdcppinit.c: deleted
1395
1396 2006-12-23 Borut Razem <borut.razem AT siol.net>
1397
1398         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1399           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1400           preproc.c: an other try to fix bug #982435: introduced
1401           -pedantic-parse-number command line option and pedantic_parse_number
1402           pragma
1403
1404 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1405
1406         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1407            BSEG handling,
1408           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1409            corrected overlayed areax addresses, warn about memory overlaps
1410         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1411         * src/avr/main.c,
1412         * src/ds390/main.c,
1413         * src/hc08/main.c,
1414         * src/mcs51/main.c,
1415         * src/pic16/main.c,
1416         * src/pic/main.c,
1417         * src/xa51/main.c,
1418         * src/z80/main.c,
1419         * src/port.h: added xabs_name and iabs_name
1420         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1421           (glue, emitMaps): create and emit maps d_abs and i_abs
1422         * src/SDCCglue.h: cosmetic changes
1423         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1424         * src/SDCCmem.h,
1425         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1426           (allocDefault): put absolute, initialized globals in them
1427         * support/regression/tests/absolute.c: added absolute bdata test
1428         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1429
1430 2006-12-20 Borut Razem <borut.razem AT siol.net>
1431
1432         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1433         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1434           added regression test for bug #982435
1435
1436 2006-12-18 Borut Razem <borut.razem AT siol.net>
1437
1438         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1439         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1440           small cosmetic changes
1441         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1442         * support/regression/tests/bug-1351710.c: added regression test
1443
1444 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1445
1446         * doc/sdccman.lyx: added the long missed iCode table
1447           "<where is figure II?>", added links to wiki
1448
1449 2006-12-17 Borut Razem <borut.razem AT siol.net>
1450
1451         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1452           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1453           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1454           unified table driven pragma handling, pragma argument type checking
1455         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1456           current one - version 1.1.3
1457         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1458
1459 2006-12-13 Raphael Neider <rneider AT web.de>
1460
1461         * src/pic/device.h: removed AssignedMemory structure and macros
1462         * src/pic/device.c: removed global finalMapping (linker assigns
1463             memory locations),
1464           (register_map): add SFRs to remembered memRanges
1465           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1466           assignFixedRegisters,assignRelocatableRegisters): removed,
1467           (setMaxRAM,validAddress): adapted accordingly,
1468           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1469             reasonably sized sharebanks,
1470         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1471           (allDefsOutOfRange): removed unused code,
1472         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1473             handling
1474         * src/pic/pcode.c (register_reassign): removed recursion warning,
1475             fired far too often,
1476         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1477             to use existing pic14_stringInSet() to avoid duplicate symbols,
1478             tidied up the code a bit,
1479           (pic14printLocals): added in symmetry to printExterns, replaces
1480             writeUsedRegs more or less,
1481           (picglue): call new pic14_printLocals(),
1482         * device/include/pic/pic*.h: removed #pragma memmap directives,
1483             information gathered from include/pic/pic14devices.txt
1484         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1485
1486 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1487
1488         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1489
1490 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1491
1492         * device/include/mcs51/cc2430.h: fixed missing ';'
1493
1494 2006-12-10 Raphael Neider <rneider AT web.de>
1495
1496         * device/lib/pic16/libc/stdio/vfprintf.c,
1497         * device/lib/pic16/libc/stdio/printf_small.c,
1498         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1499           char arguments, as char varargs are cast to int by the caller,
1500           hopefully fixes #1604915 (other device libraries are still affected)
1501
1502 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1503
1504         * src/mcs51/ralloc.c (packRegsForAssign),
1505         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1506
1507 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1508
1509         * device/include/malloc.h: removed init_dynamic_memory
1510         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1511           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1512         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1513         * device/lib/libsdcc.lib,
1514         * device/lib/Makefile.in,
1515         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1516         * doc/sdccman.lyx: documented use of new _heap.c
1517         * support/regression/tests/malloc.c: removed init_dynamic_memory
1518         * src/cdbFile.c(spacesToUnderscores): new function,
1519           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1520           1068030
1521         * device/include/tinibios.h: removed defines for putchar and getchar
1522         * device/lib/ds390/Makefile.in: added putchar.c
1523         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1524
1525 2006-12-09 Borut Razem <borut.razem AT siol.net>
1526
1527         * support/cpp2/sdcc.h: prevent multiple inclusion
1528         * support/cpp2/options.h: deleted
1529
1530 2006-12-08 Borut Razem <borut.razem AT siol.net>
1531
1532         * support/cpp2/sdcc.h: removed x*alloc() macros
1533         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1534         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1535           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1536         * support/cpp2/system.h: moved #include "sdcc.h"
1537         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1538           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1539           added
1540         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1541           -funsigned-char options
1542         * support/cpp2/sdcppmain.c: fixed bug 1611411
1543
1544 2006-12-07 Borut Razem <borut.razem AT siol.net>
1545
1546         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1547           directive
1548
1549 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1552         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1553         * doc/sdccman.lyx,
1554         * .version: bumped to 2.6.2 because a) it's been a while
1555           b) the linker sources have moved c) the preprocessor is upgraded
1556
1557 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1558
1559         * support/regression/tests/snprintf.c: some checks
1560         * lib/src/printf_large.c: %bc: read char instead of int from stack
1561
1562 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1563
1564         * device/include/mcs51/cc2430.h: inserted _XPAGE
1565
1566 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1567
1568         * device/include/mcs51/cc2430.h: added
1569
1570 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1571
1572         * device/include/asm/default/features.h,
1573         * device/include/asm/ds390/features.h,
1574         * device/include/mcs51/at89s53.h,
1575         * device/include/ser.h,
1576         * device/include/ser_ir.h,
1577         * device/include/serial.h: changed keywords to double underscore variants,
1578           fixes bug 1590261 some more, thanks Steven Borley
1579
1580 2006-12-01 Raphael Neider <rneider AT web.de>
1581
1582         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1583           but emit warning (recursion is not supported for pic14)
1584
1585 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1586
1587         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1588         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1589
1590 2006-11-30 Raphael Neider <rneider AT web.de>
1591
1592         * src/pic/device.c (dump_sfr): always emit symbols
1593         * src/pic/glue.c (pic14printPublics): fixed typo
1594
1595 2006-11-30 Raphael Neider <rneider AT web.de>
1596
1597         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1598           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1599           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1600            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1601            a sharebank, use a non-shared bank for the stack if none available
1602         * src/pic/device.h (struct memRange): added linked list next field,
1603           added prototypes for above functions
1604         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1605           (typeRegWithIdx): accept fixed and unfixed stack registers
1606         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1607           the stack, handle shared and banked stack (except for WSAVE),
1608           (insertBankSel): removed useless optimization (will never fire),
1609           (FixRegisterBanking): added optimization for devices with only one
1610           possibly aliased bank of memory, like 16f84
1611         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1612           devices have no SHAREBANK in the linker script
1613         * device/include/pic/pic14devices.txt: documented memmap
1614         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1615
1616 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1617
1618         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1619           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1620           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1621           genhc08Code): switched most of the D (debug) macros to DD (detailed
1622           debug) macros to better control clutter in the generated .asm file.
1623         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1624           genRightShift): fixed bug with non-constant bit shift stored to
1625           a volatile result (SF Open Discussion forum thread #1616749).
1626           Single byte case is not yet optimized.
1627
1628 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1629
1630         * device/include/asm/mcs51/features.h,
1631         * device/include/malloc.h,
1632         * device/include/stdio.h: changed keywords to double underscore variants,
1633           fixes bug 1590261
1634
1635 2006-11-27 Borut Razem <borut.razem AT siol.net>
1636
1637         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1638           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1639           support/cpp2/output.h, support/cpp2/cppinit.c,
1640           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1641           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1642           support/cpp2/cppdefault.c, support/cpp2/system.h,
1643           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1644           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1645           support/cpp2/prefix.c, support/cpp2/except.h,
1646           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1647           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1648           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1649           support/cpp2/version.c, support/cpp2/cppmain.c,
1650           support/cpp2/version.h, support/cpp2/hashtable.c,
1651           support/cpp2/cpperror.c:
1652           synchronized with GCC CPP release version 3.3.6,
1653           the latest where cppmain.c still exists.
1654         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1655           support/cpp2/sdcppinit.c: added
1656
1657 2006-11-27 Borut Razem <borut.razem AT siol.net>
1658
1659         * support/cpp2/cpplex.c:
1660           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1661           synchronization
1662         * support/cpp2/cpplib.c: removed definitions of unused variables
1663
1664 2006-11-26 Borut Razem <borut.razem AT siol.net>
1665
1666         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1667           since they are redefined by macros in support/cpp2/sdcc.h
1668         * support/cpp2/sdcc.h: x*alloc macro redefinition
1669
1670 2006-11-25 Borut Razem <borut.razem AT siol.net>
1671
1672         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1673           support/cpp2/configure, support/cpp2/Makefile.in,
1674           support/cpp2/cppfiles.c, support/cpp2/output.h,
1675           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1676           support/cpp2/config.h, support/cpp2/cpplib.h,
1677           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1678           support/cpp2/cppdefault.c, support/cpp2/config.in,
1679           support/cpp2/system.h, support/cpp2/cpplex.c,
1680           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1681           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1682           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1683           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1684           support/cpp2/configure.in, support/cpp2/intl.h,
1685           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1686           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1687           support/cpp2/version.c, support/cpp2/cppmain.c,
1688           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1689           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1690           support/cpp2/cpperror.c,
1691           support/cpp2/libiberty/safe-ctype.c,
1692           support/cpp2/libiberty/safe-ctype.h,
1693           support/cpp2/libiberty/splay-tree.c,
1694           support/cpp2/libiberty/obstack.c,
1695           support/cpp2/libiberty/lbasename.c,
1696           support/cpp2/libiberty/splay-tree.h,
1697           support/cpp2/libiberty/obstack.h:
1698           synchronized with GCC CPP release version 3.2.3,
1699           the latest before integration of cpp into gcc
1700         * support/cpp2/except.h, support/cpp2/line-map.c,
1701           support/cpp2/line-map.h,
1702           support/cpp2/libiberty/hex.c,
1703           support/cpp2/libiberty/concat.c,
1704           support/cpp2/libiberty/filenames.h: added
1705         * support/cpp2/intl.c: deleted
1706
1707 2006-11-24 Borut Razem <borut.razem AT siol.net>
1708
1709         * src/SDCC.y: enabled compilation of empty source file
1710         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1711           "ISO C forbids an empty source file"
1712         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1713           if all the code is ifdefed out.
1714
1715 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1716
1717         * src/hc08/gen.c (genPcall): fix for bug #1601032
1718
1719 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1720
1721         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1722         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1723         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1724         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1725         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1726         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1727         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1728         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1729         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1730         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1731         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1732         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1733         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1734         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1735         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1736           Renamed to all upper case as per the standard set by SiLabs
1737
1738 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1739
1740         * device/include/mcs51/C8051F520.h: new, added
1741         * device/include/mcs51/compiler.h: added link about predefined macros
1742
1743 2006-11-23 Raphael Neider <rneider AT web.de>
1744
1745         * src/regression/Makefile: add -L path to fresh library
1746         * src/regression/simulate: emphasize FAILED output
1747         * src/regression/create_stc: output _failures from gpsim
1748         * src/regression/compare4.c,
1749         * src/regression/rotate6.c: fixed char literals,
1750           all compile, all run =8-D
1751
1752         * src/pic/pcode.h: added isPCASMDIR macro
1753         * src/pic/gen.c (genAnd): fixed bit offset
1754         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1755           packBits): unified register numbering schemes,
1756           (newReg): do not insert stack registers into hash table,
1757           (initStack): unpinned pseudo stack, simplified,
1758           (typeRegWithIdx): fixed retrieval of stack registers,
1759         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1760           (pCodeReplace): removed invalid assertion,
1761           (insertPCodeInstruction): fixed newly added labels,
1762           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1763           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1764           DumpFlow): removed unsed (broken?) code,
1765           (insertBankSel): prevent STATUS from being BANKSELed,
1766           (FixRegisterBanking): rewritten from scratch, implemented generic
1767             optimizations (suppress BANKSELs to same register and to registers
1768             present in all banks),
1769           (AnalyzeBanking): update flow after BANKSELection
1770
1771         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1772             sharebank, let linker place it, mark STKxx symbols as emitted
1773
1774 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1775
1776         * src/regression/arrays.c,
1777         * src/regression/bank1.c,
1778         * src/regression/bool2.c,
1779         * src/regression/compare7.c,
1780         * src/regression/compare8.c,
1781         * src/regression/compare9.c,
1782         * src/regression/compare10.c,
1783         * src/regression/configword.c,
1784         * src/regression/for.c,
1785         * src/regression/mult1.c,
1786         * src/regression/pointer1.c,
1787         * src/regression/rotate6.c,
1788         * src/regression/string1.c,
1789         * src/regression/struct1.c,
1790         * src/regression/Makefile: make PIC14 regression tests run again
1791           (3 fail, 6 won't compile)
1792
1793 2006-11-21 Raphael Neider <rneider AT web.de>
1794
1795         * device/include/pic16/pic18f4550.h,
1796         * device/include/pic16/pic18f4455.h,
1797         * device/lib/pic16/libdev/pic18f4550.c,
1798         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1799         * configure.in: removed superfluous closing bracket
1800
1801 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1802
1803         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1804           always positive.
1805
1806 2006-11-21 Raphael Neider <rneider AT web.de>
1807
1808         * src/pic/device.{c,h}: added pic14_getPIC()
1809         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1810           (genAnd): added PIC code for one case, fixes #1597044
1811         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1812           SFRs that are present in all banks (e.g., STATUS)
1813
1814 2006-11-20 Raphael Neider <rneider AT web.de>
1815
1816         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1817           INCFSZ/INCFSZW and declared them as changing Z bit,
1818           (insertPCodeInstruction): correctly invert the above instructions,
1819           fixes #1599333,
1820           (DoBankSelect): don't panic on po_immediates
1821
1822 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1823
1824         * as/link/aslink.h,
1825         * as/link/mcs51/lkihx.c (newArea),
1826         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1827         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1828
1829 2006-11-11 Raphael Neider <rneider AT web.de>
1830
1831         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1832           bitfield symbols, fixes #1579535 (once more...).
1833
1834 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1835
1836         * support/regression/generate-cases.py,
1837         * support/regression/fwk/include/testfwk.h,
1838         * support/regression/fwk/lib/testfwk.c: used code pointers,
1839           (about 50kByte less code generated for mcs51)
1840
1841 2006-11-06 Borut Razem <borut.razem AT siol.net>
1842
1843         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1844           debugger/mcs51/configure: fixed failed check because the function
1845           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1846           who submitted the patch for gpsim.
1847         * debugger/mcs51/configure.in: removed the result message
1848         * debugger/mcs51/Makefile.in: fixed the config.status warning
1849           "... seems to ignore the --datarootdir setting"
1850
1851 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1852
1853         * device/include/mcs51/c8051f020.h,
1854         * device/include/mcs51/c8051f040.h,
1855         * device/include/mcs51/c8051f060.h,
1856         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1857         * src/z80/gen.c (gencjneshort),
1858         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1859
1860 2006-10-31 Borut Razem <borut.razem AT siol.net>
1861
1862         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1863           debugger/mcs51/configure: get readline version
1864
1865 2006-10-30 Borut Razem <borut.razem AT siol.net>
1866
1867         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1868         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1869           debugger/mcs51/configure: locate readline even when cross compiling
1870         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1871
1872 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1873
1874         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1875           serial port.
1876
1877 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1878
1879         * device/include/malloc.h,
1880         * device/lib/calloc.c,
1881         * device/lib/free.c,
1882         * device/lib/malloc.c,
1883         * device/lib/realloc.c: moved definition of struct into sources
1884         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1885
1886 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1887
1888         * as/asx8051.dsp: corrected output directories
1889         * as/link/hc08: new directory for hc08 linker
1890         * as/hc08/aslink.h,             as/link/aslink.h,
1891         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1892         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1893         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1894         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1895         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1896         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1897         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1898         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1899         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1900         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1901         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1902         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1903         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1904         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1905         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1906         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1907         * as/link/hc08/conf.mk,
1908         * configure,
1909         * configure.in,
1910         * Makefile.in,
1911         * sdcc.dsw: moved hc08 linker to as/link/hc08
1912         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1913         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1914         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1915         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1916         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1917         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1918         * as/link/mcs51/aslink.dsp,
1919         * as/link/mcs51/Makefile.in: factored out the common files
1920         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1921         * as/clean.mk: extra cleaning common files
1922         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1923         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1924         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1925
1926 2006-10-29 Raphael Neider <rneider AT web.de>
1927
1928         * src/pic/ralloc.c (newReg): create aliases for registers with
1929           multiple names to fix #1579535 and #1584001,
1930           (regWithIdx,dirregWithName): resolve aliases on lookup
1931         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1932           bankselect
1933         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1934           to prevent build errors on small devices
1935
1936 2006-10-28 Raphael Neider <rneider AT web.de>
1937
1938         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1939           assumption within interrupt handlers, fixes #1584940
1940         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1941           "emitted" to avoid emitting them again in udata
1942
1943 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1944
1945         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1946         Removed.
1947
1948 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1949
1950         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1951         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1952         on/off CR to CRLF conversion.
1953
1954 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1955
1956         * doc/sdccman.lyx: updated IRQ section
1957
1958 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1959
1960         * device/lib/serial_io.c: removed
1961         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1962         replacements for serial_io.c
1963
1964 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1965
1966         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1967
1968 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1969
1970         * device/lib/serial_io.c: Default putchar() and getchar() for
1971           mcs51 uses serial port.
1972
1973 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1974
1975         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1976
1977 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1978
1979         * support/regression/ports/mcs51/support.c: smaller
1980         _sdcc_external_startup()
1981         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1982
1983 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1984
1985         * device/lib/gbz80/crt0.s,
1986         * device/lib/gbz80/crt0_rle.s,
1987         * device/lib/gbz80/div.s,
1988         * device/lib/gbz80/fstubs.s,
1989         * device/lib/gbz80/heap.s,
1990         * device/lib/gbz80/mul.s,
1991         * device/lib/gbz80/putchar.s,
1992         * device/lib/gbz80/stubs.s,
1993         * device/lib/z80/crt0.s,
1994         * device/lib/z80/crt0_rle.s,
1995         * device/lib/z80/div.s,
1996         * device/lib/z80/fstubs.s,
1997         * device/lib/z80/heap.s,
1998         * device/lib/z80/mul.s,
1999         * device/lib/z80/putchar.s,
2000         * device/lib/z80/stubs.s: reverted, I was mistaken
2001
2002 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2003
2004         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
2005         * support/regression/ports/mcs51/support.c: removed race
2006         condition on TI in _putchar allowing to use serial port mode 0
2007
2008 2006-10-20 Borut Razem <borut.razem AT siol.net>
2009
2010         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
2011
2012 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2013
2014         * device/lib/gbz80/crt0.s,
2015         * device/lib/gbz80/crt0_rle.s,
2016         * device/lib/gbz80/div.s,
2017         * device/lib/gbz80/fstubs.s,
2018         * device/lib/gbz80/heap.s,
2019         * device/lib/gbz80/mul.s,
2020         * device/lib/gbz80/putchar.s,
2021         * device/lib/gbz80/stubs.s,
2022         * device/lib/z80/crt0.s,
2023         * device/lib/z80/crt0_rle.s,
2024         * device/lib/z80/div.s,
2025         * device/lib/z80/fstubs.s,
2026         * device/lib/z80/heap.s,
2027         * device/lib/z80/mul.s,
2028         * device/lib/z80/putchar.s,
2029         * device/lib/z80/stubs.s: removed all leading underscores from area names
2030
2031 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
2032
2033         * support/regression/ports/mcs51/support.c: use highest baudrate so the
2034           regression tests are not waiting in the simulator for simulated
2035           transmission of debug output
2036
2037 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2038
2039         * device/lib/printf_large.c: slightly smaller
2040         * doc/sdccman.lyx: do not use spaces within html links
2041
2042 2006-10-16 Borut Razem <borut.razem AT siol.net>
2043
2044         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
2045           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
2046           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
2047           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
2048           debugger/mcs51/configure:
2049           [ 1185668 ] add gnu readline support to sdcdb - enabled
2050
2051 2006-10-16 Raphael Neider <rneider AT web.de>
2052
2053         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
2054           fixes #1577882, removes close to all banking optimizations
2055
2056 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
2057
2058         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
2059           variables in code memory
2060         * support/regression/tests/absolute.c: added test for this
2061
2062 2006-10-15 Raphael Neider <rneider AT web.de>
2063
2064         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
2065           devices,
2066           (BankSelect): emit BANKSEL before touching linker-placed regs,
2067           fixes #1570934
2068
2069 2006-10-10 Raphael Neider <rneider AT web.de>
2070
2071         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
2072         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
2073         * src/pic/main.c (_pic14_parseOptions),
2074         * src/pic/main.h: mostly reverted to previous state, now use results
2075             from SDCCmain.c's argument parsing
2076
2077 2006-10-10 Borut Razem <borut.razem AT siol.net>
2078
2079         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
2080           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
2081           [ 1185668 ] add gnu readline support to sdcdb -
2082           prepared for READLINE, not enabled yet,
2083           thanks to <tal.bav AT gmail.com>
2084
2085 2006-10-10 Raphael Neider <rneider AT web.de>
2086
2087         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
2088         * src/pic16/devices.inc,
2089         * device/include/pic16 (pic18f[24]620.h),
2090         * device/include/pic18fregs.h,
2091         * device/lib/pic16/pics.all,
2092         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
2093             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
2094             Gary Plumbridge and Anton Strobl
2095
2096 2006-10-10 Raphael Neider <rneider AT web.de>
2097
2098         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
2099           --stack-siz=NUM options to configure the argument passing stack
2100         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
2101         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
2102           (pic14_getSharebankSize): obey --stack-siz=NUM,
2103           (pic14_getSharebankAddress): obey --stack-loc=NUM
2104
2105 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2106
2107         * doc/sdccman.lyx: added to the manual
2108         * doc/figures/ddd_example.png: added (neither pdflatex nor
2109         most browsers seem to like the .eps file)
2110
2111 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2112
2113         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
2114         to /tmp and /var/tmp acc. LSB
2115         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
2116         RESULT_TYPE_IFX
2117         * support/regression/tests/onebyte.c: added test
2118
2119 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2120
2121         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
2122
2123 2006-10-05 Borut Razem <borut.razem AT siol.net>
2124
2125         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
2126           thanks to dfulab:
2127           - sdcc.dsw: changed property eol-style to CRLF
2128           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
2129
2130 2006-10-04 Raphael Neider <rneider AT web.de>
2131
2132         * device/include/pic/{pic16f84.h,pic16f84a.h},
2133         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
2134           from patch #1522504, thanks to Robas Teodor
2135
2136 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
2137
2138         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
2139           fixes bug 1566015
2140
2141 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
2142
2143         * src/pic16/glue.c (pic16emitMaps),
2144         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
2145         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
2146         * device/lib/pic16/libc/string/memcpypgm2ram.c,
2147         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
2148           Philipp Krause
2149         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
2150         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
2151
2152 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2153
2154         * support/librarian/sdcclib.c: Added option -l.
2155         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
2156           usage totals.
2157         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
2158           using Windows command prompt.
2159
2160 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2161
2162         * device/lib/libsdcc.lib: added module rand
2163         * src/ds390/ralloc.c (rematStr),
2164         * src/hc08/ralloc.c (rematStr),
2165         * src/mcs51/ralloc.c (rematStr),
2166         * src/z80/ralloc.c (rematStr): made output more consistent
2167         * src/mcs51/gen.c: cosmetic changes
2168
2169 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
2170
2171         * src/port.h: added mem.cabs_name to PORT
2172         * src/ds390/main.c,
2173         * src/hc08/main.c,
2174         * src/mcs51/main.c,
2175         * src/pic16/main.c,
2176         * src/pic/main.c,
2177         * src/xa51/main.c,
2178         * src/z80/main.c: added cabs_name initializers
2179         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
2180           constants
2181           (emitMaps): emit absolutes in code memory into cabs_name
2182         * src/SDCCmem.c,
2183         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
2184         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
2185         * support/regression/fwk/include/testfwk.h: added define for at
2186         * support/regression/tests/absolute.c: added, new
2187
2188 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
2189
2190         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
2191           optimizations, see also patch 887161 by Stas Sergeev
2192         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
2193           to be necessary anymore,
2194           (102, 103, 104, 127): renamed all occurances of bp to _bp
2195
2196 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2197
2198         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2199           thanks Weston T. Schmidt for patch 1555221
2200         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2201         * src/SDCCicode.c(geniCodeMultiply): small optimization
2202
2203 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * device/include/stdlib.h: added rand prototypes
2206         * device/lib/rand.c: new, added
2207         * device/lib/Makefile.in: added rand.c
2208         * src/z80/peeph.def,
2209         * src/z80/peeph-gbz80.def,
2210         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2211
2212 2006-09-20 Raphael Neider <rneider AT web.de>
2213
2214         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2215
2216 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2217
2218         * as/link/aslink.h: cosmetic changes
2219         * as/link/mcs51/Makefile.in,
2220         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2221
2222 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2223
2224         * as/link/aslink.h,
2225         * as/link/mcs51/aslink.h,
2226         * as/link/z80/aslink.h: merged and moved to as/link/
2227         * as/link/lkstore.c,
2228         * as/link/mcs51/lkstore.c: moved to as/link/
2229         * as/link/clean.mk: remove *.o
2230         * as/link/mcs51/alloc.h: deleted
2231         * as/link/mcs51/lkarea.c: added lnksect prototype
2232         * as/link/mcs51/lkdata.c,
2233         * as/link/mcs51/lklex.c,
2234         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2235         * as/link/mcs51/lkmem.c,
2236         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2237         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2238         * as/link/mcs51/aslink.dsp,
2239         * as/link/mcs51/Makefile.aslink,
2240         * as/link/mcs51/Makefile.bcc,
2241         * as/link/mcs51/Makefile.in: updated for moved files
2242         * as/link/z80/lkarea.c,
2243         * as/link/z80/lkhead.c,
2244         * as/link/z80/lklex.c,
2245         * as/link/z80/lklibr.c,
2246         * as/link/z80/lklist.c,
2247         * as/link/z80/lkmain.c,
2248         * as/link/z80/lkrloc.c,
2249         * as/link/z80/lksym.c: synced with mcs51
2250         * as/link/z80/lkdata.c,
2251         * as/link/z80/lkeval.c,
2252         * as/link/z80/lkihx.c,
2253         * as/link/z80/lks19.c: cosmetic changes
2254         * as/link/z80/Makefile.in,
2255         * as/link/z80/linkgbz80.dsp,
2256         * as/link/z80/linkz80.dsp: updated for moved files
2257
2258 2006-09-16 Borut Razem <borut.razem AT siol.net>
2259
2260         * debugger/mcs51/sdcdb.c: partially fixed
2261           [ 1203664 ] sdcdb fails to open files w. two "." periods
2262         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2263           debugger/mcs51/symtab.h: fixed indenting
2264         * configure.in, configure: up to date with latest Maarten's changes
2265
2266 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2267
2268         as/link/mcs51
2269         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2270         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2271         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2272         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2273         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2274         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2275         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2276         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2277         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2278         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2279         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2280         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2281         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2282         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2283         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2284         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2285         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2286         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2287         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2288         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2289         as/link/mcs51/alloc.h,
2290         as/link/mcs51/clean.mk,
2291         as/link/mcs51/conf.mk,
2292         as/link/mcs51/Makefile.bcc,
2293         as/link/mcs51/Makefile.in,
2294         as/link/mcs51/readme.390,
2295         as/link/mcs51/strcmpi.c,
2296         as/link/mcs51/strcmpi.h,
2297         as/mcs51/clean.mk,
2298         as/mcs51/Makefile.bcc,
2299         as/mcs51/Makefile.in,
2300         configure,
2301         Makefile.in,
2302         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2303
2304 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2305
2306         * as/link,
2307         * as/link/Makefile.in,
2308         * as/link/z80/linkgbz80.dsp,
2309         * as/link/z80/linkz80.dsp,
2310         * configure,
2311         * link,
2312         * link/clean.mk,
2313         * link/Makefile.in,
2314         * link/README,
2315         * link/z80,
2316         * link/z80/aslink.h,
2317         * link/z80/clean.mk,
2318         * link/z80/conf.mk,
2319         * link/z80/linkgbz80.dsp,
2320         * link/z80/linkz80.dsp,
2321         * link/z80/lkarea.c,
2322         * link/z80/lkdata.c,
2323         * link/z80/lkeval.c,
2324         * link/z80/lkgb.c,
2325         * link/z80/lkgg.c,
2326         * link/z80/lkhead.c,
2327         * link/z80/lkihx.c,
2328         * link/z80/lklex.c,
2329         * link/z80/lklibr.c,
2330         * link/z80/lklist.c,
2331         * link/z80/lkmain.c,
2332         * link/z80/lkrloc.c,
2333         * link/z80/lks19.c,
2334         * link/z80/lksym.c,
2335         * link/z80/Makefile.in,
2336         * Makefile.in,
2337         * sdcc.dsw: moved link/ to as/link/
2338
2339 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2340
2341         * as/mcs51/i51mch.c (machine): fixed warning
2342
2343 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2344
2345         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2346
2347 2006-09-09 Borut Razem <borut.razem AT siol.net>
2348
2349         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2350           sdcdb WIN32 native port
2351         * src/clean.mk: fixed
2352
2353 2006-09-08 Borut Razem <borut.razem AT siol.net>
2354
2355         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2356
2357 2006-09-08 Raphael Neider <rneider AT web.de>
2358
2359         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2360         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2361             to gplink to disable processor mismatch warning and to allow
2362             the use of devices with only aliased (shared) memory banks,
2363           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2364
2365 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2366
2367         * doc/sdccman.lyx: Some re-formating plus example on using
2368           #pragma preproc_asm +/-
2369
2370 2006-09-07 Borut Razem <borut.razem AT siol.net>
2371
2372         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2373           section
2374
2375 2006-09-06 Borut Razem <borut.razem AT siol.net>
2376
2377         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2378           line at sdcc.nsi:153
2379         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2380
2381 2006-09-05 Borut Razem <borut.razem AT siol.net>
2382
2383         * configure.in, configure: support for winsock2
2384         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2385           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2386           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2387           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2388           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2389
2390 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2391
2392         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2393           and OP_DEFS
2394         * support/regression/tests/bug1551947.c: new, added
2395         * src/SDCCsymt.h: strings are char* not byte*
2396
2397 2006-09-05 Raphael Neider <rneider AT web.de>
2398
2399         * device/lib/pic16/libdev/pic18f4550.c,
2400           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2401             declarations/definitions from patch #1520949
2402
2403 2006-09-05 Raphael Neider <rneider AT web.de>
2404
2405         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2406           byte-aligned bitfields, fixes #1539278
2407
2408 2006-09-05 Raphael Neider <rneider AT web.de>
2409
2410         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2411           fixes #1544120
2412
2413 2006-09-04 Borut Razem <borut.razem AT siol.net>
2414
2415         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2416         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2417           -mno-cygwin is a part of the compiler name
2418         * support/scripts/sdcc_mingw32: don't disable ucsim
2419
2420 2006-09-03 Borut Razem <borut.razem AT siol.net>
2421
2422         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2423         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2424
2425 2006-09-03 Raphael Neider <rneider AT web.de>
2426
2427         * src/pic/ralloc.c,
2428         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2429           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2430           fixes #1550049
2431
2432 2006-09-01 Borut Razem <borut.razem AT siol.net>
2433
2434         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2435           to make ppc-osx happy
2436
2437 2006-08-31 Borut Razem <borut.razem AT siol.net>
2438
2439         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2440         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2441         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2442         * support/regression/ports/ds390/spec.mk,
2443           support/regression/ports/mcs51/spec.mk,
2444           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2445           To run regression tests in mingw environment:
2446           make DEV_NULL=NUL CC=gcc
2447
2448 2006-08-30 Borut Razem <borut.razem AT siol.net>
2449
2450         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2451           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2452           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2453           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2454           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2455           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2456           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2457           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2458           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2459           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2460           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2461           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2462           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2463           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2464           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2465           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2466           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2467           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2468           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2469           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2470           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2471           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2472           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2473           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2474           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2475           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2476           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2477           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2478           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2479           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2480           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2481           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2482           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2483           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2484           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2485           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2486           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2487           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2488           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2489           ucsim WIN32 native port
2490
2491 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2492
2493         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2494
2495 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2496
2497         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2498         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2499
2500 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2501
2502         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2503         * support/regression/tests/bug1546986.c: new, added
2504         * as/mcs51/.cvsignore,
2505         * debugger/mcs51/.cvsignore,
2506         * src/.cvsignore: deleted
2507
2508 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2509
2510         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2511           definitions)
2512
2513 2006-08-20 Borut Razem <borut.razem AT siol.net>
2514
2515         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2516           removed cl_listen_console::match(), cl_console::match(),
2517           restructured cl_commander::proc_input()
2518
2519 2006-08-16 Borut Razem <borut.razem AT siol.net>
2520
2521         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2522           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2523           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2524
2525 2006-08-14 Borut Razem <borut.razem AT siol.net>
2526
2527         * support/regression/Makefile.in,
2528           support/regression/ports/pic14/gpsim.cmd,
2529           support/regression/ports/pic14/spec.mk,
2530           support/regression/ports/pic14/support.c:
2531           added pic14 regression test
2532
2533 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2534
2535         * as/doc/asxhtm.html: documented changed ABS behaviour
2536         * as/doc/README: fixed some typos
2537
2538 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2539
2540         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2541           not defined on host
2542
2543 2006-08-12 Borut Razem <borut.razem AT siol.net>
2544
2545         * support/regression/fwk/include/testfwk.h,
2546           support/regression/fwk/lib/testfwk.c,
2547           support/regression/generate-cases.py,
2548           support/regression/Makefile.in:
2549           regression test framework does not depend on function pointers and
2550           variable arguments
2551
2552 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2553
2554         * device/include/stddef.h: c temporary hack to fix bug 1518273
2555
2556 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2557
2558         * device/include/mcs51/cc2510fx.h: added
2559         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2560           to projects.
2561
2562 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2563
2564         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2565         * as/z80/Makefile.in: added strcmpi.c
2566         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2567         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2568
2569 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2570
2571         * device/lib/gbz80/asm_strings.s,
2572         * device/lib/gbz80/crt0_rle.s,
2573         * device/lib/gbz80/div.s,
2574         * device/lib/gbz80/mul.s,
2575         * device/lib/gbz80/shift.s,
2576         * device/lib/z80/asm_strings.s,
2577         * device/lib/z80/crt0_rle.s,
2578         * device/lib/z80/div.s,
2579         * device/lib/z80/mul.s,
2580         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2581           flags which are all upper case
2582
2583 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2584
2585         * as/z80/asm.h: made CASE_SENSITIVE 1
2586         * link/z80/aslink.h: made CASE_SENSITIVE 1
2587         * src/z80/gen.c (throughout): made all conditionals upper case
2588         * support/regression/tests/bug1503067.c: new
2589
2590 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2591
2592         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2593           (shiftIntoPair): added case 2 for PAIR_IY,
2594           (setupToPreserveCarry): replaced parameters with iCode and check if
2595            PAIR_DE is in use to fix bug 1399290,
2596           (genPlus, genMinus): updated call to setupToPreserveCarry
2597         * support/regression/tests/bug1399290.c: new
2598
2599 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2600
2601         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2602         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2603         * src/ds390/gen.c (shiftRLong),
2604         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2605         * src/mcs51/gen.c (sameReg): changed to sameByte,
2606           (xch_a_aopGet): new,
2607           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2608            shiftRLong): fixed bug 1533966
2609         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2610           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2611         * support/regression/Makefile.in: disabled z80, enabled ucz80
2612         * support/regression/tests/float_trans.c: enabled test for z80 and host
2613         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2614
2615 2006-08-01 Borut Razem <borut.razem AT siol.net>
2616
2617         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2618           comparison is always false due to limited range of data type
2619           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2620
2621 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2622
2623         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2624         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2625         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2626         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2627
2628 2006-07-31 Borut Razem <borut.razem AT siol.net>
2629
2630         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2631           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2632           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2633           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2634           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2635           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2636           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2637           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2638           enable ucsim mingw compilation. Serial port is disabled,
2639           since it uses termios.h API, which is not available on native
2640           WIN32
2641
2642 2006-07-31 Borut Razem <borut.razem AT siol.net>
2643
2644         * Small Device C Compiler 2.6.0 released
2645         * support/scripts/sdcc.nsi: added FULL_DOC option
2646         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2647
2648 2006-07-28 Borut Razem <borut.razem AT siol.net>
2649
2650         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2651         * doc/INSTALL.txt: updated
2652
2653 2006-07-27 Borut Razem <borut.razem AT siol.net>
2654
2655         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2656           device/lib/pic/libdev/Makefile.in: fixed bug
2657           [ 1438354 ] pic libsdcc: distclean doesn't work
2658         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2659           device/lib/pic16/libio/Makefile.in: fixed bug
2660           [ 1438344 ] pic16 lib: clean doesn't work properly
2661         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2662
2663 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2664
2665         * device/lib/pic/libsdcc/fsdiv.c,
2666         * device/lib/pic/libsdcc/fsmul.c,
2667         * device/lib/pic16/libsdcc/float/fsdiv.c,
2668         * device/lib/pic16/libsdcc/float/fsmul.c,
2669         * device/lib/_fsdiv.c,
2670         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2671         * support/regression/tests/bug1520966.c: added
2672         * doc/knownbugs.html: removed [ 1520966 ] from the list
2673
2674 2006-07-25 Borut Razem <borut.razem AT siol.net>
2675
2676         * configure.in, configure, sdccconf_in.h: fixed bug
2677           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2678         * doc/knownbugs.html: removed [ 1519095 ] from the list
2679
2680 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2681
2682         * doc/knownbugs.html: added, contains list of known bugs at release
2683         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2684
2685 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2686
2687         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2688           function registers and corrected defaults with additional warning
2689         * device/lib/malloc.c: cosmetic changes
2690         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2691         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2692           (fillGaps): and used it
2693
2694 2006-07-20 Raphael Neider <rneider AT web.de>
2695
2696         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2697           output unless SDCCPICDEBUG is set
2698         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2699           output if SILENT is set
2700
2701 2006-07-11 Borut Razem <borut.razem AT siol.net>
2702
2703         * doc/README.txt: updated
2704
2705 2006-07-10 Borut Razem <borut.razem AT siol.net>
2706
2707         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2708           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2709           in WIN32 installation
2710         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2711           release candidate 1
2712
2713 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2714
2715         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2716         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2717
2718 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2719
2720         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2721
2722 2006-07-06 Borut Razem <borut.razem AT siol.net>
2723
2724         * support/regression/tests/bitfields.c:
2725           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2726         * support/regression/tests/constantRange.c:
2727           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2728
2729 2006-07-04 Borut Razem <borut.razem AT siol.net>
2730
2731         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2732           src/port.mk,
2733           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2734           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2735           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2736           reverted changes from 2006-07-03
2737         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2738         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2739           added CPPFLAGS, used by the host port
2740
2741 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2742
2743         * support/regression/valdiag/tests/switch.c,
2744         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2745         * support/regression/tests/libmullong.c: fixed for host
2746         * support/regression/ports/host/spec.mk: disable all warnings for host,
2747         SDCC runs with --less-pedantic too
2748
2749 2006-07-03 Borut Razem <borut.razem AT siol.net>
2750
2751         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2752           defined CPPFLAGS
2753         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2754         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2755           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2756           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2757           include ../port.mk
2758         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2759           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2760           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2761           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2762
2763 2006-07-02 Raphael Neider <rneider AT web.de>
2764
2765         * src/pic16/devices.inc,
2766         * device/include/pic16/pic18fregs.h,
2767         * device/include/pic16/pic18f4550.h,
2768         * device/lib/pic16/pics.all,
2769         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2770
2771 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2772
2773         * as/hc08/lkaomf51.c (OutputName),
2774         * as/mcs51/lkaomf51.c (OutputName),
2775         * as/z80/asmain.c (asmbl),
2776         * src/ds390/main.c (asmLineNodeFromLineNode),
2777         * src/hc08/ralloc.c (hc08_assignRegisters),
2778         * src/mcs51/main.c (asmLineNodeFromLineNode),
2779         * src/xa51/ralloc.c (checkRegMask),
2780         * src/xa51/gen.c (emitcode),
2781         * src/z80/gen.c (_emit2),
2782         * src/SDCCast.c (searchLitOp),
2783         * src/SDCCglobl.h,
2784         * support/packihx/packihx.c,
2785         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2786         * src/ds390/gen.c (aopPutUsesAcc),
2787         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2788         * support/regression/tests/libmullong.c (mullong_wrapper),
2789         * src/SDCCsymt.c (powof2),
2790         * src/SDCCast.c,
2791         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2792         * src/SDCCsymt.h: added TYPE_TARGET_*
2793         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2794         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2795         SDCCast because 1) header problems 2) this is the right place
2796         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2797         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2798         prototype
2799
2800 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2801
2802         * src/SDCCicode.h: removed buggy semicolon in unused macro
2803         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2804         search for previous definiton of auto symbols too,
2805         (findPrevUse): fixed logic of emitWarnings
2806
2807 2006-06-26 Raphael Neider <rneider AT web.de>
2808
2809         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2810           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2811
2812 2006-06-25 Raphael Neider <rneider AT web.de>
2813
2814         * device/lib/pic/libm: NEW, added math library functions
2815         * device/lib/pic/libsdcc: NEW; added float support functions
2816         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2817         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2818           NEW, added math related headers
2819         * device/include/asm/pic/features.h: NEW
2820         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2821           (popGet): allow larger offsets for AOP_PCODE,
2822           (genDataPointerSet): handle literals explicitly, more debug output,
2823           (genAssign): fixed for float using aopLiteral ;-)
2824         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2825           GOTO initialisation routine
2826         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2827           flag on registers, fixes #1469043 (local variables do not work)
2828         * src/pic/main.c (_pic14_do_link),
2829         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2830           available
2831
2832 2006-06-25 Borut Razem <borut.razem AT siol.net>
2833
2834         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2835           characters printed (not including the trailing '\0' used to end
2836           output to strings). Problem detected in regression test bug-927659.c.
2837           NOTE: printf() family functions should return int instead
2838           unsigned int!
2839         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2840           specifier are printed as themselves
2841         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2842           support flags, width and precision specifiers
2843
2844 2006-06-24 Borut Razem <borut.razem AT siol.net>
2845
2846         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2847           to the list of sdcc tagrets not supporting bit type
2848         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2849           testfor pic16 due to bug:
2850           [ 1511794 ] pic16: regression test bug-895992.c fails
2851
2852 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2853
2854         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2855         * src/SDCCglue.c (initPointer), fixed bug 1496419
2856         * support/regression/tests/bug1496419.c: new, added
2857
2858 2006-06-22 Borut Razem <borut.razem AT siol.net>
2859
2860         * support/regression/ports/pic16/support.c: use gpsim usart module from
2861           libgpsim_modules library
2862
2863 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2864
2865         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2866         IP0H to IPH0.
2867
2868 2006-06-19 Raphael Neider <rneider AT web.de>
2869
2870         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2871         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2872           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2873           (pic14printExterns,pic14printPublics,pic16printPublics,
2874           pic16_printExterns): use new functions to emit symbols
2875           (picglue,pic16glue): emit publics before emitting externs
2876         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2877           locally defined functions to avoid bug #1443651
2878         * support/regression/tests/bug-716242.c: removed pic16 workaround
2879         * support/regression/ports/pic16/spec.mk: ignore errors during build
2880
2881 2006-06-19 Raphael Neider <rneider AT web.de>
2882
2883         * src/pic/glue.h: added pic14aopLiteral prototype
2884         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2885         * src/pic/gen.c: removed stdint.h dependency
2886           (aopGet): use Safe_strdup()
2887           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2888           (genDataPointerSet): use pic14aopLiteral()
2889         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2890           for pic16; thanks to Bernhard and Maarten
2891
2892 2006-06-18 Borut Razem <borut.razem AT siol.net>
2893
2894         * support/regression/tests/structflexarray.c: flexible array members
2895           not supported by gcc < 3
2896         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2897           GUI tool by default
2898         * src/pic/gen.c: don't include [p]strdin.h on solaris
2899         * support/Util/pstdint.h: addad svn attributes
2900         * support/regression/tests/constantRange.c,
2901           support/regression/tests/rotate.c: include inttypes.h instead
2902           stdint.h on solaris, addad svn attributes
2903
2904 2006-06-18 Raphael Neider <rneider AT web.de>
2905
2906         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2907           int for PIC16
2908         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2909           (pic16_genMinusBits): simplified sign-extension
2910           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2911             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2912             adjusted to correctly handle mixed-signed operands, disabled
2913             now unused multiplciation routines
2914         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2915           (assignResultValue): added argument denoting the size of the result
2916             as returned by the function (fixes upcasts in assigning from
2917             function calls: char foo(); int i = foo();)
2918           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2919             function result to assignResultValue
2920           (genMult): disabled inlined multiplication code
2921           (genDiv): augmented to also handle the modulus operator, fixed to
2922             handle mixed-signed operands correctly
2923           (genMod): simply call genDiv, disabled unused code
2924           (genAssign): fixed missing (sign-)extension on result
2925         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2926             valid char operands, allow signed operands for native code, added
2927             division and modulo operator handling
2928         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2929
2930         As a consequence, onebyte.c (if split into two files) and muldiv.c
2931         pass regression tests.
2932
2933 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2934
2935         * doc/Makefile.in: two runs of makeindex seem needed to get
2936         correct page references in the index of sdccman.pdf
2937         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2938
2939 2006-06-17 Borut Razem <borut.razem AT siol.net>
2940
2941         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2942
2943 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2944
2945         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2946         mentioned ec2drv and paulmon
2947
2948 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2949
2950         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2951           consecutive abs areas
2952           (find_empty_space, allocate_space): added map to handle codemap or
2953            xdatamap,
2954           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2955            absolute idata and xdata
2956         * as/mcs51/lkmem.c (summary2): updated legend
2957
2958 2006-06-16 Raphael Neider <rneider AT web.de>
2959
2960         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2961
2962 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2963
2964         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2965           1208515
2966         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2967
2968 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2969
2970         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2971         value of generic pointers,
2972         * src/avr/main.c,
2973           src/ds390/main.c,
2974           src/hc08/main.c,
2975           src/izt/i186.c,
2976           src/izt/tlcs900h.c,
2977           src/mcs51/main.c,
2978           src/pic/main.c,
2979           src/pic16/main.c,
2980           src/xa51/main.c,
2981           src/z80/main.c: PORT structure, added elements for gp_tags field,
2982         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2983         fields in the PORT structure of each port,
2984         * src/SDCCast.c (decorateType): allow processing of generic pointers
2985         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2986         S_FIXED symbols
2987
2988 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2989
2990         * link/z80/lkgb.c,
2991         * link/z80/lkgg.c,
2992         * src/pic16/gen.c,
2993         * src/pic16/main.c,
2994         * src/pic16/pcode.c,
2995         * src/pic/main.c,
2996         * src/pic/pcoderegs.c,
2997         * src/SDCCicode.c,
2998         * src/SDCCmain.c,
2999         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
3000           bug 1504689 on minGW
3001
3002 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3003
3004         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
3005
3006 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
3007
3008         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
3009
3010 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
3011
3012         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
3013           for optimization
3014
3015 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
3016
3017         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
3018         to a char variable. Fixed bug #1504211
3019         * device/include/pic16/adc.h,
3020         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
3021         and fixed bug #1364390
3022
3023 2006-06-10 Borut Razem <borut.razem AT siol.net>
3024
3025         * CVSROOT: removed the CVS left-over
3026
3027 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3028
3029         * as/hc08/asmain.c (asexit),
3030         * as/hc08/lkmain.c (lkexit),
3031         * as/mcs51/asmain.c (asexit),
3032         * as/mcs51/lkmain.c (lkexit),
3033         * src/SDCCglue.c (DEFSETFUNC),
3034         * src/SDCCmain.c (linkEdit, assemble),
3035         * support/librarian/sdcclib.c (AddRel),
3036           replaced unlink() by standard C remove()
3037         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
3038         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
3039           gatherImplicitVariables): new, added to fix bug 608752,
3040           (createFunction): added gatherImplicitVariables()
3041         * src/SDCCast.h: added createRMW prototype
3042         * src/SDCCsymt.h (struct symbol): added infertype
3043         * support/regression/tests/bug608752.c: new, added
3044
3045 2006-06-10 Raphael Neider <rneider AT web.de>
3046
3047         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
3048           multibyte dummy reads (fixes #1503234)
3049
3050 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
3051
3052         * device/include/mcs51/compiler.h: new, added header file to enable
3053           creating common sfr definition header files for different compilers
3054
3055 2006-06-05 Raphael Neider <rneider AT web.de>
3056
3057         * src/pic16/{pcode.h,genarith.c}:
3058           introduced pCodeOp combining any two pCodeOps (previously only
3059           two register operands could be combined), removed pcop2 from
3060           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
3061         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
3062         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
3063           rewritten to use new PO_TWO_OPS
3064         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
3065         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
3066           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
3067           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
3068           (pic16_get_op): embraced return arg to allow #define return(x),
3069             added new case for combined opcodes
3070           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
3071           (pic16_pCode2str,pic16_getRegFrompCodeOp,
3072            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
3073
3074 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
3075
3076         * src/SDCCval.c (checkConstantRange): added
3077         * src/SDCCval.h: added checkConstantRange
3078         * support/Util/SDCCerr.c,
3079         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
3080         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
3081         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
3082         * src/SDCCast.c (decorateType): added checkConstantRange,
3083         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
3084         can be emitted with the correct always true/false warning,
3085         added optimization for double '!';
3086         result of decorateType() must be assigned back to the tree, because
3087         decorateType() can change the tree
3088         * src/SDCCicode.c (geniCodeLogic),
3089         (geniCodeAssign): replaced new checkConstantRange, added warnings,
3090         (checkConstantRange): removed, it was only a fragment which never
3091         emitted a warning
3092         * src/SDCCsymt.c (computeType): fixed promotion for
3093         "-1 < (unsigned bit) b"
3094         * src/pic/ralloc.c (packRegsForAssign),
3095         * src/pic16/ralloc.c (packRegsForAssign),
3096         * src/hc08/ralloc.c (packRegsForAssign),
3097         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
3098         from mcs51
3099         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
3100         * support/regression/tests/constantRange.c: added
3101         * support/valdiag/tests/constantRange.c: added
3102         * support/valdiag/valdiag.py: added -DPORT_HOST=1
3103
3104 2006-06-02 Borut Razem <borut.razem AT siol.net>
3105
3106         * support/regression/ports/pic16/support.c: increase stack size
3107           to 255 bytes
3108         * support/regression/Makefile.in: sort tests by name so that the
3109           resutlts can be compared on different machines / platforms
3110
3111 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3112
3113         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
3114         * src/ds390/gen.c (emitLabel): new, added,
3115           (genDjnz): fixed stack overflow bug,
3116           (throughout): cosmetic changes to sync with mcs51/gen.c,
3117           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
3118         * src/mcs51/gen.c (genEndFunction): small optimization,
3119           (throughout): cosmetic changes to sync with ds390/gen.c
3120
3121 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
3122
3123         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
3124           (_print_format): fixed printing pointers
3125         * src/mcs51/gen.c (emitLabel, movb): new, added,
3126           (genAssign): small optimization,
3127           (genDjnz): fixed stack overflow bug,
3128           (throughout): replaced sprintf with SNPRINTF,
3129           replaced mcs51_regWithIdx with REG_WITH_INDEX,
3130           replaced emitcode("mov", "b,...") with MOVB(...),
3131           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
3132           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3133         * src/mcs51/peeph.def: added rules 140 and 264
3134         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
3135           so they may get optimized into registers
3136
3137 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
3138
3139         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
3140           immediately when encountered,
3141           (printUsage): always use stderr even on windows
3142
3143 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
3144
3145         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
3146         (processParms): fixed bug #1247551
3147         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
3148         parseCmdLine, main): print '--version' to stdout,
3149         print 'help' to stdout if --help is given,
3150         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
3151         arguments are given; fixed --help
3152
3153 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
3154
3155         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
3156         * support/regression/tests/bug-1493710.c: added
3157
3158 2006-05-27 Borut Razem <borut.razem AT siol.net>
3159
3160         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
3161           static instead auto
3162         * support/regression/ports/pic16/support.c: increase stack size
3163           from default 64 bytes to 128 bytes
3164         * support/regression/tests/staticinit.c,
3165           support/regression/tests/float.c: regression tests fully enabled
3166           for pic16 port by putting the initialized data arrays into the code
3167           section
3168         * support/regression/ports/pic16/spec.mk: don't link default libraries.
3169           This was changed by mistake in the previous version.
3170
3171 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
3172
3173         * src/pic16/gen.c (genFunction, genEndFunction): some
3174         beautifications, fixed bug with falsely restoring FSR2 in large
3175         stack model, thanks to Beau E. Cox for reporting the bug
3176
3177 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3178
3179         * debugger/mcs51/break.c,
3180         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
3181           use %p to print pointers, made address variables unsigned
3182         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
3183         * debugger/mcs51/symtab.c (parseSymbol): must return something
3184         * src/mcs51/gen.c (aopForSym): small optimization,
3185            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
3186           (freeAsmop): added missing break,
3187           (aopPut): removed parameter bvolatile, determine it inside the function,
3188           (saveRegisters, unsaveRegisters): small optimization,
3189           (genIpush): removed pointless check,
3190           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
3191           replaced sprintf with SNPRINTF,
3192           replaced strcpy with strncpyz,
3193           updated aopPut calls,
3194           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3195         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3196
3197 2006-05-24 Borut Razem <borut.razem AT siol.net>
3198
3199         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3200           modification of test for the pic16 port, put the array to the code
3201           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3202
3203 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3204
3205         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3206         * support/Util/pstdint.h: added
3207
3208 2006-05-22 Borut Razem <borut.razem AT siol.net>
3209
3210         * src/regression/Makefile: removed bool2.c test, added -q linker option
3211         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3212           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3213           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3214           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3215           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3216           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3217           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3218           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3219           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3220
3221 2006-05-22 Raphael Neider <rneider AT web.de>
3222
3223         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3224           bug #1492360 (problematic due to generic pointers, see code)
3225
3226 2006-05-22 Borut Razem <borut.razem AT siol.net>
3227
3228         * support/regression/ports/pic16/specs.mk: removed stack size linker
3229           directive
3230         * support/regression/tests/array.c,
3231           support/regression/tests/bitopcse.c,
3232           support/regression/tests/bug-908454.c,
3233           support/regression/tests/malloc.c: modified for pic16 regression test
3234         * support/regression/tests/bitfields.c:
3235           pic16 - excluded bitfileds of size > 8
3236         * support/regression/tests/bp.c: pic16 - reduced data size
3237         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3238         * support/regression/tests/bug-460010.c:
3239           pic16 - used the absolute address the fits in memory
3240         * support/regression/tests/bug-716242.c:
3241           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3242         * support/regression/tests/float.c:
3243           pic16 - excluded - data size too big
3244         * support/regression/tests/onebyte.c:
3245           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3246         * support/regression/tests/shifts.c:
3247           pic16 - function names probably have to differ in first X characters
3248           (gpasm limitation?)
3249         * support/regression/tests/staticinit.c:
3250           pic16 - excluded some tests due error: no target memory available for
3251           section ".idata"
3252
3253 2006-05-22 Borut Razem <borut.razem AT siol.net>
3254
3255         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3256           second try. Thanks Stas Sergeev once more.
3257
3258 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3259
3260         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3261           (genLeftShift, genRightShift): fixed bug 1491627
3262         * src/hc08/peeph.def (rules 7, 8.x): added
3263         * support/regression/tests/shifts.c (ShiftLeftByParam,
3264           ShiftRightByParam, testShiftByParam): added to test variable shifting
3265
3266 2006-05-20 Raphael Neider <rneider AT web.de>
3267
3268         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3269         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3270           (allocReg): add only new registers to dynAllocRegs,
3271           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3272             #1489055, #1445850, and probably #1483693
3273
3274 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3275
3276         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3277         bug in for-loop that didn't emit the last of CONFIG and ID registers
3278
3279 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3280
3281         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3282           with offset
3283         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3284           1489016, 1434401 and 1490124
3285         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3286           1489016, 1434401 and 1490124
3287
3288 2006-05-17 Borut Razem <borut.razem AT siol.net>
3289
3290         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3291           thanks Stas Sergeev
3292
3293 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3294
3295         * device/include/mcs51/P89c51RD2.h,
3296         * device/include/mcs51/P89LPC901.h,
3297         * device/include/mcs51/P89LPC922.h,
3298         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3299
3300 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3301
3302         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3303         to fix missing stack pragma in compiled binary object file,
3304
3305 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3306
3307         * support/packihx/configure.in,
3308         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3309         determine sizeof basic types even while cross compiling
3310
3311 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3312
3313         * src/avr/gen.c (aopop),
3314         * src/ds390/gen.c (aopOp),
3315         * src/hc08/gen.c (aopOp),
3316         * src/mcs51/gen.c (aopop),
3317         * src/pic16/gen.c (pic16_aopOp),
3318         * src/pic/gen.c (aopOp),
3319         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3320         if size of operand is smaller than spill location
3321
3322 2006-05-12 Borut Razem <borut.razem AT siol.net>
3323
3324         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3325           have to have CR/LF line endings even if they are checked out on *nix
3326           or on WIN32 in cygwin binmode
3327
3328 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3329
3330         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3331         * device/include/ds80c390.h: added sfr16 definitions
3332         * src/ds390/gen.c,
3333         * src/ds390/gen.h,
3334         * src/ds390/main.c,
3335         * src/ds390/ralloc.c,
3336         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3337           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3338           bit returning functions
3339         * support/regression/tests/sfr16.c: enabled test on ds390
3340
3341 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3342
3343         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3344         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3345
3346 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3347
3348         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3349         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3350           (cl_address_space constructor): removed expensive initialization,
3351           (cl_address_space::get_cell): extended for late initialization,
3352           (cl_address_space::*): use late initialization,
3353           (cl_address_decoder::activate): removed expensive initialization,
3354           This reduced regression test running time by 25%
3355
3356 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3357
3358         * packihx/,
3359         * configure.in,
3360         * configure,
3361         * sdcc.dsw,
3362         * Makefile.bcc,
3363         * Makefile.in,
3364         * support/packihx/Makefile.in,
3365         * support/packihx/clean.mk,
3366         * support/packihx/Makefile.bcc,
3367         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3368
3369 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3370
3371         * src/SDCCval.c (valNot): fix for regression test failure
3372           of not.c on big endian hosts
3373
3374 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3375
3376         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3377
3378 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3379
3380         * device/lib/mcs51/Makefile.in: changed string comparison operator
3381           to = for POSIX compliance; == is bash extension
3382
3383 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3384
3385         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3386           kosmonaut_pirx
3387
3388 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3389
3390         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3391         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3392         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3393         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3394         bug report #1478657,
3395
3396 2006-05-05 Borut Razem <borut.razem AT siol.net>
3397
3398         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3399           making the html
3400
3401 2006-05-02 Borut Razem <borut.razem AT siol.net>
3402
3403         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3404           create *.ind, which made make to fail if invoked with -j 2
3405
3406 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3407
3408         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3409           Hubert Sack for patch 1479782
3410
3411 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3412
3413         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3414
3415 2006-05-01 Raphael Neider <rneider AT web.de>
3416
3417         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3418           (create_pic): store only prefix-free device name,
3419           (init_pic): check for device names with "16" prefix,
3420           (list_valid_pics),
3421         * src/pic/device.h (struct PIC_device),
3422         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3423             stored device name,
3424         * device/include/pic/pic12f{635,675,629,683}.h,
3425         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3426         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3427         * device/include/pic/pic16f505.h,
3428         * device/lib/pic/libdev/pic16f505.c: removed
3429         * device/include/pic/pic14devices.txt: added support for pic12f
3430             devices, removed unsupported non 16-bit devices
3431             [above changes provided by patch from Zik Saleeba]
3432         * src/pic/*, src/pic16/*, device/include/pic16/*,
3433           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3434
3435 2006-05-01 Borut Razem <borut.razem AT siol.net>
3436
3437         * configure.in, configure, doc/Makefile.in:
3438           sync with nightly build makefile - latex, dvipdf and dvips
3439           not needed any more
3440
3441 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3442
3443         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3444         in the library source
3445
3446 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3447
3448         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3449
3450 2006-04-28 Raphael Neider <rneider AT web.de>
3451
3452         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3453         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3454           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3455         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3456
3457 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3458
3459         * device/lib/pic/libdev/Makefile.in,
3460         * device/lib/hc08/Makefile.in,
3461         * device/lib/gbz80/Makefile.in,
3462         * device/lib/z80/Makefile.in,
3463         * device/lib/ds390/Makefile.in,
3464         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3465         thanks to Borut for the bug report
3466         * configure.in,
3467         * configure: always create doc/Makefile independent from --enable-doc
3468         * Makefile.in: always install from directory doc independent from
3469         --enable-doc
3470         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3471         removed
3472         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3473         * doc/Makefile.in: install *.txt if present
3474         * device/include/Makefile.in (install): added installation of pic/*.inc
3475         and pic/*.txt files again, they were erroneously removed
3476
3477 2006-04-28 Raphael Neider <rneider AT web.de>
3478
3479         * src/pic/{gen.c,main.h,pcode.c},
3480         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3481             concerning signedness with casts
3482
3483 2006-04-28 Raphael Neider <rneider AT web.de>
3484
3485         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3486             definition of an interrupt handler,
3487         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3488             interrupt handler stuff from picglue() to separate routine,
3489           (picglue): enabled definition of intr handlers in files w/o main()
3490
3491 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3492
3493         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3494           compilation with MSVC 2005 Express Edition (VC8)
3495
3496 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3497
3498         * device/lib/Makefile: fixed build of gbz80 lib
3499
3500 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3501
3502         * support/regression/tests/bug-460010.c,
3503         * support/regression/tests/bug-524691.c,
3504         * support/regression/tests/bug-716242.c: removed conditional defines
3505           that are already in testfwk.h
3506
3507 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3508
3509         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3510           (AccAXRsh1): added, shift right by 1,
3511           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3512            AccAXLrl1
3513         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3514
3515 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3516
3517         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3518         remove cast to same type
3519         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3520         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3521         * as/z80/Makefile,
3522         * link/z80/Makefile: removed, they have moved to
3523         Makefile.in files
3524         * configure,
3525         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3526         * install-sh: fix bug #1204398 by setting umask 0022
3527         * device/lib/Makefile: separate build of z80 and gbz80 lib
3528
3529 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3530
3531         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3532         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3533
3534         One basic decision: e.g. src/clean.mk includes further files. In order
3535         to make this work there are two solutions:
3536         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3537           run configure on them. This way they can use
3538           'include $(srcdir)/port-clean.mk'
3539         - always include clean.mk by the Makefile at the same level. To avoid
3540           that `make clean` tries to include and build Makefile.dep the
3541           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3542           implemented, because now even `make uninstall` doesn't create
3543           Makefile.in. clean.mk could be eliminated by pasting it in
3544           Makefile.in.
3545
3546         * debugger/mcs51/Makefile.in: build own objects from library sources
3547         (SLIB, SDCC) in current directory
3548
3549         * configure, configure.in: renamed --disable-device-lib-build in
3550         --disable-device-lib; added --enable-doc, the required tools are
3551         searched by configure; added result message; the toolchain for the
3552         belonging ports are now only built, if the port is enabled.
3553
3554         * support/regression/*: all output is written in directory gen, because
3555         the fwk and ports directories don't livet in the build tree using vpath
3556
3557         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3558         --disable-device-lib, added --enable-doc, added section VPATH
3559
3560         * sim/ucsim/configure.in,
3561         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3562         z80 are enabled by default
3563
3564 2006-04-24 Raphael Neider <rneider AT web.de>
3565
3566         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3567             to config word, "pic14_"-prefixed some extern functions
3568           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3569             config word has been found
3570         * src/pic/device.h: added prototypes
3571         * src/pic/pcode.c: added "pic14_"-prefix where needed
3572         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3573             fixup
3574         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3575             words,
3576           (pic14emitRegularMap): ignore config words,
3577           (pic14createInterruptVect): moved generating __config directives away
3578           (picglue): have __config directives emitted
3579
3580 2006-04-24 Borut Razem <borut.razem AT siol.net>
3581
3582         * doc/Makefile: sync with nightly build makefile
3583
3584 2006-04-24 Raphael Neider <rneider AT web.de>
3585
3586         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3587             registers that have not been assigned proper liveranges,
3588             fixes #1469504 and #1474602,
3589           (pCodeRegOptimizeRegUsage): fixed typo in comment
3590
3591 2006-04-24 Borut Razem <borut.razem AT siol.net>
3592
3593         * device/examples/main8051.c: deleted - it was removed from CVS
3594           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3595           after the transition to Subversion
3596         * src/SDCCalloc.h: deleted - it was removed  from CVS
3597           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3598           after the transition to Subversion
3599         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3600           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3601           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3602           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3603
3604 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3605
3606         * as/asx8051.dsp: added mcs51/strcmpi.h
3607         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3608         * as/hc08/aslink.h: updated lnksect prototype
3609         * as/hc08/asm.h,
3610         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3611         * as/hc08/asmain.c,
3612         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3613           (newdot): handle A_ABS
3614         * as/hc08/asout.c,
3615         * as/mcs51/asout.c (outarea): output address
3616         * as/hc08/lkaomf51.c,
3617         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3618         * as/hc08/m08pst.c,
3619         * as/mcs51/i51pst.c,
3620         * as/z80/z80pst.c: "ABS" is not A_OVR
3621         * as/hc08/lkarea.c (newarea): read a_addr,
3622           (lnkarea): added codemap array, sort absolute areas to the front,
3623            combine all GSINITx/GSFINAL,
3624           (find_empty_space, allocate_space): new functions,
3625           (lnksect): return next address, handle absolute sections
3626         * as/mcs51/lkarea.c (newarea): read a_addr,
3627           lnksect2 prototype changed,
3628           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3629           (find_empty_space, allocate_space): new, factored out of lnksect2,
3630           (lnksect2): return next address, handle absolute sections
3631         * as/hc08/lkhead.c,
3632         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3633         * as/hc08/lklibr.c (addfile, fndsym),
3634         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3635           index out of range and detect both '\' and '/'
3636         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3637         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3638           regression tests (ds390 cannot return bool yet)
3639         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3640           document critical interrupts on z80, document changed SDCC define
3641         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3642           (_a390_mapping): added .org directive
3643         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3644           (genMultOneByte): fixed warnings
3645         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3646           ones
3647         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3648         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3649           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3650         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3651         * src/pic16/main.c: removed newReg prototype
3652         * src/pic16/pcode.c,
3653         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3654           warnings
3655         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3656           ones
3657         * src/pic16/ralloc.c
3658         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3659           to fix warnings
3660         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3661           from short to PIC_OPTYPE
3662         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3663         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3664           optype from short to PIC_OPTYPE
3665         * src/port.h: made int_size unsigned to fix warnings
3666         * src/SDCC.y: fixed warning on MSVC
3667         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3668         * src/SDCCopt.c (convertToFcall): fixed warnings
3669         * src/SDCCsymt.h: removed double prototype for genSymName
3670         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3671           offset int to fix warnings
3672
3673 2006-04-22 Borut Razem <borut.razem AT siol.net>
3674
3675         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3676           references to CVS replaced with Subversion
3677
3678 2006-04-21 Borut Razem <borut.razem AT siol.net>
3679
3680         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3681           references to CVS replaced with Subversion
3682
3683 2006-04-19 Borut Razem <borut.razem AT siol.net>
3684
3685         * src/version.awk: adapted for svn
3686         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3687           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3688           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3689           /binutils-avr/etc/*.vi, *.jin: removed all properties
3690           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3691
3692 2006-04-19 Borut Razem <borut.razem AT siol.net>
3693
3694         * CVS to Subversion migration completed
3695
3696 2006-04-18 Borut Razem <borut.razem AT siol.net>
3697
3698         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3699           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3700
3701 2006-04-17 Borut Razem <borut.razem AT siol.net>
3702
3703         * device/include/Makefile.in: added pic/*.inc to the installation
3704
3705 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3706
3707         * support/regression/collate-results.py: fixed output in case of
3708         a valdiag error
3709         * support/regression/generate-cases.py: fixed splitting of pathnames
3710         with dots
3711         * as/hc08/lklibr.c (addfile),
3712         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3713
3714 2006-04-11 Raphael Neider <rneider AT web.de>
3715
3716         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3717         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3718         * src/pic16/pcode.c (assignValnums): fixed #1460578
3719
3720 2006-04-11 Raphael Neider <rneider AT web.de>
3721
3722         * device/lib/pic/libdev/*.c,
3723         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3724           fixes #1468739, enables compilation in --std-c99 mode
3725         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3726
3727 2006-04-11 Raphael Neider <rneider AT web.de>
3728
3729         * src/pic/device.c (find_device): removed debug output
3730           (list_valid_pics): enabled verbose listing of supported devices
3731         * device/include/stdbool.h: define bool as char for pic14/16 as well
3732
3733 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3734
3735         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3736
3737 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3738
3739         * .version: bumped version to 2.5.6
3740         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3741
3742 2006-04-06 Raphael Neider <rneider AT web.de>
3743
3744         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3745         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3746         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3747           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3748             pic14_constructAbsMap
3749           (pic14printPublics): declare absolute global symbols as global
3750           (pic14createInterruptVect),
3751         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3752           (newReg): assume new registers unused, use correct name in
3753             hashtable (reg->name instead of name), more debugLog output
3754         * src/pic/device.h (PIC_device): added fields for verbose output
3755         * src/pic/device.c: moved device definition to pic14devices.txt,
3756             added routines for runtime parsing of pic14devices.txt,
3757             added support for second config word
3758         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3759           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3760           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3761           (_pic14_parseOptions): moved pCodeInitRegisters here
3762           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3763         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3764           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3765             handling the pseudo stack
3766         * device/lib/Makefile.in: ignore failures in objects-pic16,
3767         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3768         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3769         * device/lib/pic/Makefile.subdir,
3770         * device/lib/pic16/Makefile.subdir: improved clean rules
3771         * device/lib/pic/libdev/: NEW, pic14 device libraries
3772         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3773         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3774         * device/include/Makefile.in: create subdir and install pic14 headers
3775         * device/include/pic/p16f_common.inc: removed unused declarations
3776         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3777             PICs from inc2h.pl v1.6,
3778             replaced BIT_AT macros with struct declarations
3779         * device/include/pic/pic14devices.txt: definition of supported devices,
3780             all above improvements contributed by Zik Saleeba, thanks
3781         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3782         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3783             headers
3784
3785 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3786
3787         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3788         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3789           thanks to Charles Olds
3790
3791 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3792
3793         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3794
3795 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3796
3797         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3798         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3799         * support/regression/bug1464657.c: added, new test
3800
3801 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3802
3803         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3804           version number
3805
3806 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3807
3808         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3809           --no-peep and --peep-file <file> are used don't use default rules but
3810           do use the <file>
3811
3812 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3813
3814         * src/mcs51/gen.c (genCall): fixed bug 1457608
3815
3816 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3817
3818         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3819         changes seem to cause (trigger?) problems with the build system.
3820
3821 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3822
3823         * src/SDCCpeeph.c (operandsLiteral): new, added,
3824           (callFuncByName): inserted operandsLiteral
3825         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3826
3827 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3828
3829         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3830         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3831
3832 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3833
3834         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3835           implemented patch 1120823 Thanks to Willy De la Court (normal
3836           interrupts need an interrupt number now if they are made critical),
3837           and enabled nesting of critical functions though not for gbz80
3838           (genCritical, genEndCritical): added functions
3839           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3840         * src/z80/mappings.i: added "ei" to all mappings
3841
3842 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3843
3844         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3845         submitted by the Debian SDCC maintainer Aurelien Jarno:
3846         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3847         archive with gcc 4.1 on mips and wrote the patch"
3848
3849 2006-03-16 Raphael Neider <rneider AT web.de>
3850
3851         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3852           the left operand is shorter than the result (c* = lit-c* + int),
3853           fixes bug #1450796
3854         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3855           OP_SYMBOL
3856
3857 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3858
3859         * src/.version: increased version number to 2.5.5
3860         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3861         linking is done manually in pic16 port's _linkEdit,
3862         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3863         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3864         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3865         allocate asmop as AOP_ACC,
3866         (aopForRemat): added parameter 'bool result' in function declaration,
3867         (pic16_aopGet): return AOP_ACC when accessing WREG,
3868         (pic16_popGetTempReg): minor modification,
3869         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3870         'pic16_allocWithIdx',
3871         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3872         calling function in absolute addresses,
3873         (genAssign): take into account AOP_ACC asmop,
3874         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3875         * src/pic16/pcoderegs.c: some debug functions and lines added,
3876         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3877         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3878         register too,
3879         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3880         call to allocReg, not by manually allocating a new one,
3881         (pic16_assignRegisters): now before going through the register
3882         allocating functions mark all registers as free. This eliminates some
3883         side effects resulting from peephole parser done earlier in the backbone
3884
3885 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3886
3887         * src/SDCCicode.c (geniCodeLogic),
3888         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3889
3890 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3891
3892         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3893           (genSend): bugfix, do not allocate and free twice,
3894           (shiftRLong): handle partially overlapping aops
3895         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3896
3897 2006-03-08 Borut Razem <borut.razem AT siol.net>
3898
3899         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3900           for pic16
3901
3902 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3903
3904         * support/regression/tests/bug1409955.c: new, added
3905         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3906         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3907           (aopForSym, aopOp): increment asmop.allocated if reused,
3908           (freeAsmop): decrement asmop.allocated and check for zero instead of
3909           using asmop.freed,
3910           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3911           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3912            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3913            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3914            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3915            genSignedRightShift, genRightShift, genDataPointerGet,
3916            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3917            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3918             in reverse order from allocation,
3919           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3920             added swappedLR to keep track
3921         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3922           pdata & code for GCC, z80, gbz80 & hc08
3923         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3924
3925 2006-03-08 Raphael Neider <rneider AT web.de>
3926
3927         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3928
3929 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3930
3931         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3932         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3933         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3934
3935 2006-03-06 Borut Razem <borut.razem AT siol.net>
3936
3937         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3938           made the linker quiet
3939
3940 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3941
3942         * src/pic16/gen.c (genPcall): fixed bug #1443644
3943         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3944         which dumps before the function entry point a data byte which represents
3945         the number of the local variables used by the specified function, added
3946         'xinst' for initial support for Extended Instruction Support,
3947         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3948         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3949         port->fun_prefix anymore (may change later),
3950         (genFunction, genEndFunction): do not store/restore local registers for
3951         _main (this should take care the --main-return command line option in
3952         the future),
3953         (genOr): removed some legacy pic-port instructions,
3954         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3955         performing operations with SFR's causes data to be written more than
3956         once to each SFR. Perhaps SFRs should be handled in special cases...
3957         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3958         pcode.h
3959         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3960         into account for stack starting position,
3961         (struct OPTIONS pic16_optionsTable): added command line argument
3962         --extended or -y for Extended Instruction Support,
3963         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3964         (deassignLRs): *** perhaps the most important change, old 'for' code
3965         (commented out for reference), didn't account for some registers which
3966         were left marked 'not free' after a pointer operation. The change
3967         reduces register usage a lot in some cases
3968
3969 2006-03-04 Borut Razem <borut.razem AT siol.net>
3970
3971         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3972           _clean
3973         * support/regression/tests/bug-524697.c: decreased array size for
3974           mcs51 to fit into the internal RAM
3975         * support/regression/Makefile.in: a little bit more verbose
3976
3977 2006-03-03 Borut Razem <borut.razem AT siol.net>
3978
3979         * support/regression/fwk/lib/testfwk.c,
3980           support/regression/fwk/include/testfwk.h: introduced function
3981           _prints(), nonrecursive _printn(), call _initEmu() from main()
3982         * support/regression/ports/gbz80/support.asm,
3983           support/regression/ports/ucz80/support.asm,
3984           support/regression/ports/z80/support.asm,
3985           support/regression/ports/ds390/support.c,
3986           support/regression/ports/hc08/support.c,
3987           support/regression/ports/host/support.c,
3988           support/regression/ports/mcs51/support.c,
3989           support/regression/ports/xa51/support.c: added empty _initEmu()
3990           function
3991         * support/regression/ports/pic16/gpsim.cmd,
3992           support/regression/ports/pic16/spec.mk,
3993           support/regression/ports/pic16/support.c,
3994           support/regression/Makefile.in: added pic16 regression test
3995
3996 2006-03-01 Raphael Neider <rneider AT web.de>
3997
3998         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3999           genConstPointerGet): use safe way of generating MOVFF to cover
4000             literals as well as registers, fixes bug #1440527
4001         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
4002             dereference
4003           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
4004             more correctly, fixes bug #1232186
4005           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
4006         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
4007             gplink guess the correct processor in more cases, applied patch
4008             from Till Riedel attached to and fixing bug #1436552
4009
4010 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4011
4012         * support/regression/tests/array.c: added, contains check for #1434401
4013         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
4014
4015 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
4016
4017         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
4018         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
4019         * device/include/mcs51/c8051f326.h,
4020         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
4021         * device/include/mcs51/c8051f000.h,
4022         * device/include/mcs51/c8051f018.h,
4023         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
4024           PCON_IDLE,PCON_STOP and added sfr16 definitions
4025
4026 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4027
4028         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
4029           genGetWord): fixed bug 1409955
4030
4031 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
4032
4033         * device/include/hc08/mc68hc908gp32.h,
4034         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
4035
4036 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
4037
4038         * src/SDCCast.c (constExprValue): return NULL if not a value
4039         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
4040         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
4041         * support/regression/tests/bitfields.c: enabled signed bitfield for all
4042
4043 2006-02-13 Borut Razem <borut.razem AT siol.net>
4044
4045         * src/regression/ptrarg.c: added, fails due to bug #1430967
4046         * src/regression/Makefile: ptrarg.c added, ...
4047
4048 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
4049
4050         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
4051         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
4052
4053 2006-02-11 Borut Razem <borut.razem AT siol.net>
4054
4055         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
4056           print "Processor: xxx" message to stdout only if --verbose
4057
4058 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4059
4060         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
4061         * support/regression/tests/bug1426356.c: added
4062         * support/regression/tests/bitfields.c: removed 2 tests
4063
4064 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4065
4066         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
4067         * device/include/mcs51/c8051f330.h,
4068         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
4069           PCON_IDLE,PCON_STOP and added sfr16 definitions
4070         * device/lib/_divsint.c,
4071         * device/lib/_divuint.c,
4072         * device/lib/_divulong.c,
4073         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
4074           register bank bug for small stackauto
4075
4076 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4077
4078         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
4079
4080 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
4081
4082         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
4083         * all.dsp: corrected several bin paths
4084         * device/include/mcs51/c8051f120.h,
4085         * device/include/mcs51/c8051f300.h,
4086         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
4087           to PCON_IDLE,PCON_STOP
4088         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
4089         * device/lib/printf_large.c (output_float): fixed bug 1388703
4090         * support/regression/tests/bug1057979.c: added test for bug 1388703
4091
4092 2006-02-08 Raphael Neider <rneider AT web.de>
4093
4094         * src/pic/pcode.c (pciTRIS): fixed typo,
4095           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
4096           (LinkFlow): fixed handling of flows that end in a call,
4097           (ReuseReg): perform safety check earlier
4098         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
4099             to work with flows at the beginning of a pBlock,
4100             fixes #1426557 (Symbol not previously defined),
4101           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
4102             usage information
4103           (RemoveUnusedRegisters): update register usage info
4104         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
4105             created, reuse existing ones instead
4106         * src/pic/gen.c (genPcall): fixed #1424719
4107
4108 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
4109
4110         * link/z80/lkmain.c,
4111         * link/z80/lklex.c,
4112         * link/z80/lkdata.c,
4113         * link/z80/aslink.h: fixed build on current cygwin:
4114         replaced getline() by lk_getline()
4115
4116 2006-02-01 Borut Razem <borut.razem AT siol.net>
4117
4118         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
4119           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
4120           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
4121           src/regression/bool1.c, src/regression/bool2.c,
4122           src/regression/bool3.c, src/regression/call1.c,
4123           src/regression/compare.c, src/regression/compare10.c,
4124           src/regression/compare2.c, src/regression/compare3.c,
4125           src/regression/compare4.c, src/regression/compare5.c,
4126           src/regression/compare6.c, src/regression/compare7.c,
4127           src/regression/compare8.c, src/regression/compare9.c,
4128           src/regression/configword.c, src/regression/for.c,
4129           src/regression/inline.c, src/regression/mult1.c,
4130           src/regression/nestfor.c, src/regression/or1.c,
4131           src/regression/pointer1.c, src/regression/ptrfunc.c,
4132           src/regression/rotate1.c, src/regression/rotate2.c,
4133           src/regression/rotate3.c, src/regression/rotate4.c,
4134           src/regression/rotate5.c, src/regression/rotate6.c,
4135           src/regression/rotate7.c, src/regression/string1.c,
4136           src/regression/struct1.c, src/regression/sub.c,
4137           src/regression/sub2.c, src/regression/switch1.c,
4138           src/regression/while.c, src/regression/xor.c,
4139           src/regression/create_stc, src/regression/simulate,
4140           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
4141           regression tests
4142         * src/regression/gpsim_assert.h: added
4143
4144 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4145
4146         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
4147         ((void (code *) (void)) 0) ();
4148         * as/hc08/aslex.c,
4149         * as/hc08/aslink.h,
4150         * as/hc08/asm.h,
4151         * as/hc08/asmain.c,
4152         * as/hc08/lkdata.c,
4153         * as/hc08/lklex.c,
4154         * as/hc08/lkmain.c,
4155         * as/mcs51/aslex.c,
4156         * as/mcs51/aslink.h,
4157         * as/mcs51/asm.h,
4158         * as/mcs51/asmain.c,
4159         * as/mcs51/lkdata.c,
4160         * as/mcs51/lklex.c,
4161         * as/mcs51/lkmain.c,
4162         * as/z80/aslex.c,
4163         * as/z80/asm.h,
4164         * as/z80/asmain.c: fixed build on current cygwin:
4165         replaced getline() by as_getline()
4166
4167 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
4168
4169         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
4170         declarator in the symbol chain
4171         * src/SDCCsymt.h,
4172         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
4173         parameter list for function pointers
4174         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
4175         * support/regression/tests/bug-716242.c: added
4176
4177 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
4178
4179         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
4180         offset if possible
4181         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
4182
4183 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
4184
4185         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
4186         inifinitely recurseable, added static
4187         * support/regression/tests/bug-1408066.c: added
4188
4189 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
4190
4191         * src/SDCCicode.h,
4192         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
4193         renamed, added possibility to create "postLoopLbl"-labels
4194         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4195         newiTempLoopHeaderLabel
4196         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4197         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4198         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4199         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4200         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4201         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4202         (basicInduction): fixed bug #136564, made static,
4203         (loopInduction): changed parameter of basicInduction, made static,
4204         (addPostLoopBlock): added
4205         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4206         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4207         findLoopEndSeq
4208         * support/regression/tests/bug-136564.c: added
4209         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4210         --std-sdcc99 to LIBSDCCFLAGS
4211
4212 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4213
4214         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4215         while loop
4216         * support/regression/tests/bug-1406131.c: added
4217
4218 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4219
4220         * src/SDCCast.c (decorateType): fix promotion of unary minus
4221         * src/SDCCsymt.c (computeType): beautified
4222         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4223         (valUnaryPM, valComplement): fix sign and promotion,
4224         (valNot): ANSI: result type is int (SDCC: unsigned char)
4225         * support/regression/tests/uminus.c: speedup by removing superflous
4226         test case 'int'
4227         * support/regression/tests/onebyte.c: added promotion and signedness
4228         tests for unary minus
4229         * support/regressions/tests/bug-477927.c: disable warning about
4230         uninitialized variables
4231         * support/regression/tests/not.c: added
4232
4233 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4234
4235         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4236         * src/mcs51/gen.c (gen51Code): show final register usage after
4237         fillGaps in asm with --i-code-in-asm
4238         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4239         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4240         incUsed, rliveClear, adjustIChain): made static,
4241         (setFromRange): excluded because it's unused,
4242         (findPrevUseSym, markWholeLoop): added,
4243         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4244         through all branches of predecessors enables sdcc to emit the warning
4245         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4246         (rlivePoint): made static, added parameter emitWarnings which is only
4247         true during the first run out of two,
4248         (findRecursiveSucc, findRecursivePred): removed,
4249         (computeLiveRanges): made static, added parameter emitWarnings,
4250         (dumpIcRlive): added for debugging only
4251         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4252         removed prototype of setFromRange()
4253         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4254         in call of computeLiveRanges()
4255         * support/regression/tests/bug-895992.c: added
4256         * support/regression/tests/bug-971834.c: added
4257         * support/valdiag/tests/bug-895992.c: added
4258         * support/valdiag/tests/bug-971834.c: added
4259
4260 2005-12-18 Raphael Neider <rneider AT web.de>
4261
4262         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4263           (genUnpackBits): improved code for direct operands,
4264           (genPackBits): improved code for literal assignment to bitfields
4265             and for direct destination operands (no FSR indirection),
4266             prevented redundant AND, fixes #1362800,
4267           (AccLsh): added parameter to disable masking of the result
4268         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4269           skip instructions with side-effects (like incfsz),
4270           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4271         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4272         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4273           fixes #1375263
4274
4275 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4276
4277         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4278         volatile variables as spill location
4279
4280 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4281
4282         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4283         replacing literals
4284         * support/regression/tests/bug-1376320.c: added
4285
4286 2005-12-08 Raphael Neider <rneider AT web.de>
4287
4288         * src/pic/device.c: renamed is_shared to pic14_is_shared
4289         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4290         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4291           (is_valid_identifier): added for above workaround
4292
4293 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4294
4295         * device/lib/Makefile.in: fixed to enable port-specific-objects
4296         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4297           char, thanks Hubert Sack
4298         * doc/sdccman.lyx: documented --xstack-loc,
4299           elaborated a bit more on interrupts and pitfalls,
4300           removed "setjmp/longjmp unsupported",
4301           documented some unsupported C99 features
4302         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4303         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4304           if, thanks Hubert Sack
4305         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4306         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4307           make make_library
4308         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4309           regression tests can report resource usage (rfe 700441)
4310         * support/regression/collate-results.py: report resource usage
4311         * support/regression/ports/ds390/spec.mk,
4312         * support/regression/ports/hc08/spec.mk,
4313         * support/regression/ports/mcs51/spec.mk,
4314         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4315         * support/regression/ports/ds390/uCsim.cmd,
4316         * support/regression/ports/hc08/uCsim.cmd,
4317         * support/regression/ports/mcs51/uCsim.cmd,
4318         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4319         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4320           library, use the default one
4321         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4322           building the library
4323
4324 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4325
4326         * config.dsp: added dependency on .version and configure_vc.awk
4327         * device/include/setjmp.h: updated for --stack-auto and --xstack
4328         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4329         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4330         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4331         * device/lib/libsdcc.lib: added _setjmp
4332         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4333           (decorateType): fixed bug 1372851,
4334           (optimizeGetHbit): fixed warning
4335         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4336           array initialisation
4337         * support/regression/tests/bug1057979.c: added test for bug 1358192
4338         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4339
4340 2005-12-03 Borut Razem <borut.razem AT siol.net>
4341
4342         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4343           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4344
4345 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4346
4347         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4348         createIval): implement symbol independant "flexible array member",
4349         (createIvalCharPtr): implemented flexible array initialisation with a
4350         string
4351         * src/SDCCsymt.c (copyStruct): removed,
4352         (getSize): fixed misleading comment,
4353         (getAllocSize): removed, the additional allocation size is now in
4354         sym->flexArrayLength,
4355         (checkStructFlexArray): new, syntax checks for flexible array members,
4356         (compStructSize): added syntax checks for "flexible array members"
4357         (copyStruct): removed,
4358         (copyLinkChain): removed inefficient fix for bug 770487
4359         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4360         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4361         symbol->flexArrayLength
4362         * src/SDCCerr.c,
4363         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4364         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4365         * support/regression/tests/structflexarray.c: added
4366         * support/valdiag/tests/structflexiblearray.c: added
4367
4368 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4369
4370         * src/SDCCast.c (decorateType): fixed bug 1368489
4371         * support/Util/SDCCerr.c,
4372         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4373
4374 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4375
4376         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4377           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4378
4379 2005-11-27 Borut Razem <borut.razem AT siol.net>
4380
4381         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4382           support/cpp2/mkdeps.h: added command line option
4383           -obj-ext=<extension> to SDCPP to define object file externion, used
4384           for generation of make dependencies (-M)
4385         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4386
4387 2005-11-26 Borut Razem <borut.razem AT siol.net>
4388
4389         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4390           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4391           added pic and pic16 libraries
4392
4393 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4394
4395         * device/include/float.h: Corrected typo in prototype of __fsgt
4396
4397 2005-11-25 Borut Razem <borut.razem AT siol.net>
4398
4399         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4400           added creation of model-mcs51-stack-auto libraries
4401
4402 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4403
4404         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4405         and fields-list too
4406         * src/SDCCast.c (createIvalArray): removed obsolete comment
4407
4408 2005-11-24 Borut Razem <borut.razem AT siol.net>
4409
4410         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4411           added missing device/lib/mcs51/crt*.asm sources
4412
4413 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4414
4415         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4416
4417 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4418
4419         * device/lib/_fs2schar.c,
4420         * device/lib/_fs2sint.c,
4421         * device/lib/_fs2slong.c: optimized inline asm
4422
4423 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4424
4425         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4426           Better handling of floats between -1.0 and 0.0.
4427
4428 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4429
4430         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4431           (the missing "if"s prohibited removal of redundant labels)
4432
4433 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4434
4435         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4436           Properly convert floats between -1.0 and 0.0 to long, int, and char
4437           types (max integer value of negative floats tends to zero).
4438         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4439           Removed changes made so to work properly with floats between
4440           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4441           and _fs2char.c
4442
4443 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4444
4445         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4446         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4447         (genCast) cosmetic change
4448         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4449         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4450         from mcs51
4451         * support/regression/tests/bitfields (testSignedBitfields): added
4452
4453 2005-11-18 Borut Razem <borut.razem AT siol.net>
4454
4455         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4456         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4457           introduced SILENT option to make building of pic16 libraries less
4458
4459 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4460
4461         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4462           Now they work properly with floats between -1.0 and 0.0
4463         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4464
4465 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4466
4467         * src/SDCCicode.c (printOperand): added missing else
4468
4469 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4470
4471         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4472         reformatted for better readability
4473         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4474         signed bitfields
4475
4476 2005-11-17 Borut Razem <borut.razem AT siol.net>
4477
4478         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4479           introduced SILENT option to make building of pic16 libraries less
4480           verbose - used for nightly snapshot build
4481         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4482           available on Win32 platforms.
4483         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4484           medium, large, pic and pic16
4485
4486 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4487
4488         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4489           printf("%f"...) sets fraction to zero.
4490
4491 2005-11-16 Raphael Neider <rneider AT web.de>
4492
4493         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4494           fixes #1357221
4495         * src/pic/gen.c (genIfx): implemented for CARRY bit
4496         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4497           to generic pointers, fixes #1357332,
4498           (pic16_movLit2f): NEW,
4499           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4500
4501 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4502
4503         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4504
4505 2005-11-11 Raphael Neider <rneider AT web.de>
4506
4507         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4508         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4509           compute pointer's type from operand,
4510           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4511           improved single bit reads, fixes bug #1353379
4512
4513 2005-11-09 Borut Razem <borut.razem AT siol.net>
4514
4515         * support/scripts/sdcc.nsi: added lib/pic to the package
4516
4517 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4518
4519         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4520
4521 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4522
4523         * support/regression/tests/bug1348008.c: added
4524         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4525         * support/regression/tests/bug1337835.c: updated comment
4526
4527 2005-11-06 Borut Razem <borut.razem AT siol.net>
4528
4529         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4530           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4531           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4532           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4533           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4534           dynamic construction of cl_error_class and derivates - 2.nd try
4535
4536 2005-11-05 Borut Razem <borut.razem AT siol.net>
4537
4538         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4539           bug, which caused Bus Errors on sparc solaris
4540
4541 2005-11-04 Borut Razem <borut.razem AT siol.net>
4542
4543         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4544           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4545           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4546           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4547           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4548           and derivates to resolve the initialization problem on OSX
4549
4550 2005-11-02 Borut Razem <borut.razem AT siol.net>
4551
4552         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4553           corrected typo - #include <winsock2.h>
4554
4555 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4556
4557         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4558           (_asxxxx_mapping): added org directive for future enhancements
4559
4560 2005-11-01 Borut Razem <borut.razem AT siol.net>
4561
4562         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4563           enabled sockets on WIN32
4564         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4565
4566 2005-10-31 Borut Razem <borut.razem AT siol.net>
4567
4568         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4569           WIN32 backslash path delimiters should be escaped when used in C strings
4570         * support/regression/tests/bitfields.c: exclude failing assertions for
4571           __CYGWIN32__ and __MINGW32__ hosts
4572
4573 2005-10-30 Borut Razem <borut.razem AT siol.net>
4574
4575         * src/SDCCutil.c: corrected double comparison typo
4576
4577 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4578
4579         * device/lib/medium/Makefile: added for new memory model medium
4580         * device/include/asm/mcs51/features.h: updated for medium/pdata
4581         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4582           added Multiply & Accumulate sbit's and MAC0_PAGE define
4583         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4584         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4585         * device/lib/_mullong.c: update for medium model
4586         * device/lib/incl.mk: added medium model
4587         * doc/sdccman.lyx: documented medium model
4588         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4589         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4590         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4591         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4592           (allocParms): set SCLS and OCLS to pdata for medium model
4593         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4594           for pdata,
4595           (powof2): return <0 if not power of 2
4596         * src/avr/gen.c (genBitWise): use updated powof2
4597         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4598           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4599           (shiftLLeftOrResult): use B if necessary
4600         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4601         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4602         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4603         * support/regression/Makefile.in: added test-mcs51-medium
4604         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4605
4606 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4607
4608         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4609         specifier unsigned
4610         * device/lib/time.c (mktime): fixed bug 1334315
4611
4612 2005-10-28 Raphael Neider <rneider AT web.de>
4613
4614         * device/include/pic/p16f_common.inc: added common declarations
4615         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4616
4617 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4618
4619         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4620           (aopPutUsesAcc): added to predict accumulator use,
4621           (assignResultValue): save acc if necessary,
4622           (genMinusDec): store result if indirectly addressed,
4623           (genDivOneByte):  save acc if necessary,
4624           (movLeft2Result): bugfix if left already in acc,
4625           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4626             attention to accumulator use (esp. pdata),
4627           (genReceive): receive pdata correctly
4628         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4629         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4630
4631 2005-10-27 Raphael Neider <rneider AT web.de>
4632
4633         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4634
4635 2005-10-27 Raphael Neider <rneider AT web.de>
4636
4637         * .version: changed version to 2.5.4
4638         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4639         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4640           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4641             arithmetics support routines
4642         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4643         * device/lib/Makefile.in: also create installdir for pic
4644
4645         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4646           pic14 port as well
4647         * src/pic/device.c (dump_sfr): rewritten to delegate register
4648           placement to the linker (use `extern sym' rather than sym EQU addr),
4649           (validAddress): fixed to check last specified address
4650         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4651           (popGetLit): truncate literal value to 8 bit,
4652           (popGet): moved assert to more appropriate place
4653           (popGetExternal): create pCode operand from and mark the according
4654             symbol as being `extern'
4655           (popGetAddr): added sanity check on immediate's offset, provide
4656             GPOINTER tag on demand
4657           (aopPut): fixed for immediates,
4658           (mov2w_op): move operand's address or contents to WREG (depending on
4659             operand type), safer variant of mov2w,
4660           (movwf,call_libraryfunc): NEW, handy abbreviations,
4661           (get_argument_pcop,get_return_val_pcop,pass_argument,
4662           get_returnvalue): interface for accessing function parameters and
4663             return values,
4664           (assignResultValuei,genRet): use new parameter/return value interface
4665           (pic14_getDataSize): back to old version handling generic pointers,
4666           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4667             provided implementation and/or fixed old one,
4668           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4669             calls, removed legacy 8051 reference code
4670           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4671           (loadSignToC): NEW, move the operands sign bit to CARRY,
4672           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4673             genRightShiftSigned, accepts negative shift counts,
4674           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4675           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4676             generic pointers, __data pointers and __code pointers,
4677           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4678             and signed bitfields, limit bitfields to 8 bit,
4679           (genDataPointerGet): fixed number of bytes read,
4680           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4681           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4682             pointers to constant data are no longer assumed to point to __code
4683             space, removed invalid pointer types,
4684           (bitpatternFromVal): retrieve the PICs representation of an integer
4685             or float literal,
4686           (genDataPointerSet): fixed assigning to po_immediate operands,
4687           (genGenPointerSet): implemented as library call,
4688           (genIfx): fixed incorrect condition,
4689           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4690             provide GPOINTER tag according to destination's storage class,
4691           (genCast): added code to handle casting to generic pointers, added
4692             sign-/zero extension of the result
4693           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4694         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4695         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4696           extend the result
4697         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4698           address/register resides in the shared banks
4699           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4700             put all variables into separate sections (have the linker arrange
4701             them)
4702           (picglue): put init code and interrupt handlers in separate sections
4703         * src/pic/main.c: added port specific options table, modified to PORT
4704           structure to make GPOINTERs 3 byte, added pic14_options
4705           (_pic14_do_link): private linking routine (update paths to libraries,
4706             add libsdcc.lib by default)
4707         * src/pic/main.h: declare pic14_options
4708         * src/pic/pcode.c: fixed instructions i/o relations,
4709           (RegCond): reverted to correct version,
4710           (newpCodeOpLit): truncate literals to 8 bit,
4711           (genericPrint): added debug output,
4712           (getRegFromInstruction): fixed for various operand types, simplified
4713           (BuildFlow): fixed broken handling of isntructions with labels
4714           (LinkFlow): start at last instruction in flow (skip trailing comments),
4715             pass the flow on to the next instruction after CALL
4716           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4717           (insertPCodeInstruction): fixed inserting after a skip instruction,
4718           (DoBankSelect): fixed for labeled instructions
4719           (OptimizepBlock): honor --nopeep switch
4720           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4721         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4722         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4723           (pCodeOptime2pCodes): allow disabling this optimization via
4724             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4725             but is still buggy), started implementation of a dataflow based
4726             pCode optimization (CSE + dead code elimination)
4727           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4728         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4729           names are independant of the stack location and therefore portable across
4730           devices
4731
4732 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4733
4734         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4735           (selectSpil): fixed bug 1337835 by not spilling bit variables
4736         * support/regression/tests/bug1337835.c: added test for this bug
4737         * src/mcs51/peeph.def: restart after rule 3.c,
4738           addded rules 263.x to optimize loading constants
4739
4740 2005-10-26 Raphael Neider <rneider AT web.de>
4741
4742         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4743         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4744           (genAssign): emit warning when casting literals to generic pointer
4745             type, also applies when taking the address of a fixed variable,
4746           (genCast): improved casting to generic pointers
4747         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4748           extern variables, added verbose error message
4749         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4750
4751 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4752
4753         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4754         carry must be complemented too
4755         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4756         could be emitted by genMinus
4757         * src/SDCCval.c (constVal): fixed bug 1305065
4758
4759 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4760
4761         * src/SDCCast.c (addCast): added promotion for bit variables
4762         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4763         promotion casts + optimisation
4764         (optimizeGetWord): fix warning 'i' might be used uninitialized
4765         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4766         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4767
4768 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4769
4770         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4771         all chars are promoted to int; promotion should be handled in SDCCast.c
4772
4773 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4774
4775         * device/lib/_strcmp.c: Fixed bug 1326457
4776
4777 2005-10-11 Raphael Neider <rneider AT web.de>
4778
4779         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4780         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4781
4782 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4783
4784         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4785         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4786
4787 2005-10-04 Raphael Neider <rneider AT web.de>
4788
4789         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4790           device/lib/pic16/pics.all: added pic18f1320
4791         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4792
4793 2005-09-30 Raphael Neider <rneider AT web.de>
4794
4795         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4796         * src/pic16/devices.inc: NEW, provides device descriptions
4797         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4798
4799 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4800
4801         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4802           GETHBIT
4803
4804 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4805
4806         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4807           documented Any Order Bit, Higher Order Byte and Higher Order Word
4808         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4809         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4810           (optimizeGetAbit): new, to get any bit, not only the high bit,
4811           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4812           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4813           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4814           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4815             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4816             GETABIT, GETBYTE, GETWORD: decorate them,
4817           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4818           (ast_print): added GETABIT, GETBYTE, GETWORD
4819         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4820         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4821           (geniCodeBinary): new generic binary icode,
4822           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4823         * src/port.h: updated comment for PORT.hasExtBitOp
4824         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4825           (genGetByte): new, to get a single byte,
4826           (genGetWord): new, to get a word from a long,
4827           (gen51Code): added GETABIT, GETBYTE, GETWORD
4828         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4829
4830 2005-09-23 Raphael Neider <rneider AT web.de>
4831
4832         * configure.in, configure: have device/lib/pic configured
4833         * device/lib/Makefile.in: added model-pic14
4834         * device/lib/clean.mk: added pic/ to clean rule
4835         * device/lib/pic: added rudimentary pic14 library providing support
4836           functions for multiplication/division/generic pointer access
4837         * src/SDCCopt.c (convilong): mark support functions as extern
4838           for pic14 port as well
4839         * src/pic/gen.c (genMult): added assertions,
4840           (genpic14Code): emit warning on unhandled iCodes
4841         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4842         * src/pic/pcode.c (pCodeOpCopy),
4843         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4844           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4845           SFR_REGISTER}), made safe for future extensions
4846         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4847           instructions even if preceeded by SKIP instructions (also remove
4848           them); removed unused code
4849         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4850           prevents leaving parts of the structure uninitialized after copying
4851
4852 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4853
4854         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4855           ago by me
4856         * support/regression/tests/addsub.c: added test for the bug
4857
4858 2005-09-21 Raphael Neider <rneider AT web.de>
4859
4860         * device/include/pic16/pic18f1220.h,
4861           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4862         * device/lib/pic16/Makefile.rules: added missing opening paren
4863         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4864           are provided in genutils.c,
4865           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4866           operand/result sizes,
4867           (genCmp): assert on NULL pointers first, then check deref'ed values
4868         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4869           result size
4870
4871 2005-09-18 Raphael Neider <rneider AT web.de>
4872
4873         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4874           as these are now unused,
4875           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4876         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4877           local, avoids uninitialized pointer dereference on r->name
4878         * src/pic16/ralloc.c (newReg): fixed indentation
4879
4880 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4881
4882         * src/SDCCval.c (constVal): fixed bug 730366
4883         * support/Util/SDCCerr.c,
4884         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4885
4886 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4887
4888         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4889
4890 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4891
4892         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4893
4894 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4895
4896         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4897           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4898         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4899           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4900         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4901         * packihx/packihx.c (hexDigit): made c unsigned char
4902         * as/mcs51/lklibr.c (fndsym),
4903         * link/z80/lkgb.c (gb),
4904         * link/z80/lklibr.c (fndsym),
4905         * link/z80/lkrloc.c (relr),
4906         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4907         * src/SDCC.lex (checkCurrFile, process_pragma),
4908         * src/SDCCglue.c (spacesToUnderscores),
4909         * src/SDCCmain.c (setParseWithComma, processFile),
4910         * src/asm.c (tvsprintf, printCLine),
4911         * src/avr/gen.c (emitcode, aopPut),
4912         * src/ds390/gen.c (emitcode),
4913         * src/hc08/gen.c (emitcode, emitinline),
4914         * src/mcs51/gen.c (emitcode, genInline),
4915         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4916           tokenizeLineNode),
4917         * src/pic/ralloc.c (debugLog),
4918         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4919           tokenizeLineNode),
4920         * src/pic16/ralloc.c (debugLog),
4921         * src/z80/main.c (_process_pragma):
4922            made all ctype.h function calls safe
4923         * src/SDCCopt.c: include math.h for fabs
4924         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4925           and used them throughout the code to make ctype.h function calls safe
4926         * src/ds390/main.c (asmLineNodeFromLineNode),
4927         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4928         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4929            unsigned char*
4930         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4931           (newpCodeAsmDir): made ctype.h function calls safe
4932         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4933           pic16_emitcode):  made lbp unsigned char*
4934         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4935           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4936         * src/xa51/gen.c (emitcode),
4937         * src/z80/gen.c (_emit2): made lbp unsigned char*
4938         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4939            char*
4940
4941 2005-09-05 Raphael Neider <rneider AT web.de>
4942
4943         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4944           access bank splitpoint
4945
4946 2005-09-05 Raphael Neider <rneider AT web.de>
4947
4948         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4949
4950 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4951
4952         * .version: changed to version 2.5.3
4953         * doc/sdccman.lyx: changed version to 2.5.3,
4954           documented --codeseg and --constseg and pragma codeseg and constseg,
4955           documented bit parameters (reentrant) and bit returning
4956         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4957            currFunc->recvSize, but is this ok for all ports?
4958           (ast2iCode): result of ~ on unsigned char must be cast to int for
4959            bool to work
4960         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4961           function pointers in bit space
4962         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4963           (processFuncArgs): call port.reg_parm() with reentrancy info
4964         * src/port.h,
4965         * src/avr/main.c,
4966         * src/ds390/main.c,
4967         * src/hc08/main.c,
4968         * src/pic/main.c,
4969         * src/pic16/main.c,
4970         * src/xa51/main.c,
4971         * src/z80/main.c: port.reg_parm prototype extended with
4972           "bool reentrant" parameter
4973         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4974           options.stackAuto for allocating bit register parameters
4975         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4976           (genSend): set BitBankUsed if it is,
4977           (selectRegBank): factored out of genCall for use in genPcall,
4978           (genCall): removed redundant dtype assignmen, use selectRegBank,
4979           (genPcall): handle returning in Carry properly, save in F0 if needed,
4980           (genReceive): handle bit register parameters
4981         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4982           (mcs51_assignRegisters): enable bit registers for all reentrant
4983            functions and don't set BitBankUsed unconditionally
4984         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4985         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4986         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4987
4988 2005-08-27 Borut Razem <borut.razem AT siol.net>
4989
4990         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4991         ppc-osx (Darwin) does not support -u option. It seems that it is
4992         supported only on Linux - GNU cp
4993
4994 2005-08-25 Borut Razem <borut.razem AT siol.net>
4995
4996         * sim/ucsim/gui.src/serio.src/Makefile.in,
4997           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4998           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4999           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
5000           install and strip, since the strip at /usr/ccs/bin should be used
5001           on solaris
5002
5003 2005-08-24 Borut Razem <borut.razem AT siol.net>
5004
5005         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
5006
5007 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
5008
5009         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
5010         ffffffffu
5011
5012 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
5013
5014         * as/mcs51/aslink.h: completed lkrloc.c prototypes
5015         * as/mcs51/lkmain.c (link_main): fixed warning
5016         * device/include/stdbool.h: ds390 has no advanced bit support yet
5017         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
5018         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
5019         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
5020           and updated their macros
5021         * src/SDCCval.c (constVal): updated comment for renamed b_long
5022
5023 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
5024
5025         * as/mcs51/asdata.c: changed ctype['['] to BINOP
5026         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
5027           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
5028           (oprio): set priority for '['
5029         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
5030            and adb_24_bit
5031         * as/mcs51/asm.h: added defines R_BIT and S_BIT
5032         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
5033         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
5034         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
5035           added overlayable BIT_BANK area
5036         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
5037           (summary2): explain 'T' in legenda
5038         * as/mcs51/lkrloc.c: replaced old K&R style,
5039           (relr): added R_BIT processing,
5040           (errmsg): added "Bit-addressable relocation error",
5041           (adb_bit): added for converting from byte- to bit-addressable space,
5042           (adb_24_bit): added for converting from byte- to bit-addressable space
5043         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
5044            used in reentrant functions now even as return value
5045         * device/lib/_gptrput.c (_gptrput): removed obsolete code
5046         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
5047           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
5048         * src/SDCCglobl.h: added indicator BitBankUsed
5049         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
5050            the bit registers b0-b7
5051         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
5052           (geniCodeCast): fixed bug 1263853,
5053           (geniCodeLogicAndOr): put result in bool or char,
5054           (geniCodeReceive): added parameter func for accessing the return type,
5055           (geniCodeFunctionBody): pass func to geniCodeReceive
5056         * src/SDCCmain.c: added indicator BitBankUsed
5057         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
5058         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
5059           (checkSClass): don't put automatic bool/bit on stack,
5060           (checkFunction): removed check on function cannot return bit
5061         * src/SDCCsymt.h: added newBoolLink prototype
5062         * src/mcs51/gen.c (rb1regs): added bit registers,
5063           (movc): created for assigning to carry,
5064           (pushReg, popReg): created for pushing registers,
5065           (sameRegs): check both AOP_REG and AOP_CRY types,
5066           (aopOp): handle bit registers,
5067           (aopPut): optimization no self-assign,
5068           (saveRegisters): push reg->base (bits) only once for bit registers,
5069            and use pushReg,
5070           (unsaveRegisters): pop reg->base only once and use popReg,
5071           (assignResultValue): added parameter func and return in carry for bits,
5072           (genIpush): optimization no reload in A if not changed,
5073           (genSend): bit parameters in reentrant functions are passed in bit
5074            registers by first assigning to bits in B, then save registers and
5075            copy B to bits,
5076           (genCall): handle returning in Carry properly, save it in F0 if needed,
5077           (genPcall): updated assignResultValue call, this is not safe yet for bit
5078            returning function !!!
5079           (genFunction): don't generate equ's for bit registers and use pushReg,
5080           (genEndFunction): take care of bit returning functions and use popReg,
5081           (genRet): return bit in Carry,
5082           (genIfx): optimize bit registers and other directly addressable bits,
5083           (genReceive): updated assignResultValue call
5084         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
5085           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
5086            registers when using stack-auto
5087         * src/mcs51/ralloc.c (_G): added allBitregs,
5088           (regs8051): added the bit registers,
5089           (createStackSpil): use macro IS_BIT,
5090           (getRegBit): added to allocate a bit register, else spill,
5091           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
5092           (updateRegUsage): factored out to ease stepping while debugging,
5093           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
5094            also allocate bit registers,
5095           (fillGaps): handle bit registers,
5096           (findAllBitregs): added to create bit vector with all bit registers,
5097           (mcs51_allBitregs): returns this bit vector,
5098           (mcs51_assignRegisters): when using stack-auto use bit registers for
5099            passing parameters and creating local variables
5100         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
5101
5102 2005-08-22 Borut Razem <borut.razem AT siol.net>
5103
5104         * device/lib/Makefile.in: replaced find option -or with -o
5105           to make it run on solaris
5106
5107 2005-08-22 Raphael Neider <rneider AT web.de>
5108
5109         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
5110           fixes #1265442 (crash on Solaris)
5111
5112 2005-08-20 Borut Razem <borut.razem AT siol.net>
5113
5114         * configure, configure.in: added tests for libsocket and libnsl libraries,
5115           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
5116           from support/regression/Makefile.in
5117         * support/regression/Makefile.in: added
5118         * device/lib/pic16/Makefile.common.in: force make to use bash shell
5119         * sim/ucsim/libtool: regenerated on sparc-solaris
5120         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
5121           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
5122           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
5123           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
5124           sparc-solaris, which doesn't use GNU ld linker
5125         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
5126         * as/Makefile: find on sparc-solaris does not support -maxdepth option
5127
5128 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
5129
5130         * src/mcs51/peeph.def: updated comments
5131
5132 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5133
5134         * device/lib/_gptrget.c,
5135         * device/lib/_gptrput.c: slightly shorter
5136         * doc/sdccman.lyx: incremented version
5137         * src/mcs51/peeph.def: moved peephole comments to the line of first
5138           change to better keep line correlation, reanimated 186.e
5139         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
5140
5141 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5142
5143         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
5144           David Saxton with quotes around file name.
5145
5146 2005-08-15 Borut Razem <borut.razem AT siol.net>
5147
5148         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
5149           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
5150           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
5151           make tests run on x86_64 platform
5152
5153 2005-08-13 Raphael Neider <rneider AT web.de>
5154
5155         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
5156           as it might be executed DURING a build (parallel make is wonderful)
5157
5158 2005-08-13 Raphael Neider <rneider AT web.de>
5159
5160         * device/lib/Makefile.in (port-specific-objects-pic16):
5161           revert to cp $(PORT)/bin/*.* $(PORTDIR)
5162         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
5163           dependency
5164         * device/lib/pic16/Makefile.rules: build subdirs before creating
5165           the library, removed builddir rule, create $(builddir) early in
5166           recurse rule, use empty recurse rule for leaf directories
5167         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
5168           mkdir errors (race condition), removed duplicate suffix "hex"
5169           from clean rules
5170         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
5171         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
5172           prevents mkdir -p from aborting on Alpha
5173
5174 2005-08-12 Raphael Neider <rneider AT web.de>
5175
5176         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
5177           db-statements in order to allow for arrays of pointers in code
5178           sections to be placed without interspersed 0-padding, fixes
5179           bug #1256215
5180         * (emitStatistics): fixed division by zero for pic18f1220
5181         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
5182           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
5183         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
5184         * (pic16_pCodeConstString): keep track of already emitted string
5185           literals to prevent "duplicate definitions of symbol _str_NR"
5186         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
5187           debug message
5188         * device/lib/Makefile.in: ignore failing PIC16 library builds
5189         * device/lib/pic16/Makefile: do not build if gputils are missing
5190         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
5191
5192 2005-08-10 Raphael Neider <rneider AT web.de>
5193
5194         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5195           my last commit)
5196
5197 2005-08-10 Raphael Neider <rneider AT web.de>
5198
5199         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5200           Rokas' patch to add the new fixed point type "__fixed16x16"
5201         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5202           functions for __fixed16x16 arithmetics
5203         * device/lib/pic16: reimplemented the build system to support
5204           a separate build directory, better handling of libio (create
5205           the library in a separate subdir for each architecture) and
5206           easier configuration (centralized in Makefile.common)
5207
5208 2005-08-07 Raphael Neider <rneider AT web.de>
5209
5210         * src/pic16/gen.c (genrshTwo): fixed sign extension
5211         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5212         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5213           added T0CONbits
5214         * device/include/pic16/pic18f4220.h: NEW, header for
5215           pic18f4220 and pic18f4320
5216         * device/include/pic16/pic18fregs.h: added new devices,
5217           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5218         * device/include/pic16/signal.h: resolved name clashes
5219           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5220           to also allow testing for interrupt enable bits, added
5221           comments on how to use the macros
5222         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5223         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5224           register definitions for the devices
5225         * device/lib/pic16/pics.all: added new devices
5226         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5227           allocated memory
5228         * device/lib/pic16/libc/stdlib/memfree: do not count
5229           the block header as free memory
5230         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5231           simplified and added missing end-of-blocklist-marker
5232           (reported by Peter Onion, fixes #1252814)
5233         * (_mergeHeapBlock): fixed loop condition
5234         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5235           len==0, restructured code
5236         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5237           up a bit, reduced bitfield accesses, prevent endless loops
5238           in case of heap corruption
5239         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5240           "unreferenced arguments/must return a value" warnings
5241         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5242           replaced BAUDREG with SPBRG
5243         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5244           device/lib/pic16/debug/gstack/gstack.c: replaced
5245           _naked, _asm, _endasm with __naked, __asm, __endasm
5246
5247 2005-08-05 Raphael Neider <rneider AT web.de>
5248
5249         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5250           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5251
5252 2005-08-05 Borut Razem <borut.razem AT siol.net>
5253
5254         * device/lib/Makefile.in: added missing ';'
5255         * configure: removed ^M characters
5256
5257 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5258
5259         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5260           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5261           License
5262
5263 2005-08-04 Borut Razem <borut.razem AT siol.net>
5264
5265         * configure.in: pic16 libraries build 2nd try - enable running
5266           configure in device/lib/pic16
5267         * configure: regenerated from configure.in
5268         * device/lib/Makefile.in: create $(PORT)/bin directory
5269
5270 2005-08-03 Raphael Neider <rneider AT web.de>
5271
5272         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5273           to get/set values via pointers
5274         * (genUnpackBits,genPackBits): changed detection of
5275           ptr->bitfield vs. sym.bitfield, fixed access via generic
5276           pointers, removed dead (wrong) code for multibyte bitfields
5277         * (genNearPointerGet, genGenPointerGet): removed useless code,
5278           fixed bitfield detection, fixes #1250594
5279         * (genNearPointerSet): removed useless code
5280         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5281           and introduced macro pic16_emitpcode that conditionally emits
5282           the origin of the following pCode (useful for debugging SDCC)
5283         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5284         * (createDefmap): fixed handling of LFSR for --optimize-df
5285
5286 2005-08-02 Borut Razem <borut.razem AT siol.net>
5287
5288         * device/lib/Makefile.in: pic16 libraries build enabled since
5289           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5290
5291 2005-08-02 Raphael Neider <rneider AT web.de>
5292
5293         * src/pic16/gen.c (genPackBits): removed deprecated warning
5294         * (genGenPointerSet): fixed bitfield detection
5295
5296 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5297
5298         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5299
5300 2005-07-31 Raphael Neider <rneider AT web.de>
5301
5302         * device/lib/pic16/libdev/pic18f458.c,
5303           device/include/pic16/pic18f458.h: added missing T0CONbits
5304
5305 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5306
5307         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5308
5309 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5310
5311         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5312
5313 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5314
5315         * device/include/mcs51/at89c51ed2.h: added.
5316
5317 2005-07-23 Raphael Neider <rneider AT web.de>
5318
5319         * src/pic/gen.h: added emitpcode macro for debugging
5320         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5321           and replace by macro adding debug information on demand
5322         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5323         * (gencjne): tried to fix; replaced with correct (slower) code
5324         * (gen{Unp,P}ackBits): fixed single bit access
5325         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5326         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5327           previous instruction
5328         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5329           register has to be handled with care (forbidding movement
5330           of assignments/uses, removing assignments completely, ...)
5331         * (pCodeOptime2pCodes): make use of regIsSpecial
5332         * added lots of debugging output (commented out)
5333         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5334           from being reused as result UNLESS it is known to work
5335
5336 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5337
5338         * support/Util/dbuf.h: include <stddef.h> for size_t
5339         * .version: changed to version 2.5.2
5340
5341 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5342
5343         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5344
5345 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5346
5347         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5348           (genModOneByte): removed needless psha/pula
5349
5350 2005-07-22 Raphael Neider <rneider AT web.de>
5351
5352         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5353           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5354         * src/pic/gen.c (resolveIfx): do not "invent" labels
5355         * (genSkipc): changed to positive logic
5356         * (genSkipCond): removed as no longer needed
5357         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5358           backport from PIC16
5359         * (genLeftShift): check operands are in different registers
5360         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5361           INCF does not update CARRY...
5362         * src/pic/main.c: fixed _linkCmd
5363         * src/pic/pcode.c (unlinkpCode): added inactive code
5364         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5365           alive (do not assign result and operand overlapping registers)
5366
5367 2005-07-22 Raphael Neider <rneider AT web.de>
5368
5369         * src/pic/device.c (dump_sfr): replaced register declaration with
5370           call to emitSymbolToFile() to avoid duplicate symbols
5371         * (assignRelocatableRegisters): do not declare external symbols
5372         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5373           right (take size of type, not etype)
5374         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5375         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5376         * (packRegsForAccUse): disabled assignment of WREG as
5377           the result reg to prevent occurence of just fixed #1235003,
5378           fixes #1242954
5379         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5380           symbols (avoids duplicate symbols in .asm file)
5381         * (pic14emitRegularMap): use emitSymbolToFile()
5382         * src/pic/gen.c (aopOp): fixed spillLocation handling
5383         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5384         * (genDataPointerSet): removed unneccessary variables/output
5385
5386 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5387
5388         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5389         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5390
5391 2005-07-21 Raphael Neider <rneider AT web.de>
5392
5393         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5394           architecture cannot handle them efficiently, fixes bug #1235003
5395         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5396           check for empty sets before using them (fixes bug #1232190)
5397
5398 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5399
5400         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5401           (lnksect2): generate warnings for memory overlap
5402         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5403           constseg to set the name of these segments so you can instruct the linker
5404           to place them in banks
5405         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5406         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5407           added code_seg and const_seg to options
5408         * src/SDCCglue.c (emitMaps): use options.const_seg,
5409           (createInterruptVect): put interrupt vectors in segment HOME,
5410           (glue): put HOME before static segment and put the main glue in HOME,
5411           (glue): use options.code_seg
5412         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5413         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5414           these segments so you can instruct the linker to place them in banks
5415           (linkEdit): use code_loc for HOME segment which should be the first
5416           segment in code memory now
5417         * src/SDCCmem.c: fixed more stuff like bug 1238386
5418         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5419           (changePointer): don't change function pointers to code pointers for
5420           banked functions,
5421           (compareType): added exceptional check for banked function pointers
5422         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5423         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5424           after static in code memory
5425         * src/mcs51/gen.c: added aopLiteralLong prototype,
5426           (aopForSym): use getSize for functions,
5427           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5428           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5429           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5430           the segment,
5431           (genPcall): use call for literal function pointers and generate banked
5432           calls over the one trampoline so there's only one place for the user to
5433           modify according to his/hers hardware,
5434           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5435           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5436         * src/mcs51/main.c: added keyword banked,
5437           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5438         * support/Util/SDCCerr.c,
5439         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5440           needed for passing the bank and address to the trampoline
5441         * device/lib/mcs51/crtbank.asm: added for bankswitching
5442         * device/lib/mcs51/Makefile: added crtbank
5443
5444 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5445
5446         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5447           for fields at offset 0 of a struct or union as reported
5448           on 2005-07-07 in the developer mailing list.
5449
5450 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5451
5452         * src/SDCCmem.c: fixed bug 1238386
5453
5454 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5455
5456         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5457           (patch #1144962), added peephole 300, enabled 259.x
5458         * doc/sdccman.lyx: removed screenshot and provided link instead
5459
5460 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5461
5462         * doc/sdccman.lyx: added section about debugging with ddd
5463         * doc/figures/ddd_example.eps: screenshot of debugging session
5464
5465 2005-07-04 Raphael Neider <rneider AT web.de>
5466
5467         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5468           like CODE pointers, fixes #1115683
5469         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5470           call, fixes bugs #1232211, #1228110,
5471           fixed wrong casts to pCodeFlow from pCodeInstructions
5472
5473 2005-07-04 Raphael Neider <rneider AT web.de>
5474
5475         * src/pic/gen.c (popGet): changed assert to allow for
5476           bit operands
5477         * (popGetAddr): changed signature to provide
5478           an additional index, patched all call sites
5479         * (genCmpEq): handle literal-like operands correctly
5480         * (genAddrOf): added sanity checks on __code/__data pointers
5481         * (genAssign): added handling of symbols from __code section
5482         * (gencjne): do not generate code for comparisons whose result
5483           is neither stored nor used, fixes bug #1171114
5484         * (AccLsh, AccRsh): operate on operand instead of WREG
5485         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5486           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5487           by known count
5488         * rewrote complete shift-by-literal logic, commented unused
5489           functions out
5490         * (genConstPointerGet): get multiple bytes (if result size > 1),
5491           fixed handling of non-immediate addresses
5492         * (genPointerGet): handle CODE pointers like CONST pointers
5493         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5494         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5495           operand is to be treated as a literal or not
5496         * (mov2w,genPcall,genCmpEq),
5497           src/pic/genarith.c: use aop_isLitLike() to decide between
5498           literal/register contents
5499         * (addSign): added missing offset
5500         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5501           only emit comment in debug-mode,
5502           use {aop,op}_isLitLike throughout the file
5503         * src/pic/glue.c: fix initializers for pointers (work in progress)
5504         * src/pic/pcode.c (get_op): honor index on _const symbols
5505         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5506         * (dumppBlock): added pCode size estimation
5507         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5508           check for IS_SYMOP before OP_SYMBOL'ing
5509         * fixed indentation, compacted switch-statements
5510         * (allocReg): find free register and allocate it instead of
5511           allocating new registers all the time
5512         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5513           registers as its operands (necessary only for multibyte GETs)
5514
5515 2005-07-01 Raphael Neider <rneider AT web.de>
5516
5517         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5518           debugging .asm-output macros FENTRY + FEXIT
5519         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5520           way... I wonder...
5521         * (emitpComment): NEW, printf to pCode
5522         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5523           offset handling
5524         * (popGetAddr): NEW, variant of popGet to access an immediates
5525           high(er) bytes instead of the n'th byte of memory they reference,
5526           replaced popGet with popGetAddr where neccessary
5527         * (genDataPointerGet): reactivated and fixed implementation
5528         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5529           accesses
5530         * (genDataPointerSet): fixed multibyte assignments
5531         * (genpic14Code): fixed --i-code-in-asm handling
5532         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5533         * (genPlus): fixed index-out-of-bounds error
5534         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5535         * src/pic/ralloc.c: added debugging output macro FENTRY2
5536         * (spillThis): fixed indentation, enbraced for-body for clarity
5537         * (rematStr): commented out as now unused
5538         * (regTypeNum): commented out special spill case (overwrites
5539           arbitrary values)
5540         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5541
5542 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5543
5544         * doc/sdccman.lyx: documented sfr16/sfr32,
5545           added example for using storage class with function pointers
5546         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5547
5548 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5549
5550         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5551         * device/lib/_itoa.c,
5552         * device/lib/_ltoa.c: optimized codesize
5553         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5554           but don't know how to suppress the double warning.
5555         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5556         * support/Util/SDCCerr.c,
5557         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5558
5559 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5560
5561         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5562           fixed old K&R prototypes
5563         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5564         * device/lib/_gptrget.c,
5565         * device/lib/_gptrgetc.c,
5566         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5567           also new versions for small generic pointers and banked generic pointers
5568         * src/port.h: added const_name
5569         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5570         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5571         * src/SDCCcse.c (findPrevIc): check all associative operators
5572         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5573         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5574         * src/SDCCmem.c: updated comments,
5575           set far-space to 0 for pdata, results in optimized code
5576         * src/SDCCmem.h: added macro CONST_NAME
5577         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5578           moving the info into the highest bits, see also gptrget/gptrput
5579         * src/src.dsp: added sdcc.ico to project files
5580         * src/avr/gen.c (genCast): fixed bug 0x%d
5581         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5582         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5583           relation between ptr_type and DCL_TYPE,
5584           (genCast): fixed bug 0x%d
5585         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5586           (CODE)" for const_name
5587         * src/hc08/gen.c (genCast): fixed bug 0x%d
5588         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5589           (hc08_port): added "CONST (CODE)" for const_name
5590         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5591           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5592           between ptr_type and DCL_TYPE,
5593           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5594           operand* and took AOP() inside function so sfr-ness can be checked,
5595           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5596           new prototype,
5597           (genFunction, genEndFunction): optimized stack setup,
5598           (genMinus): optimized for literals with ending zeroes (in bytes),
5599           (genCast): fixed bug 0x%d
5600         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5601           (mcs51_port): added "CONST (CODE)" for const_name
5602         * src/mcs51/peeph.def: made rule 226 more generic
5603         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5604         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5605         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5606         * src/z80/main.c (z80_port): added NULL for const_name,
5607           (gbz80_port): added NULL for const_name
5608         * support/regression/tests/bug663539.c,
5609         * support/regression/tests/sfr16.c: new tests
5610
5611 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5612
5613         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5614
5615 2005-06-24 Raphael Neider <rneider AT web.de>
5616
5617         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5618           corrected typos...
5619         * device/include/pic16/signal.h: added USBIF
5620           and SIG_USB
5621
5622 2005-06-24 Raphael Neider <rneider AT web.de>
5623
5624         * device/lib/pic16/libdev/pic18f2455.c,
5625           device/include/pic16/pic18f2455.h: NEW
5626         * device/include/pic16/pic18fregs.h,
5627           device/lib/pic16/pics.all,
5628           src/pic16/device.c: added 18f2455
5629         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5630           device/include/pic16/{pic18f[68][567].h,usart.h}:
5631           replaced MULTIPLE_USARTS define with more relaible
5632           compatibility sfrs (for USART access)
5633
5634 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5635
5636         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5637           and the output asm file line is printed on two lines.
5638
5639 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5640
5641         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5642           BGT, BLE, BHI, and BLS instructions
5643         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5644           genCmpEq): removed
5645         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5646           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5647           fixes bug #1216342
5648         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5649
5650 2005-06-15 Raphael Neider <rneider AT web.de>
5651
5652         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5653         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5654         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5655           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5656           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5657
5658 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5659
5660         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5661           Marcel Telka in bug #1215704
5662
5663 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5664
5665         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5666           located in shared memory bank.
5667
5668 2005-05-31 Raphael Neider <rneider AT web.de>
5669
5670         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5671           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5672           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5673
5674 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5675
5676         * device/lib/_strncpy.c: fixed the fix
5677
5678 2005-05-26 Raphael Neider <rneider AT web.de>
5679
5680         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5681           initializers with \0, bug #1208187
5682         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5683           intializers with \0, bug #1208187
5684
5685 2005-05-26 Raphael Neider <rneider AT web.de>
5686
5687         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5688           initializers with \0, bug #1208187
5689         * src/pic16/main.c (_process_pragma): added sanity checks
5690           for stack position and size, emit warnings when appropriate
5691
5692 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5693
5694         * device/lib/_strncpy.c: fixed not filling with \0
5695
5696 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5697
5698         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5699           createFunction),
5700         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5701           compound_statement),
5702         * src/SDCCsymt.h,
5703         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5704
5705 2005-05-24 Raphael Neider <rneider AT web.de>
5706
5707         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5708
5709 2005-05-24 Raphael Neider <rneider AT web.de>
5710
5711         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5712           TRISE definitions, closes bug #1162453
5713
5714 2005-05-22 Raphael Neider <rneider AT web.de>
5715
5716         * src/pic16/main.c (_process_pragma): check for missing
5717           arguments to pragmas code and udata
5718         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5719           consistency fixes to match other headers (thanks to Jim Paris)
5720         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5721
5722 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5723
5724         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5725
5726 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5727
5728         * support/regression/tests/bug1198642.c: new test
5729         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5730         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5731         * support/scripts/resource.h,
5732         * support/scripts/resource.rc,
5733         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5734         * support/scripts/sdcc.ico: added 32x32 icon
5735
5736 2005-05-18 Raphael Neider <rneider AT web.de>
5737
5738         * device/lib/pic16/libdev/pic18f*.c,
5739         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5740           keywords to "__sfr" and "__at (X)"
5741         * device/include/pic16/pic18fregs.h: added pic18f4520
5742         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5743           #1203088 (MPLAB compatibility)
5744
5745 2005-05-17 Raphael Neider <rneider AT web.de>
5746
5747         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5748         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5749         * device/lib/pic16/pics.all: added new devices
5750         * src/pic16/device.c: added support for pic18f4520
5751
5752 2005-05-16 Raphael Neider <rneider AT web.de>
5753         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5754         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5755         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5756           convenience function for bit access
5757
5758 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5759
5760         * device/lib/printf_large.c: fixed bug 1193299
5761         * support/regression/tests/bug1057979.c: added test %3.3s
5762
5763 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5764
5765         * device/include/mcs51/8051.h,
5766         * device/include/mcs51/8052.h: made parseable with lint
5767         * device/include/mcs51/lint.h: added include file for (sp)lint
5768         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5769         * doc/cdbfileformat.lyx,
5770         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5771
5772 2005-05-14 Raphael Neider <rneider AT web.de>
5773
5774         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5775         * device/lib/pic16/libc/stdlib/itoa.c (new)
5776         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5777         * device/lib/pic16/libio/Makefile: exclude subdir according to
5778           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5779         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5780         * src/pic16/gen.c (genFunction): prevent annoying warning
5781         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5782           nameclashes on BeOS
5783         * support/cpp2/cppmain.c (cpp_output_string): new
5784         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5785           fixes bug 1116802
5786
5787 2005-05-13 Borut Razem <borut.razem AT siol.net>
5788
5789         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5790
5791 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5792
5793         * .version: changed to version 2.5.1; back to bleeding edge development
5794
5795 2005-05-11 Borut Razem <borut.razem AT siol.net>
5796
5797         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5798           generate PDF version 1.3 documents
5799
5800 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5801
5802         * .version: changed to version 2.5.0
5803
5804 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5805
5806         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5807
5808 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5809
5810         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5811         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5812         well as many smaller updates.
5813         * .version: changed to version 2.5.0-pre1
5814
5815 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5816
5817         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5818
5819 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5820
5821         * support/regression/tests/bug1185672.c: added
5822         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5823           bug 1185672
5824         * src/mcs51/gen.c (genCall): added comments, made it look safer
5825         * src/mcs51/gen.c (genEndFunction): simplified
5826
5827 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5828
5829         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5830
5831 2005-04-14 Borut Razem <borut.razem AT siol.net>
5832
5833         * fixed bug 1045046 - SIGSEGV with really simple code?:
5834           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5835           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5836
5837 2005-04-14 Borut Razem <borut.razem AT siol.net>
5838
5839         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5840           src/pic16/device.h: temporarily disabled experimental #inline pragma
5841           for 2.5.0 release
5842
5843 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5844
5845         * device/include/z80/stdio.h,
5846         * device/include/z80/string.h: removed these highly incomplete files so
5847           SDCC can use the default ones in device/include/
5848
5849 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5850
5851         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5852         gcc warning.
5853         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5854         fix sdcpp warnings.
5855
5856 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5857
5858         * device/include/malloc.h: removed redundant __reentrant prototypes
5859         * device/lib/_mullong.c: added working xstack variant in asm (C version
5860           doesn't pass regression tests)
5861         * device/lib/bpx.c: used __data and made bpx char for mcs51
5862         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5863           (createFunction): fixed bug with xstackPtr
5864         * src/SDCCcse.c: corrected comments
5865         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5866           (killDeadCode, eBBlockFromiCode): removed unused code
5867         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5868           corrected comments
5869         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5870           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5871           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5872           (genModOneByte): fixed warning in MSVC
5873         * src/mcs51/main.c (): added comments
5874         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5875
5876 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5877
5878         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5879
5880 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5881
5882         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5883
5884 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5885
5886         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5887         characters arrays of larger size than the declared one.
5888
5889 2005-04-10 Borut Razem <borut.razem AT siol.net>
5890
5891         * src/pic/gen.c (genInline),
5892           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5893           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5894           (findNextInstruction), (findPrevInstruction),
5895           (findInstructionUsingLabel),
5896           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5897         * src/pic/pcode.c (findLabel): added missing '\n'
5898         * src/src.dsp: added SDCCdwarf2.c to the project
5899
5900 2005-04-09 Borut Razem <borut.razem AT siol.net>
5901
5902         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5903
5904 2005-04-08 Raphael Neider <rneider AT web.de>
5905
5906         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5907           into the chain after a given one) and mergeDefmapSymbols (combine
5908           defmap entries for each symbol per pcode)
5909         * (createDefmap): have defmap entries merged in the end
5910         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5911           a symbol before replacing one access type's symbol, merge symbols in
5912           the end (replacement symbol might already have an entry)
5913         * (assignValnums): keep reference to written WREG intact
5914
5915 2005-04-08 Raphael Neider <rneider AT web.de>
5916
5917         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5918           Alpha)
5919
5920 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5921
5922         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5923         bytes
5924
5925 2005-04-07 Raphael Neider <rneider AT web.de>
5926
5927         * device/include/pic16/usart.h: added compatibility defines for
5928           devices with more than one USART
5929         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5930
5931 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5932
5933         * device/lib/Makefile.in: updated for port specific include
5934
5935 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5936
5937         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5938
5939 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5940
5941         * device/include/8051.h,
5942         * device/include/8052.h,
5943         * device/include/at89S8252.h,
5944         * device/include/at89c55.h,
5945         * device/include/at89x051.h,
5946         * device/include/at89x51.h,
5947         * device/include/at89x52.h,
5948         * device/include/mcs51reg.h,
5949         * device/include/reg51.h,
5950         * device/include/reg764.h,
5951         * device/include/regc515c.h,
5952         * device/include/sab80515.h: (re)moved these 12 files
5953         * device/include/mcs51/8051.h,
5954         * device/include/mcs51/8052.h,
5955         * device/include/mcs51/at89S8252.h,
5956         * device/include/mcs51/at89c55.h,
5957         * device/include/mcs51/at89x051.h,
5958         * device/include/mcs51/at89x51.h,
5959         * device/include/mcs51/at89x52.h,
5960         * device/include/mcs51/mcs51reg.h,
5961         * device/include/mcs51/reg51.h,
5962         * device/include/mcs51/reg764.h,
5963         * device/include/mcs51/regc515c.h,
5964         * device/include/mcs51/sab80515.h: and added them here
5965
5966 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5967
5968         * device/include/stdarg.h: changed SDCC specific keywords to double
5969           underlined form.
5970         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5971           mcs51 and ds390.
5972         * device/include/hc08/mc68hc908gp32.h,
5973         * device/include/hc08/mc68hc908jb8.h,
5974         * device/include/hc08/mc68hc908jkjl.h,
5975         * device/include/hc08/mc68hc908qy.h: fixed comments
5976         * device/include/mcs51/README: updated
5977         * device/include/mcs51/c8051f120.h: added PINRSF
5978         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5979         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5980           amidst code. Also inline is not supported.
5981
5982 2005-04-06 Raphael Neider <rneider AT web.de>
5983
5984         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5985         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5986           callers stack/frame pointers
5987
5988 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5989
5990         * device/include/pic16/usart.h: added, missing in previous commit,
5991         * device/include/pic16/adc.h: fixed typo,
5992         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5993         commit,
5994         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5995         <p18fxxx.inc>
5996         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5997         uninitialized because a bug appears with gplink
5998         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5999         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
6000         complains for unrecognised option
6001
6002 2005-04-05 Raphael Neider <rneider AT web.de>
6003
6004         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
6005           structs as well (using memcpy)
6006         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
6007           on ISRs (GOTO has no label)
6008         * src/pic16/device.h: added OF_OPTIMIZE_DF
6009         * src/pic16/main.c: added compiler switch --optimize-df to enable the
6010           new data flow analysis/optimization
6011         * src/pic16/pcode.c: added (prototypes for and implementation of)
6012           dataflow analysis functions, fixed pCodeInstructions' inCond and
6013           outCond values, made RCALL a branch instruction
6014         * (pic16_unlinkpCode): keep C line if possible
6015         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
6016           C line moved if possible
6017         * (pic16_getRegFrompCodeOp): NEW, improved version of...
6018         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
6019           to use new pic16_getRegFrompCodeOp (works for more SFRs)
6020         * (pic16_BuildFlow): fixed skip instructions with label (did not start
6021           new flow)
6022         * (pic16_getJumptabpCode): NEW, needed in...
6023         * (LinkFlow): fixed handling of jumptables, calls and conditional
6024           branches
6025         * (pic16_InsertCommentAfter): NEW
6026         * (pic16_pCodeReplace): made verbose and flow preserving
6027         * (AnalyzeFlow): added call to data flow analysis
6028         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
6029         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
6030         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
6031
6032 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6033
6034         * src/SDCCast.c (decorateType): fixed bug #1105626
6035
6036 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
6037
6038         * device/include/asm/pic16/features.h,
6039         * pic18f*.h headers,
6040         * device/include/pic16/adc.h,
6041         * device/include/pic16/delay.h,
6042         * device/include/pic16/i2c.h,
6043         * device/include/pic16/malloc.h,
6044         * device/include/pic16/stdio.h,
6045         * device/include/pic16/stdlib.h,
6046         * device/include/pic16/string.h,
6047         * device/lib/pic16/libc/stdio/printf_tiny.c,
6048         * device/lib/pic16/libc/stdio/printf_small.c,
6049         * device/lib/pic16/libc/stdio/strmgpsim.c,
6050         * device/lib/pic16/libc/stdio/strmmssp.c,
6051         * device/lib/pic16/libc/stdio/strmusart.c,
6052         * device/lib/pic16/libc/stdio/vfprintf.c,
6053         * device/lib/pic16/libc/stdlib/ltoa.c,
6054         * device/lib/pic16/libc/stdlib/putchar.c,
6055         * device/lib/pic16/libc/stdlib/x_ftoa.c,
6056         * device/lib/pic16/libc/stdlib/memchrpgm.c,
6057         * device/lib/pic16/libc/stdlib/memchrram.c,
6058         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
6059         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
6060         * device/lib/pic16/libio/adc/adcbusy.c,
6061         * device/lib/pic16/libio/adc/adcread.c,
6062         * device/lib/pic16/libio/adc/adcsetch.c,
6063         * device/lib/pic16/libio/usart/ubaud.c,
6064         * device/lib/pic16/libio/usart/ubusy.c,
6065         * device/lib/pic16/libio/usart/udrdy.c,
6066         * device/lib/pic16/libio/usart/uopen.c,
6067         * device/lib/pic16/libio/usart/uputc.c,
6068         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
6069         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
6070         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
6071         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
6072         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
6073         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
6074         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
6075         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
6076         specific keywords to double underlined form,
6077         * device/lib/pic16/libc/Makefile.rules,
6078         * device/lib/pic16/libsdcc/Makefile.rules,
6079         * device/lib/pic16/libm/Makefile,
6080         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
6081         to compile with C standard set in Makefile.common
6082         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
6083         rand.c and crc.c in compilation process,
6084         * device/lib/pic16/libsdcc/int/divuint.c,
6085         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
6086         `c' from signed to unsigned,
6087         * device/lib/pic16/startup/crt0.c,
6088         * device/lib/pic16/startup/crt0i.c,
6089         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
6090         keywords to double underlined form, bug fixes in _do_cinit function
6091         which prevented the correct initialization of the .idata segment,
6092         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
6093         core to enter a infinite loop
6094         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
6095
6096 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6097
6098         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
6099
6100 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6101
6102         * device/include/Makefile.in: add support for hc08 subdirectory
6103         * device/include/hc08/: new subdirectory
6104         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
6105         Lucas Loizaga, thanks!
6106         * device/include/hc08/mc68hc908qy.h,
6107         * device/include/hc08/mc68hc908gp32.h,
6108         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
6109         their own directory. Changed internal macro names to use the compiler
6110         reserved namespace. Changed SDCC specific keywords to double
6111         underlined form.
6112         * device/include/math.h,
6113         * device/include/malloc.h,
6114         * device/include/stdarg.h,
6115         * device/include/stdbool.h
6116         * device/include/string.h,
6117         * device/include/tinibios.h,
6118         * device/include/ds400rom.h,
6119         * device/include/8051.h,
6120         * device/include/8052.h,
6121         * device/include/80c51xa.h,
6122         * device/include/at89c55.h,
6123         * device/include/at89S8252.h,
6124         * device/include/at89x51.h,
6125         * device/include/at89x52.h,
6126         * device/include/ds80c390.h,
6127         * device/include/reg764.h,
6128         * device/include/regc515c.h,
6129         * device/include/sab80515.h,
6130         * device/include/mcs51/c8051f000.h,
6131         * device/include/mcs51/c8051f018.h,
6132         * device/include/mcs51/c8051f020.h,
6133         * device/include/mcs51/c8051f040.h,
6134         * device/include/mcs51/c8051f060.h,
6135         * device/include/mcs51/c8051f120.h,
6136         * device/include/mcs51/c8051f300.h,
6137         * device/include/mcs51/c8051f310.h,
6138         * device/include/mcs51/c8051f320.h,
6139         * device/include/mcs51/c8051f330.h,
6140         * device/include/mcs51/c8051f350.h,
6141         * device/include/z180.h: Changed SDCC specific keywords to double
6142         underlined form.
6143
6144 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
6145
6146         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
6147         18F4455,
6148         * (pic16_assignConfigWordValue): disable testing of configuration
6149         register value with config mask,
6150         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
6151         function with port->fun_prefix,
6152         * (genFunction): when generating a naked interrupt function never
6153         create an absolute segment placed in interrupt vector address, place
6154         the actual interrupt function at IVA instead, when an interrupt
6155         function is generated with unspecified interrupt then do not create
6156         the absolute section,
6157         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
6158         code for generating a call to generic pointer get/put function with
6159         a call to function pic16_callGenericPointer(),
6160         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
6161         the call to the generic pointer get/put functions with prefixing the
6162         function name with port->fun_prefix,
6163         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
6164         * src/pic16/main.c (_process_pragma): prefix function with
6165         port->fun_prefix,
6166         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
6167         calling assembler, old 18Fxxxx macro is deprecated,
6168         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
6169         PC_ASMDIR in while condition,
6170         * (findInstruction): add PC_ASMDIR in while condition,
6171         * (buildCallTree): prefix main with port->fun_prefix,
6172         * (pic16_pCode2str): fixed bug that didn't emit the memory access
6173         identifier for variable with banked access in instructions BTFSS,
6174         BTFSC, BCF, BSF, BTG
6175         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
6176         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
6177         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
6178         perform optimization when enviroment variable NO_REG_OPT is set,
6179         * (insideLRBlock): NEW, return 1 if register is inside an
6180         INF_LOCALREGS block,
6181         * (RemoveRegFromLRBlock): remove a register that is completely
6182         eliminated by register optimization, but it is still left in local
6183         register store/restore in/from stack block,
6184         * (Remove2pcodes): after removing register, check to see if it
6185         should be removed from local register store/restore in/from stack
6186         block,
6187         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
6188         DUMMY_READ_VOLATILE,
6189
6190         * device/include/pic16/adc.h: minor prototype modifications and
6191         update,
6192         * device/include/pic16/malloc.h: added GPL notice various
6193         modifications,
6194         * device/include/pic16/stdint.h: NEW, standard header for ints
6195         * device/include/pic16/delay.h: NEW, header for delay functions,
6196         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6197         delay1mtcy,
6198         * device/include/pic16/signal.h: NEW, header providing helper macros
6199         for implementing signal handlers,
6200         * device/include/pic16/stdio.h: added prototypes for functions,
6201         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6202         prototypes for stdin and stdout, added macro PUTCHAR to
6203         automatically implement putchar function prototype,
6204         * device/include/pic16/usart.h: modified and updated USART library,
6205         * device/lib/pic16/libio/adc/,
6206         * device/lib/pic16/libio/i2c: some modifications to improve library
6207         performance,
6208         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6209         family of functions,
6210         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6211         family of functions and other sources,
6212         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6213         of the PIC18Fxx[28] devices,
6214         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6215         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6216         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6217         _do_cinit function, because the previous failed when local variables
6218         where not placed in the same memory bank,
6219         * device/lib/pic16/libsdcc/char/: various modifications to improve
6220         library performance,
6221         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6222         information on the new functions of the c library and more...
6223
6224 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6225
6226         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6227
6228 2005-03-26 Raphael Neider <rneider AT web.de>
6229
6230         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6231           if condition == CARRY)
6232         * (genCmp): adapted to new genSkipc semantics
6233         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6234           on rIfx (genCmp was broken)
6235
6236 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6237
6238         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6239         * src/z80/main.c (_keywords[]),
6240         * src/SDCCglobal.h (struct options),
6241         * src/SDCC.y,
6242         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6243         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6244         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6245         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6246         always available in leading double underscore form. The C99 support is
6247         mostly missing, but it's a start.
6248         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6249         reserved identifier "__data".
6250
6251 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6252
6253         * src/mcs51/peeph.def: fixed bug 1170013
6254
6255 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6256
6257         * device/include/mcs51reg.h: fixed bug 842007
6258
6259 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6260
6261         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6262         last time.
6263
6264 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6265
6266         * src/port.h (struct PORT),
6267         * src/avr/ralloc.c (avr_assignRegisters),
6268         * src/avr/main.c,
6269         * src/ds390/ralloc.c (ds390_assignRegisters),
6270         * src/ds390/main.c,
6271         * src/hc08/ralloc.c (hc08_assignRegisters),
6272         * src/hc08/main.c,
6273         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6274         * src/mcs51/main.c,
6275         * src/pic/ralloc.c (pic14_assignRegisters),
6276         * src/pic/main.c,
6277         * src/pic16/ralloc.c (pic16_assignRegisters),
6278         * src/pic16/main.c,
6279         * src/xa51/ralloc.c (xa51_assignRegisters),
6280         * src/xa51/main.c,
6281         * src/z80/ralloc.c (z80_assignRegisters),
6282         * src/z80/ralloc.h,
6283         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6284         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6285         * src/SDCCcse.h,
6286         * src/SDCCdflow.c (computeDataFlow),
6287         * src/SDCCdflow.h,
6288         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6289         * src/SDCCloop.h,
6290         * src/SDCCcflow.c (*),
6291         * src/SDCCcflow.h,
6292         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6293         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6294         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6295         immedDom() returning wrong block; probably fixes bug #1160833)
6296
6297 2005-03-20 Borut Razem <borut.razem AT siol.net>
6298
6299         * support/scripts/inc2h.pl: WIN32 port
6300
6301 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6302
6303         * device/lib/makefile.in: added abs.c and labs.c
6304
6305 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6306
6307         * device/include/stdint.h: added
6308         * device/lib/abs.c: added
6309         * device/lib/labs.c: added
6310         * device/include/stdlib.h: added abs() and labs() prototypes
6311         * device/lib/libsdcc.lib: added abs and labs
6312         * device/include/float.h,
6313         * device/lib/_fsmul.c,
6314         * device/lib/printf_fast.c,
6315         * device/lib/printf_tiny.c: updated comments
6316
6317 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6318
6319         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6320         bug #1164313
6321
6322 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6323
6324         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6325         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6326
6327 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6328
6329         * device/lib/printf_large.c: removed inline assembly for portability and
6330           readability. Use printf_fast if speed or size are more important.
6331         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6332         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6333
6334 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6335
6336         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6337         prevent compiler warning
6338
6339 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6340
6341         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6342         moved to level 0 and declared as static. Also they are explicit
6343         placed in access bank. This was necessery because some times they
6344         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6345         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6346         optimizations. Currently only compare to unsigned char is implemented,
6347         * src/pic16/gen.c: added fReturnIdx array,
6348         * (struct resolvedIfx) is moved to gen.h and made public,
6349         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6350         * (aopForSym): added an optimization to directly store in stack of
6351         the operand of a SEND iCode,
6352         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6353         but as registers instead (AOP_REG) using the fReturnIdx array,
6354         * (pic16_freeAsmop): remove the freed register from the
6355         _G.sregsAlloc field,
6356         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6357         a compare of 'WREG',
6358         * (pic16_popGetTempRegCond): changed function prototype, now
6359         function takes also a bitVector argument v which holds the current
6360         set of registers that are allocated for stack access by aopForSym,
6361         registers allocated in aopForSym for accessing stack symbols are not
6362         any more part of the functions usedRegs field,
6363         * (genCall): some times aopOp is called for a stack variable to be
6364         send, aopForSym might perform the push, if this is true make sure
6365         that genCall doesn't push the variable twice by testing _G.resDirect,
6366         * (genFunction): changed testing for unspecified interrupt number
6367         from 256 to INTNO_UNSPEC,
6368         * modified selection scheme of frame pointer generation. Previously
6369         if function did use local registers a frame pointer was generated,
6370         now a frame pointer is generated only if function has arguments
6371         (that need PLUSW2 register access), or has stack arguments, or the
6372         compiler is not instructed to omit the frame pointer,
6373         * (genEndFunction): before restoring local registers that were saved
6374         in the function preamble, also restore the registers that *might*
6375         have been allocated for stack access,
6376         * (genRet): removed some old comments,
6377         * (genCmp, the active (RN's) version): added a call to the
6378         pic16_genCmp_special function to perform the compare with a more
6379         robust and optimized way,
6380         * (genInline): a feature has been added in inline code generation,
6381         which allows a wildcard variable substitution when writing inline
6382         assembly. Code is incomplete and experimental therefore undocumented,
6383         * (genCast): changed order of aopOp for result and right to allow
6384         aopForSym to directly load the result if possible,
6385         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6386         perform an optimized compare on some selected special occasions,
6387         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6388         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6389         generate an IVT any more,
6390         * src/pic16/main.c (pic16_optionsTable): added command line option
6391         --optimize-cmp,
6392         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6393         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6394         macros,
6395         * src/pic16/NOTES: Raphael Neider added in list of active developers
6396         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6397         jumptable_end to prevent bug #,
6398         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6399         inCond and outCond fields,
6400         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6401         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6402         turn off register spilling,
6403         * (packRegsForOneUse): synced with other ports' versions although it
6404         is not used currently,
6405         * (pic16_packRegisters): added an optimization while reading
6406         structure bitfields, some registers may be saved (malloc code is
6407         decreased by 80 bytes)
6408
6409 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6410
6411         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6412         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6413         this can be optimized more?
6414
6415 2005-03-10 Raphael Neider <rneider AT web.de>
6416
6417         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6418           genNearPointerGet): (hopefully) fixed access to bitfields via
6419           pointers (p->bitN = x; and x = p->bitN; failed)
6420
6421 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6422
6423         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6424
6425 2005-03-09 Raphael Neider <rneider AT web.de>
6426
6427         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6428
6429 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6430
6431         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6432         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6433           (regTypeNum): set REG_BIT type if necessary
6434         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6435         * support/regression/tests/critical.c: check bug 1144613
6436
6437 2005-03-02 Raphael Neider <rneider AT web.de>
6438
6439         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6440
6441 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6442
6443         * src/avr/ralloc.c (serialRegAssign),
6444         * src/ds390/ralloc.c (serialRegAssign),
6445         * src/hc08/ralloc.c (serialRegAssign),
6446         * src/mcs51/ralloc.c (serialRegAssign),
6447         * src/pic/ralloc.c (serialRegAssign),
6448         * src/pic16/ralloc.c (serialRegAssign),
6449         * src/xa51/ralloc.c (serialRegAssign),
6450         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6451
6452 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6453
6454         * src/SDCCast.c (decorateType): fixed bug 1124787
6455
6456 2005-02-20 Hubert Sack <sack AT digiplan.de>
6457         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6458
6459         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6460         patch #1121755
6461
6462 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6463
6464         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6465         to keep the correct label reference count when adding/removing references
6466         to labels. A peephole file using this is appended to patch #1144962.
6467
6468 2005-02-14 Raphael Neider <rneider AT web.de>
6469
6470         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6471         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6472         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6473           retrievals of result operand's value on assignment
6474
6475 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6476
6477         * device/include/pic16/string.h: modified prototype for memccpy()
6478         to memccpy(void *, void *, char, size_t)
6479         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6480         check whether to omit frame pointer or not,
6481         * (genInline): convert all occurences of "\n" to LF in inline
6482         assembler blocks, this helps formatting the inline text,
6483         * (pic16_loadFSR0): modified prototype,
6484         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6485         removed some 8051 legacy code,
6486         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6487         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6488         before allocating temporary registers in functions,
6489
6490 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6491
6492         * support/regression/tests/bitvars.c: corrected the "fix"
6493
6494 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6495
6496         * support/regression/tests/bitvars.c,
6497         * support/regression/tests/bitwise.c,
6498         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6499
6500 2005-02-10 Raphael Neider <rneider AT web.de>
6501
6502         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6503           different size for Alpha
6504         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6505
6506 2005-02-09 Raphael Neider <rneider AT web.de>
6507
6508         * src/SDCC.lex(doPragma) : save and restore warning options as well
6509           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6510         * have #pragma less_pedantic set the errorlevel to WARNING
6511           (fixes #1117001)
6512         * (cloneOptimize) : fixed wrong malloc's size
6513         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6514           facilitate correct handling of #pragma (save|restore)
6515
6516 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6517
6518         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6519
6520 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6521
6522         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6523
6524 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6525
6526         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6527
6528 2005-02-02 Raphael Neider <rneider AT web.de>
6529
6530         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6531         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6532         * (pic16_storeForReturn): fixed to allow returning function pointers
6533         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6534         * device/include/pic16/{stddef.h,stdbool.h}: added
6535
6536 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6537
6538         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6539
6540 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6541
6542         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6543         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6544          appeared to be required
6545
6546 2005-01-31 Borut Razem <borut.razem AT siol.net>
6547
6548         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6549           include/mcs51 and include/z80 directories to the package
6550
6551 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6552
6553         * src/hc08/gen.c (genFunction): fixed bug #1112752
6554
6555 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6556
6557         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6558
6559 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6560
6561         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6562
6563 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6564
6565         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6566
6567 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6568
6569         * device/include/c8051fxxx.h: removed these 6 files
6570         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6571
6572 2005-01-26 Raphael Neider <rneider AT web.de>
6573
6574         * src/pic16/gen.c (genAssign): fixed assignment from longs
6575           in codespace (were cut to three bytes)
6576         * (genDummyRead): implemented (except for CODESPACE...),
6577           fixed bug #1108575
6578         * src/pic16/glue.c (emitStatistics): beautified
6579         * device/lib/pic16/libm/Makefile: added include path
6580
6581 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6582
6583         * src/z80/gen.c (aopPut): fixed bug #1103902
6584
6585 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6586
6587         * device/lib/expf.c: fixed bug #1095792
6588
6589 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6590
6591         * device/lib/pic16/libm: added Math library sources
6592
6593 2005-01-24 Raphael Neider <rneider AT web.de>
6594
6595         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6596           to enable upcast to pCodeOpReg2 (there is no type tag to
6597           differenciate the two and pic16_popGet2p cast into PCOR2)
6598         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6599           (sizeof(sectNames) changed to sizeof(sectName))
6600           Both patches fix segfaults under MinGW.
6601
6602 2005-01-23 Raphael Neider <rneider AT web.de>
6603
6604         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6605           Safe_[mc]?alloc()'ed variables
6606         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6607           of (byte sized) temporaries (assign them to WREG for now)
6608         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6609           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6610           this might fix SIGSEGVs on MinGW...
6611         * src/SDCCopt.c (killDeadCode): restored original behaviour
6612           (volatile operands might get thrown away though)
6613
6614 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6615
6616         * src/pic16/gen.c: fixed bug #1106975,
6617         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6618         pointer update, INTCON is saved, global interrupts are disabled and
6619         restored after updateing TOS.
6620         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6621         * added function attribute 'shadowregs' to take advantage of shadow
6622         registers,
6623         * added function attribute 'wparam' as an alternative to the wparam
6624         pragma,
6625         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6626         user declares a non-ISR function as 'shadowregs',
6627         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6628
6629 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6630
6631         * .version: bumped version number to 2.4.8
6632         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6633         pic16 port,
6634         * device/lib/pic16/libio/i2c/: I2C module support library,
6635         * device/include/pic16/i2c.h: I2C support library header,
6636         * device/lib/pic16/libc/stdio/: standard IO support sources,
6637         * (printf_small.c): printf_small() source, supports float print,
6638         * (printf_tiny.c): printf_tiny() source, does not support floats,
6639         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6640         enable global optimizations for entire library source, other
6641         Makefiles in the source tree are also modified to reflect this,
6642         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6643         function,
6644         * doc/sdccman.lyx: updated to reflect new changes,
6645         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6646         sym->onStack if-case,
6647         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6648         sbit, idata, _idata, xdata, _xdata,
6649         * added pragma library, to link an external library, (see doc),
6650         * removed command line options, --pomit-config-words, --pomit-ivt,
6651         --pleave-reset-vector,
6652         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6653         when calling assembler to reflect memory model used, also define
6654         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6655         reflect stack model used,
6656         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6657         on stack return NULL,
6658
6659 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6660
6661         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6662           of the operands is volatile. Fixes #1020220
6663
6664 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6665
6666         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6667         * (OptimizeRegUsage): make sure that there is really no other flow where
6668           the first pCode is used
6669
6670 2005-01-22 Raphael Neider <rneider AT web.de>
6671
6672         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6673           to fix #1106967 (pCode->seq are not set up correctly)
6674
6675 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6676
6677         * src/SDCCglue.c (glue): make sure code area is declared before the
6678         static initialization area.
6679
6680 2005-01-21 Raphael Neider <rneider AT web.de>
6681
6682         * device/lib/Makefile.in: fixed test for pic16 install dir
6683         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6684           optimizations
6685         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6686           added --optimize-goto compiler switch and pragma wparam documentation
6687         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6688         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6689           and PRODH closing bug #1071770 (peephole optimizer)
6690
6691 2005-01-19 Raphael Neider <rneider AT web.de>
6692
6693         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6694           cmdLine buffers (used when calling sdcpp...) are large enough
6695           (MAX_PATH=256 truncates arguments leading to system halts when
6696           used in MinGW...)
6697         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6698         * (genUminus): rewritten to for efficiency
6699         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6700           used uninitialized in some cases)
6701         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6702           copy the third byte from the int -- now assumes 0x80 (data memory)
6703         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6704           operands (genAddLit expects the iCode's operands to swapped as
6705           well), fixed leftover bytes (crashed for short left operands)
6706         * (pic16_genMinusDec): performance improvements, removed false
6707           PIC14 emitSKPNCs
6708         * (pic16_genMinus): fixed to cope with differently sized operands
6709         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6710           for --obanksel > 1
6711         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6712         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6713           new banksel optimization
6714         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6715           analysis for temporary registers (segfaults...)
6716         * src/pic16/peeph.def: added rule
6717
6718 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6719
6720         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6721         which converts a float number to its ASCII representation
6722         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6723         functions to convert the fractional and integer part of a float to ASCII,
6724         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6725         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6726         ram
6727         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6728         _STATMEM macros,
6729         * device/include/pic16/adc.h: added GPL info,
6730         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6731         a pCodeOp as tested operand,
6732         * (genNearPointerGet): optimized bit testing, does not use
6733         intermediate register for bit value, test directly instead with
6734         BTFSS, BTFSC, works only for single bits,
6735         * (genpic16Code): dump the name of the iCode in the asm,
6736         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6737         renamed to pic16_decodeOp,
6738         * (serialRegAssign): do not allocate a temporary register for iCode
6739         sequences that test a single bit for 1/0
6740
6741 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6742
6743         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6744         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6745         access stack and frame pointers. They are initially assigned to
6746         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6747         accessing SFRs. Updated all occurences of modification of stack or
6748         frame pointer in gen.c and pcode.c,
6749         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6750         assigning of a literal value to pointers,
6751         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6752         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6753         selected
6754
6755 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6756
6757         * doc/sdccman.lyx: update documentation about stack pragma, added
6758         some info for stack memory models
6759
6760 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6761
6762         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6763
6764 2005-01-08 Raphael Neider <rneider AT web.de>
6765
6766         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6767           udata sections to fix bug #1097823
6768
6769 2005-01-05 Raphael Neider <rneider AT web.de>
6770
6771         * src/pic16/gen.c (genGenericShift): added handling of differently
6772           sized left operand and result
6773
6774 2005-01-04 Raphael Neider <rneider AT web.de>
6775
6776         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6777         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6778           to hold the condition bit)
6779         * added new version of genCmp (old code available via #define)
6780         * added new version of genShiftLeft/genShiftRight in a generic
6781           way, now supports shifting by negative values
6782         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6783           shiftCount (expected by genGenericShift)
6784         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6785         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6786           dump
6787         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6788           is an invalid literal too...)
6789
6790 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6791
6792         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6793         from Raphael Neider,
6794         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6795         for 8-bit literals. This fixes some literal operands which are sign
6796         extended to 16-bits ints when instruction needs only 8-bits.
6797
6798 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6799
6800         * device/lib/logf.c: added mcs51 assembly version
6801         * device/lib/expf.c: added mcs51 assembly version
6802         * device/lib/_logexpf.c: new shared asm code for expf and logf
6803         * device/include/math.h: add defines for assembly math library
6804         * device/lib/Makefile.in: build new _logexpf.c
6805         * device/lib/libfloat.lib: use new _logexpf.c
6806
6807 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6808
6809         * src/pic/device.c
6810         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6811           device types which have less than 0x7f registers.
6812
6813 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6814
6815         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6816
6817 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6818
6819         * device/lib/printf_fast.c: only build on supported arch.
6820         * device/lib/printf_tiny.c: only build on supported arch.
6821         * device/lib/printf_fast_f.c: only build if asm float lib
6822         * device/lib/_fsget1arg.c: only build if asm float lib
6823         * device/lib/_fsget2args.c: only build if asm float lib
6824         * device/lib/_fsnormalize.c: only build if asm float lib
6825         * device/lib/_fsreturnval.c: only build if asm float lib
6826         * device/lib/_fsrshift.c: only build if asm float lib
6827         * device/lib/_fsswapargs.c: only build if asm float lib
6828         * device/include/stdio.h: don't provide print_fast,
6829           print_fast_f, print_tiny prototypes if --xstack used
6830
6831 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6832
6833         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6834         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6835           to the SOURCES
6836
6837 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6838
6839         * device/lib/printf_fast_f.c: same as printf_fast, but
6840           with floating point enabled
6841         * device/lib/printf_fast.c: minor tweaks
6842         * device/include/stdio.h: add printf_fast_f
6843
6844 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6845
6846         * src/SDCCmain.c: make --float-reent default for mcs51
6847         * device/lib/_fsadd.c: added mcs51 assembly version
6848         * device/lib/_fssub.c: added mcs51 assembly version
6849         * device/lib/_fsmul.c: added mcs51 assembly version
6850         * device/lib/_fsdiv.c: added mcs51 assembly version
6851         * device/lib/_fseq.c: added mcs51 assembly version
6852         * device/lib/_fsneq.c: added mcs51 assembly version
6853         * device/lib/_fsgt.c: added mcs51 assembly version
6854         * device/lib/_fslt.c: added mcs51 assembly version
6855         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6856         * device/lib/Makefile.in: add _fscmp to build
6857         * device/lib/libfloat.lib: add _fscmp to build
6858
6859 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6860
6861         * device/lib/_fs2slong.c: added mcs51 assembly version
6862         * device/lib/_fs2sint.c: added mcs51 assembly version
6863         * device/lib/_fs2schar.c: added mcs51 assembly version
6864         * device/lib/_fs2ulong.c: added mcs51 assembly version
6865         * device/lib/_fs2uint.c: added mcs51 assembly version
6866         * device/lib/_fs2uchar.c: added mcs51 assembly version
6867         * device/lib/_slong2fs.c: added mcs51 assembly version
6868         * device/lib/_sint2fs.c: added mcs51 assembly version
6869         * device/lib/_schar2fs.c: added mcs51 assembly version
6870         * device/lib/_ulong2fs.c: added mcs51 assembly version
6871         * device/lib/_uint2fs.c: added mcs51 assembly version
6872         * device/lib/_uchar2fs.c: added mcs51 assembly version
6873         * device/include/float.h: added #define to select asm vs c
6874
6875 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6876
6877         * device/lib/printf_fast.c: improvements to float output
6878         * device/include/float.h: add defines for assembly float library
6879         * device/lib/_fsget1arg.c: receive 1 float arg
6880         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6881         * device/lib/_fsnormalize.c: normalize a float
6882         * device/lib/_fsreturnval.c: return float, various helper routines
6883         * device/lib/_fsrshift.c: right shift a float's mantissa
6884         * device/lib/_fsswapargs.c: swap 2 floats
6885         * device/lib/Makefile.in: build these 6 new files for mcs51
6886         * device/lib/libfloat.lib: add these 6 files to the library
6887
6888 2004-12-26 Borut Razem <borut.razem AT siol.net>
6889
6890         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6891           built by gcc 3.4.2
6892
6893 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6894
6895         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6896           and fully reentrant and register bank neutral.
6897         * device/lib/printf_fast.c: added float (not enabled by default),
6898           added compact/slower integer (also not enabled by default),
6899           improved size/speed of fast integer code, other minor changes
6900         * device/include/stdio.h, device/lib/Makefile.in,
6901           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6902
6903 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6904
6905         * src/pic16/pcode.c: declaring variables other than at the start of a
6906           block is not supported in C by VC6.
6907
6908 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6909
6910         * applied a previous patch from Raphael Neider that wasn't included
6911         in the previous commits, which fixes infinite loops within jumptable
6912         improvements,
6913         * made some fixes that previous patches introduced
6914
6915 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6916
6917         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6918         that fixes an issue with AOP_PCODE asmop's offset,
6919         * (pic16_popCopyReg): update instance field too,
6920         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6921         function of pic port,
6922         * (genCmp, genAnd, genAssign),
6923         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6924
6925 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6926
6927         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6928         variables initial values to idata section,
6929         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6930         variables in some functions. This utilizes parmBytes field of iCode
6931         structure to hold the offset of the variable in stack. (might be
6932         able to use the stack field too?)
6933         * applied patch from Raphael Neider # ### , # ###
6934         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6935         variable initial values in idata section,
6936         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6937         for static variables with initial value
6938         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6939         applied fix in while loop from Raphael Neider.
6940
6941 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6942
6943         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6944         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6945         * src/ds390/ralloc.c (serialRegAssign): spill bits
6946         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6947         * support/Util/SDCCerr.c,
6948         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6949         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6950         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6951
6952 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6953
6954         * device/include/sdcc-lib.h: inserted LGPL, added includes
6955           asm/ds390/features.h and asm/mcs51/features.h
6956         * device/include/asm/default/features.h,
6957         * device/include/asm/gbz80/features.h,
6958         * device/include/asm/z80/features.h: added empty _AUTOMEM
6959           and _STATMEM
6960         * device/include/asm/ds390/features.h,
6961         * device/include/asm/mcs51/features.h: added files with defines for
6962           _AUTOMEM and _STATMEM indicating automatic and static storage class
6963         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6964         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6965         * src/SDCCicode.c (geniCodeCast),
6966         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6967         * src/SDCCloop.c (loopInduction): removed unused variable lr
6968         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6969           to convertToFcall to include char modulo (RFE 1065037), added check
6970           if left operand is unsigned and use abs of literal value
6971         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6972           as it doesn't work after conversion from peephole.def to peephole.rul
6973         * src/mcs51/gen.c (toBoolean): added check for size,
6974           (genModOneByte): optimized code for signed char modulo a literal
6975           power of 2 (thanks to Hubert Sack),
6976           (genRRC): removed unnecessary "clr c",
6977           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6978         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6979           jump optimization,
6980           swapped rules 256.c and 256.d,
6981           extended 256.d by using new multiple checks (thanks Erik),
6982           added rules 256.e and 256.f,
6983           updated rule 261.a and 261.b to new generated code
6984         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6985
6986 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6987
6988         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6989           induction related bugs, including first part of bug #1074377
6990
6991 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6992
6993         * applied patch from bug-report #1076292,
6994         * applied patches for genAnd and Goto-optimizations for Raphael
6995         Neider,
6996         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6997         dump a less iCode information,
6998         * src/pic16/device.h (pic16_options_t): added field debgen,
6999         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
7000         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
7001         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
7002         puclic,
7003         * (various functions): added macros FENTRY and FENTRY2 to functions,
7004         to emit function prologue,
7005         * (various functions): fixed indentation,
7006         * (genNearPointerGet): fixed loading of FSR0,
7007         * (genPackBits): applied patch from Raphael Neider to fix updating
7008         of FSR0 and touching only the modified bits,
7009         * src/pic16/genarith.c (various functions): added macros FENTRY to
7010         emit function prologue in comments,
7011         * src/pic16/pcode.h: added functions debugf2, debugf3,
7012         * src/pic16/ralloc.c: partial fix for packForPush caused
7013         segmentation fault,
7014
7015 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7016
7017         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
7018           <stsp AT users.sourceforge.net> with reversed byte order
7019         * support/regression/tests/rotate.c: added (ds390 skips some tests)
7020
7021 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7022
7023         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
7024           bug #1074377
7025         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
7026         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
7027
7028 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7029
7030         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
7031
7032 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7033
7034         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
7035           conditions,
7036           (setFromConditionArgs): friendly operand parser for peephole rules,
7037           (operandBaseName, operandsNotRelated): new peephole condition
7038           "operandsNotRelated" -- similar to "operandsNotSame", but takes
7039           architecture specific register naming into account, handles n-way
7040           comparisons, and supports quoted literals
7041         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
7042
7043 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7044
7045         * src/mcs51/peeph.def: fixed bug #1076940
7046
7047 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
7048
7049         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
7050
7051 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7052
7053         Adding support for replacing ljmps with sjmps in jumptables
7054         generated for switch statements. For now you need to set the
7055         environment variable SDCC_SJMP_JUMPTABLE to enable this.
7056         Now 4 algorithms for mcs51 jumptable generation are used:
7057         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
7058         addresses loaded pc-relative for up to 112 cases and stack-pushing
7059         target addresses loaded with offset from dptr for up to 256 cases.
7060
7061         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
7062         * src/mcs51/main.c: adapted constants for switch table generation
7063         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
7064
7065 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
7066
7067         * device/lib/printf_large.c (_print_format): fixed bug 1073386
7068         * support/regression/tests/bug1057979.c: added test for bug 1073386
7069
7070 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7071
7072         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
7073         compilers
7074
7075 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
7076
7077         * src/pic16/device.h,
7078         * src/pic16/genarith.c,
7079         * src/pic16/glue.c,
7080         * src/pic16/main.c,
7081         * src/pic16/pcode.c: applied patches #1068154 and #1070213
7082
7083 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
7084
7085         Large cummulative patch for pic16 port.
7086         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
7087         to call when a stack overflow occurs,
7088         * (malloc.h): added CVS Id tag,
7089         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
7090         variable,
7091         * added libc directory. The current version of LibC contains string
7092         functions, ctype functions and macros and some functions of the
7093         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
7094         be extensively tested in the future. Standard disclaimer here.
7095         Library is not automatically build yet. But one can build it by
7096         invoking 'make' inside the libc directory.
7097         * added ADC library under libio. Preliminary version yet.
7098
7099         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
7100         * src/pic16/gen.c (aopForRemat): asmop size is filled by
7101         aopForRemat() now and not by pic16_aopOp(),
7102         * (pic16_popGetTempReg): removed warning messgae when allocating
7103         temporary registers, its a buggy feature and will be removed,
7104         * (pic16_popGet): set register instance field in AOP_CRY,
7105         * (pic16_outBitC): fixed for results in size greater than 1,
7106         * (genUminusFloat): fixed for pic16, ported code from mcs51,
7107         * (pic16_storeForReturn): optimized return of 0,
7108         * (genCmp): experimental code for new genCmp which uses PIC18's
7109         special compare&skip instructions. Initial tests fail some times
7110         with variables grater than 1 byte in size, so new code is disabled,
7111         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
7112         a single bit,
7113         * (genCast): began a fix to optimize the casting of a bit to another
7114         bit, now assigning a bitfield to another bitfield will fail, sorry,
7115         * src/pic16/main.c: disabled the use of lr-support feature,
7116         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
7117         * added some function prototypes, added function _debugf prototype,
7118         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
7119         bits with offset (case PO_GPR_BIT),
7120         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
7121         command line,
7122         * (isBankInstruction): modified to return 0 for no banking instruction,
7123         and 1 for banking instruction,
7124         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
7125         caused stop processing pCodes after a inline assembly block,
7126         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
7127         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
7128         registers when it shouldn't,
7129         * src/pic16/ralloc.c (allocReg): add preliminary support for
7130         supporting a limited set of temporary registers,
7131
7132 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7133
7134         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
7135           genDataPointerSet): ensure assignments always copy in MSB to LSB
7136           order,
7137           (loadRegFromAop): recognize CLRH optimization,
7138           (genFunction): optimize RECEIVE iCodes in reentrant functions
7139
7140 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7141
7142         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
7143           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
7144           selected.
7145         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
7146         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
7147           contiguous with data
7148
7149 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7150
7151         * device/lib/_gptrget.c (_gptrget),
7152         * device/lib/_gptrgetc.c (_gptrgetc),
7153         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
7154           instead of sjmp to ret
7155         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
7156           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
7157
7158 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
7159
7160         * .version: bumped version to 2.4.7
7161         * device/lib/_gptrget.c (_gptrget): is now _naked
7162         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
7163         * device/lib/_gptrput.c (_gptrput): is now _naked
7164         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
7165           (createFunction): fixed xstack
7166         * src/SDCCglue.c (emitMaps): set allocation required for bit area
7167         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
7168           or bit either,
7169           (geniCodeCritical): store original interrupt state in an iTemp bit
7170           var unless stack-auto
7171         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
7172         * src/SDCCmain.c (setIncludePath): added include/target to search path
7173         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
7174         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
7175           prototype,
7176           (processFuncArgs): put bit vars in bit area
7177         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
7178           unsaveRBank): fixed xstack,
7179           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
7180           (genFunction, genEndFunction): fixed xstack,
7181           (genAssign): optimization don't walk backwards through mem
7182         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
7183         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
7184         * support/regression/Makefile: also make library (for stack-auto) when
7185           making "all" and added "test-mcs51-xstack-auto"
7186         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
7187         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
7188         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
7189         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
7190         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
7191           make-library by MAKE_LIBRARY
7192         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
7193           regression tests for xstack
7194         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7195         * support/regression/tests/critical.c: test for critical on mcs51
7196
7197 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7198
7199         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7200           built version of sdcc instead of installed version
7201
7202 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7203
7204         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7205         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7206           vprintf.c now
7207         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7208         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7209           WARNING: remove device/lib/build/z80/printf.o by hand when
7210           updating from previous build!
7211         * device/lib/z80/printf.c: updated comment
7212         * support/regression/tests/bug1057979.c: test all ports now
7213         * support/regression/tests/bug1065458.c: file added
7214
7215 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7216
7217         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7218           *_start and *_end symbols for static functions
7219
7220 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7221
7222         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7223           and search crt0.o in all library paths,
7224           (setIncludePath): proper handling of --nostdinc,
7225           (setLibPath): proper handling of --nostdlib
7226         * support/regression/Makefile,
7227         * support/regression/ports/ds390/spec.mk,
7228         * support/regression/ports/gbz80/spec.mk,
7229         * support/regression/ports/hc08/spec.mk,
7230         * support/regression/ports/mcs51/spec.mk,
7231         * support/regression/ports/mcs51-large/spec.mk,
7232         * support/regression/ports/mcs51-stack-auto/spec.mk,
7233         * support/regression/ports/z80/spec.mk: use include and lib files from
7234           built version of sdcc instead of installed version
7235         * doc/sdccman.lyx: fixed typo in --nostdinc
7236
7237 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7238
7239         * src/pic/pcode.c,
7240         * src/pic/device.c,
7241         * src/pic/ralloc.c,
7242         * src/pic/gen.c : added support to generate code for struct bit fields.
7243
7244 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7245
7246         * as/xa51/xa_version.h,
7247         * device/include/errno.h,
7248         * device/include/regc515c.h,
7249         * device/lib/_itoa.c,
7250         * device/lib/_ltoa.c,
7251         * device/lib/ser_ir_cts_rts.c,
7252         * sim/ucsim/xa.src/glob.cc,
7253         * sim/ucsim/xa.src/inst_gen.cc,
7254         * sim/ucsim/xa.src/xa_bit.cc,
7255         * sim/ucsim/xa.src/xa_sfr.cc,
7256         * sim/ucsim/z80.src/inst_dd.cc,
7257         * sim/ucsim/z80.src/inst_fdcb.cc,
7258         * support/scripts/keil2sdcc.pl,
7259         * src/pic16/pic16.dsp,
7260         * src/pic16/pic16a.dsp: corrected cvs line endings
7261         * device/lib/printf_large.c: fixed bug 1057979
7262         * src/pic16/gen.c: fixed non-C standard code
7263         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7264         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7265         * support/regression/ports/mcs51/support.c: reload T1 asap
7266         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7267           pdata use and clear idata startup behaviour
7268         * support/regression/tests/bug1057979.c: added
7269
7270 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7271
7272         * device/examples/ds390/ow390/ad26.h,
7273         * device/examples/ds390/ow390/cnt1d.h,
7274         * device/examples/ds390/ow390/crcutil.c,
7275         * device/examples/ds390/ow390/ownet.h,
7276         * device/examples/ds390/ow390/owsesu.c,
7277         * device/examples/ds390/ow390/swt12.h,
7278         * device/examples/ds390/ow390/swtoper.c,
7279         * device/examples/ds390/ow390/temp10.h,
7280         * device/examples/ds390/ow390/thermodl.c,
7281         * device/examples/ds390/tinitalk/tinitalk.dsp,
7282         * device/examples/ds390/tinitalk/tinitalk.dsw,
7283         * device/examples/mcs51/clock/hw.h,
7284         * device/examples/mcs51/simple2/go.bat,
7285         * device/examples/serialcomm/windows/serial.h,
7286         * device/examples/xa51/dummy.c,
7287         * device/examples/xa51/hello.c,
7288         * device/include/80c51xa.h,
7289         * device/include/at89x051.h: corrected cvs line endings
7290
7291 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7292
7293         * src/pic16/main.c (options): added command line --gstack, to trace
7294         stack over/under flows,
7295         * added pragma 'wparam' to allow passing first byte of function
7296         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7297         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7298         call to __gstack_test function and sets up the symbol as extern,
7299         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7300         * popaop): added call to pic16_testStackOverflow,
7301         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7302         wparamList list,
7303         * (genCall, genPcall): now all parameters are passed via stack
7304         except in functions that are pass to wparam pragma in which WREG is
7305         used too,
7306         * (genPcall): REENTRANT flag is checked to see if variable prototype
7307         contains reentrant keyword, don't call a non-reentrant function, via
7308         a reentrant function pointer or vice versa, functions are never
7309         passed via WREG,
7310         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7311         D.Winkler,
7312         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7313         SIGSEGV when accessing a NULL register stucture,
7314         * (pic16_printGPointerType): modified to handle UPPER modifier for
7315         function initializers, changed prototype of function to simpler one,
7316         * (pic16_printIvalFuncPtr): check to see if function is already
7317         added in externs list,
7318         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7319         optimized a move from W to SFR with a move to the same register
7320         later after a CALL,
7321         * device/lib/pic16/debug: NEW directory, contains debug features
7322         which are enabled when linking with libdebug.lib, currently command
7323         line option --gstack enables stack pointer tracing for over/under
7324         flow, corresponding sources are in debug/gstack
7325
7326 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7327
7328         * doc/sdccman.lyx: updated SDCC version,
7329         * (PIC16 port): update list of command line options,
7330         * src/pic16/device.h (structure pic16_options_t): added field gstack
7331         to enable stack overflow tracing on push/pops,
7332         * src/pic16/device.c (statistics structure): added statistics
7333         structure,
7334         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7335         pic16_dump_int_registers): increase statistics counters for each
7336         * variable which is encountered
7337         * (pic16_dump_usection): emit each .udata variable to its own udata
7338         section,
7339         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7340         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7341         parameters via stack, otherwise use old scheme,
7342         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7343         assembler output file,
7344         * src/pic16/main.c: added command line options --gstack to enable
7345         push/pop tracing for stack overflow,
7346         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7347         instructions): added size of each instruction,
7348         * (pic16_countInstruction): estimate size of instructions in
7349         the_pFile list, inline assembly blocks are not counted,
7350         * (pic16_FixRegisterBanking): trace previous register usage, when
7351         banksel optimizations is greater than 0, don't emit a redudant
7352         banksel directive,
7353
7354 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7355
7356         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7357         * src/pic16/ralloc.c : applied same fix for pic16.
7358         * src/pic/gen.c : tidied it up a little.
7359
7360 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7361
7362         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7363         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7364
7365 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7366
7367         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7368
7369 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7370
7371         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7372         non-reentrant function __modsint in the interrupt function (thus
7373         corrupting math operations during serial I/O)
7374         * device/lib/ser_ir.c: as above, changed buffersize
7375         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7376         256.c,d for zeroing
7377         * doc/Makefile: added option -t for rsync
7378
7379 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7380
7381         * src/SDCCast.h (struct ast),
7382         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7383
7384 2004-10-20 Borut Razem <borut.razem AT siol.net>
7385
7386         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7387         package
7388
7389 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7390
7391         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7392         makefile targets,
7393         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7394         support functions to replace long sequences of MOVFF's from access
7395         bank registers to stack and vice versa,
7396         * src/pic16/device.h: added new field opt_flags, where optimization
7397         flags can be set to enable certain features,
7398         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7399         * pBlock, (genFunction, genEndFunction): surroung loop for
7400         saving/loading used registers in stack with PC_INFO pCodes,
7401         INF_LREGS. Code in between can then be optimized by pCode optimizer
7402         to support function calls,
7403         * (genDataPointerSet): fixed bug which loaded float fields in
7404         structures with corrupt data,
7405         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7406         in a standard way debug info on stderr. Feature used for developing
7407         and debugging only,
7408         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7409         obsolete chunks of code,
7410         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7411         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7412         * pic16/src/pcode.c (pic16_newpCodeInfo,
7413         * (pic16_newpCodeOpLocalRegs),
7414         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7415         feature,
7416         * (pic16_pCodeConstString): printing of the initial value of a
7417         symbol as a comment is inhibited since parsing was already done by
7418         copyStr and output is corrupt,
7419         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7420
7421 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7422
7423         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7424
7425 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7426
7427         * as/mcs51/lkarea.c: removed old K&R style,
7428           (lnksect): changed check on boundary error,
7429           (lnksect2): changed check on boundary error,
7430           (lnksect2): extend XSTK to end of page if size = 1
7431         * as/mcs51/lkmain.c: removed old K&R style,
7432           (Areas51): create l_IRAM symbol
7433         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7434         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7435           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7436         * device/lib/_mullong.c: added version to be compiled with xstack
7437         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7438         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7439         * device/lib/mcs51/crtxstack.asm: fixed comment
7440         * src/SDCCglue.c: maxInterrupts defaults to 0,
7441           (emitMaps): added pdata,
7442           (createInterruptVect): (re)moved default,
7443           (glue): added pdata,
7444           (glue): moved __start__xstack to XSTK with default size 1
7445         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7446           and options.float_rent when options.stackAuto is set,
7447           (linkEdit): only write XDATA_NAME if provided on command line
7448         * src/SDCCmem.h,
7449         * src/SDCCmem.c: added pdata
7450         * src/port.h: added pdata_name to PORT
7451         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7452           (saveRegisters, unsaveRegisters): removed usage of B,
7453           (genMinus): fixed accumulator clash,
7454           (genJumpTab): added comment, this needs another look
7455         * src/mcs51/gen.c: added check for "B in use" paranoia,
7456           added pushB() and popB()
7457         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7458           chance
7459         * src/avr/main.c,
7460         * src/ds390/main.c,
7461         * src/hc08/main.c,
7462         * src/mcs51/main.c,
7463         * src/pic/main.c,
7464         * src/pic16/main.c,
7465         * src/xa51/main.c,
7466         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7467           added PSEG (PAG,XDATA) or NULL to port specifier
7468         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7469         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7470           (_mcs51_genInitStartup): removed __start__xstack equ,
7471           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7472         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7473         * src/z80/gen.c (_rleAppend): fixed warnings
7474         * support/regression/tests/zeropad.c: added pdata test
7475         * .version: bumped to 2.4.6
7476
7477 2004-10-17 Borut Razem <borut.razem AT siol.net>
7478
7479         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7480         as a part of nightly build
7481
7482 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7483
7484         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7485         WREG holds the first byte function parameters,
7486         * (aopForSym): take special case for symbols which are in FARSPACE
7487         but in CODESPACE too,
7488         * (assignResultValue): modified to take into account _G.useWreg,
7489         * (genCall): don't use wreg for parameter passing when function is
7490         declared as reentrant, too, added optimization INCF to stack
7491         pointer when stack parameter count is 1,
7492         * (genFunction, genEndFunction): refurnished and fixed to not using
7493         wreg for passing parameters when function has varargs or is
7494         reentrant, fixed bug with symbol name compare for generating
7495         functions in absolute address,
7496         * (pic16_storeForReturn): refurnished,
7497         * (genCmp): began writing a new version of the function, not ready
7498         yet, therefore it is disabled,
7499         * (genAssign): do not read code memory when assigning a function to
7500         a pointer function,
7501         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7502         array of characters, not pointer,
7503         * (pic16initialComments): in debug mode emit an .ident directive for
7504         the assembler,
7505         * (_process_pragma): emit a new warning type (internal to pic16)
7506         when setting stack to default length, emit a similar warning when
7507         placing a function at absolute address and address is not word aligned
7508         * (_pic16_parseOptions): added 'return TRUE' statement,
7509         * (_pic16_linkEdit): if compiling a source, then add the source's
7510         file object, first in the list of objects to link,
7511
7512 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7513
7514         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7515         * src/pic/main.c : removed VC warning.
7516         * src/pic/gen.c : changed comment.
7517
7518 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7519
7520         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7521         reference to a deprecated symbol _GPTRREG was causing failure to
7522         link. Thanks G. M. Gallant for the info.
7523
7524 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7525
7526         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7527         comments for Bugs item #954788.
7528
7529 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7530
7531         * src/pic16/device.c (pic16_dump_gsection,
7532         * pic16_groupRegistersInSection): handle symbols declared to be in
7533         access bank differently,
7534         * src/pic16/gen.c (struct _G): added field resDirect,
7535         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7536         send values read from stack directly to result and don't allocate
7537         temporary values,
7538         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7539         same registers,
7540         * (pic16_sameRegsOfs): NEW,
7541         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7542         free because they were not allocated from temporary pool,
7543         * pic16_popRegFromString): workaround to fix a problem with
7544         allocating variables twice or never,
7545         * (genGenPointerGet): using PRODL instead of FSR0H,
7546         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7547         instead of FSR0H,
7548         * (genAssign): take advantage of the _G.resDirect flag,
7549         * (genCast): around line 11844, use mov2f instead of directly
7550         MOVFF'ing between operands to account for literal values,
7551         * src/pic16/genutils.c: some new debug functions for gpsim have been
7552         added,
7553         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7554         float with integer part only,
7555         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7556         place variables in access bank
7557         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7558         updated sources to reflect recent changes in gen.c
7559
7560 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7561
7562         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7563         sources that searched for headers in installation path, now the
7564         device/include/pic16 is used,
7565         * src/pic16/glue.c (pic16glue),
7566         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7567         .line directives if not in debug mode, this suppresses assembler's
7568         warnings for ignored directives
7569
7570 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7571
7572         * src/port.h: made reset_regparms prototype void parameter explicit.
7573         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7574         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7575         * doc/sdccman.lyx: documented warning disabling and how to use
7576           printf_large to make it print floats.
7577         * device/include/stdbool.h: NEW
7578         * device/lib/_atof.c,
7579         * device/lib/_divuint.c,
7580         * device/lib/_divulong.c,
7581         * device/lib/expf.c,
7582         * device/lib/printf_large.c,
7583         * device/lib/sincosf.c,
7584         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7585         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7586           a completely reentrant lib.
7587
7588 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7589
7590         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7591         * device/include/pic16/stdio.h: fixed bug with colon
7592
7593 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7594
7595         * device/include/pic16/stdio.h,
7596         * device/include/pic16/stdlib.h,
7597         * device/include/pic16/math.h: NEW
7598         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7599         declared as _naked to reduce overhead
7600         * device/lib/Makefile.in (target port-specific-objects-pic16):
7601         changed * to *.* so to ignore the CVS directory,
7602         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7603         stacked variables back in stack,
7604         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7605         corruption
7606
7607 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7608
7609         * .version: bumped version number to 2.4.5
7610         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7611         * support/Util/SDCCerr.c (messages structure): added entry for
7612         W_POSSBUG2
7613
7614         Large cumulative patch for pic16 port and libraries.
7615         * device/include/pic16/sdcc-lib.h,
7616         * device/include/pic16/stdarg.h,
7617         * device/include/asm/pic16/features.h,
7618         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7619         * device/include/pic16/float.h: changes reentrant keyword with
7620         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7621         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7622         updated target build-libraries to include objects from gptr,
7623         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7624         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7625         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7626         all function headings,
7627         * src/SDCCmain.c: added global parameter userIncDirsSet,
7628         * (parseCmdLine): when option -I is encountered add directory to
7629         userIncDirsSet too,
7630         * src/version.awk: added space between control and long,
7631         * src/pic16/NOTES: added some notes for the port,
7632         * src/pic16/gen.c: added prototype for mov2fp function,
7633         * (fReturnpic16[]): properly named return value registers,
7634         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7635         * (aopForSym): added code to handle symbols with onStack flag set,
7636         symbols onStack are allocated PTRSIZE bytes,
7637         * (aopFreeAsmop): handles special case where asmops are stack objects,
7638         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7639         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7640         added argument lock to trace flaws in allocating temporary registers
7641         when developing port,
7642         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7643         * (pic16_popRegFromString): reenabled allocating a direct register
7644         from string,
7645         * (assignResultValue): various beautifications,
7646         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7647         referenced function argument,
7648         * (genIpush): reenabled to allow stacked arguments, handles only
7649         ic->parmPush iCodes,
7650         * (genCall, genPcall): major changes to allow for variable argument
7651         functions, fixed a bug with falsely restoring stack pointer after
7652         returning from call,
7653         * (genFunction): pending code for critical function,
7654         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7655         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7656         * (genNearPointerGet): fixed bug with indirect reading, was always
7657         reading from INDF0
7658         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7659         pointers,
7660         * (genAddrOf): rewrote code to take address of a stacked function parameter
7661         * (genCast): fixed casting to generic pointer type,
7662         * src/pic16/gen.h: added AOP_STA,
7663         * (struct asmop): added field stk,
7664         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7665         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7666         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7667         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7668         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7669         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7670         generic pointers,
7671         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7672         and library paths,
7673         * (pic16_port structure): generic pointer size is set to 3,
7674         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7675         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7676         compiler warning,
7677         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7678         operand is an iTemp,
7679
7680 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7681
7682         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7683         * debugger/mcs51/simi.c: addapt new syntax of s51
7684
7685 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7686
7687         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7688         * src/pic16/pcode.c: commented out some calls to free() in order to
7689         fix bug #989576,
7690
7691 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7692
7693         * src/SDCCicode.h,
7694         * src/SDCCicode.c (isiCodeInFunctionCall),
7695         * src/avr/ralloc.c (selectSpil),
7696         * src/pic/ralloc.c (selectSpil),
7697         * src/pic16/ralloc.c (selectSpil),
7698         * src/ds390/ralloc.c (selectSpil),
7699         * src/hc08/ralloc.c (selectSpil),
7700         * src/xa51/ralloc.c (selectSpil),
7701         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7702         stack in the middle of a function call sequence (fixes bug #1020268)
7703         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7704         costs associated with the minimum switch case.
7705
7706 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7707
7708         * src/SDCC.lex: fixed bug #1030549
7709
7710 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7711
7712         * src/SDCCcse.h (struct cseDef),
7713         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7714         over a function call if the CSE is derived from a symbol whose
7715         address has been taken (fixes bug #1029883)
7716         * support/regression/tests/bug-1029883: a new regression test for
7717         this bug
7718
7719 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7720
7721         * src/hc08/gen.c (emitinline): fixed bug #1029778
7722         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7723         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7724         and starts toward RFE #905167)
7725
7726 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7727
7728         * src/pic16/gen.c (mov2f): New function to move an operand to
7729         another without considering if it is a literal or a register,
7730         * (pic16_sameRegs): don't check if they are both AOP_REG,
7731         * (AccRsh): removed andmask=0 lines,
7732         * (genLeftShift): duplicated to be improved in future versions,
7733         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7734         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7735         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7736         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7737         * (insertBankSwitch): fixed inserting banksel directives algorithm
7738         for instructions that follow a skip instruction, this fixes a report
7739         for broken subtraction code generation,
7740         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7741         iCode is a left op, just in case result and right share the same
7742         registers
7743
7744 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7745
7746         * src/hc08/main.c,
7747         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7748         preservation of HX
7749         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7750         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7751         on 2004-09-12; it was buggy
7752
7753 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7754
7755         * src/SDCCsymt.h: removed RESULT_CHECK
7756         * src/SDCCast.c,
7757         * src/SDCCglue.c,
7758         * src/SDCCval.c,
7759         * src/pic/glue.c,
7760         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7761
7762 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7763
7764         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7765         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7766         configuration values no more rejected by compiler, they are assigned
7767         to configuration registers with a warning message instead,
7768         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7769         the for-loop so last conf register is emitted too,
7770         * (_pic16_initPaths): link library libsdcc.lib by default,
7771         * (_hasNativeMulFor): modified test for multiplication according to
7772         Raphael Neider's remarks. Integer multiplication is also done with
7773         support functions,
7774         * device/include/pic16/pic18fregs.h: corrected type error in while
7775         testing and including 18f6720 header file
7776
7777 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7778
7779         * src/pic16/device.h (pic16_options): removed field use_crt,
7780         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7781         until an optimization to handle single bits is added,
7782         * (pic16_loadFSR0): moved before genUnpackBits,
7783         * (genAnd): some white lines removed,
7784         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7785         leave_reset flags in pic16_options when using crt modules,
7786
7787 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7788
7789         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7790           for bugs 898889 & 979599. Also used some safer print instructions.
7791
7792 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7793
7794         * src/pic16/device.h (pic16_options_t): added field use_crt,
7795         crt_name, no_crt,
7796         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7797         catch a probable future bug,
7798         * src/pic16/gen.c: aopIdx function commented out,
7799         * (genAssign): commented out old code which used aopIdx,
7800         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7801         code, added if conditionals to take into account the --use-crt
7802         command line options,
7803         * src/pic16/main.c (pic16_optionsTable): added new command line
7804         options, --use-crt= and --no-crt,
7805         * (_pic16_linkEdit): now the proper crt object is added in the
7806         linker command line except than when --no-crt is specified,
7807         * src/pic16/pcode.c,
7808         * src/pic16/pcode.h: added some structures and functions for a new
7809         optimization scheme to compansate for instruction overhead between
7810         same iCodes, this scheme is currently under development and is not
7811         working in any way,
7812         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7813         to && operator,
7814         * device/lib/pic16/startup/crt0i.c,
7815         * device/lib/pic16/startup/crt0iz.c: added global char variable
7816         __uflags to force the generation of an idata section
7817
7818 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7819
7820         * doc/Makefile,
7821         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7822         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7823
7824 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7825
7826         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7827         Frieder) and clarified the default code optimization mode
7828
7829 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7830
7831         * src/SDCC.lex (doPragma, process_pragma),
7832         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7833         "opt_code_size", and "opt_code_balanced"
7834         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7835         regrouped options by category, added support for category headers
7836         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7837         and "--opt-code-size"
7838         * doc/sdccman.lyx: documented these new options and pragmas
7839         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7840         preference into account
7841
7842 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7843
7844         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7845           geniCodePreDec): Fixed bug 904237 by generating a warning
7846         * src/SDCCerr.h,
7847         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7848
7849 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7850
7851         * src/pic/device.c : When no max ram set validate full memory range.
7852         * src/pic/pcode.c,
7853         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7854
7855 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7856
7857         * device/lib/_gptrget.c,
7858         * device/lib/_gptrput.c: updated comment
7859         * device/lib/calloc.c,
7860         * device/lib/free.c,
7861         * device/lib/malloc.c,
7862         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7863         * src/SDCCcse.c (cseBBlock),
7864         * src/SDCCicode.c (printOperand, geniCodeArray),
7865         * src/SDCCicode.h (struct operand): fixed bug 868103
7866         * support/regression/tests/bug-868103.c: added
7867         * src/SDCCast.c (searchLitOp),
7868         * src/SDCCcse.h (struct cseDef),
7869         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7870         * src/SDCCicode.h (struct operand),
7871         * src/SDCCsymt.h (struct sym_link),
7872         * src/avr/gen.c (hasInc),
7873         * src/ds390/gen.c (hasInc),
7874         * src/hc08/gen.c (genPlusIncr, hasInc),
7875         * src/mcs51/gen.c (hasInc),
7876         * src/pic16/glue.c (pic16_printIvalChar),
7877         * src/pic16/ralloc.c (regWithIdx),
7878         * src/xa51/gen.c (hasInc) : removed warnings
7879         * src/SDCCast.c (createBlock): added comment ???
7880         * src/hc08/ralloc.c: updated comments
7881
7882 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7883
7884         * doc/sdccman.lyx: updated section on switch statements, added
7885         section about semaphore locking
7886         * doc/Makefile: added option -info for latex2html
7887         * device/lib/_gptrget.c,
7888         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7889
7890 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7891
7892         * src/pic/device.h,
7893         * src/pic/device.c,
7894         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7895          maxram is less than 0x100.
7896
7897 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7898
7899         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7900
7901 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7902
7903         * src/port.h,
7904         * src/mcs51/main.c,
7905         * src/ds390/main.c,
7906         * src/z80/main.c,
7907         * src/hc08/main.c,
7908         * src/pic/main.c,
7909         * src/pic16/main.c,
7910         * src/avr/main.c,
7911         * src/xa51/main.c
7912         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7913         a jump table is the best form for a switch statement, including
7914         automatic insertion of missing cases to make the case range
7915         continuous. Developed in collaboration with Frieder Ferlemann.
7916
7917 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7918
7919         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7920         accumulator result if it needs sign extension
7921
7922 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7923
7924         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7925
7926 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7927
7928         * device/lib/gbz80/printf.c,
7929         * device/lib/z80/printf.c: removed define for NULL
7930
7931 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7932
7933         * as/xa51/xa_link.c,
7934         * device/examples/ds390/ow390/ad26.c,
7935         * device/examples/ds390/ow390/cnt1d.c,
7936         * device/examples/ds390/ow390/counter.c,
7937         * device/examples/ds390/ow390/ds2480.h,
7938         * device/examples/ds390/ow390/ds2480ut.c,
7939         * device/examples/ds390/ow390/findtype.c,
7940         * device/examples/ds390/ow390/gethumd.c,
7941         * device/examples/ds390/ow390/owllu.c,
7942         * device/examples/ds390/ow390/ownetu.c,
7943         * device/examples/ds390/ow390/swt12.c,
7944         * device/examples/ds390/ow390/swtloop.c,
7945         * device/examples/ds390/ow390/temp.c,
7946         * device/examples/ds390/ow390/temp10.c,
7947         * device/examples/ds390/ow390/thermo21.c,
7948         * device/examples/ds390/ow390/tinilnk.c,
7949         * device/examples/ds390/ow390/tstfind.c,
7950         * device/examples/serialcomm/windows/serial.cpp,
7951         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7952         * device/include/reg51.h: fixed line endings for cvs
7953
7954 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7955
7956         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7957         packRegsForAccUse, packRegisters): new accumulator register
7958         packing algorithm
7959         * support/regression/ports/hc08/support.c (_putchar): suppress
7960         warning of unused variable
7961         * src/SDCCicode.c: added SWAP entry to codeTable
7962
7963 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7964
7965         * device/lib/sprintf.c: forgot to add this file before previous commit
7966
7967 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7968
7969         * src/pic16/gen.c (genPackBits): added operand right in function
7970         parameters, load result directly if p_type is POINTER (that is
7971         called by genNearPointerSet)
7972         * (genUnPackBits): added operand left in function parameters,
7973         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7974         FSR0 if accessing bitfields,
7975
7976 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7977
7978         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7979           _print_format; updated printf, sprintf, vsprintf
7980         * device/include/asm/default/features.h: corrected comment/define
7981         * device/lib/Makefile.in: added sprintf.c
7982         * device/lib/libsdcc.lib: added sprintf module
7983         * device/lib/printf_large.c,
7984         * device/lib/vprintf.c,
7985         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7986           into these 3 files
7987         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7988         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7989         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7990           hc08 test
7991         * support/regression/tests/zeropad.c: define idata as data for hc08
7992
7993 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7994
7995         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7996         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7997         labels are referenced at least once (even if a reference is not found)
7998         * src/hc08/gen.c (emitcode): set isComment flag for comments
7999         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
8000         loads), rules 6a..6b (optimize jumps to return)
8001
8002 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8003
8004         * device/lib/acosf.c (acosf),
8005         * device/lib/asinf.c (asinf),
8006         * device/lib/atanf.c (atanf),
8007         * device/lib/ceilf.c (ceilf),
8008         * device/lib/cosf.c (cosf),
8009         * device/lib/coshf.c (coshf),
8010         * device/lib/cotf.c (cotf),
8011         * device/lib/fabsf.c (fabsf),
8012         * device/lib/floorf.c (floorf),
8013         * device/lib/log10f.c (log10f),
8014         * device/lib/logf.c (logf),
8015         * device/lib/sinf.c (sinf),
8016         * device/lib/sinhf.c (sinhf),
8017         * device/lib/sqrtf.c (sqrtf),
8018         * device/lib/tanf.c (tanf),
8019         * device/lib/tanhf.c (tanhf),
8020         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
8021         replaced all instances of "reentrant" in the library functions
8022         defined in math.h with this macro.
8023         * support/regression/tests/float_trans.c: reenabled test for hc08
8024
8025 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
8026
8027         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
8028         erroneously deleted
8029
8030 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8031
8032         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
8033         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
8034         multi-byte volatile operands are used
8035         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
8036         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
8037         initialization to area GSINIT0 so that it would always precede
8038         any static initializers in GSINIT
8039         * support/regression/tests/zeropad.c: fixed idata define for hc08
8040         * support/regression/tests/bug-927659.c,
8041         * support/regression/tests/float_trans.c: disabled tests for hc08
8042         pending missing library routines
8043         * .version: increased version number to 2.4.4 - hc08 port now passes
8044         regression tests
8045
8046
8047 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
8048
8049         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
8050         * Makefile.common.in,
8051         * as/Makefile,
8052         * as/hc08/Makefile.in,
8053         * as/mcs51/Makefile.in,
8054         * as/z80/Makefile.in,
8055         * debugger/mcs51/Makefile.in,
8056         * device/include/Makefile.in,
8057         * device/lib/Makefile.in,
8058         * doc/Makefile,
8059         * link/Makefile,
8060         * link/z80/Makefile.in,
8061         * packihx/Makefile.in,
8062         * sim/ucsim/main_in.mk,
8063         * sim/ucsim/avr.src/Makefile.in,
8064         * sim/ucsim/doc/Makefile.in,
8065         * sim/ucsim/gui.src/serio.src/Makefile.in,
8066         * sim/ucsim/hc08.src/Makefile.in,
8067         * sim/ucsim/s51.src/Makefile.in,
8068         * sim/ucsim/xa.src/Makefile.in,
8069         * sim/ucsim/z80.src/Makefile.in,
8070         * src/Makefile.in,
8071         * support/cpp2/Makefile.in,
8072         * support/librarian/Makefile,
8073         * support/makebin/Makefile: added DESTDIR to the install path proposed
8074         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
8075         * doc/sdccman.lyx: added DESTDIR documentation
8076
8077 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
8078
8079         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
8080         instruction for interrupt handlers, use fast returns when returning
8081         from high priority interrupts
8082
8083 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8084
8085         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
8086         code generation
8087         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
8088         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
8089         bugs, ported much of Bernhard's code from mcs51
8090         * src/mcs51/gen.c (genSend),
8091         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
8092         than one when calling a reentrant function
8093         * device/lib/_mullong.c: defined an alternate struct layout for big
8094         endian ports (hc08)
8095
8096 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8097
8098         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
8099         test
8100
8101 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8102
8103         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
8104         are sane and complete before asking the port its prefered parameter
8105         passing method (fixes bug #1017633)
8106         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
8107         and _ret3
8108
8109 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8110
8111         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
8112         problem in bitfields >= 8 bits.
8113
8114 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8115
8116         * src/SDCCsymt.c: undid changes that were not meant to be committed
8117
8118 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8119
8120         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8121
8122 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
8123
8124         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
8125           copied and wrong bit got inverted
8126
8127 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8128
8129         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
8130         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
8131         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
8132         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
8133         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
8134         assignments to bitfields at known addresses
8135         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
8136         reads from bitfields at known addresses
8137         * src/hc08/ralloc.c (packRegisters),
8138         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
8139         genhc08Code): optimize pointer get values used as conditionals
8140         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
8141         and branch
8142
8143 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8144
8145         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
8146         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
8147         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
8148         as conditionals
8149
8150 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8151
8152         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
8153
8154 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8155
8156         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
8157         related problems
8158
8159 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
8160
8161         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
8162
8163 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8164
8165         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
8166         mcs51 port
8167
8168 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
8169
8170         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
8171
8172 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8173
8174         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
8175         cases use more compact code.
8176
8177 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
8178
8179         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
8180
8181 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8182
8183         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
8184
8185 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8186
8187         * src/SDCCsymt.h,
8188         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
8189         parameter of changePointer() from symbol* to sym_link*
8190         * src/SDCCast.c (decorateType): call changePointer() for CAST op
8191         * src/SDCCsymt.c (compareType): void* type is castable to other
8192         pointers, but not necesarily an exact match.
8193         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8194         is no longer blindly treated as an exact match.
8195         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8196
8197 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8198
8199         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8200
8201 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8202
8203         * src/pic/gen.c,
8204         * src/pic/pcode.c,
8205         * src/pic/ralloc.h,
8206         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8207
8208 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8209
8210         * src/pic/device.c,
8211         * src/pic/device.h,
8212         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8213
8214 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8215
8216         * src/mcs51/gen.c (emitcode): fixed bug #992819
8217
8218 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8219
8220         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8221           there's no need to make it worse
8222
8223 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8224
8225         * src/mcs51/ralloc.c (deassignLR),
8226         * src/ds390/ralloc.c (deassignLR),
8227         * src/hc08/ralloc.c (deassignLR),
8228         * src/z80/ralloc.c (deassignLR),
8229         * src/pic/ralloc.c (deassignLR),
8230         * src/pic16/ralloc.c (deassignLR),
8231         * src/avr/ralloc.c (deassignLR),
8232         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8233         rlivePoint): fixed another part of bug #971834
8234
8235 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8236
8237         * src/z80/main.c: enabled "critical" keyword
8238         * src/z80/mappings.i,
8239         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8240         functions (fixes bug #979646)
8241         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8242
8243 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8244
8245         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8246           such as c:\mydir.
8247
8248 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8249
8250         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8251           doesn't disable too much optimizations
8252
8253 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8254
8255         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8256
8257 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8258
8259         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8260
8261 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8262
8263         * src/pic/gen.c tidied up tabs
8264         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8265         * src/pic/main.c tidied up tabs
8266         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8267         * src/pic/pcoderegs.c tidied up tabs
8268         * src/pic/ralloc.c tidied up tabs
8269
8270 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8271
8272         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8273         to S_FIXED for pic16 port and when symbol is not in level 0,
8274         allocate for S_REGISTER storage class and pic16 port, too,
8275         * src/pic16/device.h: prototype for checkSym,
8276         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8277         * (pic16_assignConfigWordValue): test the value and the mask to
8278         validate that the value is suitable for the configuration word,
8279         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8280         collect extern declared symbols, don't emit symbol twice, check
8281         first if symbol is in publics set first,
8282         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8283         * added command line '--fstack' which enables an experimental
8284         feature for stack access, too buggy to be used yet...
8285         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8286         * (pic16_allocDirReg): when register has storage class S_REGISTER
8287         allocate in pic16_dynAccessRegs,
8288         * device/include/pic16/pic18f????.h: modified configuration word
8289         naming convention, words started as CONFIG0H but should be CONFIG1H
8290
8291 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8292
8293         * device/include/mcs51reg.h: fixed bug 970993
8294
8295 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8296
8297         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8298         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8299         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8300         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8301         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8302         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8303           error/warning numbers,
8304           added function setWarningDisabled()
8305         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8306         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8307           _memcmp.c _memmove.c calloc.c realloc.c free.c
8308         * support/regression/tests/malloc.c: added tests for new functionality
8309         * support/regression/tests/zeropad.c: added tests for truncated initializers
8310           and initialized char arrays starting with '\x0'
8311         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8312
8313 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8314
8315         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8316
8317 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8318
8319         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8320         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8321         peephole 177.e. Thanks to anonymous
8322
8323 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8324
8325         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8326         function isn't used in the source but referenced as a
8327         variable initializer then declare it as extern in .asm file
8328
8329 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8330
8331         * .version: increased version number to 2.4.3
8332
8333         Adding version extension according to ChangeLog CVS revision
8334         * src/Makefile.in (target all): added dependency 'version.h'
8335         * (rule version.h): added rule to create version.h from ChangeLog,
8336         * (rule dep): added dependency version.h,
8337         * src/version.awk: AWK script to create version.h
8338         * src/SDCCdwarf2.c (dwWriteModule),
8339         * src/SDCCglue.c (initialComments),
8340         * src/SDCCmain.c (printVersionInfo): modified to write after
8341         version string the version extension number,
8342         * src/SDCCutil.c: included "version.h"
8343         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8344         number,
8345         * src/SDCCutil.h: added prototype for getBuildNumber
8346
8347         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8348         includeDirsSet, too,
8349         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8350         const char [] is found in function prototype...
8351
8352         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8353         moving to WREG with source is already in WREG,
8354         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8355         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8356         * (aopForSym): stack'ed symbols are partially supported, added
8357         if-clause to support symbols in FARSPACE,
8358         * (sameRegs): added test for AOP_ACC to see if registers are same,
8359         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8360         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8361         * (pic16_popRegFromString): will not allocate a new register if it
8362         doesn't find one by name, bug may have introduced...
8363         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8364         * (genIpush): revived to use pic16 port's stack,
8365         * (genAddrOf): added incomplete case for stack'ed operand,
8366         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8367         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8368         can handle multibyte operands,
8369         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8370         * (pic16initialComments): added message for MPLAB compatibility
8371         mode enabled,
8372         * src/pic16/main.h: prototype for pic16_mplab_comp,
8373         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8374         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8375         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8376         because of increased complexity of procedure,
8377         * (_process_pragma): stack pragma changed to format 'stack pos len',
8378         emit symbol '_stack_end' to conform with gplink,
8379         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8380         to search for register,
8381         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8382         PO_GPR_REGISTER,
8383         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8384         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8385         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8386         case for PO_GPR_REGISTER,
8387         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8388         dies, the new era is ahead !...
8389         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8390         pic16_dynInternalRegs,
8391         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8392         * (pic16_allocDirReg): minor optimizations and bug fixes,
8393         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8394
8395         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8396         load stack and frame pointer with address of 'stack_end' symbol
8397
8398 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8399
8400         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8401         without source code but only variable initializers
8402
8403 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8404
8405         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8406         external are not declared as extern to reduce overhead while linking
8407
8408 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8409
8410         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8411
8412 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8413
8414         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8415           Yee Keat for the patch
8416         * src/SDCCast.c (decorateType): fixed bug #979599
8417         * src/ds390/gen.h: removed local fReturnSizeDS390
8418         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8419         * src/ds390/gen.c (genAnd, genOr, genXor),
8420         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8421
8422 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8423
8424         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8425         add relFilesSet to $3, manipulate $2 to handle linking of object
8426         files without source files in command line,
8427         * device/include/pic16 (all headers): added ID location macros,
8428         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8429         entries for ID location bytes,
8430         * (pic16_assignIdByteValue): NEW,
8431         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8432         added field dumpcalltree to pic16_options_t,
8433         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8434         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8435         emitting rFalseIfx label after check_carry label,
8436         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8437         pic16_emitDIRegs), NEW
8438         * (pic16glue): dump .calltree file when option --calltree found,
8439         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8440         * (_pic16_genAssemblerPreamble): emit ID locations after
8441         configuration registers,
8442         * (pic16_linkCmd): modifications of the link command,
8443         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8444         * (pic16_pCodeInitRegisters): don't init stack registers,
8445         * (pic16_findPrevInstruction): fixed bug,
8446         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8447         bug with immediate registers,
8448         * (buildCallTree): traces stack push and pop,
8449         * (pct2): dump also stack usage for each function,
8450         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8451         * (pic16_allocDirReg): various modifications,
8452         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8453         fixed to 1,
8454
8455 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8456
8457         * src/pic16/pcode.c: removed buggy double colon
8458
8459 2004-07-01 Borut Razem <borut.razem AT siol.net>
8460
8461         * support/scripts/sdcc.nsi: added include/pic16 to setup
8462
8463 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8464
8465         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8466         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8467         target 'clean',
8468         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8469         specific command line arguments. Also added sample lkr script
8470         for placing a variable at a specific memory bank.
8471         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8472         at a specific memory bank,
8473         * (pic16_dump_isection): fixed bug which caused string literals to
8474         be omitted when dumping idata section,
8475         * (pic16_groupRegistersInSection): added code to handle registers
8476         in specific memory banks,
8477         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8478         public, all references are renamed too,
8479         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8480         AOP_DPTR2,
8481         * (pic16_storeForReturn): added case to handle when dest is WREG,
8482         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8483         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8484         pic16_rel_udata, check to see if that register is marked as being
8485         a member of a specific memory bank,
8486         * (pic16_printIvalCharPtr): added code to add string literals either
8487         to code or the idata sections,
8488         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8489         also accept the 'udata' pragma,
8490         * src/pic16/main.h: new structure types sectName and sectSym
8491         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8492         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8493         * (pic16_findPrevInstruction): fixed, it returned nothing,
8494         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8495         instruction combinations,
8496         * (pic16_FixRegisterBanking): heavily reorganised,
8497         * (pic16_AnalyzeBanking): if generating banksel directives is
8498         disabled, then don't call FixRegisterBanking at all,
8499         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8500         completely removed,
8501         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8502
8503 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8504
8505         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8506         Phuah Yee Keat <yk.phuah AT nestac.com>
8507
8508 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8509
8510         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8511         correctly the IVT even if it is relocated to some other location
8512
8513 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8514
8515         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8516         * device/include/pic16/pic18f2220.h: NEW,
8517         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8518         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8519         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8520         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8521         nodefaultlibs, ivt_loc is the location of the interrupt vector
8522         table, and nodefaultlibs signs that default libraries should not be
8523         linked in link stage,
8524         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8525         according to --ivt-loc argument,
8526         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8527         when pragma stack is found,
8528
8529 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8530
8531         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8532         256 (range check), 257 (do while), 258.a-f (bit banging
8533         f.e. on 3-wire SPI bus)
8534
8535 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8536
8537         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8538         variables used exclusively within a loop
8539
8540 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8541
8542         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8543
8544 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8545
8546         * src/SDCClrange.c (computeClash): fixed bug #971834
8547
8548 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8549
8550         * src/mcs51/gen.c (genCmp): fixed bug #975903
8551         * src/hc08/gen.c (operandsEqu),
8552         * src/ds390/gen.c (operandsEqu),
8553         * src/z80/gen.c (operandsEqu),
8554         * src/pic/gen.c (operandsEqu),
8555         * src/pic16/gen.c (operandsEqu),
8556         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8557         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8558
8559 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8560
8561         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8562
8563 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8564
8565         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8566         default case in switch statement,
8567         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8568         to eliminate problem with initialisation of pointers, but problem
8569         still exists,
8570         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8571         * (emitStaticSegment): removed various lines emitting debug info,
8572         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8573         added processor registers for utilizing EEPROM,
8574         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8575         configurable and set 8
8576
8577 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8578
8579         * .version: increased version number to 2.4.2,
8580
8581         Cumulative patch for pic16 port
8582         * src/pic16/device.c: changed scheme to dump initial values for
8583         variables in idata segment, all print_idata* functions were removed,
8584         now the pic16_printIval* will be called,
8585         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8586         * _pic16_printPointerType, pic16_printPointerType,
8587         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8588         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8589         NEW, similar to the respective functions in SDCCglue.c,
8590         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8591         way, emitting hex bytes,
8592         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8593
8594 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8595
8596         * src/avr/ralloc.c (serialRegAssign),
8597         * src/xa51/ralloc.c (serialRegAssign),
8598         * src/pic/ralloc.c (serialRegAssign),
8599         * src/pic16/ralloc.c (serialRegAssign),
8600         * src/hc08/ralloc.c (serialRegAssign),
8601         * src/z80/ralloc.c (serialRegAssign),
8602         * src/ds390/ralloc.c (serialRegAssign),
8603         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8604
8605 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8606
8607         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8608         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8609
8610 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8611
8612         Cumulative patch for pic16 port:
8613         * src/pic16/device.h (typedef PIC16_device) modified fields for
8614         defining microcontrollers,
8615         * src/pic16/device.c: added new info for all devices in Pics16 array,
8616         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8617         to be optimised out by the pCode optimiser,
8618         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8619         specially, bug reported by G.M. Gallant,
8620         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8621         as force'd so that cannot be optimised out by pCode optimiser,
8622         * src/pic16/pcode.c,
8623         * src/pic16/pcodepeeph.c,
8624         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8625         they are disabled by default, but can be enabled explicit with
8626         command argument --denable-peeps, for testing,
8627         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8628         --pomit-ivt in COMPILE_FLAGS
8629
8630 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8631
8632         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8633           compilation on MSVC
8634
8635 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8636
8637         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8638
8639 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8640
8641         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8642         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8643
8644 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8645
8646         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8647         would only assign 0x300001 register.
8648
8649 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8650
8651         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8652         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8653
8654 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8655
8656         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8657         for ds80c400
8658         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8659         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8660         added peephole 254 (left shift), 255 (jump table)
8661
8662 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8663
8664         * device/lib/Makefile.in: removed comment line with model-pic16,
8665         * (target port-specific-objects-pic16): the libraries and objects
8666         are copied to the build directory form the device/lib/pic16/bin
8667         directory
8668
8669         Cumulative patch concerning pic16 port:
8670         * library directory has been re-organized,
8671         * added support for PIC18F1220,
8672         * added headers and library sources for chips 18f1220,18f6520,
8673         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8674
8675         * configuration registers setting has changed, now each supported
8676         device has a complete description of the registers it uses,
8677         * all initialisations are moved to idata sections, these section
8678         can be absolute or relocatable,
8679         * fixed initialisation of codespace variables,
8680         * fixed warning about PCLATU and gpsim,
8681         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8682         * (genAssign): use table reads when assigning from variables in codespace,
8683         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8684         char/int variables placed in codespace,
8685         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8686         registers set in .asm file, no need for --pomit-config-words anymore,
8687         * (pic16glue): some 8051 legacy segments are commented out
8688         (to be removed completely),
8689         * added support for alternative assembler and linker with --asm=
8690         and --link= command line arguments,
8691         * peepholes are disabled automatically in the port, no need to
8692         specify on command line,
8693         * port supports natively char/int/long multiplication, but converts
8694         all divisions to support functions,
8695         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8696         to the file set in variable $2,
8697         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8698         strings in ASCII format and not in hex,
8699         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8700         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8701         allocate proper register if iCodes aren't temporary,
8702
8703 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8704
8705         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8706
8707 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8708
8709         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8710         is commented out
8711
8712 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8713
8714         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8715         computed address is reused
8716         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8717         multi-byte bitfields
8718
8719 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8720
8721         * src/z80/gen.c: (genArrayInit): must check for pointers too
8722
8723 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8724
8725         * support/regression/tests/zeropad.c: never meant to commit the
8726           nestedstruct test: removed, added check for GCC version
8727
8728 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8729
8730         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8731         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8732         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8733           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8734           bugs 928906 and 954082 half-empty initializers
8735         * src/SDCCsymt.h,
8736         * src/SDCCsymt.c (getAllocSize): added for above fix
8737         * src/z80/gen.c (genArrayInit): fixed bug 741044
8738         * support/regression/tests/zeropad.c: added tests
8739
8740 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8741
8742         * src/pic16/device.c (pic16_dump_section): corrected bug which
8743         caused some symbols of the libraries to be misplaced
8744
8745 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8746
8747         * src/pic16/glue.c,
8748         * src/pic16/ralloc.h,
8749         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8750         to fix conflict with pic port
8751
8752 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8753
8754         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8755         externs configuration variables,
8756         * src/pic16/ralloc.h,
8757         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8758         prototype in header, commented out some debug messages
8759
8760 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8761
8762         * src/pic16/glue.c,
8763         * src/pic16/main.c,
8764         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8765         for gpasm COFF object generation. Thanks to D. Hawkins for
8766         his patch info
8767
8768 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8769
8770         * src/ds390/main.c,
8771         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8772         Brock for spotting this)
8773         * src/ds390/gen.c (genEndFunction),
8774         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8775         interrupt handler and critical. Disable push/pop optimizations when
8776         peephole optimizations disabled.
8777
8778 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8779
8780         Updated pic16 library sources and headers.
8781         * device/lib/pic16/pic18f*/ ,
8782         * device/include/pic16/*.h: modified to handle structured SFR
8783         definitions
8784
8785 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8786
8787         * src/port.h (PORT structure): added hook initPaths, now each
8788         port can declare its own default search paths,
8789         which can been seen with the --print-search-dirs option,
8790         see pic16 port for example,
8791         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8792         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8793         * (doPrintSearchDirs): NEW, replaces in a central manner the
8794         printing of search dirs which was split in set*Paths functions,
8795         * (main): added call to port->initPaths and doPrintSearchDirs,
8796         * src/avr/main.c,
8797         * src/ds390/main.c,
8798         * src/hc08/main.c,
8799         * src/izt/i186.c,
8800         * src/izt/tlcs900h.c,
8801         * src/mcs51/main.c,
8802         * src/pic/main.c,
8803         * src/pic16/main.c: modified port structures to reflect addition of
8804         initPaths hook,
8805
8806         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8807         * (pic16_dump_section): for registers in same address reserve memory once,
8808         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8809         to no_banksel,
8810         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8811         result is greater in size than right or left,
8812         * (pic16_genUMult8X8_8): there are some cases where the result can
8813         be 16 bits size, so handle these,
8814         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8815         * (pic16_outBitC): modified to emit pcodes,
8816         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8817         or not,
8818         * (genDivOneByte): implemented algorithm to divide 8-bits,
8819         * (genCmp): uncommented goto, but issues still exist,
8820         * (genAnd): fixed a bug with variables >8bits,
8821         * (genPackBits): optimization added that uses BCF/BSF to change a
8822         single bit,
8823         * (genAssign): fixed bug when assigning floating point literals,
8824         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8825         __sdcc_gsinit_startup label,
8826         * src/pic16/main.c (_pic16_init): removed search directory
8827         initialisations,
8828         * (_pic16_initPaths): NEW, used to initialise search directories,
8829         * (_hasNativeMulFor): support functions for all except char/int
8830         multiplication, and char division,
8831         * (PIC16_port struct): modified entry for native mul support,
8832         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8833         no_banksel option,
8834         * (buildCallTree): call to register_usage is ifdef'ed out,
8835
8836 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8837
8838         * device/include/string.h: applied Stas Sergeev's patch to make this
8839         header file compatible with the preprocessor -Wundef option
8840         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8841         failure (fixes bug #941458)
8842
8843 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8844
8845         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8846         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8847         that the variable, not the function, should be static
8848         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8849         to be consistent with non-literal case
8850
8851 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8852
8853         * src/SDCCast.c (isConformingBody): fixed bug #949967
8854         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8855         convilong): fixed bug #952086
8856
8857 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8858
8859         * src/SDCCmem.c (allocVariables): fixed bug #955321
8860
8861 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8862
8863         * src/hc08/main.c (_hc08_genAssemblerEnd),
8864         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8865         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8866         completely eliminated the use of a temporary file
8867         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8868         when more than one file linked
8869         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8870
8871 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8872
8873         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8874         which fixes bug #543481
8875         * support/regression/tests/bug-751703.c: fixed comments left from a
8876         cut and paste error
8877         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8878         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8879         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8880         scopes
8881         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8882         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8883         are now changed to underscores in moduleName
8884
8885 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8886
8887         * as/mcs51/lkmem.c: better fix for bug #954173
8888
8889 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8890         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8891
8892         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8893         * device/include/c8051f000.h,
8894         * device/include/c8051f120.h,
8895         * device/include/c8051f300.h,
8896         * device/include/c8051f310.h,
8897         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8898         PWM16) and detab'ed
8899
8900 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8901
8902         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8903         and mailing lists, doc'ed --no-peep-comments, removed reference
8904         to knoppix (newest version has no LyX/LaTeX), other minor changes
8905         * src/SDCCglue.c (glue): save 2 bytes stack space with
8906         option --main-return. The ljmp could probably be avoided too
8907
8908 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8909
8910         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8911
8912 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8913
8914         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8915         * src/SDCCopt.c (isLocalWithoutDef),
8916         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8917         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8918         (credit to Maarten Brock for patch #949363, on which this is based)
8919         * support/regression/tests/bug-751703.c: some test cases of extern used
8920         within inner scopes.
8921
8922 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8923
8924         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8925         SPEC_STRUCT
8926         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8927         struct definitions
8928         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8929         dwWriteLabel): fix to create valid debugger symbols even when
8930         the module name has non-alphanumeric symbols in it
8931         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8932         when a variable's allocation has been optimized away
8933
8934
8935 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8936
8937         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8938         * src/hc08/main.c,
8939         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8940         * src/mcs51/main.c,
8941         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8942         * src/ds390/main.c,
8943         * src/z80/gen.c (z80_emitDebuggerSymbol),
8944         * src/z80/main.c,
8945         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8946         * src/pic/main.c,
8947         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8948         * src/pic16/main.c,
8949         * src/avr/gen.c (avr_emitDebuggerSymbol),
8950         * src/avr/main.c,
8951         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8952         * src/xa51/main.c,
8953         * src/SDCCdebug.c (emitDebuggerSymbol),
8954         * src/SDCCdebug.h,
8955         * src/port.h: added a debugger struct to the port struct. Added a
8956         callback for defining debugger symbols
8957
8958         * src/SDCCast.c (createLabel),
8959         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8960         with isitmp = 1
8961         * src/SDCCicode.h,
8962         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8963         iCode back to the ast for the function
8964
8965         * src/hc08/ralloc.c (hc08_assignRegisters),
8966         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8967         unneeded fields from the regs struct.
8968         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8969         pushReg() & pullReg() functions instead of emitcode()
8970
8971         * src/hc08/gen.c (genLabel, genhc08Code),
8972         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8973
8974         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8975         debugger hooks
8976
8977         * src/hc08/gen.c (genEndFunction, genhc08Code),
8978         * src/hc08/gen.h,
8979         * src/mcs51/gen.c (genEndFunction, gen51Code),
8980         * src/mcs51/gen.h,
8981         * src/ds390/gen.c (genEndFunction, gen390Code),
8982         * src/ds390/gen.h,
8983         * src/z80/gen.c (genEndFunction, genZ80Code),
8984         * src/z80/gen.h,
8985         * src/z80/z80.h,
8986         * src/pic/gen.c (genEndFunction, genpic14Code),
8987         * src/pic/gen.h,
8988         * src/pic16/gen.c (genEndFunction, genpic16Code),
8989         * src/pic16/gen.h,
8990         * src/avr/gen.c (genEndFunction, genAVRCode),
8991         * src/avr/gen.h,
8992         * src/xa51/gen.c (genEndFunction, genXA51Code),
8993         * src/xa51/gen.h,
8994         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8995         specific code to cdbFile.c and out of the backend code generators
8996
8997         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8998         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8999         starting address is now 0
9000
9001         * as/hc08/asm.h,
9002         * as/hc08/m08pst.c,
9003         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
9004         assembler directive for DWARF support
9005         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
9006
9007         * src/src.dsp,
9008         * src/Makefile.in,
9009         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
9010
9011 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9012
9013         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
9014         and inappropriate peephole optimization in jump tables
9015
9016 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9017
9018         * as/hc08/m08pst.c,
9019         * src/SDCCglue.c: sdccopt works for the hc08 port now
9020
9021 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
9022
9023         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
9024
9025 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9026
9027         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
9028
9029 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9030
9031         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
9032         rules
9033         * src/SDCCmain.c,
9034         * src/SDCCglobl.h,
9035         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
9036         comments from the peephole optimizer replacement rules
9037         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
9038         symbols
9039         * src/SDCCcse.c (updateSpillLocation),
9040         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
9041         equivalents
9042         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
9043         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
9044         objects far pointers
9045
9046 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9047
9048         * src/SDCCsymt.h: a missing part of my last change
9049         * src/pic/ralloc.c (regTypeNum),
9050         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
9051
9052 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9053
9054         * src/SDCCicode.h,
9055         * src/SDCCicode.c (aggrToPtrDclType),
9056         * src/SDCCptropt.h,
9057         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
9058         ptrPseudoSymConvert),
9059         * src/pic/ralloc.c (regTypeNum),
9060         * src/pic16/ralloc.c (regTypeNum),
9061         * src/hc08/ralloc.c (regTypeNum),
9062         * src/ds390/ralloc.c (regTypeNum),
9063         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
9064         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
9065
9066 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9067
9068         * link/z80/lkmain.c (afile),
9069         * as/hc08/lkmain.c (afile),
9070         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
9071         prevent a pointer problem when a filename has no directory and
9072         no extension specified.
9073
9074 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9075
9076         * link/z80/lkmain.c (afile): allow periods in directory names
9077         * link/z80/lkmain.c (afile),
9078         * as/mcs51/lkmain.c (afile),
9079         * as/hc08/lkmain.c (afile): allow linker script file to have an
9080         extension other than ".lnk"
9081         * link/z80/lklex.c (getfid),
9082         * link/z80/lkmain.c (parse),
9083         * as/mcs51/lklex.c (getfid),
9084         * as/mcs51/lkmain.c (parse),
9085         * as/hc08/lklex.c (getfid),
9086         * as/hc08/lkmain.c (parse): Support comments in the linker script
9087         file on lines by themselves and after filenames
9088
9089 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9090
9091         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
9092
9093 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9094
9095         * src/z80/peeph-z80.def: removed some peephole rules that don't
9096         work with multibyte arithmetic (fixed bug #937126)
9097         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
9098         to registers and not global variables
9099         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
9100         geniCodePreInc, geniCodePostDec, geniCodePreDec,
9101         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
9102         checking for assignments not internally generated (fixed bug #931895)
9103         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
9104         structure member (fixed bug #930072)
9105
9106 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9107
9108         * src/SDCCmain.c (linkEdit),
9109         * src/hc08/main.c (_hc08_parseOptions),
9110         * as/hc08/Makefile.in,
9111         * as/hc08/aslink.h,
9112         * as/hc08/asm.h,
9113         * as/hc08/m08pst.c,
9114         * as/hc08/lkrloc.c (relr, rele),
9115         * as/hc08/lkarea.c (lnkarea)
9116         * as/hc08/lkmain.c (afile, parse),
9117         * as/hc08/lkelf.c: support for ELF output
9118         * as/hc08/lks19.c (s19),
9119         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
9120
9121 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9122
9123         * as/mcs51/lkihx.c: Fixed bug #899105.
9124
9125 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9126
9127         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
9128         .dsp files from Unix to DOS.
9129
9130 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9131
9132         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
9133         function pointers; we have been compliant for several months now.
9134         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
9135         change that was accidently commented out
9136         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
9137         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
9138         bug #922319
9139
9140 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9141
9142         * src/hc08/gen.c: output of all of the internal debugging information
9143         is now controlled by the D() macro; it is disabled by default
9144
9145 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9146
9147         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
9148         harder to keep the same registers during a CAST iCode
9149         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
9150         long via int can be done in a single cast, if the signedness is
9151         correct.
9152         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
9153         putchar() in tinibios.c in ds390's library
9154
9155 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
9156
9157         * src/SDCCast.c (decorateType): fixed bug #898889,
9158         cast result of a literal complement too
9159         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
9160         fixed check for bitfields
9161
9162 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
9163
9164         * src/SDCCicode.c (geniCodeLogic): made it static,
9165         (geniCodeLogicAndOr): added in order to fix bug #905492,
9166         (ast2iCode): fixed bug #905492
9167         * support/regression/tests/bug-905492.c: added
9168         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
9169         (processParms): fixed bug #927659: don't copy parms, this will clear
9170         decorated flag
9171         * support/regression/tests/bug-927659.c: added
9172
9173 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
9174
9175         * src/SDCCast.c (addCast): don't cast float to char
9176         * device/lib/libsdcc.lib: added _memmove
9177
9178 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
9179
9180         * device/lib/large/Makefile: fixed parallel execution by
9181         replacing `make` by `$(MAKE)`
9182
9183 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9184
9185         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
9186         offsets (fixes bug #923936)
9187
9188 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
9189
9190         * device/lib/small/Makefile: fixed parallel execution by
9191         replacing `make` by `$(MAKE)`
9192
9193 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9194
9195         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9196
9197 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9198
9199         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9200         * src/regression/Makefile: Regression test was not running.
9201
9202 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9203
9204         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9205         complement if possible
9206         * src/SDCCval.c (valComplement),
9207         * src/SDCCicode.c (operandOperation): fixed complement of literal
9208         * support/regression/tests/onebyte.c (testComplement): added
9209
9210 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9211
9212         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9213         return an optimized tree; actually replace actParm with the new tree
9214         * src/SDCCast.h: added some parantheses to remove side effects
9215         * support/regression/tests/bug-920866.c
9216
9217 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9218         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9219         Bit operands were not being handled properly in the pic14 port.
9220         (now src/regression/add.c passes again).
9221
9222 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9223
9224         * src/SDCC.y (labeled_statement): case and default no longer require
9225         a following statement (RFE #893037)
9226
9227 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9228
9229         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9230         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9231         disabled (fixes bug #916294)
9232         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9233         "mov a,acc"; patch provided by Lenny Story
9234         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9235
9236 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9237
9238         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9239         functions
9240         * src/ds390/gen.c (genFunction, genEndFunction),
9241         * src/ds390/ralloc.c (ds390_assignRegisters),
9242         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9243         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9244         pushed if there are parameters passed on the stack. Also, a cleaner
9245         way to decide if r0/r1 should be pushed/popped. (Together they fix
9246         bug #918693)
9247
9248 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9249
9250         * doc/sdccman.lyx,
9251         * device/lib/mcs51/crtpagesfr.asm,
9252         * device/lib/mcs51/crtxinit.asm,
9253         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9254         to avoid confusion with Si Lab's SFRPAGE register.
9255
9256 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9257
9258         * src/SDCCglue.c (emitMaps): allow public sfr variables
9259         * src/SDCCglue.c (initialComments): include compiler build date
9260         with compiler version and put the timestamp of the generated
9261         assembly file on a serperate line to be less confusing.
9262         * src/port.h: added genInitStartup hook
9263         * src/avr/main.c,
9264         * src/ds390/main.c,
9265         * src/hc08/main.c,
9266         * src/pic/main.c,
9267         * src/pic16/main.c,
9268         * src/xa51/main.c,
9269         * src/z80/main.c: genInitStartup initialize as NULL (default to
9270         historical behaviour)
9271         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9272         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9273         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9274         library instead of hard coding it into the compiler.
9275         * support/regression/ports/mcs51-stack-auto/spec.mk,
9276         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9277         * device/lib/mcs51/Makefile,
9278         * device/lib/small/Makefile,
9279         * device/lib/large/Makefile,
9280         * device/lib/mcs51/crtpagesfr.asm,
9281         * device/lib/mcs51/crtstart.asm,
9282         * device/lib/mcs51/crtxclear.asm,
9283         * device/lib/mcs51/crtxinit.asm,
9284         * device/lib/mcs51/crtclear.asm,
9285         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9286         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9287         and into user configurable files.
9288         * device/lib/clean.mk: clean mcs51 directory too
9289         * support/regression/tests/longlit.c: added static to T1 declaration
9290         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9291         accesses in the initialization code
9292
9293 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9294
9295         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9296         OSCTRIMVAL as noted in bug #916008
9297
9298 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9299
9300         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9301         in loops with multiple exits (reported as incorrect registers
9302         used by Martin Helmling in Sdcc-user list)
9303
9304 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9305
9306         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9307         made ds390 register extensions look less like error messages
9308
9309 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9310
9311         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9312         reported by Adam Wozniak in Sdcc-user list
9313
9314 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9315
9316         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9317         arithmetic optimizations, added debug output
9318
9319 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9320
9321         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9322         * sdcc.spec: updated and split sdcc into 3 rpms
9323         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9324         needed for literals of LEFT_OP and '+'
9325         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9326         introduced RESULT_TYPE_NOPROM
9327         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9328         left shift
9329         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9330         limited promotion to int only for '*'
9331         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9332
9333 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9334
9335         * src/pic16/gen.c (genSkip),
9336         (genc16bit2lit), (gencjneshort): commented out
9337         (is_LitOp): new helper function, checks operand type
9338         (genCmpEq): rewritten
9339
9340 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9341
9342         * support/regression/tests/bug-908454.c: added
9343
9344 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9345
9346         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9347         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9348         (geniCodeCast): cosmetic, don't preserve bit storage class
9349         (geniCodeLeftShift): added promotion
9350         (geniCodeLogic): fixed regression
9351         * src/SDCCsymt.c (computeTypeOr): accept bits too
9352         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9353
9354 2004-03-07  Borut Razem <borut.razem AT siol.net>
9355
9356         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9357
9358 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9359
9360         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9361         version of pic16_genPackRegisters which does not check if ic is a
9362         CAST operator,
9363         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9364         function cause string1.c regression test fails
9365
9366 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9367
9368         * sim/ucsim/configure.in,
9369         * sim/ucsim/configure,
9370         * sim/ucsim/doc/Makefile.in: use docdir
9371         * src/SDCC.y: fixed sbit atrributes
9372         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9373         * src/SDCCast.c (decorateType): |^& need special promotion handling
9374         * src/SDCCast.h,
9375         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9376         * src/SDCCsymt.h (computeType),
9377         * src/SDCCicode.c: computeType() needs op
9378         * src/SDCCsymt.c (checkTypeSanity),
9379         * doc/sddman.lyx: "plain" bitfields are unsigned
9380         * src/SDCCsymt.c (computeTypeOr): added
9381         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9382         |^& ops
9383         * src/SDCCval.c (val*): computeType() needs op
9384         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9385         * support/regression/tests/onebyte.c: added tests for |^&
9386
9387 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9388
9389         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9390         for writing icode into asm output.
9391
9392 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9393
9394         * src/pic16/device.c: added some debug lines enabled
9395         with macro DEBUG_CHECK,
9396         * src/pic16/genarith.c: more debug in genPlus,
9397         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9398         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9399         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9400         * (aopForSym): onStack symbols are re-placed in data memspace,
9401         and onStack flag is cleared,
9402         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9403         copy temporary pcodeop,
9404         * (genPcall): added warning for not updating PCLATU,
9405         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9406         always true for pic16 port,
9407         * (genMultOneWord): NEW, supports integer multiplication,
9408         * (genMult): modified to call genMultOneWord,
9409         * (ifxForOp): added warning when return NULL,
9410         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9411         flag is set before call to operandFromSymbol for implicit
9412         added structures,
9413         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9414         options.intlong_rent are set by default,
9415         * (_hasNativeMulFor): modified to allow port generation of integer
9416         multiplication,
9417         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9418         set regtype to REG_SFR for all registers, restricting seting the
9419         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9420
9421 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9422
9423         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9424         more than 500 times in the regression tests
9425
9426 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9427
9428         * support/Util/SDCCerr.h,
9429         * support/Util/SDCCerr.c,
9430         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9431         enumerator_list),
9432         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9433         for symbol conflicts.
9434         * support/valdiags/tests/enum.c,
9435         * support/valdiags/tests/tentdecl.c,
9436         * support/valdiags/tests/struct.c: expect possible error messages
9437         referring to original symbol definitions.
9438         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9439         * src/SDCCsymt.h,
9440         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9441
9442 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9443
9444         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9445
9446 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9447
9448         * src/pic16/ralloc.c (newReg): fixed bug #908929
9449
9450 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9451
9452         * src/ds390/gen.c: added missing #include "main.h"
9453
9454 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9455
9456         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9457         checking if symbol is already in set,
9458         * src/pic16/device.h: prototype for checkAddSym,
9459         * src/pic16/gen.c: (_G): added entry interruptvector,
9460         * (assignResultValue): removed some commented out lines,
9461         * (genFunction): check for ISR via sym->type, absolute section for
9462         interrupt code is created via a new pBlock, the goto instruction is
9463         placed now correctly at the interrupt vector position, changed all
9464         references from ivec to _G.interruptvector,
9465         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9466         is the interrupt is a high priority one, same for return from ISR,
9467         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9468         externs to calls of checkAddSym,
9469         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9470         pic16_pcode_verbose flag is set,
9471         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9472         * src/pic16/pcoderegs.c: message about how many registers are saved
9473         will only be emitted if pic16_pcode_verbose flag is set,
9474
9475 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9476
9477         * src/ds390/ralloc.h,
9478         * src/ds390/ralloc.c (ds390_regWithIdx),
9479         * src/ds390/gen.c (emitcode),
9480         * src/ds390/main.h,
9481         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9482         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9483         ds390operandCompare, getRegsRead, getRegsWritten,
9484         initializeAsmLineNode): customized instruction size calculation for
9485         ds390, started basis for some register optimizations
9486         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9487         corresponding assembly output
9488         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9489         missing push/pop of r0/r1. Optimized push/pops
9490
9491 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9492
9493         * src/mcs51/main.c (instructionSize): fixed ACALL size
9494         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9495
9496 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9497
9498         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9499         the sorting of rlist with NULL elements
9500         * (print_idataType, print_idata): NEW to create idata sections
9501         * src/pic16/device.h: idataSymSet new variable
9502         * src/pic16/gen.c (genFunction): fixed some bugs in string
9503         comparing, improved the absolute section creation for ISRs,
9504         added FSR0L/FSR0H in registers that are saved in an ISR,
9505         * (genInline): fixed the processing of inline snippets,
9506         now they undergo no process by the peephole optimizer
9507         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9508         are placed in idataSymSet,
9509         * (pic16emitStaticSeg): extern symbols are added in externs,
9510         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9511         switching when aboslute variables are placed in access bank memory
9512         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9513         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9514         commented out with #if,
9515         * (pic16_packRegisters): reintroduce the check for CAST because some
9516         symbols are not correctly handled,
9517         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9518         pCodeInstruction instead of pCode,
9519         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9520         pCodeAsmDir definition,
9521         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9522         directive, then the argument directive is emitted without the leading
9523         tab, hack for inline labels which must be in the first column,
9524         * (compareLabel,pic16_findNextInstruction),
9525         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9526         * (insertBankSwitch): modified for the new pCodeAsmDir,
9527
9528 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9529         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9530
9531         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9532         instance,
9533         * (pushSide): commented out with #if,
9534         * (assignResultValue): fixed some typos in saving
9535         registers,
9536         * (genPcall): FIXED and sync'ed with genCall,
9537         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9538         * (genNearPointerGet): fixed to handle some more cases,
9539         implementation scheme via table reads,
9540         * (genConstPointerGet): modified to access code memory correct,
9541         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9542         and improved to handle some cases
9543         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9544         instead of "RETLW" for init data
9545         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9546         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9547         variables are placed in access bank memory (<0x80 and >=0xf80),
9548         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9549         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9550         TBLWT_POSTDEC,TBLWT_PREINC
9551         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9552         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9553         directives
9554         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9555         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9556         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9557         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9558
9559 2004-02-29  Borut Razem <borut.razem AT siol.net>
9560
9561         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9562         support/Util/findme.h, support/Util/system.h: enhance binary relative
9563         search for lib and include by using findProgramPath()
9564
9565 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9566
9567         * src/SDCCpeeph.h,
9568         * src/SDCCpeeph.c (pcDistance),
9569         * src/port.h,
9570         * src/mcs51/ralloc.h,
9571         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9572         * src/mcs51/main.h,
9573         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9574         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9575         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9576         size calculation port specific, started basis for some register
9577         optimizations
9578         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9579         missing push/pop of r0/r1. Optimized push/pops
9580         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9581         * device/lib/_modsint.c (_modsint),
9582         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9583         and stack version so regression tests pass
9584
9585 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9586
9587         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9588         * src/SDCCast.c (decorateType): catch another small optimization
9589         with '?' operator
9590         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9591         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9592         modified to finally use computeType() all over SDCC,
9593         see Feature Request #877103
9594         * src/SDCCval.h: cosmetic
9595         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9596         valCompare(); regression tested in muldiv.c
9597         * support/regression/tests/muldiv.c (testMod): mod sign follows
9598         dividend only
9599
9600 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9601
9602         * src/SDCCast.c (decorateType): fixed bug #902362
9603         * doc/INSTALL.txt: fixed install instructions for win32
9604
9605 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9606
9607         * device/include/Makefile.in (install): fixed by replacing spaces
9608         by tabs
9609         * doc/README.txt,
9610         * doc/INSTALL.txt: updated for release
9611         * doc/sdccman.lyx: added warning for --xstack being buggy
9612
9613 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9614
9615         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9616         to eliminate build warnings.
9617         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9618
9619 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9620            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9621
9622         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9623         removed -penable-stack, added comment for stack pragma, added
9624         warning for not initializing the stack/frame registers, removed
9625         comment at interrupts section
9626
9627         Stack is made permanent, there is no ability to disable stack usage.
9628         * src/pic16/device.h,
9629         * src/pic16/device.c: removed all references to USE_STACK macro,
9630         * src/pic16/device.c (pic16_dump_section): when no elements in
9631         rlist, free rlist before return,
9632         * (pic16_dump_int_registers): NEW, internal registers are a new set
9633         of general purpose registers reused by each function,
9634         * (checkAddReg): returns 1 if registers is added to set,
9635         * (pic16_groupRegistersInSection): when a registers is of type
9636         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9637         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9638         SRCASECMP macro is moved here from device.c
9639         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9640         PO_PCLATU, PO_PRODL, PO_PRODH,
9641         * (pic16_pCodeOpType, genMinus,
9642         changed compares to "a" register, with AOP_ACC,
9643         * (pic16_genPlus): fixed some bugs and indented properly,
9644         * (pic16_addSign): changed size to size+offset in the MOVWF
9645         instruction,
9646         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9647         multiply 8-bit operand by literal, result is 8-bit,
9648         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9649         multiply 2 8-bit operand, result is 8-bit,
9650         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9651         genUMult8X*_16,
9652         * src/pic16/gen.c: changed accUse to contain WREG only,
9653         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9654         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9655         true, do not use immediate addressing any more unless sym is a
9656         pointer in codespace,
9657         * (aopForRemat): do not use immediate addressing when symbol not in
9658         codespace and when symbol's address is requested,
9659         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9660         accUse size (= 1),
9661         * (aopGet): added case for AOP_ACC and don't return "accumulator
9662         bug" but WREG instead,
9663         * (popGetTempReg): pushes contents of temporary register in stack,
9664         * (popReleaseTempReg): pops contents of temporary register from
9665         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9666         * (pic16_popGet): separated case AOP_ACC to return register WREG
9667         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9668         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9669         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9670         the use of immediate pointers to certain cases only.
9671
9672         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9673         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9674         * (assignResultValue, genCall, genRet): modified to use the new
9675         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9676         genPcall is still broken,
9677         * (genFunction): added code to create 'A' type pBlocks when
9678         interrupt functions are generated, code not extensively tested yet,
9679         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9680         * (genEndFunction): modified so ISRs pop stored registers from stack,
9681         * (genMultOneByte): cleanup,
9682         * (AccRsh): added flag andmask, to and result with appropriate mask,
9683         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9684         * (genDataPointerGet): fixed and reenabled its use,
9685         * (genNearDataPointerGet): bugs fixed,
9686         * (genDataPointerSet): bugs fixed,
9687         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9688         pic16_DumpSymbol, pic16_DumpOp,
9689         * src/pic16/genutils.h: function prototypes for the above functions,
9690         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9691         pointers,
9692         * (pic16emitRegularMap): many many many improvements, but needs a
9693         major cleanup,
9694         * src/pic16/main.c: enable_stack in pic16_options is removed,
9695         * (_pic16_parseOptions): removed command line options -penable-stack,
9696         * (_process_pragma): emit stack symbol only when stack pragma is
9697         processed,
9698         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9699         redirected to FSR0L/FSR0H pair,
9700         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9701         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9702         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9703         for immediates,
9704         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9705         * (dumpPicOptype): NEW,
9706         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9707         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9708         with movff instruction,
9709         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9710         added pic16_int_regs, some packRegsFor* functions are commented out,
9711         because produce errors,
9712         * src/pic16/NOTES: minor modifications
9713
9714 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9715
9716         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9717         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9718         --pack-iram.
9719         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9720         * as/mcs51/lkaomf51.c: fixed bug #895763
9721
9722 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9723
9724         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9725
9726 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9727
9728         * doc/sdccman.lyx: added details about the HC08 storage classes and
9729         interrupts, fixed the register usage info for z80 & gbz80
9730
9731 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9732
9733         * doc/sdccman.lyx: added more pic16 port documentation
9734         * device/include/pic16/: added header pic18fregs.h
9735
9736 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9737
9738         * doc/sdccman.lyx: added Vangelis' contribution
9739
9740 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9741
9742         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9743         extend to the next CALL or PCALL, not just to the next CALL.
9744
9745 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9746
9747         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9748
9749 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9750
9751         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9752         bug #895752 and a better fix for bug #716790
9753
9754 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9755
9756         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9757
9758 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9759
9760         * doc/sdccman.lyx: minor changes, minor changed
9761
9762 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9763
9764         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9765         which can't handle SDCC_NEWONEBYTEOPS,
9766         (geniCodeMultiply): removed conversion from mult to shift for pic14
9767         and pic16
9768
9769 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9770
9771         * src/hc08/gen.h,
9772         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9773         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9774         thus fixing bug #895406
9775
9776 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9777
9778         * device/lib/_modsint.c,
9779         * device/lib/_modslong.c: sign follows divisor only
9780         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9781         signs or signedness can be ignored
9782         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9783         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9784         added optimization for IFX,
9785         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9786         arguments;
9787         reenabled optimization for IFX, which was removed on 2004-01-11
9788         * src/SDCCast.h: added return type IFX
9789         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9790         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9791         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9792         SDCC_OLDONEBYTEOPS selects the old behaviour
9793         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9794         changed again and commented promotion rule
9795         * src/SDCCval.c (valDiv): promotion no longer necessary
9796         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9797         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9798         rewritten
9799         * support/regression/tests/onebyte.c: added
9800
9801 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9802
9803         * gen.c (genInline): reverted to old code for assemnling inline
9804         code because of bug reported James Chadd
9805
9806 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9807
9808         * ralloc.h: missing declarations from previous patch,
9809         seems that patch for ralloc.h was never applied, fixed
9810
9811 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9812            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9813
9814         * pcode.c,
9815         * pcode.h,
9816         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9817         indirect addressing. Marked FSR0 as deprecated
9818         * gen.c (pointerCode): commented out, not needed now
9819         (pic16_popGet2p): new MOVFF helper function
9820         (genGenPointerGet),
9821         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9822         (shiftRLong): removed duplicate debugging info
9823
9824 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9825
9826         * src/ds390/gen.c (genNearPointerGet),
9827         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9828         optimization with bits, but not bitfields.
9829         * src/ds390/ralloc.c (packRegisters),
9830         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9831
9832 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9833
9834         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9835
9836 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9837
9838         * src/SDCCsymt.h,
9839         * src/SDCCicode.c (operandFromSymbol),
9840         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9841         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9842         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9843         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9844         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9845         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9846         bug #892038
9847         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9848         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9849         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9850         * src/SDCCsymt.c (newSymbol),
9851         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9852         enumerator_list),
9853         * src/SDCCval.h,
9854         * src/SDCCval.c (newiList): fixed bug #885705
9855
9856 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9857
9858         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9859         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9860
9861 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9862
9863         * device/include/c8051f120.h,
9864         * device/include/c8051f300.h,
9865         * device/include/c8051f310.h: added/updated header files for Silicon
9866         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9867         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9868         in new section Submitting patches
9869
9870 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9871
9872         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9873         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9874         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9875         genGenPointerSet),
9876         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9877         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9878         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9879         genGenPointerSet),
9880         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9881         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9882         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9883         genGenPointerSet),
9884         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9885         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9886         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9887         genGenPointerSet): fixed bug #892400
9888         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9889         to eliminate build warnings.
9890         * src/SDCCast.c (processParms),
9891         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9892         fixed bug 751859
9893         * support/valdiag/valdiag.py: added GCC to the list of defines active
9894         when compiling with gcc
9895
9896 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9897
9898         * support/Util/SDCCerr.h,
9899         * support/Util/SDCCerr.c,
9900         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9901         with an incomplete type (fixed bug #883734)
9902         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9903
9904 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9905
9906         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9907
9908 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9909
9910         * src/SDCCast.c (decorateType),
9911         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9912         function pointer implementation
9913         * support/regression/tests/funptrs.c: added tests to verify both forms
9914         of function pointers work correctly. Added tests to verify parameters
9915         are passed in the correct order.
9916
9917 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9918
9919         * device.c (regCompare): registers are sorted by ascending
9920         address and increasing size,
9921         * main.c (_pic16_finaliseOptions): removed the declaration
9922         of compiler macro MCU. Now a macro of the format pic18fxxxx
9923         will be defined from the command line
9924
9925 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9926             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9927
9928         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9929         PCOP_RLCF was overwritten!
9930         * gen.c (genSkip): commented out calls to pic16_emitcode,
9931         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9932         * (genlshTwo),
9933         * (genRRC): added debugging info,
9934         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9935         overwritten while shifting,
9936         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9937         overwritten while shifting,
9938         * (AccLsh),
9939         * (AccRsh),
9940         * (shiftLLeftOrResult),
9941         * (shiftRLeftOrResult),
9942         * (shiftRLong),
9943         * (shiftLLong): Implemented with pic16_emitpcode
9944         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9945         * (genLeftShift): Fixed bug, operand for shift by variable always
9946         was "and"ed with 0x0f,
9947         * (genLeftShiftLiteral),
9948         * (genrshTwo),
9949         * (genRightShiftLiteral): added debugging info,
9950         * (genrshFour): added comment,
9951         * (genRightShift): determined signedness from operand "left"
9952         instead of "result"
9953
9954 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9955
9956         * src/SDCCicode.c (geniCodeParms),
9957         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9958         function pointers, fixed function pointer bugs #861242 and #861896
9959
9960 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9961
9962         * device/include/c8051f000.h,
9963         * device/include/c8051f120.h,
9964         * device/include/c8051f300.h: added header files for Silicon
9965         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9966
9967 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9968
9969         * src/SDCCast.c (processParams): added new type flow and restructured
9970         (gatherAutoInit): added new type flow
9971         (addCast): cosmetic changes
9972         (getLeftResultType): added new type flow for array indices, patch
9973         provided by Stas, see FR #877103
9974         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9975         array index patch by Stas
9976         * src/SDCCast.h: added prototype getResultTypeFromType()
9977         * src/SDCCval.h,
9978         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9979         * src/pic/glue.c (pic14emitStaticSeg),
9980         * src/pic16/glue.c (pic16emitStaticSeg),
9981         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9982         for initialization of symbols
9983         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9984         * support/Util/SDCCerr.h:
9985         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9986         * .version: bumped version number to 2.3.8
9987         * device/include/Makefile.in (install),
9988         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9989         avoid warnings
9990
9991 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9992
9993         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9994         Slade Rich fixed an optimization bug
9995         * src/pic/pcodepeep.c,
9996         * src/pic/pcoderegs.c
9997         * doc/Makefile (install): added test for directory
9998
9999 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10000
10001         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
10002         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
10003         * src/pic/ralloc.c (getRegPtr, getRegGpr),
10004         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
10005         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
10006         * as/mcs51/asexpr.c (term),
10007         * as/hc08/asexpr.c (term): fixed bug #887146
10008
10009 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10010
10011         * src/z80/gen.c (genMult): handle single byte result product
10012         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
10013         DUMMY_READ_VOLATILE (fixed bug #886367)
10014
10015 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10016
10017         * support/regression/tests/libmullong.c: fixed logic, on little endian
10018         hosts we ended without a mullong_wrapper()
10019
10020 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10021
10022         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
10023         virus/worm forged address usage.
10024
10025 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
10026
10027         Fixed promotion, it should be done on AST level:
10028         * src/SDCCast.c (addCast): added promotion to int
10029         (decorateType): updated call to upCast()
10030         * src/SDCCicode.c (geniCodeLeftShift): removed call to
10031         usualUnaryConversions()
10032
10033 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
10034
10035         * support/regression/tests/literalop.c (mulWrapper): Added a
10036         wrapper to remove integer overflow warnings.
10037
10038         * support/regression/tests/float_trans.c: Made work on host.
10039
10040         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
10041         location of sz80.
10042
10043         * support/regression/generate-cases.py (main): Changed from inline
10044         to a main method.
10045
10046         * doc/Makefile (install): Changed to depth first to get rid of
10047         missing directory install warning.
10048
10049         * as/Makefile (install-doc): Made work on Mac.
10050
10051 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
10052
10053         * src/SDCCast.c: added an additional type flow in decorateType() of
10054         opposite direction, see feature request #860006; it's enabled at runtime
10055         by setting the environment variable SDCC_NEWTYPEFLOW
10056         * src/SDCCast.h: changed prototype of decorateType()
10057         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
10058         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
10059         'char' to 'int' can be omitted, if both operands are 'unsigned char';
10060         see feature request #877103
10061         * src/SDCCval.c: updated call of decorateType()
10062         (valBitwise): fixed bug #882876
10063         (valMinus): added promotion
10064         (valLogicAndOr): result is unsigned
10065         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
10066         * src/SDCCsymt.c (computeType),
10067         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
10068         must not cause an unsigned operation
10069         * src/pic/glue (pic14emitRegularMap),
10070         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
10071
10072 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
10073
10074         * src/pic/pcode.c (PCodeID): commented out left over debug code
10075
10076 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
10077
10078         * support/valdiag/tests/overflow.c: added shift tests
10079         * src/pic/device.c,
10080         * src/pic/gen.c,
10081         * src/pic/gen.h,
10082         * src/pic/glue.c,
10083         * src/pic/main.c,
10084         * src/pic/pcode.c,
10085         * src/pic/pcode.h,
10086         * src/pic/pcodepeep.c,
10087         * src/pic/pcoderegs.c,
10088         * src/pic/ralloc.c,
10089         * src/pic/ralloc.h: applied patch from Slade Rich;
10090         added support for multiple code pages and multiple RAM banks on the
10091         PIC 14 port. The ASM files now no longer simply assume all the
10092         code / RAM are in the same page / bank. This means the linker can
10093         safely allocate code/RAM of separate ASM files to different pages/banks.
10094         * doc/sdccman.lyx: added Slade's tips
10095         * src/mcs51/peeph.def: fixed bug #880768
10096
10097 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10098
10099         * src/hc08/ralloc.c (rematStr): fixed bug #879282
10100         * src/SDCCast.c (decorateType): fixed bug #880197
10101
10102 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
10103
10104         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
10105         getopt.h.
10106
10107         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
10108         strtof is not part of C89 and isn't included with Mac OS X.
10109
10110 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10111
10112         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
10113         shiftL2Left2Result): fixed bug #879326
10114         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
10115         (genMultOneByte): fixed bug in signed vs unsigned multiplication
10116         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
10117         address fetch for clr instruction
10118         * device/lib/hc08/_mulint.c: created optimized assembly version
10119         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
10120
10121 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
10122
10123         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
10124         proposed in FR #877103
10125
10126 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
10127
10128         * src/SDCCval.c (cheapestVal): added missing checks
10129         * src/SDCCicode.c (usualBinaryConversions): fixed condition
10130         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
10131
10132 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
10133
10134         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
10135         equal operands
10136
10137 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
10138
10139         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
10140         loaded with the linker search paths (-L arguments) and the libraries
10141         to be linked with the current source (-l arguments). Changes
10142         currently will affect only the pic16 port.
10143         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
10144         include path the port specific paths and port specific libraries,
10145         * gplink command now contains the $3 argument,
10146         * src/pic16/device.h,
10147         * src/pic16/device.c,: structure PIC_device is made public and
10148         renamed to PIC16_device, the same for variable Pics which is renamed
10149         to Pics16. Updated all references to them.
10150         * src/pic16/glue.c (pic16glue): corrected bug with code
10151         initialization which bypassed the variable initializations block.
10152
10153         * device/lib/pic16/Makefile.rules: removed --penable-stack from
10154         COMPILE_FLAGS and added the --nostdinc option
10155
10156 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10157
10158         * device/include/mc68hc908jb8.h: Register defs for another member
10159         of the hc08 family. Contributed by Bjorn Bringert - thanks!
10160
10161 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
10162
10163         Documenting changes from previous commits.
10164         * configure.in (version 1.56),
10165         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
10166         when generating output files to configure the pic16 library,
10167         but now I've commented it out, since gputils aren't installed in the
10168         SF compile farm, so library won't compile
10169
10170         * device/lib/Makefile.in (version 1.56): initially I've added in
10171         target 'all' the prerequestive 'model-pic16' so it compiled the
10172         pic16 library, but now I've commented it out for the same reasons
10173         above,
10174         * added targets 'model-pic16' and 'objects-pic16' to compile the
10175         library
10176         * added target 'port-specific-objects-pic16' to handle the
10177         generated libraries and copy them into the build/ directory
10178         * added target 'clean-intermediate-pic16' to clean intermediate
10179         files into pic16 directory
10180         * in target 'installdirs' added line to create directory pic16 in
10181         the installation path
10182
10183         * device/include/Makefile.in (version 1.11): in target 'install'
10184         added lines to copy all header files to installation path,
10185         * in target 'installdirs' added line create directory for pic16
10186         headers in the installation path
10187
10188 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
10189
10190         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
10191          a function call
10192
10193 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10194
10195         * configure,
10196         * device/lib/configure.in,
10197         * device/lib/configure: fixed for autoconf 2.57
10198
10199 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10200
10201         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10202         option so that it actually works. Made it specific to the z80, since
10203         the gbz80 doesn't have these kinds of I/O ports.
10204
10205 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10206
10207         * device/include/z180.h,
10208         * device/lib/_memcpy.c,
10209         * device/lib/_memmove.c,
10210         * device/lib/_mulint.c,
10211         * device/lib/ser_ir.c,
10212         * device/lib/ser_ir_cts_rts.c,
10213         * device/lib/_strcmp.c,
10214         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10215         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10216         portmode; added deprecation warning for bank= and protmode= forms.
10217         Also, guard against buffer overflow.
10218         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10219
10220 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10221
10222         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10223         changed interrupt vector table generation to only emit declared vectors.
10224         * device/include/Makefile.in: added missing backslash
10225         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10226
10227 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10228
10229         Mainly changes to support compilation of the device libraries
10230         * src/pic16/device.c: stack is allocated via symbol and not
10231         via literal number. The symbol is placed in the corresponding
10232         position of the data ram
10233         * (pic16_dump_section): relocatable and absolute uninitialized
10234         data are now emitted in sorted order to reduce section naming,
10235         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10236         weren't marked as being in the access bank,
10237
10238 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10239
10240         Added portion of GNU PIC Library under the directory
10241         device/include/pic16 and device/lib/pic16. These files
10242         contain the declarations of SFRs for the PIC18Fxx2 devices.
10243         The directory is initialized via configure from toplevel.
10244
10245 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10246
10247         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10248         the spilllocations to be compared correctly
10249
10250 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10251
10252         * src/SDCCast.c (decorateType): fixed bug introduced today
10253
10254 2004-01-12  Borut Razem <borut.razem AT siol.net>
10255
10256         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10257         doc/sdccman.lyx: upper case pragmas are deprecated
10258
10259 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10260
10261         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10262         in simpler and even better code
10263
10264 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10265
10266         * src/SDCCicode.c (operandOperation): fixed bug #874819
10267         * src/SDCCast.c (decorateType): fixed
10268         char foo (unsigned long ul) { return ul > 0; }
10269
10270 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10271
10272         * doc/sdccman.lyx: Moved and added some sections, small changes
10273         all over. Telling LaTeX to be less strict with word spacing
10274         to better keep the right margin. Changed some notes about
10275         maintainance of the ports in section 3.2.1 - is it OK like this?
10276
10277 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10278
10279         SDCC source changes:
10280         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10281         convilong): modified to inform the pic16 port that builtin functions
10282         are external
10283
10284         PIC16 PORT specific changes:
10285         * src/pic16/device.c pic16_dump_equates() added,
10286         processor registers declared internally by the port are emitted in
10287         the translation as equates,
10288         * src/pic16/gen.c: inline code is passed unprocessed to the
10289         translation,
10290         * (pic16_popGetLit2): fnuction modified to take second operand as
10291         pCodeOp pointer and not as literal,
10292         * (popRegFromIdx): prefixed with pic16_,
10293         * (pic16_popCombine2): modified to receive already allocated pCode
10294         operands,
10295         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10296         * (genFunction): initializes local stack frame and pushes on stack
10297         all the registers used by this function,
10298         * (genEndFunction): restores all registers from stack and restores
10299         stack frame,
10300         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10301         improvements,
10302         * (pic16glue): changed the program startup sequence,
10303         * added new dbName code 'A' for functions placed in absolute section
10304         * src/pic16/main.c: added function attribute _naked,
10305         * added pragma 'code' to place a fnuction at an absolute address,
10306         * added command line arguments --debug-ralloc and --pcode-verbose,
10307         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10308         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10309         * (pic16_newpCodeOpLit2): modified to take the second operand as
10310         pCodeOp pointer,
10311         * (pic16_printpBlock): modified to emit each function in a separate
10312         section,
10313         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10314         UPPER for immediate operands,
10315         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10316         instruction,
10317         * src/pic16/peeph.def: all peepholes with movff are commented out,
10318         because there is a problem in the pcode peep optimizer,
10319         * src/pic16/ralloc.c: the register allocator can now reuse local
10320         function symbols for another function. This saves register usage.
10321         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10322
10323         Added file src/pic16/NOTES with information about program writing on
10324         the current port version.
10325
10326 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10327
10328         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10329         and peephole 252 (array access)
10330
10331 2004-01-09  Borut Razem <borut.razem AT siol.net>
10332
10333         * src/SDCCmain.c : fixed #872250: -l command line defined library
10334           files are scanned before standard library files
10335
10336 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10337
10338         * src/SDCCast.c (decorateType): fixed bug #874046
10339
10340 2004-01-09  Borut Razem <borut.razem AT siol.net>
10341
10342         * support/scripts/sdcc.nsi: remove previous installation
10343
10344 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10345
10346         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10347         bytes for last interrupt vector (mcs51)
10348         * sdcc.spec: fixed typo
10349
10350 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10351
10352         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10353         gen51Code): more efficient parameter receive for --model-large
10354         ("bug" #845294)
10355
10356 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10357
10358         * src/ds390/main.c,
10359         * src/z80/main.c: added missed needLinkerScript flags (more than
10360         one port structure defined in these file)
10361         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10362         bug #795325
10363
10364 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10365
10366         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10367         * src/port.h: added flag needLinkerScript in port->linker
10368         structure to inform whether to create a .lnk file or not,
10369         * src/avr/main.c,
10370         * src/ds390/main.c,
10371         * src/hc08/main.c,
10372         * src/mcs51/main.c,
10373         * src/pic/main.c,
10374         * src/pic16/main.c,
10375         * src/xa51/main.c,
10376         * src/z80/main.c: changed appropriately to configure
10377         needLinkerScript flag
10378         * src/pic/gen.c,
10379         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10380         * src/pic/glue.c: added variable udata_section_name to
10381         override default uninitialized data segment definition for
10382         devices only with SHAREBANK memory (reported from Erik Epetrich)
10383         * (pic14emitOverlay): modified to emit a commented overlay segment
10384         directive when no overlay data exist
10385         * (picglue): modified to emit uninitialized data segment
10386         according to udata_section_name
10387         * src/pic/main.c (_pic14_parseOptions): added command line
10388         options --udata-section-name=[name] to override default
10389         udata definition name
10390         * modified _linkCmd and _asmCmd to include compiler passed
10391         arguments via -W option
10392         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10393         object file from '.rel' to '.o' in port->linker structure,
10394         changed size of fptr from 2 to 3 in port structure
10395
10396 2004-01-07  Borut Razem <borut.razem AT siol.net>
10397
10398         * support/scripts/sdcc.nsi: update PATH
10399         * support/scripts/sdcc.ico: craeted
10400
10401 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10402
10403         * device/include/Makefile.in: fix install
10404         * doc/Makefile: fix install
10405
10406 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10407
10408         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10409         in bug #860505
10410         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10411         how the function variable allocation summary is displayed; also
10412         include information about variables allocated to the overlay
10413         segment
10414
10415 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10416
10417         * as/mcs51/lkmain.c: Help about -Y option
10418         * as/mcs51/lkarea.c: Fixed gcc warnings
10419
10420 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10421
10422         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10423         fixed warning
10424         * support/valdiag/tests/overflow.c: added
10425         * src/SDCCast.c (decorateType),
10426         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10427         LEFT_OP (left shift)
10428
10429 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10430
10431         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10432         (default behaviour).
10433
10434 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10435
10436         A python script to validate compiler diagnostic messages. It can be
10437         used to verify that sdcc complains about bad c source code and
10438         gives a good location of the error.
10439         * support/valdiag/Makefile,
10440         * support/valdiag/valdiag.py,
10441         * support/valdiag/tests/*
10442
10443 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10444
10445         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10446         * src/SDCCsymt.c (newEnumType),
10447         * src/SDCCsymt.h
10448         * support/Util/SDCCerr.c,
10449         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10450         enum related bugs.
10451         * support/regression/tests/enum.c: added test for enum values that
10452         require at least 2 bytes of storage.
10453
10454 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10455
10456         * src/common.h: added ifndef/define/endif macros
10457         around the header file.
10458         Bug reported from Jesus Calvino-Fraga
10459
10460 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10461
10462         * sdcc.spec: updated
10463         * device/include/Makefile.in: don't install CVS directories
10464         * device/lib/Makefile.in: added removal of CVS directories after install
10465         * doc/Makefile: fixed install, added local_icons
10466         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10467         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10468         * src/ds390/gen.c (genRightShift): fixed bug #870788
10469         * src/SDCCast.c (decorateType): fixed bug #870781
10470
10471 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10472
10473         PIC16 port related changes:
10474         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10475         added variable stackPos,
10476
10477         * gen.c: genCall, assignResultValue: added support for
10478         pushing/retrieving function parameters to/from stack,
10479         genFunction,genEndFunction: setup stack frame for the
10480         generated function,
10481         genAddrOf: will be changed according to bug 863624
10482
10483         * added files genutils.c and genutils.h which contain gen*
10484         debugged and optimised functions extracted from gen.c
10485
10486         * glue.c: added variable 'externs' which holds extern symbols,
10487         pic16emitRegularMap: is modified to properly handle relocatable
10488          symbols under the new scheme,
10489         pic16createInterruptVect: is modified
10490         pic16printPublics: is modified to emit 'global' assembler directives,
10491         added pic16_printExterns to print extern symbols,
10492         pic16glue: initializes stack/frame pointer in the beginning of
10493         the assembly output. Temporary hack, will be corrected later,
10494         because gplink yet does not support stack and SDCC does not
10495         yet support a type of crt0.o object to create the final binary.
10496
10497         * Removed many lines that contain 8051 legacy code.
10498         * The code is finally placed under a 'code' directive.
10499         * Added port specific options.
10500
10501         * _process_pragma: simplified since now we do not need *special*
10502         include file to define SFR registers. But a separate header
10503         will be needed. This will be developed later.
10504         * _pic16_parseOptions: added, parses port specific options:
10505         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10506         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10507         --preplace-udata-with=
10508
10509         * _pic16_setDefaultOptions: modified to initialize section names,
10510         but hack is temporarly out of order since it needs improvement.
10511         * _pic16_genAssemblerPreamble: configuration words are emitted by
10512         their address instead of their name. This part is incomplete and
10513         supports only the 18Fxx2 devices. Other devices will emit an error
10514         during assembly since they do not contain the same set of config
10515         registers
10516         * _pic16_genIVT: is modified,
10517
10518         * pcode.c: added definitions for some hardware registers that are needed
10519         for stack support
10520         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10521         All PCI entries are updated. Now LFSR is supported.
10522         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10523         * added pic16_newpCodeOpLit2 to support instructions with
10524         two literal arguments
10525         * pic16_pCode2str: corrected code that emits assembler instructions
10526         with two literal operands and those that have an access bit modifier
10527         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10528         this fixes a bug which caused some labels to be lost, when an
10529         assembler directive was added, i.e. banksel,
10530         * pic16_FixRegisterBanking: improved logic that causes the insertion
10531         of bank switching,
10532         * InlineFunction: functions that are called once, are not any more
10533         inlined. This can be a port option in the future,
10534
10535         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10536
10537         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10538         hold the corresponding uninitialized symbols,
10539         * pic16_allocProcessorRegister: registers have explicit marked the
10540         accessBank field,
10541         * pic16_allocInternalRegister: registers are explicit marked as
10542         not used,
10543         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10544         processing list, so bit registers were lost,
10545         *
10546
10547         * ralloc.h: added field 'accessBank' and original symbol operand
10548         in register definition,
10549         * removed the field isMapped from register definition,
10550
10551         ** Several functions have been removed from various sources:
10552         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10553         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10554         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10555         pic16_assignRelocatableRegisters
10556
10557         ** others have been introduced:
10558         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10559         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10560
10561 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10562
10563         * support/scripts/inc2h.pl: changed definition of BIT_AT
10564         to emit 'sbit at' instead of 'bit at'. This was a request.
10565
10566         PIC16 port related preliminary changes:
10567         * gen.c: prefixed function popRegFromString with
10568         pic16_ and all references to it corrected
10569         * pcode.c: all pic16_pc_* hardware registers prefixed
10570         with underscore (_),
10571         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10572         * ralloc.c: newReg(): when register is REG_SFR then
10573         set address to rIdx,
10574         pic16_allocProcessorRegister(): marks register wasUsed=0
10575         pic16_writeUsedRegs(): added a call to assign processor
10576         registers via pic16_assignFixedRegisters
10577
10578 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10579
10580         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10581         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10582         variables in unused register banks.  Also the SSEG is placed
10583         wherever there is enough space for it, and IDATA can be anywhere
10584         in internal RAM.  For now compile using -Wl-Y[stack_size].
10585         The mem file is different for this option as well, since it
10586         makes no sense of talking about DSEG lenght.
10587
10588 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10589
10590         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10591         in certain cases, e.g. when ROM assignment, patch provided
10592         from Albert den Haan.
10593
10594 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10595
10596         Many signedness and type propagation fixes:
10597         * src/SDCCicode.c: made geniCodeCast() static
10598         replaced SPEC_ by IS_ (cosmetic)
10599         (operandOperation): fixed div and mod operation
10600         (usualBinaryConversions): added support for promotion of char
10601         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10602         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10603         (geniCodeAdd): an array index will stay unsigned, even if promoted
10604         from char to int
10605         (geniCodeArray): ditto
10606         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10607         * src/SDCCsymt.c (computeType): added more support for char;
10608         promotion of char is selectable by promoteCharToInt, fixed signedness
10609         for all cases
10610         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10611         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10612         * src/SDCCval (val*): replaced signedness calculation by
10613         computeType()
10614         rearranged if-branches (cosmetic)
10615         (valShift): added warning W_SHIFT_CHANGED
10616         (valCompare): fixed problem with different types
10617         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10618         * support/regression/tests/literalop.c: added many cases
10619         * support/regression/tests/ast_constant_folding.c: changed finally to
10620         'unsigned int'
10621         * .version: new year, new version: 2.3.7
10622         * src/SDCCmain.c (main): applied patch #866468
10623         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10624         provided by Scott Bronson
10625         * doc/sdccman.lyx: updated documentation for sdcdb
10626         updated and added chapter tips
10627
10628 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10629
10630         * src/SDCCsymt.h: missing from yesterday's commits
10631
10632 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10633
10634         * src/SDCC.y (struct_or_union_specifier),
10635         * support/Util/SDCCerr.c,
10636         * support/Util/SDCCerr.h: verify that struct & union tags are used
10637         as declared.
10638
10639 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/SDCCglobl.h: missing from yesterday's commits
10642
10643 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10644
10645         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10646         sft_attributes, struct_declaration, parameter_declaration,
10647         type_name, start_block, declaration_list),
10648         * src/SDCC.lex (check_type): support redefinition of typedef names
10649
10650 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10651
10652         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10653         aligned xdata arrays. Erik helped me with the if clause.
10654
10655 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10656
10657         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10658         warning
10659
10660 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10661
10662         * src/SDCCast.h,
10663         * src/SDCCast.c (newAst_),
10664         * src/SDCCicode.h,
10665         * src/SDCCicode.c (ast2iCode, newiCode),
10666         * src/SDCCglobl.h,
10667         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10668         expr, statement, expression_statement, selection_statement,
10669         iteration_statement, expr_opt, jump_statement): foundation for tracking
10670         sequence points
10671         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10672         point code too)
10673
10674 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10675
10676         * support/Util/SDCCerr.c,
10677         * src/SDCCast.h,
10678         * src/SDCCast.c (createCase, createDefault, decorateType),
10679         * src/SDCClabel.c (labelUnreach),
10680         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10681         to error messages.
10682         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10683         (with thanks to Stas Sergeev)
10684         * device/include/time.h,
10685         * device/lib/time.c (CheckTime): suppress unreachable code warning
10686
10687 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10688
10689         * src/SDCCast.c (createIvalCharPtr),
10690         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10691         bug #753752)
10692         * support/regression/tests/nullstring.c: tests for these two bugs
10693
10694 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10695
10696         * support/Util/SDCCerr.h,
10697         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10698         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10699         about storage class and 'at' used inside struct or union
10700         * src/SDCCBBlock.c (iCodeFromeBBlock),
10701         * src/SDCCcse.c (ifxOptimize),
10702         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10703         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10704         printIval, emitStaticSeg, emitOverlay),
10705         * src/SDCClabel.c (deleteIfx),
10706         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10707         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10708         gatherAutoInit, processParms),
10709         * support/Util/SDCCerr.h,
10710         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10711         reporting for post-parse errors.
10712
10713 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10714
10715         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10716         implicit casts via union; they don't work on big endian systems
10717         (possible fix for bug #861138)
10718
10719 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10720
10721         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10722         * src/mcs51/main.c: fixed the fix for bug #737001
10723
10724 2003-12-15  Borut Razem <borut.razem AT siol.net>
10725
10726         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10727
10728 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10729
10730         * support/makebin/makebin.c: put output in binary mode
10731
10732 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10733
10734         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10735         xdata and data memory on startup. Set the environment variable
10736         SDCC_NOGENRAMCLEAR to disable this.
10737         * src/mcs51/peephole.def,
10738         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10739         (allows non-interrupt and interrupt code to safely compete for a resource
10740         without the non-interrupt code having to disable interrupts)
10741
10742 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10743
10744         * src/SDCCicode.c (geniCodeAdd),
10745         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10746         with valFromType if type might be a pointer and host is big endian).
10747         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10748         types, not just integer types.
10749         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10750         multiply defined with mismatching "at" address.
10751
10752 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10753
10754         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10755         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10756         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10757         with embedded nulls (fixed bug #753752)
10758
10759 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10760
10761         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10762         Apparently this did not see much testing (endless loop)
10763
10764 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10765
10766         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10767
10768 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10769
10770         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10771         gracefully handle NULL memmap pointers
10772
10773 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10774
10775         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10776         instead of deleting the iCode when an operand is volatile
10777         * src/z80/gen.c (genDummyRead),
10778         * src/mcs51/gen.c (genDummyRead),
10779         * src/ds390/gen.c (genDummyRead),
10780         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10781         not just IC_RIGHT
10782         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10783         * src/SDCC.y: fixed bug #850420
10784
10785 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10786
10787         Applied z80 i/o port patch from Peter Townson and fixed some operators
10788         to better handle operands in A register.
10789         * device/include/z180.h
10790         * src/SDCC.y
10791         * src/SDCCglue.c
10792         * src/z80/gen.c
10793         * src/z80/gen.h
10794         * src/z80/main.c
10795         * src/z80/peeph-z80.def
10796         * src/z80/peeph.def
10797         * src/z80/z80.h
10798
10799 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10800
10801         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10802
10803 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10804
10805         * device/lib/hc08/_mullong.c: Removed extra #endif
10806
10807 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10808
10809         * sim/ucsim/hc08.src/inst.cc,
10810         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10811         carries from x to h
10812         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10813         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10814         * device/include/stdarg.h: fixed varargs for hc08
10815         * device/lib/Makefile.in,
10816         * device/lib/hc08/Makefile,
10817         * device/lib/hc08/_mulint.c,
10818         * device/lib/hc08/_mullong.c: fixed some endian problems
10819
10820 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10821
10822         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10823         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10824         * device/lib/_gptrget.c,
10825         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10826
10827 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10828
10829         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10830         * src/SDCCast.c (astErrors): fixed bug #846007
10831         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10832
10833 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10834
10835         * src/SDCCast.c (decorateType): disabled a transformation I added in
10836         revision 1.188 (access to fields of a structure at an absolute address);
10837         it breaks with bitfields, extern declarations, and gcse analysis.
10838         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10839         could be assigned through a pointer, so don't complain.
10840         * src/SDCCast.c (astErrors),
10841         * src/SDCCast.h,
10842         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10843
10844 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10845
10846         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10847         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10848         output of __config directives, since gpasm now supports them
10849         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10850         pre-processor macro, i.e. -DMCU=p18f452
10851         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10852         and modified to handle 'cast' icode similarly to '=' icode
10853         * src/pic16/device.h (typedef struct PIC_device): added field
10854         'extMIface' to indicate that chip has external memory interface
10855         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10856         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10857         18F8720
10858
10859 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10860
10861         * src/SDCC.y (pointer): fixed bug #846006
10862         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10863         * src/SDCCast.c (decorateType): fixed bug #846009
10864         * src/ds390/peeph.def,
10865         * src/ds390/gen.c (genAnd, genOr),
10866         * src/mcs51/peeph.def,
10867         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10868
10869 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10870
10871         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10872         * src/SDCCdflow.c
10873         * src/SDCCcse.c
10874         * src/SDCCcse.h
10875         * src/SDCCBBlock.h
10876         * src/SDCCBBlock.c
10877
10878 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10879
10880         fixed bug #845089
10881         * src/SDCCbitv.h,
10882         * src/SDCCbitv.c: added function to free a bitvector
10883         * src/SDCClrange.h,
10884         * src/SDCClrange.c: added function to recompute the liveranges
10885         * src/avr/ralloc.c,
10886         * src/ds390/ralloc.c,
10887         * src/hc08/ralloc.c,
10888         * src/mcs51/ralloc.c,
10889         * src/pic/ralloc.c,
10890         * src/pic16/ralloc.c,
10891         * src/xa51/ralloc.c,
10892         * src/z80/ralloc.c: recompute the liveranges after register packing
10893
10894 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10895
10896         * src/SDCCloop.c (newInduction): fixed bug #845630
10897
10898 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10899
10900         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10901         inadvertantly left behind from my 2003-11-12 change
10902
10903 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10904
10905         Updated headers I neglected to commit yesterday.
10906         * src/SDCClrange.h,
10907         * src/SDCCicode.h
10908
10909 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10910
10911         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10912         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10913         * src/SDCCopt.c (eBBlockFromiCode),
10914         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10915         the creation of the key hash table from the sequencing so it can be used
10916         earlier (for some GCSE bug fixes still pending)
10917
10918 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10919
10920         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10921         * support/regression/tests/addsub.c: testing genPlus shortcut
10922
10923 2003-11-15  Borut Razem <borut.razem AT siol.net>
10924
10925         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10926
10927 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10928
10929         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10930         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10931         ordering is immaterial.
10932         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10933
10934 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10935
10936         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10937         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10938         (SIGSEV) of bug #840381
10939         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10940         unlink new file before rename if new and old filenames are the same)
10941
10942 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10943
10944         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10945         uninitialized variables) for the mcs51. Set environment variable
10946         SDCC_GENRAMCLEAR to test.
10947         xdata initialization slightly shorter
10948
10949 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10950
10951         * src/SDCCsymt.h,
10952         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10953         #838241 & 780691 (basicly the same bug)
10954         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10955         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10956
10957 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10958
10959         * src/SDCCmain.c (linkEdit): "fix" #834252
10960
10961 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10962
10963         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10964         * src/SDCCast.h,
10965         * src/SDCC.y: fixed bug #819403
10966
10967 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10968
10969         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10970         the reentrant attribute.
10971         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10972         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10973         simulation
10974         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10975         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10976         erroneously reduced to a literal.
10977         * src/hc08/ralloc.c (packRegisters, rematStr),
10978         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10979         some cases
10980
10981 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10982
10983         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10984         * doc/sdccman.lyx: changed from 'article' to 'book'
10985         * doc/Makefile: readded test_suite_spec and cdbfileformat
10986
10987 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10988
10989         * device/include/stdlib.h: include malloc.h to comply with ANSI
10990         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10991
10992 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10993
10994         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10995         * doc/clean.mk: also remove *.out files
10996         * doc/sdccman.lyx: some additions, larger top/bottom margins
10997
10998 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10999
11000         * src/SDCC.y: fixed bug #837365
11001         * support/regression/tests/bitopcse.c
11002         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
11003         a symbol (might be valop instead)
11004         * device/lib/Makefile.in: added errno.c to HC08SOURCES
11005         * device/lib/clean.mk: added hc08 to the cleaning list
11006
11007 2003-11-04  Borut Razem <borut.razem AT siol.net>
11008
11009         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
11010           made 2003-11-04
11011         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11012           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
11013           malloc is declared in standard stdlib.h
11014
11015 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11016
11017         * device/lib/hc08/Makefile: need to clean .rel not .o files
11018         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
11019
11020 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11021
11022         * src/port.h,
11023         * src/hc08/main.c,
11024         * src/mcs51/main.c,
11025         * src/ds390/main.c,
11026         * src/z80/main.c,
11027         * src/avr/main.c,
11028         * src/pic/main.c,
11029         * src/pic16/main.c,
11030         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
11031         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
11032         tests (which uses the port's oclsExpense function)
11033         * src/SDCC.y,
11034         * src/SDCCast.c,
11035         * src/SDCCicode.c,
11036         * src/hc08/gen.c,
11037         * src/ds390/gen.c,
11038         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
11039
11040 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11041
11042         * src/SDCCcse.c (ifxOptimize),
11043         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
11044         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
11045         deleting the IFX iCode.
11046         * src/hc08/ralloc.c: reduced unneeded slocs
11047         * src/hc08/gen.c: fixed bug in asmopToBoolean
11048
11049 2003-11-04  Borut Razem <borut.razem AT siol.net>
11050
11051         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
11052           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
11053           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
11054           transferred to configure
11055
11056 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
11057
11058         Use headers defined in the C[++] standards:
11059         * sim/ucsim/gui.src/serio.src/fileio.cc
11060         * sim/ucsim/gui.src/serio.src/frontend.cc
11061         * sim/ucsim/gui.src/serio.src/main.cc
11062         * sim/ucsim/gui.src/serio.src/posix_signal.cc
11063         * support/Util/NewAlloc.c
11064         * as/hc08/lklibr.c
11065         * as/mcs51/lklibr.c
11066         * as/z80/aslist.c
11067         * as/z80/assym.c
11068
11069 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11070
11071         * Added MSVC projects for hc08 assembler and linker:
11072         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
11073         /as/hc08/link_hc08.dsp
11074
11075 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
11076
11077         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
11078
11079 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
11080
11081         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
11082
11083 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11084
11085         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
11086
11087 2003-10-31  Borut Razem <borut.razem AT siol.net>
11088
11089         * support/cpp2/cpplib.h,
11090           support/cpp2/cpplib.c,
11091           support/cpp2/cpplex.c,
11092           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
11093           to switch _asm block preprocessing on / off. Default is
11094           #pragma preproc_asm +
11095
11096 2003-10-31  Borut Razem <borut.razem AT siol.net>
11097
11098         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
11099           when outputting comment blocks (when executed with -C option) and
11100           _asm (SDCPP specific) blocks
11101
11102 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11103
11104         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
11105
11106 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
11107
11108         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
11109
11110 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
11111
11112         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
11113         * src/SDCCast.c (decorateType): fixed bug #832664
11114
11115 2003-10-31  Borut Razem <borut.razem AT siol.net>
11116
11117         * support/cpp2/cpplex.c: fixed for SDCPP:
11118           comments(when executed with -C option) and _asm blocks
11119           were included even if they where in skipped #if block.
11120           Applied solution from GCC cpp 3.3.2
11121
11122 2003-10-31  Borut Razem <borut.razem AT siol.net>
11123
11124         * src/SDCC.lex: sdcc now understands both formats:
11125           '# <line_number> <file_name>' and
11126           '#line <line_number> <file_name>'
11127         * support/cpp2/cppmain.c: sdcpp now generates the standard
11128           '# <line_number> <file_name>' instead of former
11129           '#line <line_number> <file_name>'
11130
11131 2003-10-30  Borut Razem <borut.razem AT siol.net>
11132
11133         * support/cpp2/cpphash.h,
11134         * support/cpp2/cpplib.h
11135         * support/cpp2/cpplex.c,
11136         * support/cpp2/cppmain.c,
11137         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
11138
11139 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11140
11141         Fixed a number of problems revealed by bug #827883.
11142         * src/SDCCloop.c (loopInvariants): Spill location of the
11143         result operand should be recomputed if extracted from
11144         a loop. Also, don't extract assignments of an iTemp
11145         from a literal.
11146         * src/SDCCast.c (isConformingBody): loop reversal should
11147         not occur if the control variable is involved with a
11148         relational operator.
11149
11150 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
11151
11152         * .version: bumped to 2.3.6 to reflect the big improvements
11153         made by Erik and Klaus. Thanks!
11154
11155 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
11156
11157         Replaced the livrange code.
11158         * src/SDCClrange.c: added new LR code
11159         * src/SDCCloop.c,
11160         * src/SDCCBBlock.h: removed remainig parts from old LR code
11161         * src/ds390/ralloc.c,
11162         * src/ds390/gen.c: minor fixes to make it work with new code
11163
11164 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11165
11166         * as/hc08/asm.h,
11167         * as/hc08/lkrloc.c,
11168         * src/hc08/gen.c,
11169         * src/hc08/ralloc.c: Fix various warnings related to the hc08
11170         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
11171         (tweaked fix for bug #818696)
11172
11173 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11174
11175         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
11176
11177 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11178
11179         * src/SDCCmain.c,
11180         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
11181         * src/mcs51/gen.c (gencjneshort),
11182         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
11183         more efficient (per Scott Bronson's suggestion)
11184
11185 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11186
11187         Extended the semantics of the critical keyword to include
11188         individual statements. See RFE #827755 and #799831
11189         * src/SDCC.y
11190         * src/SDCCicode.c
11191         * src/SDCCopt.c
11192         * src/SDCCast.c
11193         * support/Util/SDCCerr.c
11194         * support/Util/SDCCerr.h
11195         * src/mcs51/gen.c
11196         * src/ds390/gen.c
11197         * src/hc08/gen.c
11198
11199 2003-10-19  Borut Razem <borut.razem AT siol.net>
11200
11201         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11202
11203 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11204
11205         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11206         Fixed bug #818696
11207         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11208         and predecrement operand is displayed
11209
11210 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11211
11212         * src/SDCCval.c (valMinus): fixed bug #826041
11213
11214 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11215
11216         Some hc08 related updates that I missed earlier
11217         * sim/ucsim/stypes.h
11218         * support/regression/ports/hc08/spec.mk
11219
11220 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11221
11222         New target "hc08" for the Motorola 68hc08 family of micros
11223
11224         * configure
11225         * configure.in
11226         * Makefile
11227         * src/hc08/*
11228         * src/SDCCmain.c
11229         * src/port.h
11230         * sim/ucsim/hc08.src/*
11231         * sim/ucsim/configure.in
11232         * src/ucsim/configure
11233         * sim/ucsim/packages_in.mk
11234         * as/hc08/*
11235         * as/Makefile
11236         * device/include/mc68hc908qy.h
11237         * device/lib/hc08/*
11238         * device/lib/Makefile.in
11239         * support/regression/ports/hc08/*
11240         * support/regression/Makefile
11241
11242 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11243
11244         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11245         regression test
11246         * src/ds390/gen.c (genCast): fixed bug #821957
11247
11248 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11249
11250         * device/lib/logf.c: "fixed" overlay bug
11251         * support/regression/ports/host/spec.mk: added m library
11252         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11253         * support/regression/tests/float_trans: added (for Eric)
11254
11255 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11256
11257         * src/mcs51/gen.c (genCpl): fixed bug
11258         http://sf.net/mailarchive/message.php?msg_id=6263915
11259
11260 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11261
11262         * src/SDCCast.c (decorateType): added extended constant folding
11263         * src/SDCCsymt.c (computeType): cleanup
11264         * src/SDCCval.c (valShift): minor optimization
11265         * support/regression/tests/ast_constant_folding.c: added
11266
11267 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11268
11269         * src/SDCCmain.c: removed some unintended changes
11270
11271 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11272
11273         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11274         * src/z80/gen.c: fixed part of bug #817589
11275         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11276
11277 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11278
11279         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11280         * src/SDCCcflow.c
11281         * src/SDCCcse.c
11282         * src/SDCCdflow.c
11283         * src/SDCClabel.c
11284         * src/SDCClrange.c
11285         * src/SDCCmem.c
11286         * src/SDCCopt.c
11287         * src/SDCCpeeph.c
11288         * src/SDCCset.c
11289         * src/avr/ralloc.c
11290         * src/ds390/ralloc.c
11291         * src/izt/ralloc.c
11292         * src/mcs51/ralloc.c
11293         * src/pic/ralloc.c
11294         * src/pic16/ralloc.c
11295         * src/xa51/ralloc.c
11296         * src/z80/ralloc.c
11297         * src/z80/gen.c: removed unused label "release:"
11298
11299 2003-10-06  Borut Razem <borut.razem AT siol.net>
11300
11301         * src/SDCC.lex: removed definition of unused variables
11302           save_optimize and save_options
11303
11304 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11305
11306         * clean.mk: removed '=' in "-maxdepth=1"
11307         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11308         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11309
11310 2003-10-06  Borut Razem <borut.razem AT siol.net>
11311
11312         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11313           my_unput() replaced by unput()
11314
11315 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11316
11317         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11318         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11319         type-punned pointer will break strict-aliasing rules"
11320         Old LR behaviour is again default; Klaus' LR can be choosen by
11321         defining the environment variable LRKLAUS
11322         * src/SDCCBBlock.h
11323         * src/SDCCloop.c
11324         * src/SDCClrange.c
11325         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11326         * clean.mk: fixed removal of files in bin/CVS/
11327         * device/lib/clean.mk: fixed removal of directories small and large
11328         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11329         * src/SDCCicode.c,
11330         * src/SDCCval.c: removed superflous test for pedantic
11331
11332 2003-10-05  Borut Razem <borut.razem AT siol.net>
11333
11334         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11335           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11336           message "unmatched #pragma SAVE and #pragma RESTORE"
11337
11338 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11339
11340         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11341           assembly, critical functions, atomic, nojtbound)
11342
11343 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11344
11345         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11346         * src/SDCCBBlock.h
11347         * src/SDCCloop.c
11348         * src/SDCCloop.h
11349         * src/SDCClrange.c
11350
11351 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11352
11353         * src/z80/gen.h,
11354         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11355         * src/mcs51/gen.h
11356         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11357         * src/ds390/gen.h
11358         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11359         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11360         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11361
11362 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11363
11364         * src/z80/gen.c (genRet): fixed bug #524753
11365         * src/z80/gen.c (genCast): fixed internal error on cast from
11366         pointer to long
11367         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11368         fix for bug #477835 to the z80
11369         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11370         for tracking iCodes in the peephole optimizer for z80
11371
11372 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11373
11374         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11375         the other part of bug #814548
11376         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11377
11378 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11379
11380         * src/SDCCcse.c: fixed part of bug #814548
11381
11382 2003-09-28  Borut Razem <borut.razem AT siol.net>
11383
11384         * src/asm.c: rewrite of printILine() to use temporary file instead
11385           a pipe
11386         * src/xa51/main.c: commented out declaration of int rewinds
11387
11388 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11389
11390         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11391
11392 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11393
11394         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11395         * src/asm.c (printILine): Fixed bug #811015
11396
11397 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11398
11399         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11400         freeing.
11401
11402 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11403
11404         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11405         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11406         to correctly handle general case of AOP_PAIRPTR
11407         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11408
11409 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11410
11411         * src/mcs51/ralloc.c (fillGaps),
11412         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11413         register positioning bug)
11414
11415 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11416
11417         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11418
11419 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11420
11421         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11422         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11423         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11424         (ralloc doesn't intentionally do this now, but perhaps later)
11425         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11426         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11427         register positioning bugs (Fixed bug #762602 and #795325)
11428         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11429         (Fixed bug #808779)
11430         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11431         lines that --i-code-in-asm generates
11432
11433 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11434
11435         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11436         trying to fclose a FILE* that was already closed.
11437
11438 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11439
11440         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11441         of const struct should be treated as if const themselves)
11442
11443 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11444
11445         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11446
11447 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11448
11449         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11450         Unix (/n) and DOS (/r/n) line terminations.
11451
11452 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11453
11454         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11455         bug #613775
11456
11457 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11458
11459         * src/mcs51/gen.c (genFunction, genEndFunction),
11460         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11461         and restore of EA so that stack offsets to parameters are
11462         correct when using both critical and reentrant/stack-auto.
11463         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11464         size (can be triggered in error if sloc is shared between
11465         different sized objects)
11466         * device/include/float.h: fixed macros to explicitly use
11467         unsigned long where needed
11468
11469 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11470
11471         Feature req. 799831: added code to allow nesting of critical functions
11472         * src/mcs51/gen.c (genFunction, genEndFunction)
11473         * src/ds390/gen.c (genFunction, genEndFunction)
11474
11475 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11476
11477         * src/SDCCsymt.c (sclsFromPtr),
11478         * src/SDCCsymt.h,
11479         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11480         support for standard C idiom of memory mapped variables; for
11481         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11482         to xdata int at 0x1234 tempvar = 1.
11483         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11484         provided by Akiya ISHIDA
11485
11486 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11487
11488         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11489         * src/SDCCval.c (constVal): added reduction from int to char
11490         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11491         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11492         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11493         to ignore the sign
11494         * support/regression/tests/shifts.c: fixed
11495
11496 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11497
11498         * src/z80/gen.c (genXor): Fixed bug #805445
11499
11500 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11501
11502         Fixed bug #621531 (const & volatile confusion in the type chain).
11503         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11504         refer to the const or volatile state of the pointer itself.
11505
11506         * src/SDCCast.c
11507         * src/SDCCglue.c
11508         * src/SDCCicode.c
11509         * src/SDCCsymt.c
11510         * src/SDCCval.c
11511         * src/SDCC.y
11512         * src/SDCCsymt.h
11513         * src/pic/gen.c
11514         * src/pic/ralloc.c
11515         * src/pic16/gen.c
11516         * src/pic16/ralloc.c
11517         * support/regression/tests/const.c
11518
11519 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11520
11521         When checking for duplicated modules, use absolute paths
11522         instead of relative paths.  Files changed:
11523
11524         * as/mcs51/lklib.c
11525         * link/z80/lklib.c
11526
11527 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11528
11529         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11530
11531 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11532
11533         * device/include/string.h: added size_t typedef, changed
11534         prototypes to use size_t, eliminated separate reentrant and
11535         non-reentrant declarations, added _memmove declaration
11536         * device/lib/_memcpy.c: changed to use size_t instead of int,
11537         changed /4 to >>2 to avoid division library call
11538         * device/lib/_memcmp.c,
11539         * device/lib/_memset.c,
11540         * device/lib/_strncat.c,
11541         * device/lib/_strncpy.c,
11542         * device/lib/_strncmp.c: changed to use size_t instead of int
11543         * device/lib/_memmove.c: new file (fixed bug #772294)
11544         * device/lib/Makefile.in: added _memmove.c
11545         * device/lib/z80/asm_strings.s: fixed bug #772290
11546         * support/regression/tests/bitfields.c: attempt to fix host assertion
11547         failure on amd64-unknown-linux2.2
11548
11549 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11550
11551         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11552         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11553         * as/z80/asmain.c (main): fixed bug #801766
11554
11555 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11556
11557         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11558         compilers
11559
11560 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11561
11562         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11563         reported in bug #800609
11564
11565 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11566
11567         * Top header beautifications in src/pic16 directory:
11568           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11569           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11570           pcoderegs.h, ralloc.c, ralloc.h
11571         * main.c: added top header and GPL license notice
11572         * pcode.c: fixed the if-conditional warning
11573
11574 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11575
11576         * device/lib/_mullong.c: replaced int by short for gcc
11577
11578 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11579
11580         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11581         and JUMPTABLE iCodes properly now (worked by accident before)
11582         * src/mcs51/gen.c (leftRightUseAcc),
11583         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11584         iCode properly now. Use getSize instead of nRegs since a & b
11585         aren't part of the nRegs tally.
11586
11587 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11588
11589         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11590         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11591           before instructions that use the _STATUS register
11592
11593 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11594
11595         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11596         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11597         fetching of the pointer
11598         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11599         copied from genNearPointerSet()
11600         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11601         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11602         If they pop r0/r1 they must be called in the opposite order than aopOp().
11603         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11604         (resp. --stack-auto), prepared for --xstack
11605
11606 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11607
11608         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11609
11610 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11611
11612         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11613         these ports have their own __sdcc_external_start()
11614
11615 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11616
11617         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11618         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11619         type for bits was changed. It resulted in bit variables becoming
11620         global, which is not permitted in PIC 14 assembly output.
11621
11622 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11623
11624         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11625
11626 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11627
11628         Z80 and MCS51 linkers complaint if a public symbol is defined
11629         in more than one library module:
11630
11631         * as/mcs51/lklib.c
11632         * link/z80/lklib.c
11633         * as/mcs51/Makefile.in
11634
11635 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11636
11637         A few small changes that speed up the peephole optimizer.
11638
11639         * src/SDCCpeeph.c
11640
11641 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11642
11643         Try to make the peephole optimizer smarter by maintaining
11644         an association between the assembly source code and the
11645         iCodes that originated them. Put this information to use
11646         with a new peephole rule condition "notVolatile" so that
11647         the rules can be aggressive yet still safe.
11648
11649         * src/SDCCpeeph.c
11650         * src/SDCCpeeph.h
11651         * src/mcs51/gen.c
11652         * src/mcs51/peeph.def
11653
11654 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11655
11656         Fixed bug #741761
11657
11658         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11659         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11660         if the left or right operand symbols have the accuse flag set.
11661
11662 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11663
11664         Changed the type of the result of the ! (NOT) operator to char;
11665         previously it returned the same type as the source. This allows
11666         us to eliminate all the genFloatNot functions (all of its target
11667         implementations were very buggy) since !float can use the same
11668         code as !long now.
11669
11670         * src/SDCCicode.c (ast2iCode): ! returns char
11671         * src/mcs51/gen.c (genNot, genNotFloat),
11672         * src/ds390/gen.c (genNot, genNotFloat),
11673         * src/z80/gen.c (genNot, genNotFloat),
11674         * src/pic/gen.c (genNot, genNotFloat),
11675         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11676
11677 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11678
11679         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11680         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11681            during interrupts. Ensure WSAVE is located at a shared bank address.
11682         2. Fixed page selection in some places
11683         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11684            the registers name strings.
11685         4. Fixed "signed / unsigned compare" compiler warnings.
11686         5. The PIC port manages its own allocation of the general purpose
11687            registers, but makes no attempt to reuse them. As a result when
11688            compiling it soon runs out of general purpose registers. Some
11689            additional code was added to the files pcode.c and device.c to walk
11690            through the function call tree and rename the registers so that they
11691            get reused.
11692
11693         * src/pic/device.c
11694         * src/pic/gen.c
11695         * src/pic/glue.c
11696         * src/pic/pcode.c
11697         * src/pic/pcode.h
11698         * src/pic/ralloc.c
11699         * src/pic/ralloc.h
11700         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11701         genPlus() & genMinus() when the result is the same as left or right
11702
11703 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11704
11705         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11706
11707 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11708
11709         Made bitfield a distinct type from bit so that bitfields
11710         convert as per ANSI C and bits retain their traditional
11711         boolean style behaviour. Implemented bitfield support in
11712         the z80 port.
11713
11714         * src/SDCCsymt.h,
11715         * src/SDCCsymt.c,
11716         * src/SDCCast.c,
11717         * src/cdbFile.c,
11718         * src/mcs51/gen.c,
11719         * src/ds390/gen.c: bit v bitfield split
11720         * src/z80/gen.c: New support for bitfields
11721         * support/regression/tests/bitfields.c: reenabled z80,
11722         added more tests
11723
11724 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11725
11726         Rules 246.x, 247.x relate to bitfields, the others speed up
11727         access to xdata mapped I/O devices.
11728
11729         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11730
11731 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11732
11733         Cleaned up genPackBits and genUnpackBits and added two helper
11734         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11735         for literal assignments in genPackBits (thanks to Frieder for
11736         reminding me).
11737
11738         * src/mcs51/gen.c
11739         * src/ds390/gen.c
11740
11741 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11742
11743         Fixed bug #748310 (pointer to function type mishandled when the
11744         function name is omitted). Also fixed a SIGSEGV when a function
11745         attribute (reentrant, etc) is used on a non-function or on a
11746         function but misplaced before the parameter list.
11747
11748         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11749         bug #748310
11750         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11751         * support/Util/SDCCerr.h,
11752         * support/Util/SDCCerr.c: Added func attr misuse error msg
11753
11754 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11755
11756         Fixed bug #787649 by anonymous
11757         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11758         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11759
11760 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11761
11762         Fixed numerous bitfield problems.
11763
11764         * src/SDCC.y: More bitfield related error checking
11765         * src/SDCCsymt.h,
11766         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11767         * support/Util/SDCCerr.h,
11768         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11769         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11770         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11771         * support/regression/tests/bitfields.c: tests added
11772
11773 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11774
11775         Made the constant following the "interrupt" keyword optional. If
11776         omitted, the function will not automatically be given an entry
11777         in the interrupt vector table (similar to #pragma NOIV, but
11778         less syntacticly kludgy). The interrupt number is also now
11779         range checked. Also fixed a bug in the high order bit example
11780         in the manual.
11781
11782         * src/SDCC.y
11783         * src/SDCCmem.c
11784         * src/SDCCglue.c
11785         * src/SDCCsymt.h
11786         * support/Util/SDCCerr.c
11787         * support/Util/SDCCerr.h
11788         * doc/sdccman.lyx
11789
11790 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11791
11792         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11793         * src/SDCCicode.c (operandOperation): rewritten some ops
11794         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11795         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11796         other type
11797         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11798         be re-activated by defining REDUCE_LITERALS)
11799         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11800         unsigned, but are signed by default
11801         * src/SDCCval.c (constVal): rearranged
11802         * src/SDCCval.c (valMod): preliminary fix
11803         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11804         * support/regression/literalop.c: added, work in progress
11805
11806 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11807
11808         Generate warnings for useless declarations like "char data;"
11809         that don't do what new users expect.
11810
11811         * src/SDCC.y
11812         * support/Util/SDCCerr.h
11813         * support/Util/SDCCerr.c
11814
11815 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11816
11817         * src/SDCCval.c (valMult): fix overflow detection of negative int
11818
11819 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11820
11821         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11822
11823         Changes to support big endian targets:
11824
11825         * src/ports.h
11826         * src/SDCCglue.c
11827         * src/avr/main.c
11828         * src/ds390/main.c
11829         * src/izt/i186.c
11830         * src/mcs51/main.c
11831         * src/pic/main.c
11832         * src/pic16/main.c
11833         * src/xa51/main.c
11834         * src/z80/main.c
11835
11836 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11837
11838         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11839         * device/lib/time.c: fixed warning "integer overflow in expression"
11840
11841 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11842
11843         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11844         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11845         constants are unsigned; added recognition of "u" flag for unsigned
11846         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11847         * src/SDCCval.c (valDiv, valMod): fixed signdness
11848         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11849         signedness of modulo, left and right shift
11850         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11851         * support/Util/SDCCerr.h: added warning W_INT_OVL
11852         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11853         * src/SDCCast.c (ast_print): improved output of constants
11854
11855 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11856
11857         Fixed some warnings when building with MSVC:
11858
11859         * as/mcs51/asdata.c
11860         * as/z80/asdata.c
11861         * as/mcs51/asm.h
11862         * as/z80/asm.h
11863         * link/z80/aslink.h
11864         * link/z80/lkdata.c
11865         * link/z80/lkeval.c
11866         * link/z80/lkgb.c
11867         * link/z80/lkihx.c
11868         * link/z80/lks19.c
11869         * link/z80/lksym.c
11870         * support/cpp2/cpplib.c
11871         * src/ds390/gen.c
11872         * src/mcs51/gen.c
11873
11874 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11875
11876         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11877
11878 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11879
11880         * support/librarian/clean.mk: Do not remove Makefile.
11881         * support/librarian/Makefile: added.
11882
11883 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11884
11885         Added librarian to MSVC build:
11886         * all.dsp
11887         * sdcc.dsw
11888         * support/librarian/librarian.dsp
11889
11890         'configure' not needed for librarian, removed:
11891         * support/librarian/configure
11892         * support/librarian/configure.in
11893         * support/librarian/config_in.h
11894         * support/librarian/Makefile.in
11895
11896         Hopefully these ones built the librarian and the rest of sdcc properly:
11897         * Makefile
11898         * Makefile.common.in
11899
11900         Messed up 'configure', so revert to previous version:
11901         * configure
11902         * configure.in
11903
11904 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11905
11906         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11907         there, while the mantissa of a double is "only" 53 bits wide.
11908
11909 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11910
11911         Adding sdcclib to the build.  MSVC project coming soon.
11912         Files added/changed:
11913
11914         * support/librarian/clean.mk
11915         * support/librarian/configure
11916         * support/librarian/configure.in
11917         * support/librarian/config_in.h
11918         * support/librarian/Makefile.bcc
11919         * support/librarian/Makefile.in
11920         * support/librarian/sdcclib.c
11921         * Makefile.bcc
11922         * Makefile
11923         * Makefile.common.in
11924         * configure
11925         * configure.in
11926
11927 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11928
11929         Linker now complaints if linked modules have conflicting options, for
11930         example, one compiled using --model-large and another one compiled with
11931         --model-small.  The following files were modified:
11932
11933         * as/mcs51/asdata.c
11934         * as/mcs51/aslink.h
11935         * as/mcs51/asm.h
11936         * as/mcs51/asmain.c
11937         * as/mcs51/asout.c
11938         * as/mcs51/i51pst.c
11939         * as/mcs51/lkdata.c
11940         * as/mcs51/lklibr.c
11941         * as/mcs51/lkmain.c
11942         * as/z80/asdata.c
11943         * as/z80/asm.h
11944         * as/z80/asmain.c
11945         * as/z80/asout.c
11946         * as/z80/z80pst.c
11947         * link/z80/aslink.h
11948         * link/z80/lkdata.c
11949         * link/z80/lklibr.c
11950         * link/z80/lkmain.c
11951         * src/SDCCglue.c
11952
11953 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11954
11955         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11956         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11957
11958 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11959
11960         * src/z80/mappings.i: fix _mul[us][int,long] entries
11961
11962 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11963
11964         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11965
11966 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11967
11968         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11969         * support/regression/tests/bitopcse.c: added
11970         fixed warning:
11971         * src/avr/gen.c:
11972         * src/pic/gen.c:
11973         * src/pic16/gen.c:
11974         * src/z80/gen.c:
11975         * src/xa51/gen.c:
11976
11977 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11978
11979         added support for new library format to z80, gbz80 linkers:
11980         *link/z80/aslink.h
11981         *link/z80/lklex.c
11982         *link/z80/lklib.c
11983         *link/z80/lklist.c
11984
11985 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11986
11987         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11988         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11989
11990 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11991
11992         added DUMMY_READ_VOLATILE:
11993         * src/SDCC.y:
11994         * src/avr/gen.c:
11995         * src/xa51/gen.c:
11996         * src/z80/gen.c:
11997         * src/pic/gen.c:
11998         * src/pic16/gen.c:
11999         * src/mcs51/gen.c:
12000         * src/ds390/gen.c:
12001         * src/SDCCcse.c (algebraicOpts): many improvements
12002         * src/SDCCcse.h: removed algebraicOpts()
12003         * src/SDCCicode.c (picDummyRead): added
12004
12005 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12006
12007         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
12008         "Insufficient space in data memory".
12009
12010 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12011
12012         * src/mcs51/gen.c: fixed bug #771358
12013         * src/z80/gen.c: fixed bug #759087
12014
12015 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
12016
12017         * src/pic16/glue.c: minor cleanup by Vangelis
12018
12019 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12020
12021         * device/include/regc515c.h: fixed #758477
12022         * device/lib/_gptrget.c: saving some cycles in generic pointer get
12023         * device/lib/_gptrput.c: saved a few bytes
12024         * my tab spacing is 8, yours too?)
12025         * device/lib/_ser.c: process RX bytes earlier than TX bytes
12026         * device/lib/serial.c: process RX bytes earlier than TX bytes
12027         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
12028
12029 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12030
12031         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
12032
12033 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12034
12035     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
12036
12037 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
12038
12039         * device/lib/Makefile.in: bad fix, reverted to 1.43
12040
12041 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
12042
12043         * device/lib/Makefile.in: added missing z80 object files
12044
12045 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
12046
12047         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
12048         pic16 progress by Vangelis:
12049         * src/SDCCglobl.h:
12050         * src/SDCCmain.c:
12051         * src/pic/Makefile:
12052         * src/pic:
12053         * pic/Makefile:
12054         * pic16/device.c:
12055         * pic16/device.h:
12056         * pic16/gen.c:
12057         * pic16/gen.h:
12058         * pic16/genarith.c:
12059         * pic16/glue.c:
12060         * pic16/main.c:
12061         * pic16/pcode.c:
12062         * pic16/pcode.h:
12063         * pic16/pcodepeep.c:
12064         * pic16/peeph.def:
12065
12066 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12067
12068     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
12069
12070 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12071
12072     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
12073     added gbz80 build to MSVC project.
12074     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
12075     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
12076     from 8051 stuff and setup so it links using a .lnk file.
12077
12078 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12079
12080     * support/librarian/sdcclib.c: sdcc librarian.
12081     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
12082     with sdcclib.
12083
12084 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12085
12086     * as/mcs51/lkmain.c: properly handle extensions in function afile.
12087
12088 2003-07-02  Borut Razem <borut.razem AT siol.net>
12089
12090         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
12091         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
12092         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
12093         src/xa51/main.c, src/z80/main.c:
12094         virtualization of glue() function: each port has it's own glue function,
12095         which is accessed by do_glue function pointer in PORT.general structure
12096
12097 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
12098
12099         * DS800C400 fun, improved ROM interface and tinibios.
12100
12101 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
12102
12103         * More support for DS80C400. Now includes beginning of interface to ROM.
12104
12105 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
12106
12107         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
12108
12109 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12110
12111         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
12112
12113 2003-06-19  Borut Razem <borut.razem AT siol.net>
12114
12115         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
12116
12117 2003-06-19  Borut Razem <borut.razem AT siol.net>
12118
12119         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
12120         fixed Z80 port - crt0.o: cannot open.
12121
12122 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
12123
12124         * support/Util/MySystem.c (merge_command): revert bad fix
12125
12126 2003-06-18  Borut Razem <borut.razem AT siol.net>
12127
12128         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
12129
12130 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12131
12132         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12133         option --use-stdout sends errors to stdout instead of stderr.
12134
12135 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
12136
12137         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
12138
12139 2003-06-15  Borut Razem <borut.razem AT siol.net>
12140
12141         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
12142         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
12143         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
12144         fixed width array of pointers replaced with sets;
12145         multiple include and lib paths ared transferred to preprocessor and linker
12146         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
12147         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
12148         fixed width array of pointers
12149         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
12150         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
12151         fixupPath(), getPathDifference()
12152         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
12153         fixed width array of pointers
12154
12155 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
12156
12157         * src/pic16/ralloc.c: fix warnings
12158         * src/pic16/pcode.c: fix warning
12159
12160 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
12161
12162          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
12163         know all the details, but essentially this set of changes enable
12164         the pic16 port to generate movff instructions and generate assembler
12165         directives,
12166         * src/SDCCmain.c:
12167         * src/pic16/gen.c:
12168         * src/pic16/glue.c:
12169         * src/pic16/pcode.c:
12170         * src/pic16/device.c:
12171         * src/pic16/main.c:
12172         * src/pic16/pcode.h:
12173         * src/pic16/pcoderegs.c:
12174         * src/pic16/ralloc.c:
12175         * src/pic16/ralloc.h:
12176
12177 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12178
12179         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
12180         added option --vc, so sdcc errors and warnings are compatible with
12181         Microsoft Visual Studio.
12182
12183 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12184
12185         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
12186           device/lib/libfloat.lib: added atof function.
12187
12188 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
12189
12190         * doc/sdccman.lyx: updated to Lyx 1.3
12191         * doc/cdbfileformat.lyx: updated to Lyx 1.3
12192         * doc/test_suite_spec.lyx: updated to Lyx 1.3
12193         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12194
12195 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12196
12197         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12198
12199 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12200
12201         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12202           additions to the "related tools/documentation" section
12203
12204 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12205
12206         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12207
12208 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12209
12210         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12211         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12212
12213 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12214
12215         * doc/sdccman.lyx: fix double dash and other minor things
12216         * doc/Makefile: fix double dash
12217
12218 2003-05-28  Karl Bongers(patches from Martin Helmling)
12219         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12220           condition and ignore commands.
12221
12222 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12223
12224         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12225           is in parts still quite out of date, I did changes as far as I felt makes sense
12226           for a non-native english speaker.
12227           Please feel free to add to the manual or to correct my changes.
12228         * doc/Makefile: undid touching the date of intermediate tex files.
12229
12230 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12231
12232         * doc/sdccman.lyx: Manual has an index now
12233
12234 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12235
12236         Finalize muluint/mulsint and mululong/mulslong merging:
12237         * device/lib/_mulint.c
12238         * device/lib/_mullong.c
12239         * device/lib/gbz80/mul.s
12240         * device/lib/gbz80/stubs.s
12241         * device/lib/z80/mul.s
12242         * device/lib/z80/stubs.s
12243         * src/SDCCsymt.c (initCSupport)
12244
12245 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12246
12247         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12248         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12249           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12250           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12251           instead of /Zm500.
12252
12253 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12254
12255         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12256           the regression tests I'm not brave enough to enable 245.b, 245.c
12257         * doc/sdccman.lyx: added latex preamble for hyperref package.
12258           Using pdflatex this will give you a hyperlinked pdf file with
12259           bookmarks. (prepend '%' before /usepackage if this breaks something)
12260
12261 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12262
12263          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12264
12265 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12266
12267         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12268
12269 2003-05-21    <johan AT balder>
12270
12271         * src/SDCCglue.c (printIval): fixed bug #739934
12272
12273 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12274
12275         Applied patch from bug 737905 (renamed yylineo to mylineno):
12276         * src/altlex.c
12277         * src/SDCCast.c
12278         * src/SDCglobl.h
12279         * src/SDCC.lex
12280         * src/SDCCsymt.c
12281         * src/SDCCval.c
12282         * src/pic16/pcode.c: Cleaned warnings
12283         * src/pic16/pcodeflow.c: Cleaned warnings
12284         * src/pic16/pcoderegs.c: Cleaned warnings
12285
12286 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12287
12288         * src/pic16/pcode.c: Cleaned warnings
12289         * src/pic16/pcodepeep.c: Cleaned warnings
12290         * src/pic16/ralloc.c: Cleaned warnings
12291
12292 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12293
12294         * doc/sdccman.lyx: fixed bug 739745
12295         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12296
12297 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12298
12299         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12300         it can be defined with CFLAGS when running configure
12301         * src/SDCCmain.c: fixed compiling + linking with object files
12302
12303 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12304
12305         * configure.in: configure for pic16 port,
12306             added --disable-pic16-port
12307         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12308         * src/SDCCmain.c: linkOptions is changed to set *,
12309             added if/endif conditional macros to remove options help
12310             messages from optionsTable when a port is not configured, added
12311             support for the PIc16 port in the ports table, when executing
12312             the compiler with no port specified on command line, a default
12313             port is selected with the new macro DEFAULT_PORT which is
12314             defined in port.h, in setDefaultOptions() linkOptions is removed
12315             from initialization assignment, since now it is a set,
12316             parseCmdLine uses setParseWithComma for linkOptions, in
12317             linkEdit() linkOptions are accessed with new function indexSet()
12318             which returns the i'th item of a set variable. See SDCCset.c, in
12319             linkEdit() when calling buildCmdLine(), added linkOptions as
12320             last argument. Now users can pass arguments to gplink via the
12321             -Wl option, main() uses pic16glue() to glue up pic16 programs
12322         * src/SDCCpeeph.c: various changes to support pic16
12323         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12324             return the i'th item of the set
12325         * src/SDCCset.h: added function prototype for indexSet()
12326         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12327         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12328         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12329             added macro DEFAULT_PORT
12330         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12331         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12332             generated
12333         * src/pic16/glue.c: commented out some error producing lines
12334         * src/pic16/main.c: __config directives are commented out to stop
12335             gpasm complaining and test the linkage with gplink, _linkCmd and
12336             _asmCmd changed to be more gplink and gpasm friendly
12337         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12338             produced an error when parsed, peep rule 12 is added to utilize
12339             movff, but it is commented out since the pCode does not support
12340             yet a command with 2 address arguments
12341
12342 2003-05-18    <johan AT balder>
12343
12344         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12345         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12346 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12347
12348         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12349   Added feature to script commands from file.
12350
12351 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12352
12353         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12354         * src/SDCCutil.c: include ctype.h for win32
12355
12356 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12357
12358         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12359
12360 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12361
12362         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12363   Fixed so you can set breakpoints prior to run, run does not stop
12364   on entry now.  Add tbreak.  Other enhancements and fixes for use
12365   with ddd.
12366
12367 2003-05-12  Borut Razem <borut.razem AT siol.net>
12368
12369         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12370
12371 2003-05-11  Borut Razem <borut.razem AT siol.net>
12372
12373         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12374         the path of bin directory, so that PATH is the only env. variable, which has to be set
12375         in case of standard installation.
12376         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12377         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12378         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12379
12380 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12381
12382         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12383         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12384         temp files are in the port dir; clean the gen/test directory when
12385         generating new test.c
12386         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12387         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12388         * support/regression/tests/zeropad.c: added
12389
12390 2003-05-09    <johan AT balder>
12391
12392         * src/SDCCglue.c: fixed bug #597940
12393
12394 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12395
12396         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12397   cache sfr, optimize next,step, fix off by one sourceline,
12398   support ddd list function.
12399         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12400
12401 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12402
12403         * support/regression/HTMLgen.py: added compare_s2f()
12404         * support/regression/Makefile: redo 1.27
12405         * support/regression/generate-cases.py: redo 1.5
12406
12407 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12408
12409         * support/regression/tests/float.c: workaround 33 bit hex constant
12410         * support/regression/tests/simplefloat.c: fix division for host
12411
12412 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12413
12414         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12415         that tame's the PIC's over-aggressive optimizer.
12416
12417 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12418
12419          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12420          support for MSVC.
12421
12422 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12423
12424         Initial support for DS80C400. "Hello world" runs on TINIm400
12425         (with polled I/O).
12426
12427 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12428
12429          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12430          * Some notes on ddd usage added in debugger/README
12431          Martin Helmling adding more features and fixes for ddd GUI debugger.
12432          Code added for nexti, stepi, up, down, and other adjustments.
12433
12434 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12435
12436         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12437         * src/pic/peeph.def Added two rules to optimize carry manipulation
12438         * src/pic/* removed debug printfs
12439
12440 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12441
12442         * debugger/mcs51/cmd.c: added header newalloc.h
12443
12444 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12445
12446         * as/Makefile: new EXEEXT
12447         * as/z80/Makefile: remove trailing slash of BUILDIR
12448         * as/z80/clean.mk: new EXEEXT
12449         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12450         * support/cpp2/Makefile.in: new EXEEXT
12451         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12452
12453 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12454
12455         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12456         EXEEXT was introduced to fix all related problems with targets
12457         "clean", "install" and "uninstall"; a couple of further flaws
12458         especially with "clean" have been fixed too
12459         * as/mcs51/Makefile.in
12460         * as/mcs51/clean.mk
12461         * as/z80/Makefile
12462         * Makefile
12463         * clean.mk
12464         * debugger/mcs51/Makefile.in
12465         * debugger/mcs51/clean.mk
12466         * link/z80/Makefile
12467         * link/z80/Makefile.in
12468         * link/z80/clean.mk
12469         * link/Makefile
12470         * packihx/Makefile.in
12471         * packihx/clean.mk
12472         * sim/ucsim/Makefile
12473         * sim/ucsim/clean.mk
12474         * sim/ucsim/avr.src/Makefile.in
12475         * sim/ucsim/avr.src/clean.mk
12476         * sim/ucsim/s51.src/Makefile.in
12477         * sim/ucsim/s51.src/clean.mk
12478         * sim/ucsim/xa.src/Makefile.in
12479         * sim/ucsim/xa.src/clean.mk
12480         * sim/ucsim/z80.src/Makefile.in
12481         * sim/ucsim/z80.src/clean.mk
12482         * sim/ucsim/main_in.mk
12483         * sim/ucsim/packages_in.mk
12484         * sim/ucsim/gui.src/Makefile.in
12485         * sim/ucsim/gui.src/serio.src/Makefile.in
12486         * sim/ucsim/gui.src/serio.src/clean.mk
12487         * src/Makefile.in
12488         * src/clean.mk
12489         * support/cpp2/Makefile.in
12490         * support/cpp2/clean.mk
12491         * support/makebin/Makefile
12492         * support/makebin/clean.mk
12493         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12494         * doc/sdccman.lyx: --program-suffix no longer needed
12495
12496 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12497
12498          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12499          Martin Helmling added support for ddd GUI debugger.
12500          Code added to display assembly, set variables, and other commands
12501          to interface to ddd.
12502
12503 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12504
12505         * as/Makefile: fix target clean
12506         * as/clean.mk: fix target clean
12507         * as/z80/clean.mk: fix target clean
12508
12509 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12510
12511         * Makefile.common.in: added  AT EXEEXT AT
12512         * configure.in: removed all mingw32 stuff
12513         * configure: rebuilt from configure.in
12514         * doc/sdccman.lyx: updated section "installation"
12515         * support/scripts/sdcc_mingw32: adapted to configure
12516         * support/scripts/sdcc_cygwin_mingw32: added
12517
12518 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12519
12520         * src/pic Added object file support for the PIC port
12521         * src/pic Applied patch from Craig Franklin (this started the object file support)
12522         * src/regression Updated the PIC regression tests for object files
12523
12524 2003-04-20  Borut Razem <borut.razem AT siol.net>
12525
12526         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12527           lklex.c: In function `getfid':
12528           lklex.c:203: warning: array subscript has type `char'
12529         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12530           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12531         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12532           stack handling macros
12533
12534 2003-04-19  Borut Razem <borut.razem AT siol.net>
12535
12536         * "handling space characters in file path" task:
12537         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12538         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12539         * support/Util/MySystem.h: make it self-sufficient
12540         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12541           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12542           handling space characters in file path
12543         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12544           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12545         * support/Util/MySystem.c: handling space characters in executable's path
12546
12547 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12548
12549         * as/z80/Makefile: fix permanent rebuild of z80
12550         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12551         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12552
12553 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12554
12555         * src/SDCCopt.c: add special case optimization to replace modulo by
12556           a power of two with a bitwise AND.
12557
12558 2003-04-18    <johan AT balder>
12559
12560         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12561
12562 2003-04-17    <johan AT balder>
12563
12564         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12565         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12566
12567 2003-04-13  Borut Razem <borut.razem AT siol.net>
12568
12569         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12570         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12571           fixed mingw problem in adl_NORMALIZE_PATH
12572
12573 2003-04-12  Borut Razem <borut.razem AT siol.net>
12574
12575         * fixed "#pragma SAVE/RESTORE can not be nested":
12576         * src/SDCC.lex: reworked pragma handling functions
12577         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12578         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12579
12580 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12581
12582         * src/SDCCutil.c (pathEquivalent): defined but not used
12583         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12584         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12585         * configure: rebuilt from configure.in
12586         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12587         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12588         * device/include/Makefile.in: replace sdcc_datadir
12589         * device/lib/Makefile.in: replace sdcc_datadir
12590         * Makefile.common.in: add LDFLAGS from configure
12591         * packihx/Makefile.in: use LDFLAGS
12592         * src/Makefile.in: use LDFLAGS
12593         * support/cpp2/Makefile.in: add LDFLAGS from configure
12594         * support/makebin/Makefile: use LDFLAGS
12595         * .version: bumped version number to 2.3.5
12596
12597 2003-04-12  Borut Razem <borut.razem AT siol.net>
12598
12599         * completed "different paths" task:
12600         * src/SDCCmacro.c: fixed bug in handling quotes
12601         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12602         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12603
12604 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12605
12606         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12607
12608 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12609
12610         * ds390/gen.c ds390/peeph.def: fix bug 706781
12611
12612 2003-04-11  Borut Razem <borut.razem AT siol.net>
12613
12614         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12615
12616 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12617
12618         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12619         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12620          set - this bit used to not be set...).
12621         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12622           bad code in PIC Port
12623         * src/regression/and2.c added to test bug 609268
12624         * src/regression/Makefile added and2.c to regression test
12625
12626
12627 2003-04-08    <johan AT CP255758-A>
12628
12629         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12630         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12631         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12632
12633 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12634
12635         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12636         fix bug #487815
12637         * support/cpp2/Makefile.in: fix bug #487815
12638         * configure: rebuilt from configure.in
12639         * Makefile.common.in: docdir changed, new path suffixes
12640         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12641         * sdcc_vc_in.h: reflect changes from sdccconf.h
12642         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12643         * src/SDCCutil.h: remove BINDIR hack
12644         * doc/sdccman.lyx: update new path hierarchy
12645
12646 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12647
12648         * src/SDCCpeeph.c: added okToRemoveSLOC test
12649
12650 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12651
12652         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12653
12654 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12655
12656         * src/SDCCpeeph.c: added labelIsReturnOnly test
12657         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12658
12659 2003-04-05    <johan AT balder>
12660
12661         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12662         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12663         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12664         * src/SDCCast.c: fixed a warning
12665         * src/SDCCast.h: fixed a warning
12666         * src/SDCCicode.c (operandFromAst): fixed a warning
12667
12668 2003-04-04    <johan AT balder>
12669
12670         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12671         * src/SDCCast.c (decorateType): fixed bug #715076
12672         * src/SDCC.y: fixed bug #702907
12673
12674 2003-04-03    <johan AT balder>
12675
12676         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12677         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12678         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12679         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12680         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12681
12682 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12683
12684         * _decdptr.c: fix return values
12685         * _gptrget.c: fix return values
12686         * _gptrgetc.c: fix return values
12687         * _gptrput.c: fix return values
12688         * _mulint.c: fix return values
12689         * as/z80/Makefile: fix 'make -j' problem
12690
12691 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12692
12693         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12694         * configure.in: big cleanup, updated to autoconf 2.5x
12695         * configure: rebuilt from configure.in
12696         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12697         * sdcc_vc_in.h: reflect changes from sdccconf.h
12698         * doc/Makefile: fixed a flaw in "make install"
12699
12700 2003-04-02    <johan AT balder>
12701
12702         * src/ds390/gen.c (genCmp): no comments
12703         * src/mcs51/gen.c (genCmp): no comments
12704         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12705         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12706
12707 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12708
12709         * support/regression/generate-cases.py: place generated file in given sub directory
12710         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12711         * support/regression/Makefile: improvements for 'make -j';
12712         side effect: it's simpler and faster now
12713
12714 2003-03-31  Borut Razem <borut.razem AT siol.net>
12715
12716         * src/z80/main.c: link-{port} and as-{port} defined without path
12717         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12718
12719 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12720
12721         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12722
12723 2003-03-30  Borut Razem <borut.razem AT siol.net>
12724
12725         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12726           changed type of list parameter to set
12727         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12728         * src/port.h: changed type of do_assemble() parameter to set
12729         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12730           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12731           definition of "cppoutfilename" macro with NULL value in preProcess()
12732         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12733         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12734         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12735           replaced with set *binPathSet
12736         * shash_add() deallocates the item, if allready exsists, before adding the new one
12737         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12738
12739 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12740
12741         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12742           a nested for loop bug in the PIC port
12743         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12744           for loops
12745
12746 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12747
12748         * support/Util/dbuf.h: remove C++ stuff to make it portable
12749
12750 2003-03-28  Borut Razem <borut.razem AT siol.net>
12751
12752         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12753           literal strings in stringLiteral()
12754         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12755         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12756           to the project
12757
12758 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12759
12760         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12761
12762 2003-03-26    <johan AT balder>
12763
12764         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12765         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12766         * src/SDCCast.c (decorateType): fixed " -v < 3"
12767
12768 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12769
12770         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12771         Added Lenny Story's debug infrastructure changes:
12772         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12773         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12774         * src/cdbFile.c: added
12775         * src/SDCCdebug.c: added
12776         * src/SDCCdebug.h: added
12777         * src/SDCCast.c (createFunction)
12778         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12779         * src/SDCCmain.c (parseCmdLine, main)
12780         * src/SDCCmem.c (redoStackOffsets)
12781         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12782         * src/SDCCsymt.h
12783         * src/common.h
12784         * src/avr/gen.c (genAVRCode)
12785         * src/ds390/gen.c (gen390Code)
12786         * src/mcs51/gen.c (gen51Code)
12787         * src/pic/gen.c (genpic14Code)
12788         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12789         * src/xa51/gen.c (genXA51Code)
12790         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12791
12792 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12793
12794         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12795         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12796
12797 2003-03-22    <johan AT balder>
12798
12799         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12800
12801 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12802
12803         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12804         * doc/cdbfileformat.lyx: added, written by Lenny Story
12805         * doc/Makefile: added cdbfileformat.lyx
12806         * doc/clean.mk: added cdbfileformat.lyx
12807
12808 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12809
12810         * src/mcs51/peeph.def: fix bug #705773
12811
12812 2003-03-20    <johan AT balder>
12813
12814         An sfr/sbit can have an "at #" AND an initializer
12815         * src/SDCCsymt.c (checkSClass):
12816         * src/SDCCmem.c (allocGlobal):
12817         * src/SDCCmem.c (allocLocal):
12818         * src/SDCCast.c (createBlock):
12819
12820 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12821
12822         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12823
12824 2003-03-16    <johan AT balder>
12825
12826         Undid the hackup of const and volatile, the problem is much bigger
12827         * src/SDCC.y:1.65
12828         * src/SDCCast.c:1.171
12829         * src/SDCCglue.c:1.138
12830         * src/SDCCicode.c:1.146
12831         * src/SDCCsymt.c:1.150
12832         * src/SDCCval.c:1.65
12833
12834 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12835
12836         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12837         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12838
12839 2003-03-13    <johan AT balder>
12840
12841         Hackup const and volatile modifiers in type chains a bit:
12842         * src/SDCC.y:1.63
12843         * src/SDCCast.c:1.169
12844         * src/SDCCglue.c:1.136
12845         * src/SDCCicode.c:1.143
12846         * src/SDCCsymt.c1.146
12847         * src/SDCCsymt.h1.59
12848         * src/SDCCval.c:1.63
12849
12850 2003-03-12    <johan AT balder>
12851
12852         * src/SDCCBBlock.h: more LRH debugging junk
12853         * src/SDCCcflow.h: more LRH debugging junk
12854         * src/SDCCloop.c: more LRH debugging junk
12855         * src/SDCC.y (struct_declaration): fixed bug #697590
12856         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12857         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12858         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12859
12860 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12861         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12862         test function names must now match exactly).
12863         * src/SDCCcse.c: added special case in findCheaperOp to allow
12864         extending a short integer. Makes less awful code for bug 700121 test case.
12865
12866 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12867
12868         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12869         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12870
12871 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12872
12873         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12874         actually called (operandsNotEqual() was called for all
12875         operandsNotEqualX tests).
12876
12877 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12878
12879         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12880         with shorter literals. Fixes bug 700121.
12881
12882 2003-03-11    <johan AT balder>
12883
12884         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12885
12886 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12887
12888         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12889         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12890
12891 2003-03-10  Borut Razem <borut.razem AT siol.net>
12892
12893         * src/SDCCmain.c: pipe preprocessor's output
12894         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12895         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12896         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12897         which closes all pipes in pipeSet set
12898         * src/SDCCset.c: free deleted item in function deleteSetItem()
12899         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12900         moved from z80 to src subproject
12901         * .version: increased version number to 2.3.4
12902
12903 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12904
12905         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12906         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12907         * support/regression/ports/xa51/spec.mk: fix typo
12908
12909 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12910
12911         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12912
12913 2003-03-09  Borut Razem <borut.razem AT siol.net>
12914
12915         * src/SDCCmain.c: pipe preprocessor's output
12916         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12917         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12918         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12919         which closes all pipes in pipeSet set
12920         * src/SDCCset.c: free deleted item in function deleteSetItem()
12921         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12922         moved from z80 to src subproject
12923
12924 2003-03-09  Borut Razem <borut.razem AT siol.net>
12925
12926         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12927         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12928         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12929         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12930         * src/SDCCglobl.h: unification of WIN32 native definitions
12931
12932 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12933
12934         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12935
12936 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12937
12938         * src/configure.in:   check for endianess (even while cross-compiling)
12939         * src/configure:      check for endianess (even while cross-compiling)
12940         * src/configure_in.h: check for endianess (even while cross-compiling)
12941         * src/avr/gen.c:        remove old endianess stuff
12942         * src/mcs51/gen.c:      remove old endianess stuff
12943         * src/ds390/gen.c:      remove old endianess stuff
12944         * src/pic/gen.c:        remove old endianess stuff
12945         * src/pic/genarith.c:   remove old endianess stuff
12946         * src/pic/glue.c:       fix endianess check
12947         * src/pic16/gen.c:      remove old endianess stuff
12948         * src/pic16/genarith.c: remove old endianess stuff
12949         * src/pic16/glue.c:     fix endianess check
12950         * src/xa51/gen.c:       remove old endianess stuff
12951         * src/z80/gen.c:        fix endianess check
12952         * src/SDCCglue.c:       fix endianess check
12953         * src/ds390/peeph.def: fix bug 700036
12954
12955 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12956
12957         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12958         * src/configure: find appropriate data-types on host for SDCC's int and long
12959         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12960         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12961         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12962
12963 2003-03-07    <johan AT balder>
12964
12965         Just a big NOOP:
12966                 some minor cleanups before the big shot
12967                 OP_DEFS and OP_USES now use Kevin's protection
12968                 new option --nolabelopt
12969
12970         * src/SDCCBBlock.c:
12971         * src/SDCCast.c,:
12972         * src/SDCCcflow.c:
12973         * src/SDCCcse.c:
12974         * src/SDCCicode.c:
12975         * src/SDCCicode.h:
12976         * src/SDCClabel.c:
12977         * src/SDCCloop.c:
12978         * src/SDCCmain.c:
12979         * src/ds390/ralloc.c:
12980         * src/mcs51/ralloc.c:
12981         * src/pic/ralloc.c:
12982         * src/xa51/ralloc.c:
12983         * src/z80/ralloc.c:
12984
12985 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12986
12987         * src/pic/pcode.c (get_op): fix 64 bit warnings
12988         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12989         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12990         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12991         * support/regression/tests/malloc.c: fix 64 bit warnings
12992
12993 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12994
12995         * src/mcs51/gen.c (genMinus): fixed bug 696436
12996
12997 2003-03-02  Borut Razem <borut.razem AT siol.net>
12998
12999         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
13000
13001 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
13002
13003         * configure.in: test for mkstemp
13004         * sdccconf_in.h: add HAVE_MKSTEMP
13005
13006 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
13007
13008         * device/include/ctype.h: removed warning while using --stack-auto
13009         * device/include/malloc.h: removed warning while using --stack-auto
13010         * device/include/string.h: removed warning while using --stack-auto
13011
13012 2003-02-23  Borut Razem <borut.razem AT siol.net>
13013
13014         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
13015         because NDEBUG is defined (see man assert)
13016         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
13017
13018 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13019
13020         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
13021         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
13022
13023 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13024
13025         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
13026         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
13027
13028 2003-02-18    <johan AT balder>
13029
13030         * as/mcs51/asmain.c (asmbl): module can start with a digit
13031         * as/z80/asmain.c (asmbl): module can start with a digit
13032
13033 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
13034
13035         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
13036         * src/asm.c: fix pipe() for Mingw32
13037
13038 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
13039
13040         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
13041         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
13042         make -V work again; --c1mode reads now from stdin
13043         * doc/sdccman.lyx: added --c1mode
13044         * support/Util/SDCCerr.c: new messages for c1 mode
13045         * support/Util/SDCCerr.h: new messages for c1 mode
13046         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
13047
13048 2003-02-15    <johan AT balder>
13049
13050         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
13051
13052 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
13053
13054         * doc/sdccman.lyx: Environment variables, -o and other minor things
13055
13056 2003-02-14    <johan AT balder>
13057
13058         * src/xa51/main.c: before anyone really tries to use it :)
13059
13060         * Install doc's in share/sdcc/doc
13061         * removed some obsolete files
13062         * Do a proper make distclean and uninstall
13063         M Makefile.common.in
13064         R sdccbuild.sh
13065         M as/Makefile
13066         M device/include/Makefile.in
13067         M device/lib/Makefile.in
13068         M doc/sdccman.lyx
13069         M link/Makefile
13070         M sim/ucsim/doc/Makefile.in
13071         M src/clean.mk
13072         R src/avr/peeph.rul
13073         R src/xa51/peeph.rul
13074         M support/cpp2/Makefile.in
13075         M support/makebin/Makefile
13076
13077
13078 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
13079
13080         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
13081
13082 2003-02-10  Borut Razem <borut.razem AT siol.net>
13083
13084         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
13085         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
13086         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
13087         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
13088         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
13089         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
13090         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
13091         src/z80/Makefile.bcc: Borland Makefile cleanup
13092         * as/z80/Makefile.bcc: Added Borland Makefile
13093         * support/cpp2/borland.h: Removed
13094
13095 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
13096
13097         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
13098         * src/SDCC.lex: new pragma NOIV
13099         * src/SDCCglobl.h: new pragma NOIV
13100         * src/SDCCmem.c: new pragma NOIV
13101
13102 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13103
13104         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
13105
13106 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
13107
13108         * src/SDCCmain.c: signal handling is switched off by --debug
13109         * doc/Makefile: small fix for install; use clean.mk again
13110         * doc/clean.mk: clean *.pdf and *.html too
13111
13112 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
13113
13114         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
13115         * device/lib/printfl.c: fix a ds390 bug by making it portable
13116         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
13117         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
13118         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
13119         * debugger/mcs51/cmd.c: converted multi-line string literals
13120         * sim/ucsim/globals.cc: converted multi-line string literals
13121         * src/SDCCmain.c: introduced signal handler to remove temp files
13122         * doc/Makefile: small tweaks, implement clean
13123         * doc: removed generated files
13124
13125 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13126
13127         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
13128         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
13129         Address Record is not correctly generated for DS390."
13130
13131 2003-02-02  Borut Razem <borut.razem AT siol.net>
13132
13133         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
13134         * as/mcs51/asm.h: fixed compilation with Borland C
13135         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
13136         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
13137         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
13138         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
13139         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
13140         src/z80/Makefile.bcc: delete $(LIB) only if exist
13141         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
13142
13143 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
13144
13145         * device/include/malloc.h: introduced NULL
13146         * device/include/string.h: introduced NULL
13147         * device/include/stdlib.h: introduced NULL
13148         * device/lib/_memcpy.c: removed NULL
13149         * device/lib/_strcat.c: removed NULL
13150         * device/lib/_strchr.c: removed NULL
13151         * device/lib/_strcmp.c: removed NULL
13152         * device/lib/_strcpy.c: removed NULL
13153         * device/lib/_strcspn.c: removed NULL
13154         * device/lib/_strlen.c: removed NULL
13155         * device/lib/_strncat.c: removed NULL
13156         * device/lib/_strncmp.c: removed NULL
13157         * device/lib/_strncpy.c: removed NULL
13158         * device/lib/_strpbrk.c: removed NULL
13159         * device/lib/_strrchr.c: removed NULL
13160         * device/lib/_strspn.c: removed NULL
13161         * device/lib/_strstr.c: removed NULL
13162         * device/lib/_strtok.c: removed NULL
13163         * device/lib/malloc.c: removed NULL, include own header
13164
13165 2003-02-02    <johan AT balder>
13166
13167         * 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
13168         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
13169         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
13170         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
13171         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
13172         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
13173
13174 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13175
13176         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
13177         area 'DATA'"
13178
13179 2003-02-01    <johan AT balder>
13180
13181         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
13182
13183 2003-01-31    <johan AT CP255758-A>
13184
13185         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
13186
13187 2003-01-30    <johan AT balder>
13188
13189         * src/SDCCBBlock.c: automatic bug detection
13190         * src/SDCCicode.c: automatic bug detection
13191
13192 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13193
13194         * src/SDCCglobl.h:   now --xram-size 0 works
13195         * src/SDCCmain.c:    now --xram-size 0 works
13196
13197 2003-01-29    <johan AT balder>
13198
13199         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13200
13201 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13202
13203         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13204         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13205         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13206         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13207         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13208         * src/SDCCmain.c:    Added options --xram-size and --code-size
13209
13210 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13211
13212         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13213         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13214
13215 2003-01-27    <johan AT balder>
13216
13217         * src/SDCC.y: fixed bug #613764
13218
13219 2003-01-26    <johan AT balder>
13220
13221         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13222         * src/SDCCsymt.h: fixed bug #673374
13223         * src/SDCCglue.c: fixed bug #661910
13224         * src/SDCCast.c: fixed bug #458099 and 673374
13225
13226 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13227
13228         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13229         * as/mcs51/strcmpi.h: added
13230         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13231         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13232         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13233         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13234         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13235         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13236         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13237         * as/mcs51/Makefile.aslink: new module strcmpi
13238         * as/mcs51/Makefile.asx8051: new module strcmpi
13239         * as/mcs51/Makefil.bcc: new module strcmpi
13240         * as/mcs51/Makefile.in: new module strcmpi
13241         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13242
13243 2003-01-26    <johan AT balder>
13244
13245         * src/SDCCglue.c: reverted back to 1.124
13246         * src/SDCCast.c: reverted back to 1.156
13247         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13248
13249 2003-01-25    <johan AT balder>
13250
13251         * src/SDCCglue.c: A better fix for bug #661910
13252         * src/SDCCast.c: A better fix for bug #661910
13253         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13254
13255 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13256
13257         * src/Makefile.in: remove spawn.o
13258         * src/SDCCmain.c: remove spawn.h
13259         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13260         * src/spawn.c: removed
13261         * src/spawn.h: removed
13262         * support/regression/ports/ds390/spec.mk: link with -r
13263
13264 2003-01-24    <johan AT CP255758-A>
13265
13266         * src/ds390/gen.c (aopOp): fixed bug #667458
13267         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13268         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13269         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13270
13271 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13272
13273         * src/mcs51/peeph.def: better assembler identation by Frieder
13274         * src/mcs51/gen.c: better assembler identation by Frieder
13275
13276 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13277
13278         * as/z80/string.h: removed for gcc 3.2
13279         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13280         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13281
13282 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13283
13284         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13285         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13286         * support/regression/Makefile: separate temp files for ports
13287         * support/regression/generate-cases.py: separate temp files for ports
13288         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13289         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13290
13291 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13292
13293         * moved tinitalk to device/examples/ds390
13294
13295 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13296
13297         * as/mcs51/lkmem.c: rflag is for DS390
13298         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13299         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13300                          (linkEdit): move mem- and map-files the same way as ihx-files
13301         * src/z80/main.c (_setDefaultOptions): removed --generic
13302         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13303         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13304         * src/pic/glue.c (picglue): --c1mode works again
13305         * src/pic16/glue.c (pic16glue): --c1mode works again
13306         * src/asm.c (printCLine): fix #660034
13307
13308 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13309
13310         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13311         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13312         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13313         * as/mcs51/lkmem (summary): better fix for sp problem
13314         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13315         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13316         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13317                                               remove --stack-after-data
13318
13319 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13320
13321         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13322         * src/SDCCutil.c (join): ugly bug: missing '\0'
13323         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13324
13325 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13326
13327         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13328         * src/port.h: typo
13329         * src/pic/main.c (_asmCmd): gpasm supports -o
13330         * src/z80/main.c: more general macros
13331         * device/lib/Makefile.in: remove intermediate files
13332
13333 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13334
13335         * .version: Bumped version number to 2.3.3
13336         * src/SDCCBBlock.c: new option -o
13337         * src/SDCCglobl.h: new option -o
13338         * src/SDCCglue.c: new option -o
13339         * src/SDCCmain.c: new option -o
13340         * src/asm.c: new option -o
13341         * src/ds390/main.c: new option -o
13342         * src/pic/glue.c: new option -o
13343         * src/pic/pcode.c: new option -o
13344         * src/pic/ralloc.c: new option -o
13345         * src/pic16/glue.c: new option -o
13346         * src/pic16/pcode.c: new option -o
13347         * src/pic16/ralloc.c: new option -o
13348         * src/z80/main.c: new option -o
13349         * device/lib/Makefile.in: use -o
13350         * support/regression/ports/ds390/spec.mk: use -o
13351         * support/regression/ports/gbz80/spec.mk: use -o
13352         * support/regression/ports/mcs51/spec.mk: use -o
13353         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13354         * support/regression/ports/z80/spec.mk: use -o
13355         * support/regression/ports/ucz80/spec.mk: use -o
13356         * support/regression/ports/xa51/spec.mk: use -o
13357         * support/regression/fwk/lib/timeout.c: fix usage string
13358
13359 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13360         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13361
13362 2003-01-07    <johan AT balder>
13363
13364         * src/SDCCast.c (decorateType): fixed bug #600035
13365
13366 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13367         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13368         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13369         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13370         * src/pic/pcode.c: outcommented unused variable to remove warnings
13371         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13372
13373 2003-01-06    <karl AT turbobit.com>
13374         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13375    regression tests.
13376
13377 2003-01-06    <johan AT balder>
13378
13379         * src/SDCCicode.c: fixed array add
13380
13381 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13382         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13383         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13384
13385 2003-01-04    <johan AT balder>
13386
13387         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13388
13389 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13390         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13391
13392 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13393         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13394         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13395
13396 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13397         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13398
13399 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13400         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13401
13402 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13403         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13404
13405 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13406
13407     * in /sdcc/as/mcs51/ changed these files in order to create an
13408     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13409     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13410     following files to include the previous two files: aslink.dsp,
13411     Makefile.aslink, Makefile.bcc, and Makefile.in.
13412
13413     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13414     .adb instead of .cdb
13415
13416 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13417
13418         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13419         value from option --iram-size.
13420
13421 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13422
13423         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13424         dram[] array.
13425
13426 2002-09-18    <wiml AT hhhh.org>
13427
13428         * SDCClrange.h: exposed setFromRange() and setToRange()
13429         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13430           packRegsForAccUse() (bug 542397)
13431         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13432           multiple times and emitting the fetch operations more than once
13433           added aopGetUsesAcc() function to allow binary operators to
13434           fetch their operands in the correct order; made genMinus() emit
13435           compact code for X = LITERAL - Y
13436
13437 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13438         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13439         sprintf() in line 1267.
13440
13441 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13442         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13443         like ports.
13444
13445 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13446         Changes to aslink (All the changes are marked with 'JCF'):
13447
13448         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13449         summary().
13450
13451         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13452         area BSEG.  Also moves, if possible, the DATA area down into the internal
13453         ram so more space is available.
13454
13455         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13456         sflag.
13457
13458         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13459         not bytes.  Function summary() which creates a memory usage summary
13460         file with extension .mem.  Reports of overlaping stack and small stack
13461         size.  If the space for the stack is less than 16 bytes aslink trows a
13462         warning.
13463
13464         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13465         the 8051.  Option 'y' for memory summary output file.
13466
13467         Changes to sdcc (All the changes are marked with 'JCF'):
13468
13469         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13470
13471         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13472         overlaying area for it (uses RegBankUsed[4]).
13473
13474         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13475         bank zero as used by default.  By default aslink locates the stack
13476         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13477         the creation of the .mem file.  Delegates the allocation of data area
13478         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13479         the begining of the stack area to aslink.
13480
13481         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13482         glue() in SDCCglue.c creates an area for it.
13483
13484 2002-09-03  Borut Razem <borut.razem AT siol.net>
13485         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13486         sdcc/src/pic/glue.c:
13487         introduced atexit() handler for teporay files removal in case of
13488         errors, assertions, ...
13489
13490 2002-08-29  Borut Razem <borut.razem AT siol.net>
13491         * sdcc/support/cpp2/auto-host_vc_in.h:
13492         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13493         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13494         Maybe there is a similar problem with BORLANDC? It should be checked!
13495
13496         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13497         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13498         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13499         was not executed, and the compiler (cl) launched a warning:
13500         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13501
13502 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13503         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13504
13505 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13506         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13507
13508         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13509           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13510           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13511           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13512           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13513           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13514           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13515         - added Release configuration in VS projects
13516         - review of compiler an linker options
13517         - VC .exe files are generated in bin_vc directory, not to interfere
13518           with binaries generated from other projects (cygwin, mingw, bcc ...)
13519
13520         * sdcc/src/yacc.dsp: added
13521
13522         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13523         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13524         and insert the version number definitions from .version
13525
13526         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13527
13528         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13529         added - genarate auto-host.h using auto-host_vc_in.h as template
13530
13531         * sdcc/sdcc_vc.h,
13532         removed from CVS, generated automatically
13533
13534 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13535         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13536
13537 2002-08-11  Borut Razem <borut.razem AT siol.net>
13538         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13539
13540 2002-08-10  Borut Razem <borut.razem AT siol.net>
13541         * src/SDCCmain.c (main):
13542         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13543         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13544         The consequence was that some temporary files were not removed.
13545
13546         * src/SDCCglue.c:
13547         unification of code in functions tempfilename() and tempfile():
13548         function tempnam() is defined in Visual Studio 6.0 and .NET
13549
13550         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13551
13552         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13553           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13554         - removed compiler command line option /WX: Treats all warnings as errors
13555         - update a list of source files, included into the project
13556
13557         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13558           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13559         changed project type to Generic Project so that can be correcly converted to VS.NET project
13560
13561         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13562
13563         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13564
13565         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13566
13567         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13568         added return 0 statements after assert() to make compiler happy
13569
13570         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13571         added newline in the def file to keep MSC compiler satisfied
13572
13573         * sdcc/src/z80/gen.c:
13574         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13575           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13576         - solved MSC error in function aopDump()
13577
13578         * sdcc_vc.h: define PREFIX as "\\sdcc"
13579
13580 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13581         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13582
13583 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13584         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13585         - Rewrote the register banking algorithm.
13586         - Added pCode live-range analysis to registers (for now, only non-used and
13587         singly-used registers optimized away)
13588
13589         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13590
13591         * 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.
13592
13593 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13594         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13595
13596 2002-04-22  Michael Hope  <michaelh AT vroom>
13597
13598         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13599
13600         * configure.in (DD_COPT): Added include support required for gbdk.
13601
13602         * .version: Bumped version number just to increase it.
13603
13604         * src/SDCCmain.c: Added -nostdinc to the default options.
13605
13606 2002-04-15  Michael Hope  <michaelh AT vroom>
13607
13608         * device/lib/z80/printf.c (sprintf): Added.
13609
13610         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13611
13612         * src/z80/peeph.def: Added transpose redundent load rule.
13613
13614         * src/z80/main.c: Added force callee saves for jaune.
13615
13616         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13617
13618         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13619
13620 2002-03-28  Johan Knol  <johan AT balder>
13621
13622         * src/SDCCval.c: fixed bug #532436
13623
13624 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13625         * /src/port.h:
13626         Added "char *Processor" field to the port structure.
13627
13628         * /src/SDCCmain.c:
13629         Added -p option. Allows port dependent processor to be specified.
13630
13631         * all ports:
13632         Initialized the new field char *Processor field to NULL in all ports
13633
13634         * /src/pic/*:
13635         Compiler generated registers for interrupt context saving
13636         were not getting allocated.
13637
13638 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13639
13640         * /src/SDCCast.c:
13641         Fixed left shift. Will promote the left side of a left shift
13642         if a) left shifting more than size of operand or b) when assigned
13643         to something size > size of left side
13644
13645 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13646         * src/pic/*
13647         tons of changes. Register allocation has been
13648         rewritten. Added customization for the various PICs. Flow
13649         analysis is restructured. ...
13650
13651         * src/pic/device.h:
13652         Added
13653
13654         * src/pic/device.c:
13655         Added. device.c is a PIC port hack to accomodate variations
13656         in PIC devices.
13657
13658 2002-03-13  Michael Hope  <michaelh AT vroom>
13659
13660         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13661
13662 2002-03-04  johanknol  <johanknol AT manik>
13663
13664         * /src/SDCCval.c: fixed
13665
13666         const unsigned char arr[][2] = { { 0, 1 } };
13667         t18.c:1: error: Initializer element is not constant
13668
13669 2002-03-04  bela  <bela AT manik>
13670
13671         * /device/include/mcs51reg.h:
13672         ds89c420 register definition update
13673
13674 2002-03-03    <johan AT FRIJA>
13675
13676         * support/Util/SDCCerr.c: did something, but don't no why anymore
13677
13678         * support/regression/tests/bug-524691.c: made it a little less shy
13679
13680         * src/SDCCast.c (decorateType): fixed bug #524697
13681
13682         * src/SDCCast.c: made some lineno improvements
13683
13684         * src/SDCCval.c (getNelements): changed warning to error
13685
13686         * src/SDCCglue.c (printIvalArray): changed warning to error
13687
13688         * src/SDCCicode.c: fixed a warning for mingw
13689
13690         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13691
13692         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13693
13694 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13695
13696         * src/ds390/peeph.def:
13697         Added some more peephole rules
13698
13699         * src/ds390/gen.c: Various fixes & enhancements
13700
13701         * src/SDCClrange.c, src/SDCClrange.h:
13702         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13703
13704         * src/ds390/ralloc.c:
13705         various fixes & enhancements (ds390) specific
13706
13707         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13708         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13709         from rallocs.
13710
13711         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13712
13713 2002-03-02    <johan AT FRIJA>
13714
13715         * src/SDCCast.c (decorateType): fixed bug #524708
13716
13717         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13718
13719         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13720
13721 2002-03-01  Michael Hope  <michaelh AT vroom>
13722
13723         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13724
13725         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13726
13727 2002-03-01    <johan AT FRIJA>
13728
13729         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13730
13731         * src/SDCCast.c (decorateType): fixed bug #524209
13732
13733         * src/SDCCval.c (valNot): fixed bug #524195
13734
13735 2002-02-26    <johan AT balder>
13736
13737         * src/xa51/gen.c: fixed a warning
13738
13739         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13740
13741         * src/SDCCast.c (decorateType): fixed bug #522534
13742
13743 2002-02-23    <johan AT balder>
13744
13745         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13746
13747 2002-02-22    <johan AT balder>
13748
13749         * src/SDCCast.c: fixed bug #514865
13750
13751         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13752
13753 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13754
13755         * sdcc/src/SDCCloop.c:
13756         Previous fix was not good. basic blocks that have "break" or "return" are
13757         not really partof a loop , but live ranges used in these blocks should
13758         be live thru the entire loop, so set partOfLoop but don't add them to
13759         loop region
13760
13761 2002-02-21    <johan AT FRIJA>
13762
13763         * src/SDCCcse.c: fixed bug #514308
13764
13765 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13766
13767         * src/SDCCloop.c:
13768         Fixed BUG #519583. If a conditional block ended in a return/break
13769         statement inside a loop, it was not being considered part of the loop.
13770
13771         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13772
13773 2002-02-10  Karl Bongers <karl AT turbobit.com>
13774
13775         * debugger/*:
13776         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13777         with lots of comments and notes.
13778
13779         * device/examples/test2.c:
13780         Fix bug, "red" variable not being initialized(compiler complained).
13781
13782         * device/examples/Makefile, examples/test3.c:
13783         Add Makefile in device/examples folder, compiles test3.c
13784         for use as a multiple module SDCDB test case.
13785
13786         * sim/ucsim/cmd.src/cmdset.cc:
13787         Took out debug printfs in ucsim "next" command.
13788
13789         * sim/ucsim/xa.src:
13790         Karl and Johan start ucsim XA support.  Most dissassembly working,
13791         about 75% emulation done(plenty of work remaining).
13792
13793         * sim/ucsim/z80.src:
13794         Add Z80 support to ucsim, add test-ucz80 regression test,
13795         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13796         Notice z80 compiler fails on examples/test3.c/crc code.
13797
13798 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13799
13800         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13801         Added support for --parms-in-bank1
13802
13803         * src/ds390/peeph.def:
13804         added a few more peephole optimzations
13805
13806         * src/ds390/main.c:
13807         1) added __builtin_inp & __builtin_outp used to read in data of given length
13808            from a memory mapped port
13809         2) added __builtin_memcmp
13810         3) added __builtin_swapw swap bytes of a short
13811
13812         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13813         1) handle multiple send & receives from register bank1
13814         2) ralloc can now allocate DPTR1 to some liveRanges
13815
13816         * src/SDCCsymt.c, src/SDCCsymt.h:
13817         changes to handle multiple sends & receives
13818
13819         * src/SDCCptropt.h:
13820         added some pointer arithmetic optimization
13821
13822         * src/SDCCptropt.c:
13823         added some pointer arithmetic optimizations but not stable yet so not
13824         called from anywhere (will get this working shortly)
13825
13826         * src/SDCCopt.c: fixed for multiple sends & receives
13827
13828         * src/SDCCmain.c:
13829         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13830         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13831            set preprocessor defines (depending on options)
13832
13833         * src/SDCCicode.c, src/SDCCicode.h:
13834         changes made to handle multiple sends & receives
13835
13836         * src/SDCCglobl.h:
13837         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13838
13839         * src/SDCCcse.c, src/SDCCcse.h:
13840         added function findbackward def (to be used in upcoming optimization)
13841
13842         * src/SDCCcflow.c, src/SDCCcflow.h:
13843         added function returnAtEnd - to determine if a basic block terminates with
13844         a RETURN iCode
13845
13846         * src/SDCCast.c, src/SDCCast.h:
13847         added option parms-in-bank1
13848
13849         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13850         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13851         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13852         adjusted for --parms-in-bank1 option
13853
13854         * device/include/string.h:
13855         donot redefine "reentrant" keyword
13856
13857         * device/include/ds80c390.h: Added some more SFRs
13858
13859 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13860
13861         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13862
13863 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13864
13865         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13866
13867 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13868
13869         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13870
13871 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13872
13873         * Added --xram-movc option
13874
13875 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13876
13877         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13878
13879 2002-01-11  Johan Knol
13880
13881         * Added math lib of Jesus Calvino-Fraga
13882
13883 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13884
13885         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13886         * support/regression/Makefile: new target test-mcs51-stack-auto
13887         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13888
13889 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13890
13891         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13892
13893 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13894
13895         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13896
13897 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13898
13899         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13900
13901         * src/SDCCglue.h: add definition for printIvalChar()
13902
13903 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13904
13905         * src/SDCCast.c: fix #498138 by Johan
13906
13907         * src/SDCCglue.c: fix #498138 by Johan
13908
13909 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13910
13911         * support/regression/Makefile: fix clean
13912
13913         * support/regression/ports/ds390/support.c: fix transmission of last character
13914
13915 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13916
13917         * /sdcc/src/ds390/gen.c:
13918         a) improved computing address of stack variable
13919         b) took out some #if 0 code
13920         c) improved parmBytes adjustment
13921         d) improved genPlusIncr & genMinusIncr
13922         e) genCmp could generate bad code (when left assigned to DPTR)
13923         f) Fixed bug in hasInc
13924
13925         * /sdcc/src/ds390/ralloc.c:
13926         a) packRegsForSupport could mess up live information (Fixed)
13927         b) packRegsDPTRuse could be incorrect for left & right shift
13928
13929         * /sdcc/src/mcs51/ralloc.c:
13930         packRegsForSupport could mess up the live information (Fixed)
13931
13932         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13933
13934         * /sdcc/src/SDCCast.c:
13935         can reverse a loop even if function call is present as long
13936         as the loop control variable is local & is not passed as parameter
13937
13938 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13939
13940         * /sdcc/ChangeLog: *** empty log message ***
13941
13942         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13943         More builtin function additions for TININative
13944
13945         * /sdcc/src/ds390/ralloc.c:
13946         Had broken the regression testsuite
13947
13948         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13949
13950         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13951         Added funcattr hasStackParms will be set for reentrant functions when there
13952         are paramteres on the stack, this helps in minimizing frame pointer generation
13953         typeFromStr can handle function pointers now
13954
13955         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13956         *** empty log message ***
13957
13958 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13959
13960         * /src/ds390/gen.c, /src/ds390/main.c:
13961         More builtin function additions for TININative
13962
13963         * /src/ds390/ralloc.c:
13964         Had broken the regression testsuite
13965
13966         * /src/SDCCast.c: Fixed a bug in dumptree
13967
13968         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13969         Added funcattr hasStackParms will be set for reentrant functions when there
13970         are paramteres on the stack, this helps in minimizing frame pointer generation
13971         typeFromStr can handle function pointers now
13972
13973         * /doc/builtins.txt, /doc/TININative.txt:
13974         *** empty log message ***
13975
13976
13977 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13978
13979         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13980         ALPHA version for -mTININative
13981
13982         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13983         updated to reflect changes in the port structure
13984
13985         * /src/port.h:
13986         added function do_assemble (similar to do_link) if non-null this function
13987         will be called to do assembly (-mTININative) requires a multi command
13988         assembly
13989         added function genAssemblerEnd will be called to generate assembler Epilogue
13990
13991         * /src/SDCCsymt.c:
13992         added _JavaNative to debug info printing
13993
13994         * /src/SDCCmain.c: added option --tini-libid
13995         added port->do_assemble function (-mTININative) has a multi command assemble
13996
13997         * /src/SDCCglue.c: Disabled "constExpr" check
13998         added port->genAssemblerEnd function
13999
14000         * /src/SDCCglobl.h: Added option --tini-libid value
14001
14002         * /src/SDCCast.h:
14003         tookout optimizeCompare from the header (has no external references)
14004
14005         * /src/SDCCast.c: made one more function "static"
14006
14007 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
14008
14009         * src/z80/mappings.i: Added z80asm support.
14010
14011         * src/z80/main.c: Added z80asm support on --asm=z80asm
14012
14013         * src/z80/gen.c: Fixed asm portability issues.
14014
14015         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
14016
14017         * src/SDCCglue.c (printExterns): Added global/extern split.
14018
14019 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
14020
14021         * support/regression/Makefile: added test for mcs51 model large
14022
14023         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
14024
14025         * support/regression/ports/gbz80/spec.mk: added -mgbz80
14026
14027 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
14028
14029         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
14030
14031 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
14032
14033         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
14034
14035         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
14036
14037 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
14038
14039         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
14040
14041         * support/regression/tests/simplefloat.c: Port to mcs51.
14042
14043 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
14044         * support/regression/tests/bug-485362.c: Added.
14045
14046         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
14047
14048         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
14049
14050         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
14051
14052         * src/z80/gen.c (aopDump): Added a dump function.
14053
14054 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
14055         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
14056
14057         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
14058
14059         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
14060
14061         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
14062
14063         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
14064
14065         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
14066
14067         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
14068
14069         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
14070
14071         * support/regression/ports/ds390/support.c: Use tinibios.
14072
14073         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
14074
14075 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
14076
14077         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
14078         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
14079
14080         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
14081
14082         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
14083
14084 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
14085
14086         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
14087
14088         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
14089         (packRegsForIYUse): Created and optimised.
14090
14091 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14092
14093         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
14094 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
14095
14096         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
14097
14098         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
14099
14100         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
14101
14102 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14103
14104         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
14105
14106         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
14107
14108 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14109
14110         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
14111
14112         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
14113
14114         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
14115
14116 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
14117
14118         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
14119         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
14120         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
14121
14122         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
14123
14124         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
14125         (genNotFloat): Added.
14126         (genUminusFloat): Added.
14127
14128         * device/lib/z80/Makefile: Added floating pt stubs.
14129
14130         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
14131
14132         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
14133
14134         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
14135
14136 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
14137
14138         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
14139
14140         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
14141
14142         * sdcc/support/regression/Makefile: Add port ds390.
14143
14144         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
14145
14146         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
14147
14148         * sdcc/support/regression/ports/ds390/spec.mk: Added.
14149
14150         * sdcc/support/regression/ports/ds390/support.c: Added.
14151
14152         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
14153
14154         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
14155
14156         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
14157
14158 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14159
14160         * device/include/malloc.h: Added z80 and gbz80 support.
14161
14162         * device/lib/gbz80/heap.s: Added.
14163
14164         * device/lib/z80/heap.s: Added.
14165
14166         * device/lib/malloc.c: Added z80 and gbz80 support.
14167
14168         * support/regression/tests/malloc.c (testMalloc): Added.
14169
14170         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
14171
14172         * support/regression/tests/bug-478094.c: Added.
14173
14174         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
14175
14176 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
14177
14178         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
14179
14180         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
14181
14182         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
14183
14184         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
14185
14186         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
14187
14188 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
14189
14190         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
14191
14192 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
14193
14194         * support/regression/tests/bug-477927.c: Added.
14195
14196         * src/z80/peeph.def: Added minor rules.
14197
14198         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14199
14200         * src/z80/peeph.def: Added jump optimisation modification.
14201
14202 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14203
14204         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14205
14206 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14207
14208         * support/regression/tests/funptrs.c: Added.
14209
14210 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14211
14212         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14213
14214 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14215
14216         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14217
14218         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14219
14220         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14221         (movLeft2ResultLong): Created.
14222
14223         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14224         (joinPushes): Added.  Joins two char pushes into a word push.
14225
14226 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14227
14228         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14229
14230         * support/makebin/Makefile (install): Added creation of dest dir.
14231
14232 2001-10-24 Karl Bongers <karl AT turbobit.com>
14233
14234         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14235
14236 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14237
14238         * src/z80/ralloc.c: Turned off faulty pack for one use.
14239
14240         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14241
14242         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14243
14244 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14245
14246         * support/regression/Makefile: Improved clean
14247
14248         * support/regression/ports/gbz80/spec.mk: Added clean
14249
14250         * support/regression/ports/host/spec.mk: Added clean
14251
14252         * support/regression/ports/z80/spec.mk: Added clean
14253
14254         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14255
14256         * support/regression/ports/mcs51/timeout.c: little improvements
14257
14258 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14259
14260         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14261
14262         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14263
14264         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14265
14266 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14267
14268         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14269
14270         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14271
14272 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14273         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14274
14275         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14276
14277         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14278
14279         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14280
14281         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14282
14283         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14284
14285         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14286
14287         * support/regression/tests/longor.c: Added.
14288
14289 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14290
14291         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14292
14293         * as/mcs51/aslink.h: define PATH_MAX
14294
14295         * as/mcs51/asm.h: define PATH_MAX
14296
14297         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14298
14299         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14300
14301         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14302
14303         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14304
14305         * src/SDCCglobl.h: define PATH_MAX
14306
14307         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14308
14309         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14310
14311 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14312
14313         * src/z80/gen.c (gencjneshort): Fixed
14314
14315         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14316
14317 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14318
14319         * support/regression/tests/bug-469671.c: Added.
14320
14321         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14322
14323 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14324
14325         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14326
14327         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14328
14329 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14330
14331         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14332
14333         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14334
14335         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14336
14337         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14338
14339         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14340
14341         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14342
14343         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14344
14345 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14346
14347         * 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.
14348
14349         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14350
14351         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14352
14353 2001-10-07    <johan AT FRIJA>
14354
14355         * device/lib/gets.c (gets): fixed the return value.
14356
14357 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14358         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14359
14360         * 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.
14361
14362         * 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.
14363
14364         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14365
14366         * src/pic/gen.c: Removed Safe_strdup.
14367
14368         * configure.in: Added option to enable libgc support.
14369
14370         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14371         (bitVectUnion): Optimised.
14372         (bitVectIntersect): Optimised.
14373         (bitVectBitsInCommon): Optimised.
14374         (bitVectCplAnd): Optimised.
14375
14376         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14377
14378 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14379
14380         * src/SDCCmain.c: distinguish between assembler debug and plain options
14381
14382         * src/avr/main.c:   remove standard assembler options
14383
14384         * src/ds390/main.c: remove standard assembler options
14385
14386         * src/mcs51/main.c: remove standard assembler options
14387
14388         * src/port.h: removed "PENDING" comment
14389
14390 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14391
14392         * src/device/lib/_mulint.c  : new, with assember functions
14393
14394         * src/device/lib/_mullong.c : new, with assember functions
14395
14396         * src/device/lib/_divuint.c : with assember functions
14397
14398         * src/device/lib/_divsint.c : with assember functions
14399
14400         * src/device/lib/_divulong.c: with assember functions
14401
14402         * src/device/lib/_divslong.c: with assember functions
14403
14404         * src/device/lib/_moduint.c : with assember functions
14405
14406         * src/device/lib/_modsint.c : with assember functions
14407
14408         * src/device/lib/_modulong.c: with assember functions
14409
14410         * src/device/lib/_modslong.c: with assember functions
14411
14412         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14413
14414         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14415
14416         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14417                                       replaced _mululong.c and _mulslong.c by _mullong.c
14418
14419 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14420
14421         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14422
14423 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14424
14425         * src/SDCCglue.c: test, if win32api is available for MINGW
14426
14427 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14428
14429         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14430         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14431         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14432         * support/regression/ports/host/spec.mk: removed GENERIC
14433         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14434         * support/regression/ports/z80/spec.mk: removed GENERIC
14435
14436 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14437
14438         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14439
14440         * support/regression/tests/bug-467035.c: Created.
14441
14442 2001-10-01    <johan AT FRIJA>
14443
14444         * src/SDCC.y: fixed bug #466586 part 1
14445
14446 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14447
14448         * SDCCicode.c: z80 has no generic pointers
14449         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14450
14451 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14452
14453         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14454
14455 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14456
14457         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14458
14459         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14460
14461 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14462
14463         * configure.in: Fixed up so that ucsim is only configured once.
14464
14465         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14466
14467         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14468         (getPathDifference): As above.
14469
14470         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14471
14472         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14473
14474 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14475         * .version: Updated to 2.3.1
14476
14477         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14478         Added copyright header.
14479
14480         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14481         (assemble): Added support for macro based assembler commands.
14482         (linkEdit): Added support for macro based linker commands.
14483         (preProcess): Changed the pre-processor to use macros.
14484         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14485         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14486
14487         * device/lib/z80/crt0.s: Added module name for debugging.
14488
14489 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14490
14491         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14492
14493         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14494
14495         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14496
14497         * src/Makefile.in: Added SDCCmacro and SDCCutil
14498
14499 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14500
14501         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14502
14503 2001-09-16    <johan AT FRIJA>
14504
14505         * 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.
14506
14507 2001-09-15    <johan AT FRIJA>
14508
14509         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14510         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14511
14512 2001-09-11    <johan AT FRIJA>
14513
14514         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14515
14516 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14517
14518         * support/regression/tests/bug-460444.c: Added test case.
14519
14520         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14521         (genCast): Added justification for all of the asserts.
14522
14523 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14524
14525         * support/regression/support.c: _xdata replaced by xdata
14526
14527         * support/regression/spec.mk: removed _generic
14528
14529 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14530
14531         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14532
14533         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14534         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14535
14536         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14537
14538         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14539
14540         * support/regression/tests/bug-460010.c: Added test case.
14541
14542         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14543
14544 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14545
14546         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14547
14548         * support/regression/testfwk.c: removed workaround for bug #436344
14549
14550         * support/regression/tests/bp.c: use less memory with mcs51
14551
14552         * support/regression/tests/bug-441448.c: use less memory
14553
14554         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14555
14556         * support/regression/collate-results.py: typo
14557
14558 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14559
14560         * support/regression/tests/fetchoverlap.c: Added new test case.
14561
14562         * support/regression/tests/bp.c: Added new test case.
14563
14564         * support/regression/tests/bug-448984.c: Added new test case.
14565
14566         * support/regression/tests/pow2shifts.c: Added new test case.
14567
14568         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14569         (genlshTwo): Fixed right shift for count > 8.
14570
14571         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14572
14573 2001-09-08    <johan AT FRIJA>
14574
14575         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14576
14577 2001-09-07    <johan AT FRIJA>
14578
14579         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14580
14581         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14582
14583 2001-09-06    <johan AT FRIJA>
14584
14585         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14586         * bernhard noted me at this: "() equals to (void)" (1.38)
14587
14588 2001-09-05    <johan AT FRIJA>
14589
14590         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14591
14592 2001-09-04    <johan AT FRIJA>
14593
14594         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14595
14596
14597 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14598
14599         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14600
14601 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14602
14603         * link/z80/aslink.h: Fixed path for PATH_MAX
14604
14605 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14606
14607         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14608
14609         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14610
14611         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14612
14613         * 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.
14614
14615 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14616
14617         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14618         (genCmp): Fixed up genCmp for the GB with longs.
14619
14620         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14621
14622         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14623
14624         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14625
14626         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14627
14628 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14629
14630         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14631
14632 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14633
14634         * 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.
14635
14636         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14637
14638 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14639
14640         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14641
14642         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14643
14644 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14645
14646   * sim/ucsim/configure:    little improvement of Cygwin-detection
14647   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14648   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14649   * support/regression/tests/bug-221100.c: small changes for mcs51
14650   * support/regression/tests/bug-221168.c: small changes for mcs51
14651   * support/regression/tests/bug-227710.c: small changes for mcs51
14652   * support/regression/tests/staticinit.c: small changes for mcs51
14653   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14654   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14655   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14656
14657 $Revision$