* as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
[fw/sdcc] / ChangeLog
1 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
4           (main): added option -i,
5           (asmbl, case S_INCL): use search_path_fopen,
6           mostly from patch 1579668 by Peter Miller, thanks
7         * src/z80/main.c: fixed typo --callee-saves-bc
8         * device/include/mcs51/compiler.h: added sfrword for Tasking
9
10 2007-04-20 Borut Razem <borut.razem AT siol.net>
11
12         * src/z80/main.c: replaced reserved keyword asm with asmblr
13
14 2007-04-19 Borut Razem <borut.razem AT siol.net>
15
16         * src/port.h: use const poiters to strings
17         * src/SDCCargs.h: declared getStringArg() and getIntArg()
18         * src/pic16/main.c: include SDCCargs.h
19         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
20           const char, since the strings are dynamically allocated
21         * src/SDCCmain.c: options.code_seg and options.const_seg are
22           dynamically allocated; check port specific command line options
23           before the general ones
24         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
25
26 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
27
28         * device/include/ds400rom.h,
29         * device/lib/ds390/lcd390.c,
30         * device/lib/ds390/memcpyx.c,
31         * device/lib/ds390/rtc390.c,
32         * device/lib/ds400/ds400rom.c,
33         * device/lib/ds400/memcpyx.c,
34         * device/lib/hc08/_ret.c: more replacements of keywords with their
35           double underscore equivalents
36         * device/lib/ds390/Makefile.in,
37         * device/lib/ds400/Makefile.in,
38         * device/lib/gbz80/Makefile.in,
39         * device/lib/hc08/Makefile.in,
40         * device/lib/mcs51/Makefile.in,
41         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
42
43 2007-04-17 Borut Razem <borut.razem AT siol.net>
44
45         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
46           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
47           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
48           to --fverbose-asm, to be gcc'ish
49
50 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
51
52         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
53
54 2007-04-17 Borut Razem <borut.razem AT siol.net>
55
56         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
57         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
58           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
59           with their double underscore equivalent
60
61 2007-04-14 Borut Razem <borut.razem AT siol.net>
62
63         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
64           source"
65
66 2007-04-13 Borut Razem <borut.razem AT siol.net>
67
68         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
69           C99 standard
70         * device/examples/serialcomm/windows/serial.[ch],
71           device/examples/serialcomm/windows/test_serialcomm.cpp:
72           updated by Bela Torok
73         * device/examples/serialcomm/windows/serialcomm.dsw,
74           device/examples/serialcomm/windows/serialcomm.dsp: added
75
76 2007-04-13 Jan Waclawek <wek AT efton.sk>
77
78         * doc/sdccman.lyx: additions and changes at various places
79           (submitted as #1697136).
80           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
81
82 2007-04-10 Borut Razem <borut.razem AT siol.net>
83
84         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
85           LyX file format changed to 245
86         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
87           "FreeWare" replaced with "free open source"
88
89 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
90
91         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
92
93 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
94
95         * device/include/pic16/pic18fregs.h,
96         * device/lib/_bp.c,
97         * device/lib/_decdptr.c,
98         * device/lib/_divsint.c,
99         * device/lib/_divslong.c,
100         * device/lib/_divuint.c,
101         * device/lib/_divulong.c,
102         * device/lib/_fs2schar.c,
103         * device/lib/_fs2sint.c,
104         * device/lib/_fs2slong.c,
105         * device/lib/_fs2uchar.c,
106         * device/lib/_fs2uint.c,
107         * device/lib/_fs2ulong.c,
108         * device/lib/_fsadd.c,
109         * device/lib/_fscmp.c,
110         * device/lib/_fsdiv.c,
111         * device/lib/_fseq.c,
112         * device/lib/_fsget1arg.c,
113         * device/lib/_fsget2args.c,
114         * device/lib/_fsgt.c,
115         * device/lib/_fslt.c,
116         * device/lib/_fsmul.c,
117         * device/lib/_fsneq.c,
118         * device/lib/_fsnormalize.c,
119         * device/lib/_fsreturnval.c,
120         * device/lib/_fsrshift.c,
121         * device/lib/_fssub.c,
122         * device/lib/_fsswapargs.c,
123         * device/lib/_gptrget.c,
124         * device/lib/_gptrgetc.c,
125         * device/lib/_gptrput.c,
126         * device/lib/_logexpf.c,
127         * device/lib/_modsint.c,
128         * device/lib/_modslong.c,
129         * device/lib/_moduint.c,
130         * device/lib/_modulong.c,
131         * device/lib/_mulint.c,
132         * device/lib/_mullong.c,
133         * device/lib/_schar2fs.c,
134         * device/lib/_ser.c,
135         * device/lib/_setjmp.c,
136         * device/lib/_sint2fs.c,
137         * device/lib/_slong2fs.c,
138         * device/lib/_spx.c,
139         * device/lib/_uchar2fs.c,
140         * device/lib/_uint2fs.c,
141         * device/lib/_ulong2fs.c,
142         * device/lib/asincosf.c,
143         * device/lib/atanf.c,
144         * device/lib/calloc.c,
145         * device/lib/ds390/tinibios.c,
146         * device/lib/ds400/tinibios.c,
147         * device/lib/expf.c,
148         * device/lib/free.c,
149         * device/lib/hc08/_mulint.c,
150         * device/lib/logf.c,
151         * device/lib/malloc.c,
152         * device/lib/printf_fast.c,
153         * device/lib/printf_tiny.c,
154         * device/lib/printfl.c,
155         * device/lib/realloc.c,
156         * device/lib/ser_ir.c,
157         * device/lib/serial.c,
158         * support/regression/tests/libmullong.c: replaced all special keywords
159           with their double underscore equivalent
160         * support/regression/ports/mcs51-xstack-auto/spec.mk,
161         * device/lib/Makefile.in: compile libs with --std-c99 instead of
162           --std-sdcc99
163         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
164           (genRet): if the bit-symbol is ruonly it already is in the carry
165         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
166         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
167         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
168           type UCHAR if dest is not bit
169
170 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
171
172         * device/include/math.h,
173         * device/lib/cotf.c,
174         * device/lib/expf.c,
175         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
176
177 2007-04-01 Borut Razem <borut.razem AT siol.net>
178
179         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
180           fixed bug #1692042: input buffer overflow...scanner uses REJECT
181         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
182           gcc_unreachable() called internal_error()...
183
184 2007-03-30 Raphael Neider <rneider AT web.de>
185
186         * src/pic/ralloc.c (isData): suppress garbage debug output4/1/2007 6:28PM
187
188 2007-03-28 Borut Razem <borut.razem AT siol.net>
189
190         * doc/sdccman.lyx:
191           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
192           is developed, built and used worldwide, and the word "night" doesn't
193           make any sense.
194
195 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * device/include/mcs51/C8051F360.h: new, added
198         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
199
200 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
201
202         * src/SDCC.y (declaration_specifiers, function_specifier),
203         * support/Util/SDCCerr.c,
204         * support/Util/SDCCerr.h,
205         * src/SDCCsymt.h,
206         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
207           inline keyword
208         * src/SDCCmem.c (deallocParms),
209         * src/SDCCast.c: support for function inlining, not quite complete
210         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
211           'restrict' qualifier
212
213 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
214
215         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
216           (saveRBank, unsaveRBank): don't save bits,
217           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
218         * support/regression/tests/bug1535242.c: new, added
219         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
220           thanks Alexey Shamrin <shamrin AT gmail.com>,
221           made assert.h header ANSI compliant (added a check for NDEBUG macro,
222           removed header guard)
223         * .version,
224         * sdcc.spec: bumped version to 2.6.5
225         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
226
227 2007-03-22 Borut Razem <borut.razem AT siol.net>
228
229         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
230           fixed bug #1653671: sdcdb integration into ddd is broken
231
232 2007-03-22 Raphael Neider <rneider AT web.de>
233
234         * src/pic/gen.c (popGetExternal): augmented to also create references
235           to external variables (not only labels),
236           (genCall): comment on plan to reduce PAGESEL overhead,
237           (genFunction, genEndFunction): also save/restore FSR around interrupt
238           handling code, removed lots of unused code
239           (genDivOneByte): release acquired temp register
240         * src/pic/glue.c (pic14createInterruptVect): adadt to new signature
241           of popGetExternal
242         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
243           for registers that need to be saved during interrupts (FSR, STATUS,
244           PCLATH; W needs special handling), currently only FSR is used
245
246 2007-03-22 Raphael Neider <rneider AT web.de>
247
248         * device/include/pic/pic14devices.txt: 16f688 has only one config word
249
250 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
251
252         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
253
254 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
255
256         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
257
258 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
259
260         * as/link/aslink.h: added LKOBJEXT
261         * as/link/hc08/link_hc08.dsp,
262         * as/link/hc08/Makefile.bcc,
263         * as/link/hc08/Makefile.in,
264         * as/link/mcs51/aslink.dsp,
265         * as/link/mcs51/Makefile.bcc,
266         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
267         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
268         * as/link/lkaomf51.c: merged and moved
269         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
270         * as/link/z80/lkdata.c,
271         * as/link/lkdata.c: merged and moved
272         * as/link/hc08/lkmain.c,
273         * as/link/mcs51/lkmain.c: cosmetic changes
274         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
275         * as/link/lklex.c: use LKOBJEXT
276         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
277           ANSI-fied functions, removed bubble-sorts
278         * as/link/z80/lksym.c           as/link/lksym.c: merged,
279           ANSI-fied functions
280         * as/link/z80/linkgbz80.dsp,
281         * as/link/z80/linkz80.dsp,
282         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
283           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
284         * as/link/z80/lkhead.c,
285         * as/link/z80/lklex.c: deleted
286         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
287         * as/link/z80/lkmain.c: added copyfile()
288
289 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
290
291         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
292
293 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
294
295         * device/lib/_strlen.c: assembler version for mcs51
296
297 2007-03-13 Raphael Neider <rneider AT web.de>
298
299         * device/include/pic16/pic18f2221.h,
300         * device/include/pic16/pic18f2321.h,
301         * device/include/pic16/pic18f2331.h,
302         * device/include/pic16/pic18f4221.h,
303         * device/include/pic16/pic18f4321.h,
304         * device/include/pic16/pic18f4331.h: fixed config byte location names
305         * support/scripts/inc2h-pic16.pl: removed debug output, emit
306           consistently named config byte locations
307
308 2007-03-13 Borut Razem <borut.razem AT siol.net>
309
310         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
311           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
312           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
313           as/link/z80/Makefile.in, as/z80/Makefile.in:
314           introduced LDFLAGS
315
316 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
317
318         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
319         * device/lib/printf_large.c: pointer was converted to generic
320         pointer for mcs51 models other than model-small (Maarten noticed)
321
322 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
323
324         * device/include/mcs51/ADuC84x.h: Added.
325
326 2007-03-10 Borut Razem <borut.razem AT siol.net>
327
328         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
329           fixed RFE #1624219: double backslashes in filenames;
330           functions hexEscape(), octalEscape() and copyStr() moved from
331           SDCCval.c to SDCCutil.c and made them glovbally available
332
333 2007-03-09 Borut Razem <borut.razem AT siol.net>
334
335         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
336           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
337           1673361: Missaligned comments in output files
338
339 2007-03-09 Raphael Neider <rneider AT web.de>
340
341         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
342
343 2007-03-09 Raphael Neider <rneider AT web.de>
344
345         * src/pic/gen.c,
346         * src/pic/glue.c,
347         * src/pic/ralloc.c: suppress undesired debug output
348         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
349
350 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
351
352         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
353
354 2007-03-07 Borut Razem <borut.razem AT siol.net>
355
356         * device/lib/pic16/libdev/pic18f[24][34]31.c:
357           search include files in the current directory
358
359 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
360
361         * src/SDCCglue.c (emitMaps, glue),
362         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
363           absolute xdata
364         * support/regression/tests/absolute.c: added xdata test
365
366 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
367
368         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
369           added condition to macro, fixes bug 1666080
370
371 2007-03-02 Raphael Neider <rneider AT web.de>
372
373         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
374
375 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
376
377         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
378         be cleared. Unconditionally set __XPAGE
379         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
380
381 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
382
383         * src/SDCCglobl.h,
384         * src/SDCCmain.c,
385         * src/mcs51/gen.c,
386         * src/mcs51/rtrack.c,
387         * src/ds390/gen.c,
388         * doc/sdccman.lyx: added --no-gen-comments
389         * src/mcs51/peeph.def: added 192.b, disabled 185
390
391 2007-02-25 Raphael Neider <rneider AT web.de>
392
393         * src/pic16/gen.c (genCast): fixed typo
394         * device/lib/pic16/Makefile.subdir: only install existing files
395         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
396
397 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
398
399         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
400         * device/lib/mcs51/crtclear.asm,
401         * device/lib/mcs51/crtxclear.asm: renumbered labels
402         * device/lib/mcs51/Makefile.in: added crtcall.asm
403         * doc/sdccman.lyx: documented mcs51 crt* library startup code
404         * src/mcs51/gen.c (movc): removed,
405           (aopGet, genPlusBits): clear a after loading the carry (possibly from
406             acc.x or psw.x),
407           (toCarry, genSend, genRet): added function toCarry,
408           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
409           (assignBit, genAssign, genCast): added function assignBit
410         * src/mcs51/Makefile.bcc: added rtrack.c
411         * src/mcs51/ralloc.h: made valueKnown a bitfield
412         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
413           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
414           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
415         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
416         * src/z80/gen.c: added AOP_IS_PAIRPTR,
417           (_pop): only pop valid pairs, see gencjneshort,
418           (gencjneshort): return pair that still needs to be popped, restructured,
419           (gencjne, genCmpEq): call _pop
420
421 2007-02-23 Raphael Neider <rneider AT web.de>
422
423         * device/include/pic/pic14devices.txt: 16f684 has only one config word
424
425 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
426
427         * device/include/mcs51/P89LPC925.h: Added.
428
429 2007-02-18 Raphael Neider <rneider AT web.de>
430
431         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
432
433 2007-02-17 Borut Razem <borut.razem AT siol.net>
434
435         * support/cpp2/directives.c, support/cpp2/version.c:
436           synchronized with GCC CPP 4.1.2
437
438 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
439
440         * src/mcs51/rtrack.h,
441         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
442           by checking the strings passed by emitcode() to the assembler.
443           Feel free to change. This in part addresses RFE #482179.
444           Set environment variable SDCC_RTRACK to enable.
445         * src/mcs51/gen.c: inserted hooks
446         * src/mcs51/ralloc.h: added two members to struct regs
447         * support/regression/tests/regtrack.c: added
448
449 2007-02-14 Borut Razem <borut.razem AT siol.net>
450
451         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
452         * Makefile.in: applied patch from Makefile related part of
453           #1469393: Compiler does not initialize static data
454
455 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
456
457         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
458           for better fix of bug 1273984, compiles pic16 rand.c
459
460 2007-02-12 Borut Razem <borut.razem AT siol.net>
461
462         * src/pic16/main.c: fixed pic16 standard library directory bug
463
464 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
465
466         * src/hc08/gen.c (genSwap): fix swap regression test
467
468 2007-02-10 Borut Razem <borut.razem AT siol.net>
469
470         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
471           with same scope
472         * support/regression/tests/bug-1654060.c: added regression test for
473           #1654060
474
475 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
476
477         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
478         bit moves in return statement
479
480 2007-02-09 Borut Razem <borut.razem AT siol.net>
481
482         * src/SDCC.y: fixed bug #1654060 typedef within function causes
483           syntax error
484
485 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
486
487         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
488         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
489
490 2007-02-07 Raphael Neider <rneider AT web.de>
491
492         * src/pic16/devices.inc,
493         * device/include/pic16/pic18fregs.h,
494         * device/include/pic16/pic18f[24][34]31.h,
495         * device/lib/pic16/libdev/pic18f[24][34]31.c,
496         * device/lib/pic16/pics.all: added 18f[24][34]31 family
497         * device/lib/pic16/libio/i2c.ignore: do not build i2c
498
499 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
500
501         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
502           can this have lived here for so many years?
503         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
504           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
505         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
506
507 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
508
509         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
510         appended by loop induction must be at the very end of the eBBlock
511
512 2007-02-05 Kevin Vigor
513
514         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
515
516 2007-02-05 Borut Razem <borut.razem AT siol.net>
517
518         * support/regression/fwk/lib/timeout.c: native WIN32 port,
519           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
520
521 2007-02-03 Borut Razem <borut.razem AT siol.net>
522
523         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
524           applied patch #1646602 option to set default signedness of char to
525           unsigned, added -funsigned-char command line option,
526           thanks to Gunther Jehle
527         * device/lib/Makefile.in: added the -f option to rm so it doesn't
528           prompt for file deletion a few hundred times (especially the
529           subversion files, which have ro permissions so it asks for
530           confirmation), thanks to Simon McAuliffe;
531           added {} + option to find in order to remove multiple files from a
532           single rm commad
533
534 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
535
536         * device/include/mcs51/SST89x5xRDx.h: Added.
537
538 2007-02-02 Raphael Neider <rneider AT web.de>
539
540         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
541         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
542
543 2007-02-01 Raphael Neider <rneider AT web.de>
544
545         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
546           config words again
547
548 2007-01-31 Borut Razem <borut.razem AT siol.net>
549
550         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
551           if compiled with GCC. Thanks to Raphael Neider
552
553 2007-01-31 Raphael Neider <rneider AT web.de>
554
555         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
556             operand names, handles name and (name + n) for all n,
557           (sameBank): restructured, also check bank allocation policy,
558         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
559           (pic14_operandsAllocatedInSameBank): check whether to operands
560             will be allocated into the same bank (i.e., section) to reduce
561             BANKSEL overhead, queried from pcode.c:sameBank,
562           (pic14printLocals): reintroduced clustering registers into a single
563             section: all compiler generated symbols will now reside in one
564             bank (per file), reducing BANKSEL overhead and code size,
565           (showAllMemmaps): use local dbuf where possible
566
567 2007-01-29 Raphael Neider <rneider AT web.de>
568
569         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
570           (call_libraryfunc): retrieve/create symbol and mark as used,
571           (genFunction): mark defined functions as non-extern and add again
572            to code memmap for later output
573         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
574           (pic14printLocals): reworked for new symbol emission,
575           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
576           showAllMemmaps): reworked symbol output using dbufs, added handling
577             of string literals (still incomplete),
578           (picglue): removed symbol emission, moved into showAllMemmaps,
579           (emitSymbolSet): new workhorse for symbol output,
580           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
581
582 2007-01-29 Borut Razem <borut.razem AT siol.net>
583
584         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
585           component contains the extension separator.
586
587 2007-01-28 Borut Razem <borut.razem AT siol.net>
588
589         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
590           on WIN32
591         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
592           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
593           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
594           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
595           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
596           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
597           src/z80/gen.c, support/Util/MySystem.c:
598           accept slash and backslash as directory separator on WIN32 and
599           Cygwin ports
600
601 2007-01-28 Raphael Neider <rneider AT web.de>
602
603         * src/pic16/devices.inc,
604         * device/include/pic16/pic18f[24][23]21.h,
605         * device/include/pic16/pic18fregs.h,
606         * device/lib/pic16/libdev/pic18f[24][23]21.c,
607         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
608         * device/lib/pic16/libio/adc.ignore,
609         * device/lib/pic16/libio/i2c.ignore,
610         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
611           family, as gputils do not yet support the devices
612         * device/lib/pic16/Makefile.subdir: ignore errors on install
613         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
614           headers and libraries from gputils .inc files
615
616 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
617
618         * doc/sdccman.lyx: add printf_fast_f precision limitation note
619
620 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
621
622         * doc/sdccman.lyx: add printf benchmarks
623
624 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
625
626         * device/lib/printf_fast.c: fix %c, char promoted to int
627         * device/lib/printf_tiny.c: fix %c, char promoted to int
628
629 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
630
631         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
632
633 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
634
635         * support/regression/tests/swap.c: 64 bit hosts failed
636         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
637
638 2007-01-25 Raphael Neider <rneider AT web.de>
639
640         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
641           based on absolute register address, patch by Alex Blond
642
643 2007-01-22 Raphael Neider <rneider AT web.de>
644
645         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
646           emitted, do not emit them again...
647
648 2007-01-22 Raphael Neider <rneider AT web.de>
649
650         * src/regression/bank1.c, src/regression/compare6.c,
651           src/regression/add.c: cosmetic changes
652         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
653         * src/pic/gen.c: fixed global zero and one,
654           (aopForSym): removed unued code,
655           (aopGet): assert aop is defined, check and use `index' of
656             pCodeImmd operands (fixes #1630908),
657         * src/pic/pcode.c (get_op): added output of generic pointer tag,
658           (register_reassign): prevent accidental register unification,
659           (ReuseReg): cosmetic changes (also above)
660         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
661           pic14emitStaticSeg): do not emit initialized data,
662           (printIval*): replaced with working versions,
663           (pic14createInterruptVect,picglue): use idata for initialized data,
664             now init data should work in all modules (not only main()),
665         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
666
667 2007-01-21 Borut Razem <borut.razem AT siol.net>
668
669         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
670           use -fPIC or -fpic if they are supported and not ignored
671         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
672         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
673
674 2007-01-20 Borut Razem <borut.razem AT siol.net>
675
676         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
677           implemented RFE #1470316: allow "$" in variable names
678
679 2007-01-20 Raphael Neider <rneider AT web.de>
680
681         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
682
683 2007-01-20 Raphael Neider <rneider AT web.de>
684
685         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
686         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
687         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
688         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
689           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
690         * device/lib/pic/libdev/pic*.c,
691         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
692         * device/lib/pic/libdev/Makefile.in: show progress
693
694 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
695
696         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
697         * support/scripts/sdcc_cygwin_mingw32,
698         * support/scripts/sdcc_mingw32,
699         * support/scripts/build.mak: replaced --datadir by --datarootdir for
700         conformance with autoconf 2.6
701
702 2007-01-19 Raphael Neider <rneider AT web.de>
703
704         * src/pic/device.c (register_map): fixed list construction
705         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
706           (genMod): removed case for genModbits,
707           (genModbits): removed as now unused/unimplemented
708         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
709
710 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
711
712         * support/regression/tests/swap.c: added in response to #1638622
713         * doc/sdccman.lyx: synced version, minor changes
714
715 2007-01-18 Borut Razem <borut.razem AT siol.net>
716
717         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
718           thanks to Gunther Jehle
719         * src/asm.c: don't die if the file drfined in #line couldn't be opened
720         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
721           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
722           use filename in lineno instead.
723         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
724           print the file name in ast_print()
725
726 2007-01-18 Borut Razem <borut.razem AT siol.net>
727
728         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
729           defined in MSVC
730         * src/SDCC.lex: stringLiteral() returns const char pointer,
731           EOF detection in stringLiteral(), fixed asmbuf memory leak,
732           fixed column counting
733         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
734           accept const char pointer as parameter
735         * src/SDCCdwarf2.c: corrected buffer size
736
737 2007-01-17 Borut Razem <borut.razem AT siol.net>
738
739         * support/Util/dbuf_string.c: fixed for amd64
740
741 2007-01-15 Borut Razem <borut.razem AT siol.net>
742
743         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
744           removed terminal symbol ELIPSIS, since it was never generated by the
745           lexer and it was wrongly used in parameter_identifier_list rule
746
747 2007-01-15 Raphael Neider <rneider AT web.de>
748
749         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
750             code page and data banking description
751         * src/pic/genarith.c,
752         * src/pic/gen.h: removed bit arithmetic functions,
753             updated exit(1) to exit(EXIT_FAILURE)
754         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
755         * device/include/pic16/pic18f2455.h,
756         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
757             TRISD and TRISE, fixed/added some bit names
758         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
759         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
760             updated pic18f2455.{c,h} instead of duplicating them
761
762 2007-01-14 Borut Razem <borut.razem AT siol.net>
763
764         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
765           Cannot debug files that contain spaces in the path name
766           by converting spaces in asm file name to underscores
767
768 2007-01-13 Borut Razem <borut.razem AT siol.net>
769
770         * doc/sdccman.lyx: fixed format errors
771
772 2007-01-10 Borut Razem <borut.razem AT siol.net>
773
774         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
775           codeseg/constseg #pragma fail
776         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
777         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
778           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
779           suppoprt/cpp2/sdcpp.[ch]: house cleaning
780
781 2007-01-09 Borut Razem <borut.razem AT siol.net>
782
783         * get rid of diagnistic.[ch], pretty-print.[ch],
784           c-pretty-print.[ch], ... used just for error, warning, ...
785           message formatting
786         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
787           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
788           suppoprt/cpp2/pretty-print.[ch]:
789           removed
790         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
791           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
792           suppoprt/cpp2/sdcpp.dsp:
793           changed
794
795 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
796
797         * device/lib/printf_large.c (output_float): removed recursion,
798           use smaller buffer on stack for mcs51,
799           fixed bug printing 1.96
800         * support/regression/tests/snprintf.c: added test
801
802 2007-01-07 Borut Razem <borut.razem AT siol.net>
803
804         * use dynamic memory buffers instead temporary files
805         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
806           added
807         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
808           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
809           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
810           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
811           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
812           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
813           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
814           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
815           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
816           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
817           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
818           support/Util/dbuf.c, support/Util/dbuf.h:
819           modified
820         * .version, sdcc.spec: bumped version to 2.6.4
821
822 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
823
824         * src/port.h: added TARGET_Z80_LIKE macro
825         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
826           output PSEG location if --xram-loc or --xstack-loc was used
827         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
828
829 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
830
831         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
832         * as/as_z80.dsp,   as/z80/as_z80.dsp,
833         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
834         * sdcc.dsw: moved project files into subdir
835         * as/hc08/as_hc08.dsp,
836         * as/hc08/Makefile.bcc,
837         * as/hc08/Makefile.in,
838         * as/mcs51/Makefile.bcc,
839         * as/mcs51/Makefile.in,
840         * as/z80/Makefile.bcc,
841         * as/z80/Makefile.in,
842         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
843         * as/hc08/asm.h,
844         * as/mcs51/asm.h,
845         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
846         * as/hc08/asmain.c,
847         * as/hc08/assym.c,
848         * as/mcs51/asmain.c,
849         * as/mcs51/assym.c,
850         * as/z80/assym.c: removed include "strcmpi.h"
851         * as/hc08/strcmpi.c,
852         * as/hc08/strcmpi.h,
853         * as/mcs51/strcmpi.c,
854         * as/mcs51/strcmpi.h,
855         * support/Util/strcmpi.c,
856         * support/Util/strcmpi.h: removed files
857         * as/strcmpi.c: added as_strncmpi()
858
859 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
860
861         * sdcc.dsw: Added some dependencies on project config.dsp
862
863 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
864
865         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
866           with [di]ram_start to fix a regresion
867
868 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
869
870         * configure.in: added missing mcs51 in status output
871         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
872         directory
873         * debugger/mcs51/clean.mk (distclean): remove config.h
874         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
875         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
876         options.h, s-options-h and options.c
877         * support/cpp2/clean.mk: unused, removed
878         * Makefile.common.in,
879         * main_in.mk,
880         * as/Makefile.in,
881         * as/hc08/Makefile.in,
882         * as/hc08/clean.mk,
883         * as/mcs51/Makefile.in,
884         * as/mcs51/clean.mk,
885         * as/z80/clean.mk,
886         * as/z80/conf.mk,
887         * as/z80/Makefile.in,
888         * as/z80/clean.mk,
889         * as/link/Makefile.in,
890         * as/link/hc08/Makefile.in,
891         * as/link/hc08/clean.mk,
892         * as/link/mcs51/Makefile.in,
893         * as/link/mcs51/clean.mk,
894         * as/link/z80/Makefile.in,
895         * as/link/z80/clean.mk,
896         * as/link/z80/conf.mk,
897         * debugger/mcs51/Makefile.in,
898         * debugger/mcs51/clean.mk,
899         * device/include/Makefile.in,
900         * device/lib/Makefile.in,
901         * device/lib/mcs51/Makefile.in,
902         * device/lib/pic/Makefile.in,
903         * device/lib/pic/Makefile.common.in,
904         * device/lib/pic/Makefile.subdir,
905         * device/lib/pic/Makefile.rules,
906         * device/lib/pic16/libio/Makefile.in,
907         * device/lib/pic16/Makefile.subdir,
908         * device/lib/pic16/libdev/Makefile.in,
909         * device/lib/pic16/Makefile.rules,
910         * device/lib/pic16/Makefile.common.in,
911         * sim/ucsim/avr.src/Makefile.in,
912         * sim/ucsim/main_in.mk,
913         * sim/ucsim/cmd.src/Makefile.in,
914         * sim/ucsim/doc/Makefile.in,
915         * sim/ucsim/gui.src/Makefile.in,
916         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
917         * sim/ucsim/gui.src/serio.src/Makefile.in,
918         * sim/ucsim/hc08.src/Makefile.in,
919         * sim/ucsim/libltdl/Makefile.in,
920         * sim/ucsim/s51.src/Makefile.in,
921         * sim/ucsim/sim.src/Makefile.in,
922         * sim/ucsim/sim.src/conf.mk,
923         * sim/ucsim/xa.src/Makefile.in,
924         * sim/ucsim/z80.src/Makefile.in,
925         * src/Makefile.in,
926         * src/clean.mk,
927         * src/port.mk,
928         * support/cpp2/Makefile.in,
929         * support/librarian/Makefile.in,
930         * support/librarian/clean.mk,
931         * support/makebin/Makefile.in,
932         * support/makebin/clean.mk,
933         * support/packihx/Makefile.in,
934         * support/regression/Makefile.in,
935         * support/regression/ports/ds390/spec.mk,
936         * support/regression/ports/gbz80/spec.mk,
937         * support/regression/ports/hc08/spec.mk,
938         * support/regression/ports/mcs51/spec.mk,
939         * support/regression/ports/mcs51-large/spec.mk,
940         * support/regression/ports/mcs51-medium/spec.mk,
941         * support/regression/ports/mcs51-xstack-auto/spec.mk,
942         * support/regression/ports/pic14/spec.mk,
943         * support/regression/ports/pic16/spec.mk,
944         * support/regression/ports/mcs51-stack-auto/spec.mk,
945         * support/regression/ports/ucz80/spec.mk,
946         * support/regression/ports/xa51/spec.mk,
947         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
948         adding a slash after $(top_builddir) and/or adding @datarootdir@
949         * configure.in,
950         * debugger/mcs51/configure.in,
951         * device/lib/pic/configure.in,
952         * device/lib/pic16/configure.in,
953         * sim/ucsim/configure.in,
954         * support/cpp2/configure.in,
955         * support/packihx/configure.in: changed AC_PREREQ to 2.60
956         * configure,
957         * debugger/mcs51/configure,
958         * device/lib/pic/configure,
959         * device/lib/pic16/configure,
960         * sim/ucsim/configure,
961         * support/cpp2/configure,
962         * support/packihx/configure: generated with autoconf 2.60
963
964 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
965
966         * as/link/hc08/lkihx.c (newArea),
967         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
968
969 2007-01-02 Borut Razem <borut.razem AT siol.net>
970
971         * doc/sdccman.lyx: documented #pragma sdcc_hash
972         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
973           initialized to 0
974         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
975
976 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
977
978         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
979         empty 'while'-loop to work correctly, see regression test 'while.c'
980         * support/regression/tests/while.c: added
981
982 2007-01-01 Borut Razem <borut.razem AT siol.net>
983
984         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
985           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
986           support/cpp2/libcpp/sdcpp.c:
987           sdcpp specific pragma/directive/option handling moved to sdcpp.c
988         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
989         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
990
991 2006-12-31 Borut Razem <borut.razem AT siol.net>
992
993         * SDCPP synchronized with GCC CPP release version 4.1.1,
994           currently the latest release:
995         * support/cpp2/libcpp, support/cpp2/libcpp/include,
996           support/cpp2/libcpp/include/cpp-id-data.h
997           support/cpp2/libiberty/fopen_unlocked.c
998           support/cpp2/libiberty/md5.c
999           support/cpp2/md5.h
1000           support/cpp2/opt-functions.awk
1001           support/cpp2/opt-gather.awk
1002           support/cpp2/optc-gen.awk
1003           support/cpp2/opth-gen.awk:
1004           added
1005         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
1006           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1007           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1008           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
1009           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
1010           support/cpp2/diagnostic.h, support/cpp2/except.h,
1011           support/cpp2/hwint.h, support/cpp2/input.h,
1012           support/cpp2/intl.h, support/cpp2/move-if-change,
1013           support/cpp2/opts.c, support/cpp2/opts.h,
1014           support/cpp2/output.h, support/cpp2/prefix.c,
1015           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
1016           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
1017           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
1018           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
1019           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
1020           support/cpp2/version.c:
1021           modified
1022         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
1023           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
1024           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
1025           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
1026           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
1027           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1028           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
1029           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
1030           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
1031           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
1032           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
1033           moved
1034         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
1035           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
1036           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
1037           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
1038           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1039           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
1040           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
1041           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
1042           support/cpp2/hashtable.h, support/cpp2/line-map.c,
1043           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
1044           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
1045           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
1046           support/cpp2/system.h:
1047           deleted / moved
1048
1049 2006-12-31 Borut Razem <borut.razem AT siol.net>
1050
1051         * configure.in, configure: fixed bug #1538756: configure dies if bison
1052           and flex are not installed, 2nd try
1053
1054 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1055
1056         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
1057         400.x for better code in RFE 899102
1058
1059 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
1060
1061         * src/SDCCpeeph.c (deadMove),
1062         * src/port.h,
1063         * src/mcs51/peep.h: renamed 'op' by 'reg'
1064         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
1065         (scan4op): small change for removeDeadMove(), added support for
1066         'callee saves' and/or PACLL function calls,
1067         (removeDeadMove): added, removes superflous 'mov r%1,%2',
1068         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
1069         left in new dispatcher mcs51DeadMove()
1070         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
1071         removeDeadMove()
1072         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
1073
1074 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1075
1076         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
1077           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
1078
1079 2006-12-30 Borut Razem <borut.razem AT siol.net>
1080
1081         * support/cpp2/spacs.h: deleted from svn
1082         * configure.in, configure: fixed bug #1538756: configure dies if bison
1083           and flex are not installed
1084
1085 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
1086
1087         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
1088           with this z80 passes printf float test when enabled
1089         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
1090
1091 2006-12-28 Borut Razem <borut.razem AT siol.net>
1092
1093         * support/cpp2/config.in, support/cpp2/configure.in,
1094           support/cpp2/configure, support/cpp2/Makefile.in:
1095           fix for the solaris build
1096
1097 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1098
1099         * src/SDCC.y (type_specifier2, pointer),
1100         * src/SDCCsymt.h,
1101         * src/SDCCsymt.c (mergeSpec, checkSClass),
1102         * support/Util/SDCCerr.c,
1103         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1104         * support/valdiag/valdiag.py: Allow test cases to specify
1105           required language standard
1106         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1107         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1108
1109 2006-12-27 Borut Razem <borut.razem AT siol.net>
1110
1111         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1112         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1113           mbchar removed
1114         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1115           fixed for borland C
1116         * support/cpp2/libiberty/Makefile.bcc: updated
1117         * src/pic16/main.c: fixed #pragma udata handling
1118         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1119
1120 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1121
1122         * src/SDCCpeeph.c: made labelHashEntry global,
1123         made pcDistance, FBYNAME static,
1124         (pcDistance): made static, use isComment and isLabel,
1125         (deadMove): added,
1126         (getLabelRef): added, extracted from labelRefCount(),
1127         (labelRefCount): use new getLabelRef(),
1128         (callFuncByName): made static, added deadMove,
1129         use isComment and isLabel,
1130         (newPeepRule): made static, set isLabel,
1131         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1132         labels from peephole rules,
1133         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1134         when isComment or isLabel is set
1135         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1136         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1137         to make them global
1138         * src/mcs51/peep.h: added
1139         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1140         * src/port.h: added peep->deadMove to port structure
1141         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1142         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1143         deadMove, finally removed no. 1 and 2
1144         * src/mcs51/gen.c,
1145         * src/pic/gen.c,
1146         * src/z80/gen.c,
1147         * src/z80/ralloc.c,
1148         * src/pic16/gen.c,
1149         * src/ds390/gen.c,
1150         * src/hc08/gen.c: mark lines with isComment or isLabel
1151         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1152         * .version,
1153         * sdcc.spec: bumped version to 2.6.3
1154
1155 2006-12-26 Borut Razem <borut.razem AT siol.net>
1156
1157         * support/cpp2/Makefile.in: added dependency on options.h
1158         * configure: regenerated
1159         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1160         * support/cpp2/Makefile.in: added vasprintf.c
1161
1162 2006-12-25 Borut Razem <borut.razem AT siol.net>
1163
1164         * SDCPP synchronized with GCC CPP release version 3.4.6,
1165           the latest release before 4.x:
1166         * support/cpp2/Makefile.in, support/cpp2/config.h,
1167           support/cpp2/configure, support/cpp2/configure.in,
1168           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1169           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1170           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1171           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1172           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1173           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1174           support/cpp2/cpptrad.c, support/cpp2/except.h,
1175           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1176           support/cpp2/hwint.h, support/cpp2/intl.h,
1177           support/cpp2/line-map.c, support/cpp2/line-map.h,
1178           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1179           support/cpp2/output.h, support/cpp2/prefix.c,
1180           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1181           support/cpp2/system.h, support/cpp2/version.c:
1182           modified
1183         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1184           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1185           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1186           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1187           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1188           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1189           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1190           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1191           support/cpp2/move-if-change, support/cpp2/opts.c,
1192           support/cpp2/opts.h, support/cpp2/opts.sh,
1193           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1194           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1195           support/cpp2/win32, support/cpp2/win32/dirent.c,
1196           support/cpp2/win32/dirent.h:
1197           added
1198         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1199         * support/cpp2/sdcpp.h: renamed from sdcc.h
1200         * sdcppinit.c: deleted
1201
1202 2006-12-23 Borut Razem <borut.razem AT siol.net>
1203
1204         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1205           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1206           preproc.c: an other try to fix bug #982435: introduced
1207           -pedantic-parse-number command line option and pedantic_parse_number
1208           pragma
1209
1210 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1211
1212         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1213            BSEG handling,
1214           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1215            corrected overlayed areax addresses, warn about memory overlaps
1216         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1217         * src/avr/main.c,
1218         * src/ds390/main.c,
1219         * src/hc08/main.c,
1220         * src/mcs51/main.c,
1221         * src/pic16/main.c,
1222         * src/pic/main.c,
1223         * src/xa51/main.c,
1224         * src/z80/main.c,
1225         * src/port.h: added xabs_name and iabs_name
1226         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1227           (glue, emitMaps): create and emit maps d_abs and i_abs
1228         * src/SDCCglue.h: cosmetic changes
1229         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1230         * src/SDCCmem.h,
1231         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1232           (allocDefault): put absolute, initialized globals in them
1233         * support/regression/tests/absolute.c: added absolute bdata test
1234         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1235
1236 2006-12-20 Borut Razem <borut.razem AT siol.net>
1237
1238         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1239         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1240           added regression test for bug #982435
1241
1242 2006-12-18 Borut Razem <borut.razem AT siol.net>
1243
1244         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1245         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1246           small cosmetic changes
1247         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1248         * support/regression/tests/bug-1351710.c: added regression test
1249
1250 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1251
1252         * doc/sdccman.lyx: added the long missed iCode table
1253           "<where is figure II?>", added links to wiki
1254
1255 2006-12-17 Borut Razem <borut.razem AT siol.net>
1256
1257         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1258           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1259           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1260           unified table driven pragma handling, pragma argument type checking
1261         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1262           current one - version 1.1.3
1263         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1264
1265 2006-12-13 Raphael Neider <rneider AT web.de>
1266
1267         * src/pic/device.h: removed AssignedMemory structure and macros
1268         * src/pic/device.c: removed global finalMapping (linker assigns
1269             memory locations),
1270           (register_map): add SFRs to remembered memRanges
1271           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1272           assignFixedRegisters,assignRelocatableRegisters): removed,
1273           (setMaxRAM,validAddress): adapted accordingly,
1274           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1275             reasonably sized sharebanks,
1276         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1277           (allDefsOutOfRange): removed unused code,
1278         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1279             handling
1280         * src/pic/pcode.c (register_reassign): removed recursion warning,
1281             fired far too often,
1282         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1283             to use existing pic14_stringInSet() to avoid duplicate symbols,
1284             tidied up the code a bit,
1285           (pic14printLocals): added in symmetry to printExterns, replaces
1286             writeUsedRegs more or less,
1287           (picglue): call new pic14_printLocals(),
1288         * device/include/pic/pic*.h: removed #pragma memmap directives,
1289             information gathered from include/pic/pic14devices.txt
1290         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1291
1292 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1293
1294         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1295
1296 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1297
1298         * device/include/mcs51/cc2430.h: fixed missing ';'
1299
1300 2006-12-10 Raphael Neider <rneider AT web.de>
1301
1302         * device/lib/pic16/libc/stdio/vfprintf.c,
1303         * device/lib/pic16/libc/stdio/printf_small.c,
1304         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1305           char arguments, as char varargs are cast to int by the caller,
1306           hopefully fixes #1604915 (other device libraries are still affected)
1307
1308 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1309
1310         * src/mcs51/ralloc.c (packRegsForAssign),
1311         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1312
1313 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1314
1315         * device/include/malloc.h: removed init_dynamic_memory
1316         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1317           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1318         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1319         * device/lib/libsdcc.lib,
1320         * device/lib/Makefile.in,
1321         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1322         * doc/sdccman.lyx: documented use of new _heap.c
1323         * support/regression/tests/malloc.c: removed init_dynamic_memory
1324         * src/cdbFile.c(spacesToUnderscores): new function,
1325           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1326           1068030
1327         * device/include/tinibios.h: removed defines for putchar and getchar
1328         * device/lib/ds390/Makefile.in: added putchar.c
1329         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1330
1331 2006-12-09 Borut Razem <borut.razem AT siol.net>
1332
1333         * support/cpp2/sdcc.h: prevent multiple inclusion
1334         * support/cpp2/options.h: deleted
1335
1336 2006-12-08 Borut Razem <borut.razem AT siol.net>
1337
1338         * support/cpp2/sdcc.h: removed x*alloc() macros
1339         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1340         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1341           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1342         * support/cpp2/system.h: moved #include "sdcc.h"
1343         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1344           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1345           added
1346         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1347           -funsigned-char options
1348         * support/cpp2/sdcppmain.c: fixed bug 1611411
1349
1350 2006-12-07 Borut Razem <borut.razem AT siol.net>
1351
1352         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1353           directive
1354
1355 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1356
1357         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1358         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1359         * doc/sdccman.lyx,
1360         * .version: bumped to 2.6.2 because a) it's been a while
1361           b) the linker sources have moved c) the preprocessor is upgraded
1362
1363 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1364
1365         * support/regression/tests/snprintf.c: some checks
1366         * lib/src/printf_large.c: %bc: read char instead of int from stack
1367
1368 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1369
1370         * device/include/mcs51/cc2430.h: inserted _XPAGE
1371
1372 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1373
1374         * device/include/mcs51/cc2430.h: added
1375
1376 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1377
1378         * device/include/asm/default/features.h,
1379         * device/include/asm/ds390/features.h,
1380         * device/include/mcs51/at89s53.h,
1381         * device/include/ser.h,
1382         * device/include/ser_ir.h,
1383         * device/include/serial.h: changed keywords to double underscore variants,
1384           fixes bug 1590261 some more, thanks Steven Borley
1385
1386 2006-12-01 Raphael Neider <rneider AT web.de>
1387
1388         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1389           but emit warning (recursion is not supported for pic14)
1390
1391 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1392
1393         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1394         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1395
1396 2006-11-30 Raphael Neider <rneider AT web.de>
1397
1398         * src/pic/device.c (dump_sfr): always emit symbols
1399         * src/pic/glue.c (pic14printPublics): fixed typo
1400
1401 2006-11-30 Raphael Neider <rneider AT web.de>
1402
1403         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1404           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1405           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1406            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1407            a sharebank, use a non-shared bank for the stack if none available
1408         * src/pic/device.h (struct memRange): added linked list next field,
1409           added prototypes for above functions
1410         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1411           (typeRegWithIdx): accept fixed and unfixed stack registers
1412         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1413           the stack, handle shared and banked stack (except for WSAVE),
1414           (insertBankSel): removed useless optimization (will never fire),
1415           (FixRegisterBanking): added optimization for devices with only one
1416           possibly aliased bank of memory, like 16f84
1417         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1418           devices have no SHAREBANK in the linker script
1419         * device/include/pic/pic14devices.txt: documented memmap
1420         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1421
1422 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1423
1424         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1425           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1426           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1427           genhc08Code): switched most of the D (debug) macros to DD (detailed
1428           debug) macros to better control clutter in the generated .asm file.
1429         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1430           genRightShift): fixed bug with non-constant bit shift stored to
1431           a volatile result (SF Open Discussion forum thread #1616749).
1432           Single byte case is not yet optimized.
1433
1434 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1435
1436         * device/include/asm/mcs51/features.h,
1437         * device/include/malloc.h,
1438         * device/include/stdio.h: changed keywords to double underscore variants,
1439           fixes bug 1590261
1440
1441 2006-11-27 Borut Razem <borut.razem AT siol.net>
1442
1443         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1444           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1445           support/cpp2/output.h, support/cpp2/cppinit.c,
1446           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1447           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1448           support/cpp2/cppdefault.c, support/cpp2/system.h,
1449           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1450           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1451           support/cpp2/prefix.c, support/cpp2/except.h,
1452           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1453           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1454           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1455           support/cpp2/version.c, support/cpp2/cppmain.c,
1456           support/cpp2/version.h, support/cpp2/hashtable.c,
1457           support/cpp2/cpperror.c:
1458           synchronized with GCC CPP release version 3.3.6,
1459           the latest where cppmain.c still exists.
1460         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1461           support/cpp2/sdcppinit.c: added
1462
1463 2006-11-27 Borut Razem <borut.razem AT siol.net>
1464
1465         * support/cpp2/cpplex.c:
1466           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1467           synchronization
1468         * support/cpp2/cpplib.c: removed definitions of unused variables
1469
1470 2006-11-26 Borut Razem <borut.razem AT siol.net>
1471
1472         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1473           since they are redefined by macros in support/cpp2/sdcc.h
1474         * support/cpp2/sdcc.h: x*alloc macro redefinition
1475
1476 2006-11-25 Borut Razem <borut.razem AT siol.net>
1477
1478         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1479           support/cpp2/configure, support/cpp2/Makefile.in,
1480           support/cpp2/cppfiles.c, support/cpp2/output.h,
1481           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1482           support/cpp2/config.h, support/cpp2/cpplib.h,
1483           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1484           support/cpp2/cppdefault.c, support/cpp2/config.in,
1485           support/cpp2/system.h, support/cpp2/cpplex.c,
1486           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1487           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1488           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1489           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1490           support/cpp2/configure.in, support/cpp2/intl.h,
1491           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1492           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1493           support/cpp2/version.c, support/cpp2/cppmain.c,
1494           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1495           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1496           support/cpp2/cpperror.c,
1497           support/cpp2/libiberty/safe-ctype.c,
1498           support/cpp2/libiberty/safe-ctype.h,
1499           support/cpp2/libiberty/splay-tree.c,
1500           support/cpp2/libiberty/obstack.c,
1501           support/cpp2/libiberty/lbasename.c,
1502           support/cpp2/libiberty/splay-tree.h,
1503           support/cpp2/libiberty/obstack.h:
1504           synchronized with GCC CPP release version 3.2.3,
1505           the latest before integration of cpp into gcc
1506         * support/cpp2/except.h, support/cpp2/line-map.c,
1507           support/cpp2/line-map.h,
1508           support/cpp2/libiberty/hex.c,
1509           support/cpp2/libiberty/concat.c,
1510           support/cpp2/libiberty/filenames.h: added
1511         * support/cpp2/intl.c: deleted
1512
1513 2006-11-24 Borut Razem <borut.razem AT siol.net>
1514
1515         * src/SDCC.y: enabled compilation of empty source file
1516         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1517           "ISO C forbids an empty source file"
1518         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1519           if all the code is ifdefed out.
1520
1521 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1522
1523         * src/hc08/gen.c (genPcall): fix for bug #1601032
1524
1525 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1526
1527         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1528         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1529         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1530         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1531         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1532         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1533         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1534         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1535         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1536         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1537         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1538         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1539         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1540         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1541         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1542           Renamed to all upper case as per the standard set by SiLabs
1543
1544 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1545
1546         * device/include/mcs51/C8051F520.h: new, added
1547         * device/include/mcs51/compiler.h: added link about predefined macros
1548
1549 2006-11-23 Raphael Neider <rneider AT web.de>
1550
1551         * src/regression/Makefile: add -L path to fresh library
1552         * src/regression/simulate: emphasize FAILED output
1553         * src/regression/create_stc: output _failures from gpsim
1554         * src/regression/compare4.c,
1555         * src/regression/rotate6.c: fixed char literals,
1556           all compile, all run =8-D
1557
1558         * src/pic/pcode.h: added isPCASMDIR macro
1559         * src/pic/gen.c (genAnd): fixed bit offset
1560         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1561           packBits): unified register numbering schemes,
1562           (newReg): do not insert stack registers into hash table,
1563           (initStack): unpinned pseudo stack, simplified,
1564           (typeRegWithIdx): fixed retrieval of stack registers,
1565         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1566           (pCodeReplace): removed invalid assertion,
1567           (insertPCodeInstruction): fixed newly added labels,
1568           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1569           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1570           DumpFlow): removed unsed (broken?) code,
1571           (insertBankSel): prevent STATUS from being BANKSELed,
1572           (FixRegisterBanking): rewritten from scratch, implemented generic
1573             optimizations (suppress BANKSELs to same register and to registers
1574             present in all banks),
1575           (AnalyzeBanking): update flow after BANKSELection
1576
1577         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1578             sharebank, let linker place it, mark STKxx symbols as emitted
1579
1580 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1581
1582         * src/regression/arrays.c,
1583         * src/regression/bank1.c,
1584         * src/regression/bool2.c,
1585         * src/regression/compare7.c,
1586         * src/regression/compare8.c,
1587         * src/regression/compare9.c,
1588         * src/regression/compare10.c,
1589         * src/regression/configword.c,
1590         * src/regression/for.c,
1591         * src/regression/mult1.c,
1592         * src/regression/pointer1.c,
1593         * src/regression/rotate6.c,
1594         * src/regression/string1.c,
1595         * src/regression/struct1.c,
1596         * src/regression/Makefile: make PIC14 regression tests run again
1597           (3 fail, 6 won't compile)
1598
1599 2006-11-21 Raphael Neider <rneider AT web.de>
1600
1601         * device/include/pic16/pic18f4550.h,
1602         * device/include/pic16/pic18f4455.h,
1603         * device/lib/pic16/libdev/pic18f4550.c,
1604         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1605         * configure.in: removed superfluous closing bracket
1606
1607 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1608
1609         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1610           always positive.
1611
1612 2006-11-21 Raphael Neider <rneider AT web.de>
1613
1614         * src/pic/device.{c,h}: added pic14_getPIC()
1615         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1616           (genAnd): added PIC code for one case, fixes #1597044
1617         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1618           SFRs that are present in all banks (e.g., STATUS)
1619
1620 2006-11-20 Raphael Neider <rneider AT web.de>
1621
1622         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1623           INCFSZ/INCFSZW and declared them as changing Z bit,
1624           (insertPCodeInstruction): correctly invert the above instructions,
1625           fixes #1599333,
1626           (DoBankSelect): don't panic on po_immediates
1627
1628 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1629
1630         * as/link/aslink.h,
1631         * as/link/mcs51/lkihx.c (newArea),
1632         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1633         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1634
1635 2006-11-11 Raphael Neider <rneider AT web.de>
1636
1637         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1638           bitfield symbols, fixes #1579535 (once more...).
1639
1640 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1641
1642         * support/regression/generate-cases.py,
1643         * support/regression/fwk/include/testfwk.h,
1644         * support/regression/fwk/lib/testfwk.c: used code pointers,
1645           (about 50kByte less code generated for mcs51)
1646
1647 2006-11-06 Borut Razem <borut.razem AT siol.net>
1648
1649         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1650           debugger/mcs51/configure: fixed failed check because the function
1651           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1652           who submitted the patch for gpsim.
1653         * debugger/mcs51/configure.in: removed the result message
1654         * debugger/mcs51/Makefile.in: fixed the config.status warning
1655           "... seems to ignore the --datarootdir setting"
1656
1657 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1658
1659         * device/include/mcs51/c8051f020.h,
1660         * device/include/mcs51/c8051f040.h,
1661         * device/include/mcs51/c8051f060.h,
1662         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1663         * src/z80/gen.c (gencjneshort),
1664         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1665
1666 2006-10-31 Borut Razem <borut.razem AT siol.net>
1667
1668         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1669           debugger/mcs51/configure: get readline version
1670
1671 2006-10-30 Borut Razem <borut.razem AT siol.net>
1672
1673         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1674         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1675           debugger/mcs51/configure: locate readline even when cross compiling
1676         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1677
1678 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1679
1680         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1681           serial port.
1682
1683 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1684
1685         * device/include/malloc.h,
1686         * device/lib/calloc.c,
1687         * device/lib/free.c,
1688         * device/lib/malloc.c,
1689         * device/lib/realloc.c: moved definition of struct into sources
1690         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1691
1692 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1693
1694         * as/asx8051.dsp: corrected output directories
1695         * as/link/hc08: new directory for hc08 linker
1696         * as/hc08/aslink.h,             as/link/aslink.h,
1697         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1698         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1699         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1700         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1701         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1702         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1703         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1704         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1705         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1706         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1707         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1708         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1709         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1710         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1711         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1712         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1713         * as/link/hc08/conf.mk,
1714         * configure,
1715         * configure.in,
1716         * Makefile.in,
1717         * sdcc.dsw: moved hc08 linker to as/link/hc08
1718         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1719         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1720         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1721         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1722         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1723         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1724         * as/link/mcs51/aslink.dsp,
1725         * as/link/mcs51/Makefile.in: factored out the common files
1726         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1727         * as/clean.mk: extra cleaning common files
1728         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1729         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1730         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1731
1732 2006-10-29 Raphael Neider <rneider AT web.de>
1733
1734         * src/pic/ralloc.c (newReg): create aliases for registers with
1735           multiple names to fix #1579535 and #1584001,
1736           (regWithIdx,dirregWithName): resolve aliases on lookup
1737         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1738           bankselect
1739         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1740           to prevent build errors on small devices
1741
1742 2006-10-28 Raphael Neider <rneider AT web.de>
1743
1744         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1745           assumption within interrupt handlers, fixes #1584940
1746         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1747           "emitted" to avoid emitting them again in udata
1748
1749 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1750
1751         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1752         Removed.
1753
1754 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1755
1756         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1757         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1758         on/off CR to CRLF conversion.
1759
1760 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1761
1762         * doc/sdccman.lyx: updated IRQ section
1763
1764 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1765
1766         * device/lib/serial_io.c: removed
1767         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1768         replacements for serial_io.c
1769
1770 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1771
1772         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1773
1774 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1775
1776         * device/lib/serial_io.c: Default putchar() and getchar() for
1777           mcs51 uses serial port.
1778
1779 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1780
1781         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1782
1783 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1784
1785         * support/regression/ports/mcs51/support.c: smaller
1786         _sdcc_external_startup()
1787         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1788
1789 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1790
1791         * device/lib/gbz80/crt0.s,
1792         * device/lib/gbz80/crt0_rle.s,
1793         * device/lib/gbz80/div.s,
1794         * device/lib/gbz80/fstubs.s,
1795         * device/lib/gbz80/heap.s,
1796         * device/lib/gbz80/mul.s,
1797         * device/lib/gbz80/putchar.s,
1798         * device/lib/gbz80/stubs.s,
1799         * device/lib/z80/crt0.s,
1800         * device/lib/z80/crt0_rle.s,
1801         * device/lib/z80/div.s,
1802         * device/lib/z80/fstubs.s,
1803         * device/lib/z80/heap.s,
1804         * device/lib/z80/mul.s,
1805         * device/lib/z80/putchar.s,
1806         * device/lib/z80/stubs.s: reverted, I was mistaken
1807
1808 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1809
1810         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1811         * support/regression/ports/mcs51/support.c: removed race
1812         condition on TI in _putchar allowing to use serial port mode 0
1813
1814 2006-10-20 Borut Razem <borut.razem AT siol.net>
1815
1816         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1817
1818 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1819
1820         * device/lib/gbz80/crt0.s,
1821         * device/lib/gbz80/crt0_rle.s,
1822         * device/lib/gbz80/div.s,
1823         * device/lib/gbz80/fstubs.s,
1824         * device/lib/gbz80/heap.s,
1825         * device/lib/gbz80/mul.s,
1826         * device/lib/gbz80/putchar.s,
1827         * device/lib/gbz80/stubs.s,
1828         * device/lib/z80/crt0.s,
1829         * device/lib/z80/crt0_rle.s,
1830         * device/lib/z80/div.s,
1831         * device/lib/z80/fstubs.s,
1832         * device/lib/z80/heap.s,
1833         * device/lib/z80/mul.s,
1834         * device/lib/z80/putchar.s,
1835         * device/lib/z80/stubs.s: removed all leading underscores from area names
1836
1837 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1838
1839         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1840           regression tests are not waiting in the simulator for simulated
1841           transmission of debug output
1842
1843 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1844
1845         * device/lib/printf_large.c: slightly smaller
1846         * doc/sdccman.lyx: do not use spaces within html links
1847
1848 2006-10-16 Borut Razem <borut.razem AT siol.net>
1849
1850         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1851           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1852           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1853           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1854           debugger/mcs51/configure:
1855           [ 1185668 ] add gnu readline support to sdcdb - enabled
1856
1857 2006-10-16 Raphael Neider <rneider AT web.de>
1858
1859         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1860           fixes #1577882, removes close to all banking optimizations
1861
1862 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1863
1864         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1865           variables in code memory
1866         * support/regression/tests/absolute.c: added test for this
1867
1868 2006-10-15 Raphael Neider <rneider AT web.de>
1869
1870         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1871           devices,
1872           (BankSelect): emit BANKSEL before touching linker-placed regs,
1873           fixes #1570934
1874
1875 2006-10-10 Raphael Neider <rneider AT web.de>
1876
1877         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1878         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1879         * src/pic/main.c (_pic14_parseOptions),
1880         * src/pic/main.h: mostly reverted to previous state, now use results
1881             from SDCCmain.c's argument parsing
1882
1883 2006-10-10 Borut Razem <borut.razem AT siol.net>
1884
1885         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1886           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1887           [ 1185668 ] add gnu readline support to sdcdb -
1888           prepared for READLINE, not enabled yet,
1889           thanks to <tal.bav AT gmail.com>
1890
1891 2006-10-10 Raphael Neider <rneider AT web.de>
1892
1893         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1894         * src/pic16/devices.inc,
1895         * device/include/pic16 (pic18f[24]620.h),
1896         * device/include/pic18fregs.h,
1897         * device/lib/pic16/pics.all,
1898         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1899             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1900             Gary Plumbridge and Anton Strobl
1901
1902 2006-10-10 Raphael Neider <rneider AT web.de>
1903
1904         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1905           --stack-siz=NUM options to configure the argument passing stack
1906         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1907         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1908           (pic14_getSharebankSize): obey --stack-siz=NUM,
1909           (pic14_getSharebankAddress): obey --stack-loc=NUM
1910
1911 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1912
1913         * doc/sdccman.lyx: added to the manual
1914         * doc/figures/ddd_example.png: added (neither pdflatex nor
1915         most browsers seem to like the .eps file)
1916
1917 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1918
1919         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1920         to /tmp and /var/tmp acc. LSB
1921         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1922         RESULT_TYPE_IFX
1923         * support/regression/tests/onebyte.c: added test
1924
1925 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1926
1927         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1928
1929 2006-10-05 Borut Razem <borut.razem AT siol.net>
1930
1931         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1932           thanks to dfulab:
1933           - sdcc.dsw: changed property eol-style to CRLF
1934           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1935
1936 2006-10-04 Raphael Neider <rneider AT web.de>
1937
1938         * device/include/pic/{pic16f84.h,pic16f84a.h},
1939         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1940           from patch #1522504, thanks to Robas Teodor
1941
1942 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1943
1944         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1945           fixes bug 1566015
1946
1947 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1948
1949         * src/pic16/glue.c (pic16emitMaps),
1950         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1951         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1952         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1953         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1954           Philipp Krause
1955         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1956         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1957
1958 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1959
1960         * support/librarian/sdcclib.c: Added option -l.
1961         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1962           usage totals.
1963         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1964           using Windows command prompt.
1965
1966 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1967
1968         * device/lib/libsdcc.lib: added module rand
1969         * src/ds390/ralloc.c (rematStr),
1970         * src/hc08/ralloc.c (rematStr),
1971         * src/mcs51/ralloc.c (rematStr),
1972         * src/z80/ralloc.c (rematStr): made output more consistent
1973         * src/mcs51/gen.c: cosmetic changes
1974
1975 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1976
1977         * src/port.h: added mem.cabs_name to PORT
1978         * src/ds390/main.c,
1979         * src/hc08/main.c,
1980         * src/mcs51/main.c,
1981         * src/pic16/main.c,
1982         * src/pic/main.c,
1983         * src/xa51/main.c,
1984         * src/z80/main.c: added cabs_name initializers
1985         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1986           constants
1987           (emitMaps): emit absolutes in code memory into cabs_name
1988         * src/SDCCmem.c,
1989         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1990         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1991         * support/regression/fwk/include/testfwk.h: added define for at
1992         * support/regression/tests/absolute.c: added, new
1993
1994 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1995
1996         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1997           optimizations, see also patch 887161 by Stas Sergeev
1998         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1999           to be necessary anymore,
2000           (102, 103, 104, 127): renamed all occurances of bp to _bp
2001
2002 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
2003
2004         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
2005           thanks Weston T. Schmidt for patch 1555221
2006         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
2007         * src/SDCCicode.c(geniCodeMultiply): small optimization
2008
2009 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2010
2011         * device/include/stdlib.h: added rand prototypes
2012         * device/lib/rand.c: new, added
2013         * device/lib/Makefile.in: added rand.c
2014         * src/z80/peeph.def,
2015         * src/z80/peeph-gbz80.def,
2016         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
2017
2018 2006-09-20 Raphael Neider <rneider AT web.de>
2019
2020         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
2021
2022 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
2023
2024         * as/link/aslink.h: cosmetic changes
2025         * as/link/mcs51/Makefile.in,
2026         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
2027
2028 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
2029
2030         * as/link/aslink.h,
2031         * as/link/mcs51/aslink.h,
2032         * as/link/z80/aslink.h: merged and moved to as/link/
2033         * as/link/lkstore.c,
2034         * as/link/mcs51/lkstore.c: moved to as/link/
2035         * as/link/clean.mk: remove *.o
2036         * as/link/mcs51/alloc.h: deleted
2037         * as/link/mcs51/lkarea.c: added lnksect prototype
2038         * as/link/mcs51/lkdata.c,
2039         * as/link/mcs51/lklex.c,
2040         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
2041         * as/link/mcs51/lkmem.c,
2042         * as/link/mcs51/lknoice.c: removed include strcmpi.h
2043         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
2044         * as/link/mcs51/aslink.dsp,
2045         * as/link/mcs51/Makefile.aslink,
2046         * as/link/mcs51/Makefile.bcc,
2047         * as/link/mcs51/Makefile.in: updated for moved files
2048         * as/link/z80/lkarea.c,
2049         * as/link/z80/lkhead.c,
2050         * as/link/z80/lklex.c,
2051         * as/link/z80/lklibr.c,
2052         * as/link/z80/lklist.c,
2053         * as/link/z80/lkmain.c,
2054         * as/link/z80/lkrloc.c,
2055         * as/link/z80/lksym.c: synced with mcs51
2056         * as/link/z80/lkdata.c,
2057         * as/link/z80/lkeval.c,
2058         * as/link/z80/lkihx.c,
2059         * as/link/z80/lks19.c: cosmetic changes
2060         * as/link/z80/Makefile.in,
2061         * as/link/z80/linkgbz80.dsp,
2062         * as/link/z80/linkz80.dsp: updated for moved files
2063
2064 2006-09-16 Borut Razem <borut.razem AT siol.net>
2065
2066         * debugger/mcs51/sdcdb.c: partially fixed
2067           [ 1203664 ] sdcdb fails to open files w. two "." periods
2068         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
2069           debugger/mcs51/symtab.h: fixed indenting
2070         * configure.in, configure: up to date with latest Maarten's changes
2071
2072 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
2073
2074         as/link/mcs51
2075         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
2076         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
2077         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
2078         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
2079         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
2080         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
2081         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
2082         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
2083         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
2084         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
2085         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
2086         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
2087         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
2088         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
2089         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
2090         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
2091         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2092         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2093         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2094         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2095         as/link/mcs51/alloc.h,
2096         as/link/mcs51/clean.mk,
2097         as/link/mcs51/conf.mk,
2098         as/link/mcs51/Makefile.bcc,
2099         as/link/mcs51/Makefile.in,
2100         as/link/mcs51/readme.390,
2101         as/link/mcs51/strcmpi.c,
2102         as/link/mcs51/strcmpi.h,
2103         as/mcs51/clean.mk,
2104         as/mcs51/Makefile.bcc,
2105         as/mcs51/Makefile.in,
2106         configure,
2107         Makefile.in,
2108         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2109
2110 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2111
2112         * as/link,
2113         * as/link/Makefile.in,
2114         * as/link/z80/linkgbz80.dsp,
2115         * as/link/z80/linkz80.dsp,
2116         * configure,
2117         * link,
2118         * link/clean.mk,
2119         * link/Makefile.in,
2120         * link/README,
2121         * link/z80,
2122         * link/z80/aslink.h,
2123         * link/z80/clean.mk,
2124         * link/z80/conf.mk,
2125         * link/z80/linkgbz80.dsp,
2126         * link/z80/linkz80.dsp,
2127         * link/z80/lkarea.c,
2128         * link/z80/lkdata.c,
2129         * link/z80/lkeval.c,
2130         * link/z80/lkgb.c,
2131         * link/z80/lkgg.c,
2132         * link/z80/lkhead.c,
2133         * link/z80/lkihx.c,
2134         * link/z80/lklex.c,
2135         * link/z80/lklibr.c,
2136         * link/z80/lklist.c,
2137         * link/z80/lkmain.c,
2138         * link/z80/lkrloc.c,
2139         * link/z80/lks19.c,
2140         * link/z80/lksym.c,
2141         * link/z80/Makefile.in,
2142         * Makefile.in,
2143         * sdcc.dsw: moved link/ to as/link/
2144
2145 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2146
2147         * as/mcs51/i51mch.c (machine): fixed warning
2148
2149 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2150
2151         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2152
2153 2006-09-09 Borut Razem <borut.razem AT siol.net>
2154
2155         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2156           sdcdb WIN32 native port
2157         * src/clean.mk: fixed
2158
2159 2006-09-08 Borut Razem <borut.razem AT siol.net>
2160
2161         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2162
2163 2006-09-08 Raphael Neider <rneider AT web.de>
2164
2165         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2166         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2167             to gplink to disable processor mismatch warning and to allow
2168             the use of devices with only aliased (shared) memory banks,
2169           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2170
2171 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2172
2173         * doc/sdccman.lyx: Some re-formating plus example on using
2174           #pragma preproc_asm +/-
2175
2176 2006-09-07 Borut Razem <borut.razem AT siol.net>
2177
2178         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2179           section
2180
2181 2006-09-06 Borut Razem <borut.razem AT siol.net>
2182
2183         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2184           line at sdcc.nsi:153
2185         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2186
2187 2006-09-05 Borut Razem <borut.razem AT siol.net>
2188
2189         * configure.in, configure: support for winsock2
2190         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2191           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2192           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2193           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2194           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2195
2196 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2197
2198         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2199           and OP_DEFS
2200         * support/regression/tests/bug1551947.c: new, added
2201         * src/SDCCsymt.h: strings are char* not byte*
2202
2203 2006-09-05 Raphael Neider <rneider AT web.de>
2204
2205         * device/lib/pic16/libdev/pic18f4550.c,
2206           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2207             declarations/definitions from patch #1520949
2208
2209 2006-09-05 Raphael Neider <rneider AT web.de>
2210
2211         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2212           byte-aligned bitfields, fixes #1539278
2213
2214 2006-09-05 Raphael Neider <rneider AT web.de>
2215
2216         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2217           fixes #1544120
2218
2219 2006-09-04 Borut Razem <borut.razem AT siol.net>
2220
2221         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2222         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2223           -mno-cygwin is a part of the compiler name
2224         * support/scripts/sdcc_mingw32: don't disable ucsim
2225
2226 2006-09-03 Borut Razem <borut.razem AT siol.net>
2227
2228         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2229         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2230
2231 2006-09-03 Raphael Neider <rneider AT web.de>
2232
2233         * src/pic/ralloc.c,
2234         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2235           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2236           fixes #1550049
2237
2238 2006-09-01 Borut Razem <borut.razem AT siol.net>
2239
2240         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2241           to make ppc-osx happy
2242
2243 2006-08-31 Borut Razem <borut.razem AT siol.net>
2244
2245         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2246         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2247         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2248         * support/regression/ports/ds390/spec.mk,
2249           support/regression/ports/mcs51/spec.mk,
2250           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2251           To run regression tests in mingw environment:
2252           make DEV_NULL=NUL CC=gcc
2253
2254 2006-08-30 Borut Razem <borut.razem AT siol.net>
2255
2256         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2257           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2258           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2259           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2260           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2261           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2262           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2263           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2264           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2265           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2266           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2267           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2268           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2269           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2270           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2271           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2272           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2273           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2274           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2275           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2276           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2277           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2278           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2279           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2280           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2281           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2282           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2283           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2284           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2285           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2286           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2287           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2288           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2289           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2290           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2291           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2292           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2293           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2294           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2295           ucsim WIN32 native port
2296
2297 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2298
2299         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2300
2301 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2302
2303         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2304         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2305
2306 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2307
2308         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2309         * support/regression/tests/bug1546986.c: new, added
2310         * as/mcs51/.cvsignore,
2311         * debugger/mcs51/.cvsignore,
2312         * src/.cvsignore: deleted
2313
2314 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2315
2316         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2317           definitions)
2318
2319 2006-08-20 Borut Razem <borut.razem AT siol.net>
2320
2321         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2322           removed cl_listen_console::match(), cl_console::match(),
2323           restructured cl_commander::proc_input()
2324
2325 2006-08-16 Borut Razem <borut.razem AT siol.net>
2326
2327         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2328           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2329           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2330
2331 2006-08-14 Borut Razem <borut.razem AT siol.net>
2332
2333         * support/regression/Makefile.in,
2334           support/regression/ports/pic14/gpsim.cmd,
2335           support/regression/ports/pic14/spec.mk,
2336           support/regression/ports/pic14/support.c:
2337           added pic14 regression test
2338
2339 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2340
2341         * as/doc/asxhtm.html: documented changed ABS behaviour
2342         * as/doc/README: fixed some typos
2343
2344 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2345
2346         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2347           not defined on host
2348
2349 2006-08-12 Borut Razem <borut.razem AT siol.net>
2350
2351         * support/regression/fwk/include/testfwk.h,
2352           support/regression/fwk/lib/testfwk.c,
2353           support/regression/generate-cases.py,
2354           support/regression/Makefile.in:
2355           regression test framework does not depend on function pointers and
2356           variable arguments
2357
2358 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2359
2360         * device/include/stddef.h: c temporary hack to fix bug 1518273
2361
2362 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2363
2364         * device/include/mcs51/cc2510fx.h: added
2365         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2366           to projects.
2367
2368 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2369
2370         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2371         * as/z80/Makefile.in: added strcmpi.c
2372         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2373         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2374
2375 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2376
2377         * device/lib/gbz80/asm_strings.s,
2378         * device/lib/gbz80/crt0_rle.s,
2379         * device/lib/gbz80/div.s,
2380         * device/lib/gbz80/mul.s,
2381         * device/lib/gbz80/shift.s,
2382         * device/lib/z80/asm_strings.s,
2383         * device/lib/z80/crt0_rle.s,
2384         * device/lib/z80/div.s,
2385         * device/lib/z80/mul.s,
2386         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2387           flags which are all upper case
2388
2389 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2390
2391         * as/z80/asm.h: made CASE_SENSITIVE 1
2392         * link/z80/aslink.h: made CASE_SENSITIVE 1
2393         * src/z80/gen.c (throughout): made all conditionals upper case
2394         * support/regression/tests/bug1503067.c: new
2395
2396 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2397
2398         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2399           (shiftIntoPair): added case 2 for PAIR_IY,
2400           (setupToPreserveCarry): replaced parameters with iCode and check if
2401            PAIR_DE is in use to fix bug 1399290,
2402           (genPlus, genMinus): updated call to setupToPreserveCarry
2403         * support/regression/tests/bug1399290.c: new
2404
2405 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2406
2407         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2408         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2409         * src/ds390/gen.c (shiftRLong),
2410         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2411         * src/mcs51/gen.c (sameReg): changed to sameByte,
2412           (xch_a_aopGet): new,
2413           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2414            shiftRLong): fixed bug 1533966
2415         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2416           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2417         * support/regression/Makefile.in: disabled z80, enabled ucz80
2418         * support/regression/tests/float_trans.c: enabled test for z80 and host
2419         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2420
2421 2006-08-01 Borut Razem <borut.razem AT siol.net>
2422
2423         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2424           comparison is always false due to limited range of data type
2425           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2426
2427 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2428
2429         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2430         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2431         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2432         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2433
2434 2006-07-31 Borut Razem <borut.razem AT siol.net>
2435
2436         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2437           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2438           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2439           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2440           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2441           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2442           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2443           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2444           enable ucsim mingw compilation. Serial port is disabled,
2445           since it uses termios.h API, which is not available on native
2446           WIN32
2447
2448 2006-07-31 Borut Razem <borut.razem AT siol.net>
2449
2450         * Small Device C Compiler 2.6.0 released
2451         * support/scripts/sdcc.nsi: added FULL_DOC option
2452         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2453
2454 2006-07-28 Borut Razem <borut.razem AT siol.net>
2455
2456         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2457         * doc/INSTALL.txt: updated
2458
2459 2006-07-27 Borut Razem <borut.razem AT siol.net>
2460
2461         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2462           device/lib/pic/libdev/Makefile.in: fixed bug
2463           [ 1438354 ] pic libsdcc: distclean doesn't work
2464         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2465           device/lib/pic16/libio/Makefile.in: fixed bug
2466           [ 1438344 ] pic16 lib: clean doesn't work properly
2467         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2468
2469 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2470
2471         * device/lib/pic/libsdcc/fsdiv.c,
2472         * device/lib/pic/libsdcc/fsmul.c,
2473         * device/lib/pic16/libsdcc/float/fsdiv.c,
2474         * device/lib/pic16/libsdcc/float/fsmul.c,
2475         * device/lib/_fsdiv.c,
2476         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2477         * support/regression/tests/bug1520966.c: added
2478         * doc/knownbugs.html: removed [ 1520966 ] from the list
2479
2480 2006-07-25 Borut Razem <borut.razem AT siol.net>
2481
2482         * configure.in, configure, sdccconf_in.h: fixed bug
2483           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2484         * doc/knownbugs.html: removed [ 1519095 ] from the list
2485
2486 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2487
2488         * doc/knownbugs.html: added, contains list of known bugs at release
2489         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2490
2491 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2492
2493         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2494           function registers and corrected defaults with additional warning
2495         * device/lib/malloc.c: cosmetic changes
2496         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2497         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2498           (fillGaps): and used it
2499
2500 2006-07-20 Raphael Neider <rneider AT web.de>
2501
2502         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2503           output unless SDCCPICDEBUG is set
2504         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2505           output if SILENT is set
2506
2507 2006-07-11 Borut Razem <borut.razem AT siol.net>
2508
2509         * doc/README.txt: updated
2510
2511 2006-07-10 Borut Razem <borut.razem AT siol.net>
2512
2513         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2514           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2515           in WIN32 installation
2516         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2517           release candidate 1
2518
2519 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2522         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2523
2524 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2525
2526         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2527
2528 2006-07-06 Borut Razem <borut.razem AT siol.net>
2529
2530         * support/regression/tests/bitfields.c:
2531           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2532         * support/regression/tests/constantRange.c:
2533           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2534
2535 2006-07-04 Borut Razem <borut.razem AT siol.net>
2536
2537         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2538           src/port.mk,
2539           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2540           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2541           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2542           reverted changes from 2006-07-03
2543         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2544         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2545           added CPPFLAGS, used by the host port
2546
2547 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2548
2549         * support/regression/valdiag/tests/switch.c,
2550         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2551         * support/regression/tests/libmullong.c: fixed for host
2552         * support/regression/ports/host/spec.mk: disable all warnings for host,
2553         SDCC runs with --less-pedantic too
2554
2555 2006-07-03 Borut Razem <borut.razem AT siol.net>
2556
2557         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2558           defined CPPFLAGS
2559         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2560         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2561           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2562           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2563           include ../port.mk
2564         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2565           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2566           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2567           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2568
2569 2006-07-02 Raphael Neider <rneider AT web.de>
2570
2571         * src/pic16/devices.inc,
2572         * device/include/pic16/pic18fregs.h,
2573         * device/include/pic16/pic18f4550.h,
2574         * device/lib/pic16/pics.all,
2575         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2576
2577 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2578
2579         * as/hc08/lkaomf51.c (OutputName),
2580         * as/mcs51/lkaomf51.c (OutputName),
2581         * as/z80/asmain.c (asmbl),
2582         * src/ds390/main.c (asmLineNodeFromLineNode),
2583         * src/hc08/ralloc.c (hc08_assignRegisters),
2584         * src/mcs51/main.c (asmLineNodeFromLineNode),
2585         * src/xa51/ralloc.c (checkRegMask),
2586         * src/xa51/gen.c (emitcode),
2587         * src/z80/gen.c (_emit2),
2588         * src/SDCCast.c (searchLitOp),
2589         * src/SDCCglobl.h,
2590         * support/packihx/packihx.c,
2591         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2592         * src/ds390/gen.c (aopPutUsesAcc),
2593         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2594         * support/regression/tests/libmullong.c (mullong_wrapper),
2595         * src/SDCCsymt.c (powof2),
2596         * src/SDCCast.c,
2597         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2598         * src/SDCCsymt.h: added TYPE_TARGET_*
2599         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2600         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2601         SDCCast because 1) header problems 2) this is the right place
2602         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2603         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2604         prototype
2605
2606 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2607
2608         * src/SDCCicode.h: removed buggy semicolon in unused macro
2609         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2610         search for previous definiton of auto symbols too,
2611         (findPrevUse): fixed logic of emitWarnings
2612
2613 2006-06-26 Raphael Neider <rneider AT web.de>
2614
2615         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2616           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2617
2618 2006-06-25 Raphael Neider <rneider AT web.de>
2619
2620         * device/lib/pic/libm: NEW, added math library functions
2621         * device/lib/pic/libsdcc: NEW; added float support functions
2622         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2623         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2624           NEW, added math related headers
2625         * device/include/asm/pic/features.h: NEW
2626         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2627           (popGet): allow larger offsets for AOP_PCODE,
2628           (genDataPointerSet): handle literals explicitly, more debug output,
2629           (genAssign): fixed for float using aopLiteral ;-)
2630         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2631           GOTO initialisation routine
2632         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2633           flag on registers, fixes #1469043 (local variables do not work)
2634         * src/pic/main.c (_pic14_do_link),
2635         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2636           available
2637
2638 2006-06-25 Borut Razem <borut.razem AT siol.net>
2639
2640         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2641           characters printed (not including the trailing '\0' used to end
2642           output to strings). Problem detected in regression test bug-927659.c.
2643           NOTE: printf() family functions should return int instead
2644           unsigned int!
2645         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2646           specifier are printed as themselves
2647         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2648           support flags, width and precision specifiers
2649
2650 2006-06-24 Borut Razem <borut.razem AT siol.net>
2651
2652         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2653           to the list of sdcc tagrets not supporting bit type
2654         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2655           testfor pic16 due to bug:
2656           [ 1511794 ] pic16: regression test bug-895992.c fails
2657
2658 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2659
2660         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2661         * src/SDCCglue.c (initPointer), fixed bug 1496419
2662         * support/regression/tests/bug1496419.c: new, added
2663
2664 2006-06-22 Borut Razem <borut.razem AT siol.net>
2665
2666         * support/regression/ports/pic16/support.c: use gpsim usart module from
2667           libgpsim_modules library
2668
2669 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2670
2671         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2672         IP0H to IPH0.
2673
2674 2006-06-19 Raphael Neider <rneider AT web.de>
2675
2676         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2677         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2678           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2679           (pic14printExterns,pic14printPublics,pic16printPublics,
2680           pic16_printExterns): use new functions to emit symbols
2681           (picglue,pic16glue): emit publics before emitting externs
2682         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2683           locally defined functions to avoid bug #1443651
2684         * support/regression/tests/bug-716242.c: removed pic16 workaround
2685         * support/regression/ports/pic16/spec.mk: ignore errors during build
2686
2687 2006-06-19 Raphael Neider <rneider AT web.de>
2688
2689         * src/pic/glue.h: added pic14aopLiteral prototype
2690         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2691         * src/pic/gen.c: removed stdint.h dependency
2692           (aopGet): use Safe_strdup()
2693           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2694           (genDataPointerSet): use pic14aopLiteral()
2695         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2696           for pic16; thanks to Bernhard and Maarten
2697
2698 2006-06-18 Borut Razem <borut.razem AT siol.net>
2699
2700         * support/regression/tests/structflexarray.c: flexible array members
2701           not supported by gcc < 3
2702         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2703           GUI tool by default
2704         * src/pic/gen.c: don't include [p]strdin.h on solaris
2705         * support/Util/pstdint.h: addad svn attributes
2706         * support/regression/tests/constantRange.c,
2707           support/regression/tests/rotate.c: include inttypes.h instead
2708           stdint.h on solaris, addad svn attributes
2709
2710 2006-06-18 Raphael Neider <rneider AT web.de>
2711
2712         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2713           int for PIC16
2714         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2715           (pic16_genMinusBits): simplified sign-extension
2716           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2717             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2718             adjusted to correctly handle mixed-signed operands, disabled
2719             now unused multiplciation routines
2720         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2721           (assignResultValue): added argument denoting the size of the result
2722             as returned by the function (fixes upcasts in assigning from
2723             function calls: char foo(); int i = foo();)
2724           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2725             function result to assignResultValue
2726           (genMult): disabled inlined multiplication code
2727           (genDiv): augmented to also handle the modulus operator, fixed to
2728             handle mixed-signed operands correctly
2729           (genMod): simply call genDiv, disabled unused code
2730           (genAssign): fixed missing (sign-)extension on result
2731         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2732             valid char operands, allow signed operands for native code, added
2733             division and modulo operator handling
2734         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2735
2736         As a consequence, onebyte.c (if split into two files) and muldiv.c
2737         pass regression tests.
2738
2739 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2740
2741         * doc/Makefile.in: two runs of makeindex seem needed to get
2742         correct page references in the index of sdccman.pdf
2743         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2744
2745 2006-06-17 Borut Razem <borut.razem AT siol.net>
2746
2747         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2748
2749 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2750
2751         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2752         mentioned ec2drv and paulmon
2753
2754 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2755
2756         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2757           consecutive abs areas
2758           (find_empty_space, allocate_space): added map to handle codemap or
2759            xdatamap,
2760           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2761            absolute idata and xdata
2762         * as/mcs51/lkmem.c (summary2): updated legend
2763
2764 2006-06-16 Raphael Neider <rneider AT web.de>
2765
2766         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2767
2768 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2769
2770         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2771           1208515
2772         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2773
2774 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2775
2776         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2777         value of generic pointers,
2778         * src/avr/main.c,
2779           src/ds390/main.c,
2780           src/hc08/main.c,
2781           src/izt/i186.c,
2782           src/izt/tlcs900h.c,
2783           src/mcs51/main.c,
2784           src/pic/main.c,
2785           src/pic16/main.c,
2786           src/xa51/main.c,
2787           src/z80/main.c: PORT structure, added elements for gp_tags field,
2788         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2789         fields in the PORT structure of each port,
2790         * src/SDCCast.c (decorateType): allow processing of generic pointers
2791         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2792         S_FIXED symbols
2793
2794 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2795
2796         * link/z80/lkgb.c,
2797         * link/z80/lkgg.c,
2798         * src/pic16/gen.c,
2799         * src/pic16/main.c,
2800         * src/pic16/pcode.c,
2801         * src/pic/main.c,
2802         * src/pic/pcoderegs.c,
2803         * src/SDCCicode.c,
2804         * src/SDCCmain.c,
2805         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2806           bug 1504689 on minGW
2807
2808 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2809
2810         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2811
2812 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2813
2814         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2815
2816 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2817
2818         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2819           for optimization
2820
2821 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2822
2823         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2824         to a char variable. Fixed bug #1504211
2825         * device/include/pic16/adc.h,
2826         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2827         and fixed bug #1364390
2828
2829 2006-06-10 Borut Razem <borut.razem AT siol.net>
2830
2831         * CVSROOT: removed the CVS left-over
2832
2833 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2834
2835         * as/hc08/asmain.c (asexit),
2836         * as/hc08/lkmain.c (lkexit),
2837         * as/mcs51/asmain.c (asexit),
2838         * as/mcs51/lkmain.c (lkexit),
2839         * src/SDCCglue.c (DEFSETFUNC),
2840         * src/SDCCmain.c (linkEdit, assemble),
2841         * support/librarian/sdcclib.c (AddRel),
2842           replaced unlink() by standard C remove()
2843         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2844         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2845           gatherImplicitVariables): new, added to fix bug 608752,
2846           (createFunction): added gatherImplicitVariables()
2847         * src/SDCCast.h: added createRMW prototype
2848         * src/SDCCsymt.h (struct symbol): added infertype
2849         * support/regression/tests/bug608752.c: new, added
2850
2851 2006-06-10 Raphael Neider <rneider AT web.de>
2852
2853         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2854           multibyte dummy reads (fixes #1503234)
2855
2856 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2857
2858         * device/include/mcs51/compiler.h: new, added header file to enable
2859           creating common sfr definition header files for different compilers
2860
2861 2006-06-05 Raphael Neider <rneider AT web.de>
2862
2863         * src/pic16/{pcode.h,genarith.c}:
2864           introduced pCodeOp combining any two pCodeOps (previously only
2865           two register operands could be combined), removed pcop2 from
2866           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2867         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2868         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2869           rewritten to use new PO_TWO_OPS
2870         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2871         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2872           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2873           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2874           (pic16_get_op): embraced return arg to allow #define return(x),
2875             added new case for combined opcodes
2876           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2877           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2878            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2879
2880 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2881
2882         * src/SDCCval.c (checkConstantRange): added
2883         * src/SDCCval.h: added checkConstantRange
2884         * support/Util/SDCCerr.c,
2885         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2886         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2887         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2888         * src/SDCCast.c (decorateType): added checkConstantRange,
2889         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2890         can be emitted with the correct always true/false warning,
2891         added optimization for double '!';
2892         result of decorateType() must be assigned back to the tree, because
2893         decorateType() can change the tree
2894         * src/SDCCicode.c (geniCodeLogic),
2895         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2896         (checkConstantRange): removed, it was only a fragment which never
2897         emitted a warning
2898         * src/SDCCsymt.c (computeType): fixed promotion for
2899         "-1 < (unsigned bit) b"
2900         * src/pic/ralloc.c (packRegsForAssign),
2901         * src/pic16/ralloc.c (packRegsForAssign),
2902         * src/hc08/ralloc.c (packRegsForAssign),
2903         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2904         from mcs51
2905         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2906         * support/regression/tests/constantRange.c: added
2907         * support/valdiag/tests/constantRange.c: added
2908         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2909
2910 2006-06-02 Borut Razem <borut.razem AT siol.net>
2911
2912         * support/regression/ports/pic16/support.c: increase stack size
2913           to 255 bytes
2914         * support/regression/Makefile.in: sort tests by name so that the
2915           resutlts can be compared on different machines / platforms
2916
2917 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2918
2919         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2920         * src/ds390/gen.c (emitLabel): new, added,
2921           (genDjnz): fixed stack overflow bug,
2922           (throughout): cosmetic changes to sync with mcs51/gen.c,
2923           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2924         * src/mcs51/gen.c (genEndFunction): small optimization,
2925           (throughout): cosmetic changes to sync with ds390/gen.c
2926
2927 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2928
2929         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2930           (_print_format): fixed printing pointers
2931         * src/mcs51/gen.c (emitLabel, movb): new, added,
2932           (genAssign): small optimization,
2933           (genDjnz): fixed stack overflow bug,
2934           (throughout): replaced sprintf with SNPRINTF,
2935           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2936           replaced emitcode("mov", "b,...") with MOVB(...),
2937           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2938           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2939         * src/mcs51/peeph.def: added rules 140 and 264
2940         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2941           so they may get optimized into registers
2942
2943 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2944
2945         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2946           immediately when encountered,
2947           (printUsage): always use stderr even on windows
2948
2949 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2950
2951         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2952         (processParms): fixed bug #1247551
2953         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2954         parseCmdLine, main): print '--version' to stdout,
2955         print 'help' to stdout if --help is given,
2956         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2957         arguments are given; fixed --help
2958
2959 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2960
2961         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2962         * support/regression/tests/bug-1493710.c: added
2963
2964 2006-05-27 Borut Razem <borut.razem AT siol.net>
2965
2966         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2967           static instead auto
2968         * support/regression/ports/pic16/support.c: increase stack size
2969           from default 64 bytes to 128 bytes
2970         * support/regression/tests/staticinit.c,
2971           support/regression/tests/float.c: regression tests fully enabled
2972           for pic16 port by putting the initialized data arrays into the code
2973           section
2974         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2975           This was changed by mistake in the previous version.
2976
2977 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2978
2979         * src/pic16/gen.c (genFunction, genEndFunction): some
2980         beautifications, fixed bug with falsely restoring FSR2 in large
2981         stack model, thanks to Beau E. Cox for reporting the bug
2982
2983 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2984
2985         * debugger/mcs51/break.c,
2986         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2987           use %p to print pointers, made address variables unsigned
2988         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2989         * debugger/mcs51/symtab.c (parseSymbol): must return something
2990         * src/mcs51/gen.c (aopForSym): small optimization,
2991            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2992           (freeAsmop): added missing break,
2993           (aopPut): removed parameter bvolatile, determine it inside the function,
2994           (saveRegisters, unsaveRegisters): small optimization,
2995           (genIpush): removed pointless check,
2996           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2997           replaced sprintf with SNPRINTF,
2998           replaced strcpy with strncpyz,
2999           updated aopPut calls,
3000           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
3001         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
3002
3003 2006-05-24 Borut Razem <borut.razem AT siol.net>
3004
3005         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
3006           modification of test for the pic16 port, put the array to the code
3007           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
3008
3009 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3010
3011         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
3012         * support/Util/pstdint.h: added
3013
3014 2006-05-22 Borut Razem <borut.razem AT siol.net>
3015
3016         * src/regression/Makefile: removed bool2.c test, added -q linker option
3017         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
3018           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
3019           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
3020           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
3021           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
3022           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
3023           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
3024           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
3025           define SUPPORT_BIT_TYPES 0, removed unused bit variables
3026
3027 2006-05-22 Raphael Neider <rneider AT web.de>
3028
3029         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
3030           bug #1492360 (problematic due to generic pointers, see code)
3031
3032 2006-05-22 Borut Razem <borut.razem AT siol.net>
3033
3034         * support/regression/ports/pic16/specs.mk: removed stack size linker
3035           directive
3036         * support/regression/tests/array.c,
3037           support/regression/tests/bitopcse.c,
3038           support/regression/tests/bug-908454.c,
3039           support/regression/tests/malloc.c: modified for pic16 regression test
3040         * support/regression/tests/bitfields.c:
3041           pic16 - excluded bitfileds of size > 8
3042         * support/regression/tests/bp.c: pic16 - reduced data size
3043         * support/regression/tests/bug-221100.c: pic16 - reduced data size
3044         * support/regression/tests/bug-460010.c:
3045           pic16 - used the absolute address the fits in memory
3046         * support/regression/tests/bug-716242.c:
3047           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
3048         * support/regression/tests/float.c:
3049           pic16 - excluded - data size too big
3050         * support/regression/tests/onebyte.c:
3051           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
3052         * support/regression/tests/shifts.c:
3053           pic16 - function names probably have to differ in first X characters
3054           (gpasm limitation?)
3055         * support/regression/tests/staticinit.c:
3056           pic16 - excluded some tests due error: no target memory available for
3057           section ".idata"
3058
3059 2006-05-22 Borut Razem <borut.razem AT siol.net>
3060
3061         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3062           second try. Thanks Stas Sergeev once more.
3063
3064 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3065
3066         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
3067           (genLeftShift, genRightShift): fixed bug 1491627
3068         * src/hc08/peeph.def (rules 7, 8.x): added
3069         * support/regression/tests/shifts.c (ShiftLeftByParam,
3070           ShiftRightByParam, testShiftByParam): added to test variable shifting
3071
3072 2006-05-20 Raphael Neider <rneider AT web.de>
3073
3074         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
3075         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
3076           (allocReg): add only new registers to dynAllocRegs,
3077           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
3078             #1489055, #1445850, and probably #1483693
3079
3080 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
3081
3082         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
3083         bug in for-loop that didn't emit the last of CONFIG and ID registers
3084
3085 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
3086
3087         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
3088           with offset
3089         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
3090           1489016, 1434401 and 1490124
3091         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3092           1489016, 1434401 and 1490124
3093
3094 2006-05-17 Borut Razem <borut.razem AT siol.net>
3095
3096         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3097           thanks Stas Sergeev
3098
3099 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3100
3101         * device/include/mcs51/P89c51RD2.h,
3102         * device/include/mcs51/P89LPC901.h,
3103         * device/include/mcs51/P89LPC922.h,
3104         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3105
3106 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3107
3108         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3109         to fix missing stack pragma in compiled binary object file,
3110
3111 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3112
3113         * support/packihx/configure.in,
3114         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3115         determine sizeof basic types even while cross compiling
3116
3117 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3118
3119         * src/avr/gen.c (aopop),
3120         * src/ds390/gen.c (aopOp),
3121         * src/hc08/gen.c (aopOp),
3122         * src/mcs51/gen.c (aopop),
3123         * src/pic16/gen.c (pic16_aopOp),
3124         * src/pic/gen.c (aopOp),
3125         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3126         if size of operand is smaller than spill location
3127
3128 2006-05-12 Borut Razem <borut.razem AT siol.net>
3129
3130         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3131           have to have CR/LF line endings even if they are checked out on *nix
3132           or on WIN32 in cygwin binmode
3133
3134 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3135
3136         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3137         * device/include/ds80c390.h: added sfr16 definitions
3138         * src/ds390/gen.c,
3139         * src/ds390/gen.h,
3140         * src/ds390/main.c,
3141         * src/ds390/ralloc.c,
3142         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3143           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3144           bit returning functions
3145         * support/regression/tests/sfr16.c: enabled test on ds390
3146
3147 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3148
3149         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3150         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3151
3152 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3153
3154         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3155         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3156           (cl_address_space constructor): removed expensive initialization,
3157           (cl_address_space::get_cell): extended for late initialization,
3158           (cl_address_space::*): use late initialization,
3159           (cl_address_decoder::activate): removed expensive initialization,
3160           This reduced regression test running time by 25%
3161
3162 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3163
3164         * packihx/,
3165         * configure.in,
3166         * configure,
3167         * sdcc.dsw,
3168         * Makefile.bcc,
3169         * Makefile.in,
3170         * support/packihx/Makefile.in,
3171         * support/packihx/clean.mk,
3172         * support/packihx/Makefile.bcc,
3173         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3174
3175 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3176
3177         * src/SDCCval.c (valNot): fix for regression test failure
3178           of not.c on big endian hosts
3179
3180 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3181
3182         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3183
3184 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3185
3186         * device/lib/mcs51/Makefile.in: changed string comparison operator
3187           to = for POSIX compliance; == is bash extension
3188
3189 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3190
3191         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3192           kosmonaut_pirx
3193
3194 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3195
3196         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3197         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3198         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3199         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3200         bug report #1478657,
3201
3202 2006-05-05 Borut Razem <borut.razem AT siol.net>
3203
3204         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3205           making the html
3206
3207 2006-05-02 Borut Razem <borut.razem AT siol.net>
3208
3209         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3210           create *.ind, which made make to fail if invoked with -j 2
3211
3212 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3213
3214         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3215           Hubert Sack for patch 1479782
3216
3217 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3218
3219         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3220
3221 2006-05-01 Raphael Neider <rneider AT web.de>
3222
3223         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3224           (create_pic): store only prefix-free device name,
3225           (init_pic): check for device names with "16" prefix,
3226           (list_valid_pics),
3227         * src/pic/device.h (struct PIC_device),
3228         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3229             stored device name,
3230         * device/include/pic/pic12f{635,675,629,683}.h,
3231         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3232         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3233         * device/include/pic/pic16f505.h,
3234         * device/lib/pic/libdev/pic16f505.c: removed
3235         * device/include/pic/pic14devices.txt: added support for pic12f
3236             devices, removed unsupported non 16-bit devices
3237             [above changes provided by patch from Zik Saleeba]
3238         * src/pic/*, src/pic16/*, device/include/pic16/*,
3239           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3240
3241 2006-05-01 Borut Razem <borut.razem AT siol.net>
3242
3243         * configure.in, configure, doc/Makefile.in:
3244           sync with nightly build makefile - latex, dvipdf and dvips
3245           not needed any more
3246
3247 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3248
3249         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3250         in the library source
3251
3252 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3253
3254         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3255
3256 2006-04-28 Raphael Neider <rneider AT web.de>
3257
3258         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3259         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3260           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3261         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3262
3263 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3264
3265         * device/lib/pic/libdev/Makefile.in,
3266         * device/lib/hc08/Makefile.in,
3267         * device/lib/gbz80/Makefile.in,
3268         * device/lib/z80/Makefile.in,
3269         * device/lib/ds390/Makefile.in,
3270         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3271         thanks to Borut for the bug report
3272         * configure.in,
3273         * configure: always create doc/Makefile independent from --enable-doc
3274         * Makefile.in: always install from directory doc independent from
3275         --enable-doc
3276         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3277         removed
3278         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3279         * doc/Makefile.in: install *.txt if present
3280         * device/include/Makefile.in (install): added installation of pic/*.inc
3281         and pic/*.txt files again, they were erroneously removed
3282
3283 2006-04-28 Raphael Neider <rneider AT web.de>
3284
3285         * src/pic/{gen.c,main.h,pcode.c},
3286         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3287             concerning signedness with casts
3288
3289 2006-04-28 Raphael Neider <rneider AT web.de>
3290
3291         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3292             definition of an interrupt handler,
3293         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3294             interrupt handler stuff from picglue() to separate routine,
3295           (picglue): enabled definition of intr handlers in files w/o main()
3296
3297 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3298
3299         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3300           compilation with MSVC 2005 Express Edition (VC8)
3301
3302 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3303
3304         * device/lib/Makefile: fixed build of gbz80 lib
3305
3306 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3307
3308         * support/regression/tests/bug-460010.c,
3309         * support/regression/tests/bug-524691.c,
3310         * support/regression/tests/bug-716242.c: removed conditional defines
3311           that are already in testfwk.h
3312
3313 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3314
3315         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3316           (AccAXRsh1): added, shift right by 1,
3317           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3318            AccAXLrl1
3319         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3320
3321 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3322
3323         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3324         remove cast to same type
3325         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3326         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3327         * as/z80/Makefile,
3328         * link/z80/Makefile: removed, they have moved to
3329         Makefile.in files
3330         * configure,
3331         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3332         * install-sh: fix bug #1204398 by setting umask 0022
3333         * device/lib/Makefile: separate build of z80 and gbz80 lib
3334
3335 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3336
3337         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3338         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3339
3340         One basic decision: e.g. src/clean.mk includes further files. In order
3341         to make this work there are two solutions:
3342         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3343           run configure on them. This way they can use
3344           'include $(srcdir)/port-clean.mk'
3345         - always include clean.mk by the Makefile at the same level. To avoid
3346           that `make clean` tries to include and build Makefile.dep the
3347           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3348           implemented, because now even `make uninstall` doesn't create
3349           Makefile.in. clean.mk could be eliminated by pasting it in
3350           Makefile.in.
3351
3352         * debugger/mcs51/Makefile.in: build own objects from library sources
3353         (SLIB, SDCC) in current directory
3354
3355         * configure, configure.in: renamed --disable-device-lib-build in
3356         --disable-device-lib; added --enable-doc, the required tools are
3357         searched by configure; added result message; the toolchain for the
3358         belonging ports are now only built, if the port is enabled.
3359
3360         * support/regression/*: all output is written in directory gen, because
3361         the fwk and ports directories don't livet in the build tree using vpath
3362
3363         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3364         --disable-device-lib, added --enable-doc, added section VPATH
3365
3366         * sim/ucsim/configure.in,
3367         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3368         z80 are enabled by default
3369
3370 2006-04-24 Raphael Neider <rneider AT web.de>
3371
3372         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3373             to config word, "pic14_"-prefixed some extern functions
3374           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3375             config word has been found
3376         * src/pic/device.h: added prototypes
3377         * src/pic/pcode.c: added "pic14_"-prefix where needed
3378         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3379             fixup
3380         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3381             words,
3382           (pic14emitRegularMap): ignore config words,
3383           (pic14createInterruptVect): moved generating __config directives away
3384           (picglue): have __config directives emitted
3385
3386 2006-04-24 Borut Razem <borut.razem AT siol.net>
3387
3388         * doc/Makefile: sync with nightly build makefile
3389
3390 2006-04-24 Raphael Neider <rneider AT web.de>
3391
3392         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3393             registers that have not been assigned proper liveranges,
3394             fixes #1469504 and #1474602,
3395           (pCodeRegOptimizeRegUsage): fixed typo in comment
3396
3397 2006-04-24 Borut Razem <borut.razem AT siol.net>
3398
3399         * device/examples/main8051.c: deleted - it was removed from CVS
3400           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3401           after the transition to Subversion
3402         * src/SDCCalloc.h: deleted - it was removed  from CVS
3403           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3404           after the transition to Subversion
3405         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3406           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3407           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3408           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3409
3410 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3411
3412         * as/asx8051.dsp: added mcs51/strcmpi.h
3413         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3414         * as/hc08/aslink.h: updated lnksect prototype
3415         * as/hc08/asm.h,
3416         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3417         * as/hc08/asmain.c,
3418         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3419           (newdot): handle A_ABS
3420         * as/hc08/asout.c,
3421         * as/mcs51/asout.c (outarea): output address
3422         * as/hc08/lkaomf51.c,
3423         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3424         * as/hc08/m08pst.c,
3425         * as/mcs51/i51pst.c,
3426         * as/z80/z80pst.c: "ABS" is not A_OVR
3427         * as/hc08/lkarea.c (newarea): read a_addr,
3428           (lnkarea): added codemap array, sort absolute areas to the front,
3429            combine all GSINITx/GSFINAL,
3430           (find_empty_space, allocate_space): new functions,
3431           (lnksect): return next address, handle absolute sections
3432         * as/mcs51/lkarea.c (newarea): read a_addr,
3433           lnksect2 prototype changed,
3434           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3435           (find_empty_space, allocate_space): new, factored out of lnksect2,
3436           (lnksect2): return next address, handle absolute sections
3437         * as/hc08/lkhead.c,
3438         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3439         * as/hc08/lklibr.c (addfile, fndsym),
3440         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3441           index out of range and detect both '\' and '/'
3442         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3443         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3444           regression tests (ds390 cannot return bool yet)
3445         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3446           document critical interrupts on z80, document changed SDCC define
3447         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3448           (_a390_mapping): added .org directive
3449         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3450           (genMultOneByte): fixed warnings
3451         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3452           ones
3453         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3454         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3455           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3456         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3457         * src/pic16/main.c: removed newReg prototype
3458         * src/pic16/pcode.c,
3459         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3460           warnings
3461         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3462           ones
3463         * src/pic16/ralloc.c
3464         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3465           to fix warnings
3466         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3467           from short to PIC_OPTYPE
3468         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3469         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3470           optype from short to PIC_OPTYPE
3471         * src/port.h: made int_size unsigned to fix warnings
3472         * src/SDCC.y: fixed warning on MSVC
3473         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3474         * src/SDCCopt.c (convertToFcall): fixed warnings
3475         * src/SDCCsymt.h: removed double prototype for genSymName
3476         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3477           offset int to fix warnings
3478
3479 2006-04-22 Borut Razem <borut.razem AT siol.net>
3480
3481         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3482           references to CVS replaced with Subversion
3483
3484 2006-04-21 Borut Razem <borut.razem AT siol.net>
3485
3486         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3487           references to CVS replaced with Subversion
3488
3489 2006-04-19 Borut Razem <borut.razem AT siol.net>
3490
3491         * src/version.awk: adapted for svn
3492         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3493           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3494           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3495           /binutils-avr/etc/*.vi, *.jin: removed all properties
3496           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3497
3498 2006-04-19 Borut Razem <borut.razem AT siol.net>
3499
3500         * CVS to Subversion migration completed
3501
3502 2006-04-18 Borut Razem <borut.razem AT siol.net>
3503
3504         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3505           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3506
3507 2006-04-17 Borut Razem <borut.razem AT siol.net>
3508
3509         * device/include/Makefile.in: added pic/*.inc to the installation
3510
3511 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3512
3513         * support/regression/collate-results.py: fixed output in case of
3514         a valdiag error
3515         * support/regression/generate-cases.py: fixed splitting of pathnames
3516         with dots
3517         * as/hc08/lklibr.c (addfile),
3518         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3519
3520 2006-04-11 Raphael Neider <rneider AT web.de>
3521
3522         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3523         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3524         * src/pic16/pcode.c (assignValnums): fixed #1460578
3525
3526 2006-04-11 Raphael Neider <rneider AT web.de>
3527
3528         * device/lib/pic/libdev/*.c,
3529         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3530           fixes #1468739, enables compilation in --std-c99 mode
3531         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3532
3533 2006-04-11 Raphael Neider <rneider AT web.de>
3534
3535         * src/pic/device.c (find_device): removed debug output
3536           (list_valid_pics): enabled verbose listing of supported devices
3537         * device/include/stdbool.h: define bool as char for pic14/16 as well
3538
3539 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3540
3541         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3542
3543 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3544
3545         * .version: bumped version to 2.5.6
3546         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3547
3548 2006-04-06 Raphael Neider <rneider AT web.de>
3549
3550         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3551         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3552         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3553           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3554             pic14_constructAbsMap
3555           (pic14printPublics): declare absolute global symbols as global
3556           (pic14createInterruptVect),
3557         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3558           (newReg): assume new registers unused, use correct name in
3559             hashtable (reg->name instead of name), more debugLog output
3560         * src/pic/device.h (PIC_device): added fields for verbose output
3561         * src/pic/device.c: moved device definition to pic14devices.txt,
3562             added routines for runtime parsing of pic14devices.txt,
3563             added support for second config word
3564         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3565           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3566           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3567           (_pic14_parseOptions): moved pCodeInitRegisters here
3568           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3569         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3570           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3571             handling the pseudo stack
3572         * device/lib/Makefile.in: ignore failures in objects-pic16,
3573         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3574         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3575         * device/lib/pic/Makefile.subdir,
3576         * device/lib/pic16/Makefile.subdir: improved clean rules
3577         * device/lib/pic/libdev/: NEW, pic14 device libraries
3578         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3579         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3580         * device/include/Makefile.in: create subdir and install pic14 headers
3581         * device/include/pic/p16f_common.inc: removed unused declarations
3582         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3583             PICs from inc2h.pl v1.6,
3584             replaced BIT_AT macros with struct declarations
3585         * device/include/pic/pic14devices.txt: definition of supported devices,
3586             all above improvements contributed by Zik Saleeba, thanks
3587         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3588         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3589             headers
3590
3591 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3592
3593         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3594         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3595           thanks to Charles Olds
3596
3597 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3598
3599         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3600
3601 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3602
3603         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3604         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3605         * support/regression/bug1464657.c: added, new test
3606
3607 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3608
3609         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3610           version number
3611
3612 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3613
3614         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3615           --no-peep and --peep-file <file> are used don't use default rules but
3616           do use the <file>
3617
3618 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3619
3620         * src/mcs51/gen.c (genCall): fixed bug 1457608
3621
3622 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3623
3624         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3625         changes seem to cause (trigger?) problems with the build system.
3626
3627 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3628
3629         * src/SDCCpeeph.c (operandsLiteral): new, added,
3630           (callFuncByName): inserted operandsLiteral
3631         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3632
3633 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3634
3635         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3636         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3637
3638 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3639
3640         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3641           implemented patch 1120823 Thanks to Willy De la Court (normal
3642           interrupts need an interrupt number now if they are made critical),
3643           and enabled nesting of critical functions though not for gbz80
3644           (genCritical, genEndCritical): added functions
3645           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3646         * src/z80/mappings.i: added "ei" to all mappings
3647
3648 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3649
3650         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3651         submitted by the Debian SDCC maintainer Aurelien Jarno:
3652         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3653         archive with gcc 4.1 on mips and wrote the patch"
3654
3655 2006-03-16 Raphael Neider <rneider AT web.de>
3656
3657         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3658           the left operand is shorter than the result (c* = lit-c* + int),
3659           fixes bug #1450796
3660         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3661           OP_SYMBOL
3662
3663 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3664
3665         * src/.version: increased version number to 2.5.5
3666         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3667         linking is done manually in pic16 port's _linkEdit,
3668         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3669         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3670         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3671         allocate asmop as AOP_ACC,
3672         (aopForRemat): added parameter 'bool result' in function declaration,
3673         (pic16_aopGet): return AOP_ACC when accessing WREG,
3674         (pic16_popGetTempReg): minor modification,
3675         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3676         'pic16_allocWithIdx',
3677         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3678         calling function in absolute addresses,
3679         (genAssign): take into account AOP_ACC asmop,
3680         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3681         * src/pic16/pcoderegs.c: some debug functions and lines added,
3682         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3683         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3684         register too,
3685         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3686         call to allocReg, not by manually allocating a new one,
3687         (pic16_assignRegisters): now before going through the register
3688         allocating functions mark all registers as free. This eliminates some
3689         side effects resulting from peephole parser done earlier in the backbone
3690
3691 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3692
3693         * src/SDCCicode.c (geniCodeLogic),
3694         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3695
3696 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3697
3698         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3699           (genSend): bugfix, do not allocate and free twice,
3700           (shiftRLong): handle partially overlapping aops
3701         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3702
3703 2006-03-08 Borut Razem <borut.razem AT siol.net>
3704
3705         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3706           for pic16
3707
3708 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3709
3710         * support/regression/tests/bug1409955.c: new, added
3711         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3712         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3713           (aopForSym, aopOp): increment asmop.allocated if reused,
3714           (freeAsmop): decrement asmop.allocated and check for zero instead of
3715           using asmop.freed,
3716           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3717           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3718            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3719            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3720            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3721            genSignedRightShift, genRightShift, genDataPointerGet,
3722            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3723            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3724             in reverse order from allocation,
3725           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3726             added swappedLR to keep track
3727         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3728           pdata & code for GCC, z80, gbz80 & hc08
3729         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3730
3731 2006-03-08 Raphael Neider <rneider AT web.de>
3732
3733         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3734
3735 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3736
3737         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3738         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3739         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3740
3741 2006-03-06 Borut Razem <borut.razem AT siol.net>
3742
3743         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3744           made the linker quiet
3745
3746 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3747
3748         * src/pic16/gen.c (genPcall): fixed bug #1443644
3749         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3750         which dumps before the function entry point a data byte which represents
3751         the number of the local variables used by the specified function, added
3752         'xinst' for initial support for Extended Instruction Support,
3753         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3754         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3755         port->fun_prefix anymore (may change later),
3756         (genFunction, genEndFunction): do not store/restore local registers for
3757         _main (this should take care the --main-return command line option in
3758         the future),
3759         (genOr): removed some legacy pic-port instructions,
3760         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3761         performing operations with SFR's causes data to be written more than
3762         once to each SFR. Perhaps SFRs should be handled in special cases...
3763         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3764         pcode.h
3765         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3766         into account for stack starting position,
3767         (struct OPTIONS pic16_optionsTable): added command line argument
3768         --extended or -y for Extended Instruction Support,
3769         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3770         (deassignLRs): *** perhaps the most important change, old 'for' code
3771         (commented out for reference), didn't account for some registers which
3772         were left marked 'not free' after a pointer operation. The change
3773         reduces register usage a lot in some cases
3774
3775 2006-03-04 Borut Razem <borut.razem AT siol.net>
3776
3777         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3778           _clean
3779         * support/regression/tests/bug-524697.c: decreased array size for
3780           mcs51 to fit into the internal RAM
3781         * support/regression/Makefile.in: a little bit more verbose
3782
3783 2006-03-03 Borut Razem <borut.razem AT siol.net>
3784
3785         * support/regression/fwk/lib/testfwk.c,
3786           support/regression/fwk/include/testfwk.h: introduced function
3787           _prints(), nonrecursive _printn(), call _initEmu() from main()
3788         * support/regression/ports/gbz80/support.asm,
3789           support/regression/ports/ucz80/support.asm,
3790           support/regression/ports/z80/support.asm,
3791           support/regression/ports/ds390/support.c,
3792           support/regression/ports/hc08/support.c,
3793           support/regression/ports/host/support.c,
3794           support/regression/ports/mcs51/support.c,
3795           support/regression/ports/xa51/support.c: added empty _initEmu()
3796           function
3797         * support/regression/ports/pic16/gpsim.cmd,
3798           support/regression/ports/pic16/spec.mk,
3799           support/regression/ports/pic16/support.c,
3800           support/regression/Makefile.in: added pic16 regression test
3801
3802 2006-03-01 Raphael Neider <rneider AT web.de>
3803
3804         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3805           genConstPointerGet): use safe way of generating MOVFF to cover
3806             literals as well as registers, fixes bug #1440527
3807         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3808             dereference
3809           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3810             more correctly, fixes bug #1232186
3811           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3812         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3813             gplink guess the correct processor in more cases, applied patch
3814             from Till Riedel attached to and fixing bug #1436552
3815
3816 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3817
3818         * support/regression/tests/array.c: added, contains check for #1434401
3819         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3820
3821 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3822
3823         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3824         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3825         * device/include/mcs51/c8051f326.h,
3826         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3827         * device/include/mcs51/c8051f000.h,
3828         * device/include/mcs51/c8051f018.h,
3829         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3830           PCON_IDLE,PCON_STOP and added sfr16 definitions
3831
3832 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3833
3834         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3835           genGetWord): fixed bug 1409955
3836
3837 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3838
3839         * device/include/hc08/mc68hc908gp32.h,
3840         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3841
3842 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3843
3844         * src/SDCCast.c (constExprValue): return NULL if not a value
3845         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3846         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3847         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3848
3849 2006-02-13 Borut Razem <borut.razem AT siol.net>
3850
3851         * src/regression/ptrarg.c: added, fails due to bug #1430967
3852         * src/regression/Makefile: ptrarg.c added, ...
3853
3854 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3855
3856         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3857         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3858
3859 2006-02-11 Borut Razem <borut.razem AT siol.net>
3860
3861         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3862           print "Processor: xxx" message to stdout only if --verbose
3863
3864 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3865
3866         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3867         * support/regression/tests/bug1426356.c: added
3868         * support/regression/tests/bitfields.c: removed 2 tests
3869
3870 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3871
3872         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3873         * device/include/mcs51/c8051f330.h,
3874         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3875           PCON_IDLE,PCON_STOP and added sfr16 definitions
3876         * device/lib/_divsint.c,
3877         * device/lib/_divuint.c,
3878         * device/lib/_divulong.c,
3879         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3880           register bank bug for small stackauto
3881
3882 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3883
3884         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3885
3886 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3887
3888         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3889         * all.dsp: corrected several bin paths
3890         * device/include/mcs51/c8051f120.h,
3891         * device/include/mcs51/c8051f300.h,
3892         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3893           to PCON_IDLE,PCON_STOP
3894         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3895         * device/lib/printf_large.c (output_float): fixed bug 1388703
3896         * support/regression/tests/bug1057979.c: added test for bug 1388703
3897
3898 2006-02-08 Raphael Neider <rneider AT web.de>
3899
3900         * src/pic/pcode.c (pciTRIS): fixed typo,
3901           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3902           (LinkFlow): fixed handling of flows that end in a call,
3903           (ReuseReg): perform safety check earlier
3904         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3905             to work with flows at the beginning of a pBlock,
3906             fixes #1426557 (Symbol not previously defined),
3907           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3908             usage information
3909           (RemoveUnusedRegisters): update register usage info
3910         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3911             created, reuse existing ones instead
3912         * src/pic/gen.c (genPcall): fixed #1424719
3913
3914 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3915
3916         * link/z80/lkmain.c,
3917         * link/z80/lklex.c,
3918         * link/z80/lkdata.c,
3919         * link/z80/aslink.h: fixed build on current cygwin:
3920         replaced getline() by lk_getline()
3921
3922 2006-02-01 Borut Razem <borut.razem AT siol.net>
3923
3924         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3925           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3926           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3927           src/regression/bool1.c, src/regression/bool2.c,
3928           src/regression/bool3.c, src/regression/call1.c,
3929           src/regression/compare.c, src/regression/compare10.c,
3930           src/regression/compare2.c, src/regression/compare3.c,
3931           src/regression/compare4.c, src/regression/compare5.c,
3932           src/regression/compare6.c, src/regression/compare7.c,
3933           src/regression/compare8.c, src/regression/compare9.c,
3934           src/regression/configword.c, src/regression/for.c,
3935           src/regression/inline.c, src/regression/mult1.c,
3936           src/regression/nestfor.c, src/regression/or1.c,
3937           src/regression/pointer1.c, src/regression/ptrfunc.c,
3938           src/regression/rotate1.c, src/regression/rotate2.c,
3939           src/regression/rotate3.c, src/regression/rotate4.c,
3940           src/regression/rotate5.c, src/regression/rotate6.c,
3941           src/regression/rotate7.c, src/regression/string1.c,
3942           src/regression/struct1.c, src/regression/sub.c,
3943           src/regression/sub2.c, src/regression/switch1.c,
3944           src/regression/while.c, src/regression/xor.c,
3945           src/regression/create_stc, src/regression/simulate,
3946           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3947           regression tests
3948         * src/regression/gpsim_assert.h: added
3949
3950 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3951
3952         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3953         ((void (code *) (void)) 0) ();
3954         * as/hc08/aslex.c,
3955         * as/hc08/aslink.h,
3956         * as/hc08/asm.h,
3957         * as/hc08/asmain.c,
3958         * as/hc08/lkdata.c,
3959         * as/hc08/lklex.c,
3960         * as/hc08/lkmain.c,
3961         * as/mcs51/aslex.c,
3962         * as/mcs51/aslink.h,
3963         * as/mcs51/asm.h,
3964         * as/mcs51/asmain.c,
3965         * as/mcs51/lkdata.c,
3966         * as/mcs51/lklex.c,
3967         * as/mcs51/lkmain.c,
3968         * as/z80/aslex.c,
3969         * as/z80/asm.h,
3970         * as/z80/asmain.c: fixed build on current cygwin:
3971         replaced getline() by as_getline()
3972
3973 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3974
3975         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3976         declarator in the symbol chain
3977         * src/SDCCsymt.h,
3978         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3979         parameter list for function pointers
3980         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3981         * support/regression/tests/bug-716242.c: added
3982
3983 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3984
3985         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3986         offset if possible
3987         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3988
3989 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3990
3991         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3992         inifinitely recurseable, added static
3993         * support/regression/tests/bug-1408066.c: added
3994
3995 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3996
3997         * src/SDCCicode.h,
3998         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3999         renamed, added possibility to create "postLoopLbl"-labels
4000         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
4001         newiTempLoopHeaderLabel
4002         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
4003         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
4004         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
4005         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
4006         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
4007         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
4008         (basicInduction): fixed bug #136564, made static,
4009         (loopInduction): changed parameter of basicInduction, made static,
4010         (addPostLoopBlock): added
4011         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
4012         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
4013         findLoopEndSeq
4014         * support/regression/tests/bug-136564.c: added
4015         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
4016         --std-sdcc99 to LIBSDCCFLAGS
4017
4018 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
4019
4020         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
4021         while loop
4022         * support/regression/tests/bug-1406131.c: added
4023
4024 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
4025
4026         * src/SDCCast.c (decorateType): fix promotion of unary minus
4027         * src/SDCCsymt.c (computeType): beautified
4028         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
4029         (valUnaryPM, valComplement): fix sign and promotion,
4030         (valNot): ANSI: result type is int (SDCC: unsigned char)
4031         * support/regression/tests/uminus.c: speedup by removing superflous
4032         test case 'int'
4033         * support/regression/tests/onebyte.c: added promotion and signedness
4034         tests for unary minus
4035         * support/regressions/tests/bug-477927.c: disable warning about
4036         uninitialized variables
4037         * support/regression/tests/not.c: added
4038
4039 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
4040
4041         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
4042         * src/mcs51/gen.c (gen51Code): show final register usage after
4043         fillGaps in asm with --i-code-in-asm
4044         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
4045         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
4046         incUsed, rliveClear, adjustIChain): made static,
4047         (setFromRange): excluded because it's unused,
4048         (findPrevUseSym, markWholeLoop): added,
4049         (findPrevUse): rewritten; fixes bug 895992; now a complete search
4050         through all branches of predecessors enables sdcc to emit the warning
4051         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
4052         (rlivePoint): made static, added parameter emitWarnings which is only
4053         true during the first run out of two,
4054         (findRecursiveSucc, findRecursivePred): removed,
4055         (computeLiveRanges): made static, added parameter emitWarnings,
4056         (dumpIcRlive): added for debugging only
4057         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
4058         removed prototype of setFromRange()
4059         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
4060         in call of computeLiveRanges()
4061         * support/regression/tests/bug-895992.c: added
4062         * support/regression/tests/bug-971834.c: added
4063         * support/valdiag/tests/bug-895992.c: added
4064         * support/valdiag/tests/bug-971834.c: added
4065
4066 2005-12-18 Raphael Neider <rneider AT web.de>
4067
4068         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
4069           (genUnpackBits): improved code for direct operands,
4070           (genPackBits): improved code for literal assignment to bitfields
4071             and for direct destination operands (no FSR indirection),
4072             prevented redundant AND, fixes #1362800,
4073           (AccLsh): added parameter to disable masking of the result
4074         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
4075           skip instructions with side-effects (like incfsz),
4076           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
4077         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
4078         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
4079           fixes #1375263
4080
4081 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
4082
4083         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
4084         volatile variables as spill location
4085
4086 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
4087
4088         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
4089         replacing literals
4090         * support/regression/tests/bug-1376320.c: added
4091
4092 2005-12-08 Raphael Neider <rneider AT web.de>
4093
4094         * src/pic/device.c: renamed is_shared to pic14_is_shared
4095         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4096         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4097           (is_valid_identifier): added for above workaround
4098
4099 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4100
4101         * device/lib/Makefile.in: fixed to enable port-specific-objects
4102         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4103           char, thanks Hubert Sack
4104         * doc/sdccman.lyx: documented --xstack-loc,
4105           elaborated a bit more on interrupts and pitfalls,
4106           removed "setjmp/longjmp unsupported",
4107           documented some unsupported C99 features
4108         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4109         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4110           if, thanks Hubert Sack
4111         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4112         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4113           make make_library
4114         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4115           regression tests can report resource usage (rfe 700441)
4116         * support/regression/collate-results.py: report resource usage
4117         * support/regression/ports/ds390/spec.mk,
4118         * support/regression/ports/hc08/spec.mk,
4119         * support/regression/ports/mcs51/spec.mk,
4120         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4121         * support/regression/ports/ds390/uCsim.cmd,
4122         * support/regression/ports/hc08/uCsim.cmd,
4123         * support/regression/ports/mcs51/uCsim.cmd,
4124         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4125         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4126           library, use the default one
4127         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4128           building the library
4129
4130 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4131
4132         * config.dsp: added dependency on .version and configure_vc.awk
4133         * device/include/setjmp.h: updated for --stack-auto and --xstack
4134         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4135         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4136         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4137         * device/lib/libsdcc.lib: added _setjmp
4138         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4139           (decorateType): fixed bug 1372851,
4140           (optimizeGetHbit): fixed warning
4141         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4142           array initialisation
4143         * support/regression/tests/bug1057979.c: added test for bug 1358192
4144         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4145
4146 2005-12-03 Borut Razem <borut.razem AT siol.net>
4147
4148         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4149           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4150
4151 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4152
4153         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4154         createIval): implement symbol independant "flexible array member",
4155         (createIvalCharPtr): implemented flexible array initialisation with a
4156         string
4157         * src/SDCCsymt.c (copyStruct): removed,
4158         (getSize): fixed misleading comment,
4159         (getAllocSize): removed, the additional allocation size is now in
4160         sym->flexArrayLength,
4161         (checkStructFlexArray): new, syntax checks for flexible array members,
4162         (compStructSize): added syntax checks for "flexible array members"
4163         (copyStruct): removed,
4164         (copyLinkChain): removed inefficient fix for bug 770487
4165         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4166         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4167         symbol->flexArrayLength
4168         * src/SDCCerr.c,
4169         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4170         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4171         * support/regression/tests/structflexarray.c: added
4172         * support/valdiag/tests/structflexiblearray.c: added
4173
4174 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4175
4176         * src/SDCCast.c (decorateType): fixed bug 1368489
4177         * support/Util/SDCCerr.c,
4178         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4179
4180 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4181
4182         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4183           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4184
4185 2005-11-27 Borut Razem <borut.razem AT siol.net>
4186
4187         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4188           support/cpp2/mkdeps.h: added command line option
4189           -obj-ext=<extension> to SDCPP to define object file externion, used
4190           for generation of make dependencies (-M)
4191         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4192
4193 2005-11-26 Borut Razem <borut.razem AT siol.net>
4194
4195         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4196           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4197           added pic and pic16 libraries
4198
4199 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4200
4201         * device/include/float.h: Corrected typo in prototype of __fsgt
4202
4203 2005-11-25 Borut Razem <borut.razem AT siol.net>
4204
4205         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4206           added creation of model-mcs51-stack-auto libraries
4207
4208 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4209
4210         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4211         and fields-list too
4212         * src/SDCCast.c (createIvalArray): removed obsolete comment
4213
4214 2005-11-24 Borut Razem <borut.razem AT siol.net>
4215
4216         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4217           added missing device/lib/mcs51/crt*.asm sources
4218
4219 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4220
4221         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4222
4223 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4224
4225         * device/lib/_fs2schar.c,
4226         * device/lib/_fs2sint.c,
4227         * device/lib/_fs2slong.c: optimized inline asm
4228
4229 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4230
4231         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4232           Better handling of floats between -1.0 and 0.0.
4233
4234 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4235
4236         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4237           (the missing "if"s prohibited removal of redundant labels)
4238
4239 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4240
4241         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4242           Properly convert floats between -1.0 and 0.0 to long, int, and char
4243           types (max integer value of negative floats tends to zero).
4244         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4245           Removed changes made so to work properly with floats between
4246           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4247           and _fs2char.c
4248
4249 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4250
4251         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4252         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4253         (genCast) cosmetic change
4254         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4255         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4256         from mcs51
4257         * support/regression/tests/bitfields (testSignedBitfields): added
4258
4259 2005-11-18 Borut Razem <borut.razem AT siol.net>
4260
4261         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4262         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4263           introduced SILENT option to make building of pic16 libraries less
4264
4265 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4266
4267         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4268           Now they work properly with floats between -1.0 and 0.0
4269         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4270
4271 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4272
4273         * src/SDCCicode.c (printOperand): added missing else
4274
4275 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4276
4277         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4278         reformatted for better readability
4279         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4280         signed bitfields
4281
4282 2005-11-17 Borut Razem <borut.razem AT siol.net>
4283
4284         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4285           introduced SILENT option to make building of pic16 libraries less
4286           verbose - used for nightly snapshot build
4287         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4288           available on Win32 platforms.
4289         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4290           medium, large, pic and pic16
4291
4292 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4293
4294         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4295           printf("%f"...) sets fraction to zero.
4296
4297 2005-11-16 Raphael Neider <rneider AT web.de>
4298
4299         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4300           fixes #1357221
4301         * src/pic/gen.c (genIfx): implemented for CARRY bit
4302         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4303           to generic pointers, fixes #1357332,
4304           (pic16_movLit2f): NEW,
4305           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4306
4307 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4308
4309         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4310
4311 2005-11-11 Raphael Neider <rneider AT web.de>
4312
4313         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4314         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4315           compute pointer's type from operand,
4316           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4317           improved single bit reads, fixes bug #1353379
4318
4319 2005-11-09 Borut Razem <borut.razem AT siol.net>
4320
4321         * support/scripts/sdcc.nsi: added lib/pic to the package
4322
4323 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4324
4325         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4326
4327 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4328
4329         * support/regression/tests/bug1348008.c: added
4330         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4331         * support/regression/tests/bug1337835.c: updated comment
4332
4333 2005-11-06 Borut Razem <borut.razem AT siol.net>
4334
4335         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4336           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4337           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4338           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4339           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4340           dynamic construction of cl_error_class and derivates - 2.nd try
4341
4342 2005-11-05 Borut Razem <borut.razem AT siol.net>
4343
4344         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4345           bug, which caused Bus Errors on sparc solaris
4346
4347 2005-11-04 Borut Razem <borut.razem AT siol.net>
4348
4349         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4350           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4351           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4352           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4353           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4354           and derivates to resolve the initialization problem on OSX
4355
4356 2005-11-02 Borut Razem <borut.razem AT siol.net>
4357
4358         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4359           corrected typo - #include <winsock2.h>
4360
4361 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4362
4363         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4364           (_asxxxx_mapping): added org directive for future enhancements
4365
4366 2005-11-01 Borut Razem <borut.razem AT siol.net>
4367
4368         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4369           enabled sockets on WIN32
4370         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4371
4372 2005-10-31 Borut Razem <borut.razem AT siol.net>
4373
4374         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4375           WIN32 backslash path delimiters should be escaped when used in C strings
4376         * support/regression/tests/bitfields.c: exclude failing assertions for
4377           __CYGWIN32__ and __MINGW32__ hosts
4378
4379 2005-10-30 Borut Razem <borut.razem AT siol.net>
4380
4381         * src/SDCCutil.c: corrected double comparison typo
4382
4383 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4384
4385         * device/lib/medium/Makefile: added for new memory model medium
4386         * device/include/asm/mcs51/features.h: updated for medium/pdata
4387         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4388           added Multiply & Accumulate sbit's and MAC0_PAGE define
4389         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4390         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4391         * device/lib/_mullong.c: update for medium model
4392         * device/lib/incl.mk: added medium model
4393         * doc/sdccman.lyx: documented medium model
4394         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4395         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4396         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4397         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4398           (allocParms): set SCLS and OCLS to pdata for medium model
4399         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4400           for pdata,
4401           (powof2): return <0 if not power of 2
4402         * src/avr/gen.c (genBitWise): use updated powof2
4403         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4404           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4405           (shiftLLeftOrResult): use B if necessary
4406         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4407         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4408         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4409         * support/regression/Makefile.in: added test-mcs51-medium
4410         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4411
4412 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4413
4414         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4415         specifier unsigned
4416         * device/lib/time.c (mktime): fixed bug 1334315
4417
4418 2005-10-28 Raphael Neider <rneider AT web.de>
4419
4420         * device/include/pic/p16f_common.inc: added common declarations
4421         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4422
4423 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4424
4425         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4426           (aopPutUsesAcc): added to predict accumulator use,
4427           (assignResultValue): save acc if necessary,
4428           (genMinusDec): store result if indirectly addressed,
4429           (genDivOneByte):  save acc if necessary,
4430           (movLeft2Result): bugfix if left already in acc,
4431           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4432             attention to accumulator use (esp. pdata),
4433           (genReceive): receive pdata correctly
4434         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4435         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4436
4437 2005-10-27 Raphael Neider <rneider AT web.de>
4438
4439         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4440
4441 2005-10-27 Raphael Neider <rneider AT web.de>
4442
4443         * .version: changed version to 2.5.4
4444         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4445         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4446           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4447             arithmetics support routines
4448         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4449         * device/lib/Makefile.in: also create installdir for pic
4450
4451         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4452           pic14 port as well
4453         * src/pic/device.c (dump_sfr): rewritten to delegate register
4454           placement to the linker (use `extern sym' rather than sym EQU addr),
4455           (validAddress): fixed to check last specified address
4456         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4457           (popGetLit): truncate literal value to 8 bit,
4458           (popGet): moved assert to more appropriate place
4459           (popGetExternal): create pCode operand from and mark the according
4460             symbol as being `extern'
4461           (popGetAddr): added sanity check on immediate's offset, provide
4462             GPOINTER tag on demand
4463           (aopPut): fixed for immediates,
4464           (mov2w_op): move operand's address or contents to WREG (depending on
4465             operand type), safer variant of mov2w,
4466           (movwf,call_libraryfunc): NEW, handy abbreviations,
4467           (get_argument_pcop,get_return_val_pcop,pass_argument,
4468           get_returnvalue): interface for accessing function parameters and
4469             return values,
4470           (assignResultValuei,genRet): use new parameter/return value interface
4471           (pic14_getDataSize): back to old version handling generic pointers,
4472           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4473             provided implementation and/or fixed old one,
4474           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4475             calls, removed legacy 8051 reference code
4476           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4477           (loadSignToC): NEW, move the operands sign bit to CARRY,
4478           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4479             genRightShiftSigned, accepts negative shift counts,
4480           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4481           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4482             generic pointers, __data pointers and __code pointers,
4483           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4484             and signed bitfields, limit bitfields to 8 bit,
4485           (genDataPointerGet): fixed number of bytes read,
4486           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4487           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4488             pointers to constant data are no longer assumed to point to __code
4489             space, removed invalid pointer types,
4490           (bitpatternFromVal): retrieve the PICs representation of an integer
4491             or float literal,
4492           (genDataPointerSet): fixed assigning to po_immediate operands,
4493           (genGenPointerSet): implemented as library call,
4494           (genIfx): fixed incorrect condition,
4495           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4496             provide GPOINTER tag according to destination's storage class,
4497           (genCast): added code to handle casting to generic pointers, added
4498             sign-/zero extension of the result
4499           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4500         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4501         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4502           extend the result
4503         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4504           address/register resides in the shared banks
4505           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4506             put all variables into separate sections (have the linker arrange
4507             them)
4508           (picglue): put init code and interrupt handlers in separate sections
4509         * src/pic/main.c: added port specific options table, modified to PORT
4510           structure to make GPOINTERs 3 byte, added pic14_options
4511           (_pic14_do_link): private linking routine (update paths to libraries,
4512             add libsdcc.lib by default)
4513         * src/pic/main.h: declare pic14_options
4514         * src/pic/pcode.c: fixed instructions i/o relations,
4515           (RegCond): reverted to correct version,
4516           (newpCodeOpLit): truncate literals to 8 bit,
4517           (genericPrint): added debug output,
4518           (getRegFromInstruction): fixed for various operand types, simplified
4519           (BuildFlow): fixed broken handling of isntructions with labels
4520           (LinkFlow): start at last instruction in flow (skip trailing comments),
4521             pass the flow on to the next instruction after CALL
4522           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4523           (insertPCodeInstruction): fixed inserting after a skip instruction,
4524           (DoBankSelect): fixed for labeled instructions
4525           (OptimizepBlock): honor --nopeep switch
4526           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4527         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4528         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4529           (pCodeOptime2pCodes): allow disabling this optimization via
4530             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4531             but is still buggy), started implementation of a dataflow based
4532             pCode optimization (CSE + dead code elimination)
4533           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4534         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4535           names are independant of the stack location and therefore portable across
4536           devices
4537
4538 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4539
4540         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4541           (selectSpil): fixed bug 1337835 by not spilling bit variables
4542         * support/regression/tests/bug1337835.c: added test for this bug
4543         * src/mcs51/peeph.def: restart after rule 3.c,
4544           addded rules 263.x to optimize loading constants
4545
4546 2005-10-26 Raphael Neider <rneider AT web.de>
4547
4548         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4549         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4550           (genAssign): emit warning when casting literals to generic pointer
4551             type, also applies when taking the address of a fixed variable,
4552           (genCast): improved casting to generic pointers
4553         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4554           extern variables, added verbose error message
4555         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4556
4557 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4558
4559         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4560         carry must be complemented too
4561         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4562         could be emitted by genMinus
4563         * src/SDCCval.c (constVal): fixed bug 1305065
4564
4565 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4566
4567         * src/SDCCast.c (addCast): added promotion for bit variables
4568         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4569         promotion casts + optimisation
4570         (optimizeGetWord): fix warning 'i' might be used uninitialized
4571         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4572         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4573
4574 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4575
4576         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4577         all chars are promoted to int; promotion should be handled in SDCCast.c
4578
4579 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4580
4581         * device/lib/_strcmp.c: Fixed bug 1326457
4582
4583 2005-10-11 Raphael Neider <rneider AT web.de>
4584
4585         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4586         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4587
4588 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4589
4590         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4591         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4592
4593 2005-10-04 Raphael Neider <rneider AT web.de>
4594
4595         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4596           device/lib/pic16/pics.all: added pic18f1320
4597         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4598
4599 2005-09-30 Raphael Neider <rneider AT web.de>
4600
4601         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4602         * src/pic16/devices.inc: NEW, provides device descriptions
4603         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4604
4605 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4606
4607         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4608           GETHBIT
4609
4610 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4611
4612         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4613           documented Any Order Bit, Higher Order Byte and Higher Order Word
4614         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4615         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4616           (optimizeGetAbit): new, to get any bit, not only the high bit,
4617           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4618           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4619           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4620           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4621             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4622             GETABIT, GETBYTE, GETWORD: decorate them,
4623           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4624           (ast_print): added GETABIT, GETBYTE, GETWORD
4625         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4626         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4627           (geniCodeBinary): new generic binary icode,
4628           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4629         * src/port.h: updated comment for PORT.hasExtBitOp
4630         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4631           (genGetByte): new, to get a single byte,
4632           (genGetWord): new, to get a word from a long,
4633           (gen51Code): added GETABIT, GETBYTE, GETWORD
4634         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4635
4636 2005-09-23 Raphael Neider <rneider AT web.de>
4637
4638         * configure.in, configure: have device/lib/pic configured
4639         * device/lib/Makefile.in: added model-pic14
4640         * device/lib/clean.mk: added pic/ to clean rule
4641         * device/lib/pic: added rudimentary pic14 library providing support
4642           functions for multiplication/division/generic pointer access
4643         * src/SDCCopt.c (convilong): mark support functions as extern
4644           for pic14 port as well
4645         * src/pic/gen.c (genMult): added assertions,
4646           (genpic14Code): emit warning on unhandled iCodes
4647         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4648         * src/pic/pcode.c (pCodeOpCopy),
4649         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4650           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4651           SFR_REGISTER}), made safe for future extensions
4652         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4653           instructions even if preceeded by SKIP instructions (also remove
4654           them); removed unused code
4655         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4656           prevents leaving parts of the structure uninitialized after copying
4657
4658 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4659
4660         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4661           ago by me
4662         * support/regression/tests/addsub.c: added test for the bug
4663
4664 2005-09-21 Raphael Neider <rneider AT web.de>
4665
4666         * device/include/pic16/pic18f1220.h,
4667           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4668         * device/lib/pic16/Makefile.rules: added missing opening paren
4669         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4670           are provided in genutils.c,
4671           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4672           operand/result sizes,
4673           (genCmp): assert on NULL pointers first, then check deref'ed values
4674         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4675           result size
4676
4677 2005-09-18 Raphael Neider <rneider AT web.de>
4678
4679         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4680           as these are now unused,
4681           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4682         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4683           local, avoids uninitialized pointer dereference on r->name
4684         * src/pic16/ralloc.c (newReg): fixed indentation
4685
4686 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4687
4688         * src/SDCCval.c (constVal): fixed bug 730366
4689         * support/Util/SDCCerr.c,
4690         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4691
4692 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4693
4694         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4695
4696 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4697
4698         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4699
4700 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4701
4702         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4703           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4704         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4705           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4706         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4707         * packihx/packihx.c (hexDigit): made c unsigned char
4708         * as/mcs51/lklibr.c (fndsym),
4709         * link/z80/lkgb.c (gb),
4710         * link/z80/lklibr.c (fndsym),
4711         * link/z80/lkrloc.c (relr),
4712         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4713         * src/SDCC.lex (checkCurrFile, process_pragma),
4714         * src/SDCCglue.c (spacesToUnderscores),
4715         * src/SDCCmain.c (setParseWithComma, processFile),
4716         * src/asm.c (tvsprintf, printCLine),
4717         * src/avr/gen.c (emitcode, aopPut),
4718         * src/ds390/gen.c (emitcode),
4719         * src/hc08/gen.c (emitcode, emitinline),
4720         * src/mcs51/gen.c (emitcode, genInline),
4721         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4722           tokenizeLineNode),
4723         * src/pic/ralloc.c (debugLog),
4724         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4725           tokenizeLineNode),
4726         * src/pic16/ralloc.c (debugLog),
4727         * src/z80/main.c (_process_pragma):
4728            made all ctype.h function calls safe
4729         * src/SDCCopt.c: include math.h for fabs
4730         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4731           and used them throughout the code to make ctype.h function calls safe
4732         * src/ds390/main.c (asmLineNodeFromLineNode),
4733         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4734         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4735            unsigned char*
4736         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4737           (newpCodeAsmDir): made ctype.h function calls safe
4738         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4739           pic16_emitcode):  made lbp unsigned char*
4740         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4741           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4742         * src/xa51/gen.c (emitcode),
4743         * src/z80/gen.c (_emit2): made lbp unsigned char*
4744         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4745            char*
4746
4747 2005-09-05 Raphael Neider <rneider AT web.de>
4748
4749         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4750           access bank splitpoint
4751
4752 2005-09-05 Raphael Neider <rneider AT web.de>
4753
4754         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4755
4756 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4757
4758         * .version: changed to version 2.5.3
4759         * doc/sdccman.lyx: changed version to 2.5.3,
4760           documented --codeseg and --constseg and pragma codeseg and constseg,
4761           documented bit parameters (reentrant) and bit returning
4762         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4763            currFunc->recvSize, but is this ok for all ports?
4764           (ast2iCode): result of ~ on unsigned char must be cast to int for
4765            bool to work
4766         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4767           function pointers in bit space
4768         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4769           (processFuncArgs): call port.reg_parm() with reentrancy info
4770         * src/port.h,
4771         * src/avr/main.c,
4772         * src/ds390/main.c,
4773         * src/hc08/main.c,
4774         * src/pic/main.c,
4775         * src/pic16/main.c,
4776         * src/xa51/main.c,
4777         * src/z80/main.c: port.reg_parm prototype extended with
4778           "bool reentrant" parameter
4779         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4780           options.stackAuto for allocating bit register parameters
4781         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4782           (genSend): set BitBankUsed if it is,
4783           (selectRegBank): factored out of genCall for use in genPcall,
4784           (genCall): removed redundant dtype assignmen, use selectRegBank,
4785           (genPcall): handle returning in Carry properly, save in F0 if needed,
4786           (genReceive): handle bit register parameters
4787         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4788           (mcs51_assignRegisters): enable bit registers for all reentrant
4789            functions and don't set BitBankUsed unconditionally
4790         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4791         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4792         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4793
4794 2005-08-27 Borut Razem <borut.razem AT siol.net>
4795
4796         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4797         ppc-osx (Darwin) does not support -u option. It seems that it is
4798         supported only on Linux - GNU cp
4799
4800 2005-08-25 Borut Razem <borut.razem AT siol.net>
4801
4802         * sim/ucsim/gui.src/serio.src/Makefile.in,
4803           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4804           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4805           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4806           install and strip, since the strip at /usr/ccs/bin should be used
4807           on solaris
4808
4809 2005-08-24 Borut Razem <borut.razem AT siol.net>
4810
4811         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4812
4813 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4814
4815         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4816         ffffffffu
4817
4818 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4819
4820         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4821         * as/mcs51/lkmain.c (link_main): fixed warning
4822         * device/include/stdbool.h: ds390 has no advanced bit support yet
4823         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4824         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4825         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4826           and updated their macros
4827         * src/SDCCval.c (constVal): updated comment for renamed b_long
4828
4829 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4830
4831         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4832         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4833           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4834           (oprio): set priority for '['
4835         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4836            and adb_24_bit
4837         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4838         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4839         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4840         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4841           added overlayable BIT_BANK area
4842         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4843           (summary2): explain 'T' in legenda
4844         * as/mcs51/lkrloc.c: replaced old K&R style,
4845           (relr): added R_BIT processing,
4846           (errmsg): added "Bit-addressable relocation error",
4847           (adb_bit): added for converting from byte- to bit-addressable space,
4848           (adb_24_bit): added for converting from byte- to bit-addressable space
4849         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4850            used in reentrant functions now even as return value
4851         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4852         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4853           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4854         * src/SDCCglobl.h: added indicator BitBankUsed
4855         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4856            the bit registers b0-b7
4857         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4858           (geniCodeCast): fixed bug 1263853,
4859           (geniCodeLogicAndOr): put result in bool or char,
4860           (geniCodeReceive): added parameter func for accessing the return type,
4861           (geniCodeFunctionBody): pass func to geniCodeReceive
4862         * src/SDCCmain.c: added indicator BitBankUsed
4863         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4864         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4865           (checkSClass): don't put automatic bool/bit on stack,
4866           (checkFunction): removed check on function cannot return bit
4867         * src/SDCCsymt.h: added newBoolLink prototype
4868         * src/mcs51/gen.c (rb1regs): added bit registers,
4869           (movc): created for assigning to carry,
4870           (pushReg, popReg): created for pushing registers,
4871           (sameRegs): check both AOP_REG and AOP_CRY types,
4872           (aopOp): handle bit registers,
4873           (aopPut): optimization no self-assign,
4874           (saveRegisters): push reg->base (bits) only once for bit registers,
4875            and use pushReg,
4876           (unsaveRegisters): pop reg->base only once and use popReg,
4877           (assignResultValue): added parameter func and return in carry for bits,
4878           (genIpush): optimization no reload in A if not changed,
4879           (genSend): bit parameters in reentrant functions are passed in bit
4880            registers by first assigning to bits in B, then save registers and
4881            copy B to bits,
4882           (genCall): handle returning in Carry properly, save it in F0 if needed,
4883           (genPcall): updated assignResultValue call, this is not safe yet for bit
4884            returning function !!!
4885           (genFunction): don't generate equ's for bit registers and use pushReg,
4886           (genEndFunction): take care of bit returning functions and use popReg,
4887           (genRet): return bit in Carry,
4888           (genIfx): optimize bit registers and other directly addressable bits,
4889           (genReceive): updated assignResultValue call
4890         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4891           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4892            registers when using stack-auto
4893         * src/mcs51/ralloc.c (_G): added allBitregs,
4894           (regs8051): added the bit registers,
4895           (createStackSpil): use macro IS_BIT,
4896           (getRegBit): added to allocate a bit register, else spill,
4897           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4898           (updateRegUsage): factored out to ease stepping while debugging,
4899           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4900            also allocate bit registers,
4901           (fillGaps): handle bit registers,
4902           (findAllBitregs): added to create bit vector with all bit registers,
4903           (mcs51_allBitregs): returns this bit vector,
4904           (mcs51_assignRegisters): when using stack-auto use bit registers for
4905            passing parameters and creating local variables
4906         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4907
4908 2005-08-22 Borut Razem <borut.razem AT siol.net>
4909
4910         * device/lib/Makefile.in: replaced find option -or with -o
4911           to make it run on solaris
4912
4913 2005-08-22 Raphael Neider <rneider AT web.de>
4914
4915         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4916           fixes #1265442 (crash on Solaris)
4917
4918 2005-08-20 Borut Razem <borut.razem AT siol.net>
4919
4920         * configure, configure.in: added tests for libsocket and libnsl libraries,
4921           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4922           from support/regression/Makefile.in
4923         * support/regression/Makefile.in: added
4924         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4925         * sim/ucsim/libtool: regenerated on sparc-solaris
4926         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4927           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4928           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4929           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4930           sparc-solaris, which doesn't use GNU ld linker
4931         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4932         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4933
4934 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4935
4936         * src/mcs51/peeph.def: updated comments
4937
4938 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4939
4940         * device/lib/_gptrget.c,
4941         * device/lib/_gptrput.c: slightly shorter
4942         * doc/sdccman.lyx: incremented version
4943         * src/mcs51/peeph.def: moved peephole comments to the line of first
4944           change to better keep line correlation, reanimated 186.e
4945         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4946
4947 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4948
4949         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4950           David Saxton with quotes around file name.
4951
4952 2005-08-15 Borut Razem <borut.razem AT siol.net>
4953
4954         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4955           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4956           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4957           make tests run on x86_64 platform
4958
4959 2005-08-13 Raphael Neider <rneider AT web.de>
4960
4961         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4962           as it might be executed DURING a build (parallel make is wonderful)
4963
4964 2005-08-13 Raphael Neider <rneider AT web.de>
4965
4966         * device/lib/Makefile.in (port-specific-objects-pic16):
4967           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4968         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4969           dependency
4970         * device/lib/pic16/Makefile.rules: build subdirs before creating
4971           the library, removed builddir rule, create $(builddir) early in
4972           recurse rule, use empty recurse rule for leaf directories
4973         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4974           mkdir errors (race condition), removed duplicate suffix "hex"
4975           from clean rules
4976         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4977         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4978           prevents mkdir -p from aborting on Alpha
4979
4980 2005-08-12 Raphael Neider <rneider AT web.de>
4981
4982         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4983           db-statements in order to allow for arrays of pointers in code
4984           sections to be placed without interspersed 0-padding, fixes
4985           bug #1256215
4986         * (emitStatistics): fixed division by zero for pic18f1220
4987         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4988           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4989         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4990         * (pic16_pCodeConstString): keep track of already emitted string
4991           literals to prevent "duplicate definitions of symbol _str_NR"
4992         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4993           debug message
4994         * device/lib/Makefile.in: ignore failing PIC16 library builds
4995         * device/lib/pic16/Makefile: do not build if gputils are missing
4996         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4997
4998 2005-08-10 Raphael Neider <rneider AT web.de>
4999
5000         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
5001           my last commit)
5002
5003 2005-08-10 Raphael Neider <rneider AT web.de>
5004
5005         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
5006           Rokas' patch to add the new fixed point type "__fixed16x16"
5007         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
5008           functions for __fixed16x16 arithmetics
5009         * device/lib/pic16: reimplemented the build system to support
5010           a separate build directory, better handling of libio (create
5011           the library in a separate subdir for each architecture) and
5012           easier configuration (centralized in Makefile.common)
5013
5014 2005-08-07 Raphael Neider <rneider AT web.de>
5015
5016         * src/pic16/gen.c (genrshTwo): fixed sign extension
5017         * src/pic16/device.c: added pic18f2320, 4220 and 4320
5018         * device/include/pic16/pic18f2220.h: changed some bit definitions,
5019           added T0CONbits
5020         * device/include/pic16/pic18f4220.h: NEW, header for
5021           pic18f4220 and pic18f4320
5022         * device/include/pic16/pic18fregs.h: added new devices,
5023           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
5024         * device/include/pic16/signal.h: resolved name clashes
5025           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
5026           to also allow testing for interrupt enable bits, added
5027           comments on how to use the macros
5028         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
5029         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
5030           register definitions for the devices
5031         * device/lib/pic16/pics.all: added new devices
5032         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
5033           allocated memory
5034         * device/lib/pic16/libc/stdlib/memfree: do not count
5035           the block header as free memory
5036         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
5037           simplified and added missing end-of-blocklist-marker
5038           (reported by Peter Onion, fixes #1252814)
5039         * (_mergeHeapBlock): fixed loop condition
5040         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
5041           len==0, restructured code
5042         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
5043           up a bit, reduced bitfield accesses, prevent endless loops
5044           in case of heap corruption
5045         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
5046           "unreferenced arguments/must return a value" warnings
5047         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
5048           replaced BAUDREG with SPBRG
5049         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
5050           device/lib/pic16/debug/gstack/gstack.c: replaced
5051           _naked, _asm, _endasm with __naked, __asm, __endasm
5052
5053 2005-08-05 Raphael Neider <rneider AT web.de>
5054
5055         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
5056           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
5057
5058 2005-08-05 Borut Razem <borut.razem AT siol.net>
5059
5060         * device/lib/Makefile.in: added missing ';'
5061         * configure: removed ^M characters
5062
5063 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5064
5065         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
5066           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
5067           License
5068
5069 2005-08-04 Borut Razem <borut.razem AT siol.net>
5070
5071         * configure.in: pic16 libraries build 2nd try - enable running
5072           configure in device/lib/pic16
5073         * configure: regenerated from configure.in
5074         * device/lib/Makefile.in: create $(PORT)/bin directory
5075
5076 2005-08-03 Raphael Neider <rneider AT web.de>
5077
5078         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
5079           to get/set values via pointers
5080         * (genUnpackBits,genPackBits): changed detection of
5081           ptr->bitfield vs. sym.bitfield, fixed access via generic
5082           pointers, removed dead (wrong) code for multibyte bitfields
5083         * (genNearPointerGet, genGenPointerGet): removed useless code,
5084           fixed bitfield detection, fixes #1250594
5085         * (genNearPointerSet): removed useless code
5086         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
5087           and introduced macro pic16_emitpcode that conditionally emits
5088           the origin of the following pCode (useful for debugging SDCC)
5089         * src/pic16/pcode.c: changed (and disabled) some debug outputs
5090         * (createDefmap): fixed handling of LFSR for --optimize-df
5091
5092 2005-08-02 Borut Razem <borut.razem AT siol.net>
5093
5094         * device/lib/Makefile.in: pic16 libraries build enabled since
5095           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5096
5097 2005-08-02 Raphael Neider <rneider AT web.de>
5098
5099         * src/pic16/gen.c (genPackBits): removed deprecated warning
5100         * (genGenPointerSet): fixed bitfield detection
5101
5102 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5103
5104         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5105
5106 2005-07-31 Raphael Neider <rneider AT web.de>
5107
5108         * device/lib/pic16/libdev/pic18f458.c,
5109           device/include/pic16/pic18f458.h: added missing T0CONbits
5110
5111 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5112
5113         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5114
5115 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5116
5117         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5118
5119 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5120
5121         * device/include/mcs51/at89c51ed2.h: added.
5122
5123 2005-07-23 Raphael Neider <rneider AT web.de>
5124
5125         * src/pic/gen.h: added emitpcode macro for debugging
5126         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5127           and replace by macro adding debug information on demand
5128         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5129         * (gencjne): tried to fix; replaced with correct (slower) code
5130         * (gen{Unp,P}ackBits): fixed single bit access
5131         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5132         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5133           previous instruction
5134         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5135           register has to be handled with care (forbidding movement
5136           of assignments/uses, removing assignments completely, ...)
5137         * (pCodeOptime2pCodes): make use of regIsSpecial
5138         * added lots of debugging output (commented out)
5139         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5140           from being reused as result UNLESS it is known to work
5141
5142 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5143
5144         * support/Util/dbuf.h: include <stddef.h> for size_t
5145         * .version: changed to version 2.5.2
5146
5147 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5148
5149         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5150
5151 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5152
5153         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5154           (genModOneByte): removed needless psha/pula
5155
5156 2005-07-22 Raphael Neider <rneider AT web.de>
5157
5158         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5159           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5160         * src/pic/gen.c (resolveIfx): do not "invent" labels
5161         * (genSkipc): changed to positive logic
5162         * (genSkipCond): removed as no longer needed
5163         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5164           backport from PIC16
5165         * (genLeftShift): check operands are in different registers
5166         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5167           INCF does not update CARRY...
5168         * src/pic/main.c: fixed _linkCmd
5169         * src/pic/pcode.c (unlinkpCode): added inactive code
5170         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5171           alive (do not assign result and operand overlapping registers)
5172
5173 2005-07-22 Raphael Neider <rneider AT web.de>
5174
5175         * src/pic/device.c (dump_sfr): replaced register declaration with
5176           call to emitSymbolToFile() to avoid duplicate symbols
5177         * (assignRelocatableRegisters): do not declare external symbols
5178         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5179           right (take size of type, not etype)
5180         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5181         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5182         * (packRegsForAccUse): disabled assignment of WREG as
5183           the result reg to prevent occurence of just fixed #1235003,
5184           fixes #1242954
5185         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5186           symbols (avoids duplicate symbols in .asm file)
5187         * (pic14emitRegularMap): use emitSymbolToFile()
5188         * src/pic/gen.c (aopOp): fixed spillLocation handling
5189         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5190         * (genDataPointerSet): removed unneccessary variables/output
5191
5192 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5193
5194         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5195         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5196
5197 2005-07-21 Raphael Neider <rneider AT web.de>
5198
5199         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5200           architecture cannot handle them efficiently, fixes bug #1235003
5201         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5202           check for empty sets before using them (fixes bug #1232190)
5203
5204 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5205
5206         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5207           (lnksect2): generate warnings for memory overlap
5208         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5209           constseg to set the name of these segments so you can instruct the linker
5210           to place them in banks
5211         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5212         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5213           added code_seg and const_seg to options
5214         * src/SDCCglue.c (emitMaps): use options.const_seg,
5215           (createInterruptVect): put interrupt vectors in segment HOME,
5216           (glue): put HOME before static segment and put the main glue in HOME,
5217           (glue): use options.code_seg
5218         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5219         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5220           these segments so you can instruct the linker to place them in banks
5221           (linkEdit): use code_loc for HOME segment which should be the first
5222           segment in code memory now
5223         * src/SDCCmem.c: fixed more stuff like bug 1238386
5224         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5225           (changePointer): don't change function pointers to code pointers for
5226           banked functions,
5227           (compareType): added exceptional check for banked function pointers
5228         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5229         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5230           after static in code memory
5231         * src/mcs51/gen.c: added aopLiteralLong prototype,
5232           (aopForSym): use getSize for functions,
5233           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5234           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5235           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5236           the segment,
5237           (genPcall): use call for literal function pointers and generate banked
5238           calls over the one trampoline so there's only one place for the user to
5239           modify according to his/hers hardware,
5240           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5241           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5242         * src/mcs51/main.c: added keyword banked,
5243           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5244         * support/Util/SDCCerr.c,
5245         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5246           needed for passing the bank and address to the trampoline
5247         * device/lib/mcs51/crtbank.asm: added for bankswitching
5248         * device/lib/mcs51/Makefile: added crtbank
5249
5250 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5251
5252         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5253           for fields at offset 0 of a struct or union as reported
5254           on 2005-07-07 in the developer mailing list.
5255
5256 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5257
5258         * src/SDCCmem.c: fixed bug 1238386
5259
5260 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5261
5262         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5263           (patch #1144962), added peephole 300, enabled 259.x
5264         * doc/sdccman.lyx: removed screenshot and provided link instead
5265
5266 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5267
5268         * doc/sdccman.lyx: added section about debugging with ddd
5269         * doc/figures/ddd_example.eps: screenshot of debugging session
5270
5271 2005-07-04 Raphael Neider <rneider AT web.de>
5272
5273         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5274           like CODE pointers, fixes #1115683
5275         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5276           call, fixes bugs #1232211, #1228110,
5277           fixed wrong casts to pCodeFlow from pCodeInstructions
5278
5279 2005-07-04 Raphael Neider <rneider AT web.de>
5280
5281         * src/pic/gen.c (popGet): changed assert to allow for
5282           bit operands
5283         * (popGetAddr): changed signature to provide
5284           an additional index, patched all call sites
5285         * (genCmpEq): handle literal-like operands correctly
5286         * (genAddrOf): added sanity checks on __code/__data pointers
5287         * (genAssign): added handling of symbols from __code section
5288         * (gencjne): do not generate code for comparisons whose result
5289           is neither stored nor used, fixes bug #1171114
5290         * (AccLsh, AccRsh): operate on operand instead of WREG
5291         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5292           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5293           by known count
5294         * rewrote complete shift-by-literal logic, commented unused
5295           functions out
5296         * (genConstPointerGet): get multiple bytes (if result size > 1),
5297           fixed handling of non-immediate addresses
5298         * (genPointerGet): handle CODE pointers like CONST pointers
5299         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5300         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5301           operand is to be treated as a literal or not
5302         * (mov2w,genPcall,genCmpEq),
5303           src/pic/genarith.c: use aop_isLitLike() to decide between
5304           literal/register contents
5305         * (addSign): added missing offset
5306         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5307           only emit comment in debug-mode,
5308           use {aop,op}_isLitLike throughout the file
5309         * src/pic/glue.c: fix initializers for pointers (work in progress)
5310         * src/pic/pcode.c (get_op): honor index on _const symbols
5311         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5312         * (dumppBlock): added pCode size estimation
5313         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5314           check for IS_SYMOP before OP_SYMBOL'ing
5315         * fixed indentation, compacted switch-statements
5316         * (allocReg): find free register and allocate it instead of
5317           allocating new registers all the time
5318         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5319           registers as its operands (necessary only for multibyte GETs)
5320
5321 2005-07-01 Raphael Neider <rneider AT web.de>
5322
5323         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5324           debugging .asm-output macros FENTRY + FEXIT
5325         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5326           way... I wonder...
5327         * (emitpComment): NEW, printf to pCode
5328         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5329           offset handling
5330         * (popGetAddr): NEW, variant of popGet to access an immediates
5331           high(er) bytes instead of the n'th byte of memory they reference,
5332           replaced popGet with popGetAddr where neccessary
5333         * (genDataPointerGet): reactivated and fixed implementation
5334         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5335           accesses
5336         * (genDataPointerSet): fixed multibyte assignments
5337         * (genpic14Code): fixed --i-code-in-asm handling
5338         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5339         * (genPlus): fixed index-out-of-bounds error
5340         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5341         * src/pic/ralloc.c: added debugging output macro FENTRY2
5342         * (spillThis): fixed indentation, enbraced for-body for clarity
5343         * (rematStr): commented out as now unused
5344         * (regTypeNum): commented out special spill case (overwrites
5345           arbitrary values)
5346         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5347
5348 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5349
5350         * doc/sdccman.lyx: documented sfr16/sfr32,
5351           added example for using storage class with function pointers
5352         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5353
5354 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5355
5356         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5357         * device/lib/_itoa.c,
5358         * device/lib/_ltoa.c: optimized codesize
5359         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5360           but don't know how to suppress the double warning.
5361         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5362         * support/Util/SDCCerr.c,
5363         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5364
5365 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5366
5367         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5368           fixed old K&R prototypes
5369         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5370         * device/lib/_gptrget.c,
5371         * device/lib/_gptrgetc.c,
5372         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5373           also new versions for small generic pointers and banked generic pointers
5374         * src/port.h: added const_name
5375         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5376         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5377         * src/SDCCcse.c (findPrevIc): check all associative operators
5378         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5379         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5380         * src/SDCCmem.c: updated comments,
5381           set far-space to 0 for pdata, results in optimized code
5382         * src/SDCCmem.h: added macro CONST_NAME
5383         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5384           moving the info into the highest bits, see also gptrget/gptrput
5385         * src/src.dsp: added sdcc.ico to project files
5386         * src/avr/gen.c (genCast): fixed bug 0x%d
5387         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5388         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5389           relation between ptr_type and DCL_TYPE,
5390           (genCast): fixed bug 0x%d
5391         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5392           (CODE)" for const_name
5393         * src/hc08/gen.c (genCast): fixed bug 0x%d
5394         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5395           (hc08_port): added "CONST (CODE)" for const_name
5396         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5397           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5398           between ptr_type and DCL_TYPE,
5399           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5400           operand* and took AOP() inside function so sfr-ness can be checked,
5401           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5402           new prototype,
5403           (genFunction, genEndFunction): optimized stack setup,
5404           (genMinus): optimized for literals with ending zeroes (in bytes),
5405           (genCast): fixed bug 0x%d
5406         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5407           (mcs51_port): added "CONST (CODE)" for const_name
5408         * src/mcs51/peeph.def: made rule 226 more generic
5409         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5410         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5411         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5412         * src/z80/main.c (z80_port): added NULL for const_name,
5413           (gbz80_port): added NULL for const_name
5414         * support/regression/tests/bug663539.c,
5415         * support/regression/tests/sfr16.c: new tests
5416
5417 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5418
5419         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5420
5421 2005-06-24 Raphael Neider <rneider AT web.de>
5422
5423         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5424           corrected typos...
5425         * device/include/pic16/signal.h: added USBIF
5426           and SIG_USB
5427
5428 2005-06-24 Raphael Neider <rneider AT web.de>
5429
5430         * device/lib/pic16/libdev/pic18f2455.c,
5431           device/include/pic16/pic18f2455.h: NEW
5432         * device/include/pic16/pic18fregs.h,
5433           device/lib/pic16/pics.all,
5434           src/pic16/device.c: added 18f2455
5435         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5436           device/include/pic16/{pic18f[68][567].h,usart.h}:
5437           replaced MULTIPLE_USARTS define with more relaible
5438           compatibility sfrs (for USART access)
5439
5440 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5441
5442         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5443           and the output asm file line is printed on two lines.
5444
5445 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5446
5447         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5448           BGT, BLE, BHI, and BLS instructions
5449         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5450           genCmpEq): removed
5451         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5452           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5453           fixes bug #1216342
5454         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5455
5456 2005-06-15 Raphael Neider <rneider AT web.de>
5457
5458         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5459         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5460         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5461           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5462           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5463
5464 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5465
5466         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5467           Marcel Telka in bug #1215704
5468
5469 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5470
5471         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5472           located in shared memory bank.
5473
5474 2005-05-31 Raphael Neider <rneider AT web.de>
5475
5476         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5477           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5478           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5479
5480 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5481
5482         * device/lib/_strncpy.c: fixed the fix
5483
5484 2005-05-26 Raphael Neider <rneider AT web.de>
5485
5486         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5487           initializers with \0, bug #1208187
5488         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5489           intializers with \0, bug #1208187
5490
5491 2005-05-26 Raphael Neider <rneider AT web.de>
5492
5493         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5494           initializers with \0, bug #1208187
5495         * src/pic16/main.c (_process_pragma): added sanity checks
5496           for stack position and size, emit warnings when appropriate
5497
5498 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5499
5500         * device/lib/_strncpy.c: fixed not filling with \0
5501
5502 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5503
5504         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5505           createFunction),
5506         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5507           compound_statement),
5508         * src/SDCCsymt.h,
5509         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5510
5511 2005-05-24 Raphael Neider <rneider AT web.de>
5512
5513         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5514
5515 2005-05-24 Raphael Neider <rneider AT web.de>
5516
5517         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5518           TRISE definitions, closes bug #1162453
5519
5520 2005-05-22 Raphael Neider <rneider AT web.de>
5521
5522         * src/pic16/main.c (_process_pragma): check for missing
5523           arguments to pragmas code and udata
5524         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5525           consistency fixes to match other headers (thanks to Jim Paris)
5526         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5527
5528 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5529
5530         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5531
5532 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5533
5534         * support/regression/tests/bug1198642.c: new test
5535         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5536         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5537         * support/scripts/resource.h,
5538         * support/scripts/resource.rc,
5539         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5540         * support/scripts/sdcc.ico: added 32x32 icon
5541
5542 2005-05-18 Raphael Neider <rneider AT web.de>
5543
5544         * device/lib/pic16/libdev/pic18f*.c,
5545         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5546           keywords to "__sfr" and "__at (X)"
5547         * device/include/pic16/pic18fregs.h: added pic18f4520
5548         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5549           #1203088 (MPLAB compatibility)
5550
5551 2005-05-17 Raphael Neider <rneider AT web.de>
5552
5553         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5554         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5555         * device/lib/pic16/pics.all: added new devices
5556         * src/pic16/device.c: added support for pic18f4520
5557
5558 2005-05-16 Raphael Neider <rneider AT web.de>
5559         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5560         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5561         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5562           convenience function for bit access
5563
5564 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5565
5566         * device/lib/printf_large.c: fixed bug 1193299
5567         * support/regression/tests/bug1057979.c: added test %3.3s
5568
5569 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5570
5571         * device/include/mcs51/8051.h,
5572         * device/include/mcs51/8052.h: made parseable with lint
5573         * device/include/mcs51/lint.h: added include file for (sp)lint
5574         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5575         * doc/cdbfileformat.lyx,
5576         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5577
5578 2005-05-14 Raphael Neider <rneider AT web.de>
5579
5580         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5581         * device/lib/pic16/libc/stdlib/itoa.c (new)
5582         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5583         * device/lib/pic16/libio/Makefile: exclude subdir according to
5584           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5585         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5586         * src/pic16/gen.c (genFunction): prevent annoying warning
5587         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5588           nameclashes on BeOS
5589         * support/cpp2/cppmain.c (cpp_output_string): new
5590         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5591           fixes bug 1116802
5592
5593 2005-05-13 Borut Razem <borut.razem AT siol.net>
5594
5595         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5596
5597 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5598
5599         * .version: changed to version 2.5.1; back to bleeding edge development
5600
5601 2005-05-11 Borut Razem <borut.razem AT siol.net>
5602
5603         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5604           generate PDF version 1.3 documents
5605
5606 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5607
5608         * .version: changed to version 2.5.0
5609
5610 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5611
5612         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5613
5614 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5615
5616         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5617         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5618         well as many smaller updates.
5619         * .version: changed to version 2.5.0-pre1
5620
5621 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5622
5623         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5624
5625 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5626
5627         * support/regression/tests/bug1185672.c: added
5628         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5629           bug 1185672
5630         * src/mcs51/gen.c (genCall): added comments, made it look safer
5631         * src/mcs51/gen.c (genEndFunction): simplified
5632
5633 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5634
5635         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5636
5637 2005-04-14 Borut Razem <borut.razem AT siol.net>
5638
5639         * fixed bug 1045046 - SIGSEGV with really simple code?:
5640           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5641           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5642
5643 2005-04-14 Borut Razem <borut.razem AT siol.net>
5644
5645         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5646           src/pic16/device.h: temporarily disabled experimental #inline pragma
5647           for 2.5.0 release
5648
5649 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5650
5651         * device/include/z80/stdio.h,
5652         * device/include/z80/string.h: removed these highly incomplete files so
5653           SDCC can use the default ones in device/include/
5654
5655 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5656
5657         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5658         gcc warning.
5659         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5660         fix sdcpp warnings.
5661
5662 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5663
5664         * device/include/malloc.h: removed redundant __reentrant prototypes
5665         * device/lib/_mullong.c: added working xstack variant in asm (C version
5666           doesn't pass regression tests)
5667         * device/lib/bpx.c: used __data and made bpx char for mcs51
5668         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5669           (createFunction): fixed bug with xstackPtr
5670         * src/SDCCcse.c: corrected comments
5671         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5672           (killDeadCode, eBBlockFromiCode): removed unused code
5673         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5674           corrected comments
5675         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5676           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5677           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5678           (genModOneByte): fixed warning in MSVC
5679         * src/mcs51/main.c (): added comments
5680         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5681
5682 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5683
5684         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5685
5686 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5687
5688         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5689
5690 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5691
5692         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5693         characters arrays of larger size than the declared one.
5694
5695 2005-04-10 Borut Razem <borut.razem AT siol.net>
5696
5697         * src/pic/gen.c (genInline),
5698           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5699           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5700           (findNextInstruction), (findPrevInstruction),
5701           (findInstructionUsingLabel),
5702           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5703         * src/pic/pcode.c (findLabel): added missing '\n'
5704         * src/src.dsp: added SDCCdwarf2.c to the project
5705
5706 2005-04-09 Borut Razem <borut.razem AT siol.net>
5707
5708         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5709
5710 2005-04-08 Raphael Neider <rneider AT web.de>
5711
5712         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5713           into the chain after a given one) and mergeDefmapSymbols (combine
5714           defmap entries for each symbol per pcode)
5715         * (createDefmap): have defmap entries merged in the end
5716         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5717           a symbol before replacing one access type's symbol, merge symbols in
5718           the end (replacement symbol might already have an entry)
5719         * (assignValnums): keep reference to written WREG intact
5720
5721 2005-04-08 Raphael Neider <rneider AT web.de>
5722
5723         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5724           Alpha)
5725
5726 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5727
5728         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5729         bytes
5730
5731 2005-04-07 Raphael Neider <rneider AT web.de>
5732
5733         * device/include/pic16/usart.h: added compatibility defines for
5734           devices with more than one USART
5735         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5736
5737 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5738
5739         * device/lib/Makefile.in: updated for port specific include
5740
5741 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5742
5743         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5744
5745 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5746
5747         * device/include/8051.h,
5748         * device/include/8052.h,
5749         * device/include/at89S8252.h,
5750         * device/include/at89c55.h,
5751         * device/include/at89x051.h,
5752         * device/include/at89x51.h,
5753         * device/include/at89x52.h,
5754         * device/include/mcs51reg.h,
5755         * device/include/reg51.h,
5756         * device/include/reg764.h,
5757         * device/include/regc515c.h,
5758         * device/include/sab80515.h: (re)moved these 12 files
5759         * device/include/mcs51/8051.h,
5760         * device/include/mcs51/8052.h,
5761         * device/include/mcs51/at89S8252.h,
5762         * device/include/mcs51/at89c55.h,
5763         * device/include/mcs51/at89x051.h,
5764         * device/include/mcs51/at89x51.h,
5765         * device/include/mcs51/at89x52.h,
5766         * device/include/mcs51/mcs51reg.h,
5767         * device/include/mcs51/reg51.h,
5768         * device/include/mcs51/reg764.h,
5769         * device/include/mcs51/regc515c.h,
5770         * device/include/mcs51/sab80515.h: and added them here
5771
5772 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5773
5774         * device/include/stdarg.h: changed SDCC specific keywords to double
5775           underlined form.
5776         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5777           mcs51 and ds390.
5778         * device/include/hc08/mc68hc908gp32.h,
5779         * device/include/hc08/mc68hc908jb8.h,
5780         * device/include/hc08/mc68hc908jkjl.h,
5781         * device/include/hc08/mc68hc908qy.h: fixed comments
5782         * device/include/mcs51/README: updated
5783         * device/include/mcs51/c8051f120.h: added PINRSF
5784         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5785         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5786           amidst code. Also inline is not supported.
5787
5788 2005-04-06 Raphael Neider <rneider AT web.de>
5789
5790         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5791         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5792           callers stack/frame pointers
5793
5794 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5795
5796         * device/include/pic16/usart.h: added, missing in previous commit,
5797         * device/include/pic16/adc.h: fixed typo,
5798         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5799         commit,
5800         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5801         <p18fxxx.inc>
5802         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5803         uninitialized because a bug appears with gplink
5804         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5805         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5806         complains for unrecognised option
5807
5808 2005-04-05 Raphael Neider <rneider AT web.de>
5809
5810         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5811           structs as well (using memcpy)
5812         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5813           on ISRs (GOTO has no label)
5814         * src/pic16/device.h: added OF_OPTIMIZE_DF
5815         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5816           new data flow analysis/optimization
5817         * src/pic16/pcode.c: added (prototypes for and implementation of)
5818           dataflow analysis functions, fixed pCodeInstructions' inCond and
5819           outCond values, made RCALL a branch instruction
5820         * (pic16_unlinkpCode): keep C line if possible
5821         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5822           C line moved if possible
5823         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5824         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5825           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5826         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5827           new flow)
5828         * (pic16_getJumptabpCode): NEW, needed in...
5829         * (LinkFlow): fixed handling of jumptables, calls and conditional
5830           branches
5831         * (pic16_InsertCommentAfter): NEW
5832         * (pic16_pCodeReplace): made verbose and flow preserving
5833         * (AnalyzeFlow): added call to data flow analysis
5834         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5835         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5836         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5837
5838 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5839
5840         * src/SDCCast.c (decorateType): fixed bug #1105626
5841
5842 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5843
5844         * device/include/asm/pic16/features.h,
5845         * pic18f*.h headers,
5846         * device/include/pic16/adc.h,
5847         * device/include/pic16/delay.h,
5848         * device/include/pic16/i2c.h,
5849         * device/include/pic16/malloc.h,
5850         * device/include/pic16/stdio.h,
5851         * device/include/pic16/stdlib.h,
5852         * device/include/pic16/string.h,
5853         * device/lib/pic16/libc/stdio/printf_tiny.c,
5854         * device/lib/pic16/libc/stdio/printf_small.c,
5855         * device/lib/pic16/libc/stdio/strmgpsim.c,
5856         * device/lib/pic16/libc/stdio/strmmssp.c,
5857         * device/lib/pic16/libc/stdio/strmusart.c,
5858         * device/lib/pic16/libc/stdio/vfprintf.c,
5859         * device/lib/pic16/libc/stdlib/ltoa.c,
5860         * device/lib/pic16/libc/stdlib/putchar.c,
5861         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5862         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5863         * device/lib/pic16/libc/stdlib/memchrram.c,
5864         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5865         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5866         * device/lib/pic16/libio/adc/adcbusy.c,
5867         * device/lib/pic16/libio/adc/adcread.c,
5868         * device/lib/pic16/libio/adc/adcsetch.c,
5869         * device/lib/pic16/libio/usart/ubaud.c,
5870         * device/lib/pic16/libio/usart/ubusy.c,
5871         * device/lib/pic16/libio/usart/udrdy.c,
5872         * device/lib/pic16/libio/usart/uopen.c,
5873         * device/lib/pic16/libio/usart/uputc.c,
5874         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5875         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5876         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5877         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5878         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5879         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5880         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5881         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5882         specific keywords to double underlined form,
5883         * device/lib/pic16/libc/Makefile.rules,
5884         * device/lib/pic16/libsdcc/Makefile.rules,
5885         * device/lib/pic16/libm/Makefile,
5886         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5887         to compile with C standard set in Makefile.common
5888         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5889         rand.c and crc.c in compilation process,
5890         * device/lib/pic16/libsdcc/int/divuint.c,
5891         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5892         `c' from signed to unsigned,
5893         * device/lib/pic16/startup/crt0.c,
5894         * device/lib/pic16/startup/crt0i.c,
5895         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5896         keywords to double underlined form, bug fixes in _do_cinit function
5897         which prevented the correct initialization of the .idata segment,
5898         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5899         core to enter a infinite loop
5900         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5901
5902 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5903
5904         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5905
5906 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5907
5908         * device/include/Makefile.in: add support for hc08 subdirectory
5909         * device/include/hc08/: new subdirectory
5910         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5911         Lucas Loizaga, thanks!
5912         * device/include/hc08/mc68hc908qy.h,
5913         * device/include/hc08/mc68hc908gp32.h,
5914         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5915         their own directory. Changed internal macro names to use the compiler
5916         reserved namespace. Changed SDCC specific keywords to double
5917         underlined form.
5918         * device/include/math.h,
5919         * device/include/malloc.h,
5920         * device/include/stdarg.h,
5921         * device/include/stdbool.h
5922         * device/include/string.h,
5923         * device/include/tinibios.h,
5924         * device/include/ds400rom.h,
5925         * device/include/8051.h,
5926         * device/include/8052.h,
5927         * device/include/80c51xa.h,
5928         * device/include/at89c55.h,
5929         * device/include/at89S8252.h,
5930         * device/include/at89x51.h,
5931         * device/include/at89x52.h,
5932         * device/include/ds80c390.h,
5933         * device/include/reg764.h,
5934         * device/include/regc515c.h,
5935         * device/include/sab80515.h,
5936         * device/include/mcs51/c8051f000.h,
5937         * device/include/mcs51/c8051f018.h,
5938         * device/include/mcs51/c8051f020.h,
5939         * device/include/mcs51/c8051f040.h,
5940         * device/include/mcs51/c8051f060.h,
5941         * device/include/mcs51/c8051f120.h,
5942         * device/include/mcs51/c8051f300.h,
5943         * device/include/mcs51/c8051f310.h,
5944         * device/include/mcs51/c8051f320.h,
5945         * device/include/mcs51/c8051f330.h,
5946         * device/include/mcs51/c8051f350.h,
5947         * device/include/z180.h: Changed SDCC specific keywords to double
5948         underlined form.
5949
5950 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5951
5952         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5953         18F4455,
5954         * (pic16_assignConfigWordValue): disable testing of configuration
5955         register value with config mask,
5956         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5957         function with port->fun_prefix,
5958         * (genFunction): when generating a naked interrupt function never
5959         create an absolute segment placed in interrupt vector address, place
5960         the actual interrupt function at IVA instead, when an interrupt
5961         function is generated with unspecified interrupt then do not create
5962         the absolute section,
5963         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5964         code for generating a call to generic pointer get/put function with
5965         a call to function pic16_callGenericPointer(),
5966         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5967         the call to the generic pointer get/put functions with prefixing the
5968         function name with port->fun_prefix,
5969         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5970         * src/pic16/main.c (_process_pragma): prefix function with
5971         port->fun_prefix,
5972         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5973         calling assembler, old 18Fxxxx macro is deprecated,
5974         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5975         PC_ASMDIR in while condition,
5976         * (findInstruction): add PC_ASMDIR in while condition,
5977         * (buildCallTree): prefix main with port->fun_prefix,
5978         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5979         identifier for variable with banked access in instructions BTFSS,
5980         BTFSC, BCF, BSF, BTG
5981         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5982         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5983         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5984         perform optimization when enviroment variable NO_REG_OPT is set,
5985         * (insideLRBlock): NEW, return 1 if register is inside an
5986         INF_LOCALREGS block,
5987         * (RemoveRegFromLRBlock): remove a register that is completely
5988         eliminated by register optimization, but it is still left in local
5989         register store/restore in/from stack block,
5990         * (Remove2pcodes): after removing register, check to see if it
5991         should be removed from local register store/restore in/from stack
5992         block,
5993         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5994         DUMMY_READ_VOLATILE,
5995
5996         * device/include/pic16/adc.h: minor prototype modifications and
5997         update,
5998         * device/include/pic16/malloc.h: added GPL notice various
5999         modifications,
6000         * device/include/pic16/stdint.h: NEW, standard header for ints
6001         * device/include/pic16/delay.h: NEW, header for delay functions,
6002         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
6003         delay1mtcy,
6004         * device/include/pic16/signal.h: NEW, header providing helper macros
6005         for implementing signal handlers,
6006         * device/include/pic16/stdio.h: added prototypes for functions,
6007         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
6008         prototypes for stdin and stdout, added macro PUTCHAR to
6009         automatically implement putchar function prototype,
6010         * device/include/pic16/usart.h: modified and updated USART library,
6011         * device/lib/pic16/libio/adc/,
6012         * device/lib/pic16/libio/i2c: some modifications to improve library
6013         performance,
6014         * device/lib/pic16/libc/stdio/: modifications for the new printf*
6015         family of functions,
6016         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
6017         family of functions and other sources,
6018         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
6019         of the PIC18Fxx[28] devices,
6020         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
6021         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
6022         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
6023         _do_cinit function, because the previous failed when local variables
6024         where not placed in the same memory bank,
6025         * device/lib/pic16/libsdcc/char/: various modifications to improve
6026         library performance,
6027         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
6028         information on the new functions of the c library and more...
6029
6030 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6031
6032         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
6033
6034 2005-03-26 Raphael Neider <rneider AT web.de>
6035
6036         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
6037           if condition == CARRY)
6038         * (genCmp): adapted to new genSkipc semantics
6039         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
6040           on rIfx (genCmp was broken)
6041
6042 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6043
6044         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
6045         * src/z80/main.c (_keywords[]),
6046         * src/SDCCglobal.h (struct options),
6047         * src/SDCC.y,
6048         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
6049         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
6050         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
6051         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
6052         always available in leading double underscore form. The C99 support is
6053         mostly missing, but it's a start.
6054         * support/regression/tests/bug-227710.c: fixed nonconforming use of
6055         reserved identifier "__data".
6056
6057 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
6058
6059         * src/mcs51/peeph.def: fixed bug 1170013
6060
6061 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
6062
6063         * device/include/mcs51reg.h: fixed bug 842007
6064
6065 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6066
6067         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
6068         last time.
6069
6070 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6071
6072         * src/port.h (struct PORT),
6073         * src/avr/ralloc.c (avr_assignRegisters),
6074         * src/avr/main.c,
6075         * src/ds390/ralloc.c (ds390_assignRegisters),
6076         * src/ds390/main.c,
6077         * src/hc08/ralloc.c (hc08_assignRegisters),
6078         * src/hc08/main.c,
6079         * src/mcs51/ralloc.c (mcs51_assignRegisters),
6080         * src/mcs51/main.c,
6081         * src/pic/ralloc.c (pic14_assignRegisters),
6082         * src/pic/main.c,
6083         * src/pic16/ralloc.c (pic16_assignRegisters),
6084         * src/pic16/main.c,
6085         * src/xa51/ralloc.c (xa51_assignRegisters),
6086         * src/xa51/main.c,
6087         * src/z80/ralloc.c (z80_assignRegisters),
6088         * src/z80/ralloc.h,
6089         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
6090         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
6091         * src/SDCCcse.h,
6092         * src/SDCCdflow.c (computeDataFlow),
6093         * src/SDCCdflow.h,
6094         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6095         * src/SDCCloop.h,
6096         * src/SDCCcflow.c (*),
6097         * src/SDCCcflow.h,
6098         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6099         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6100         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6101         immedDom() returning wrong block; probably fixes bug #1160833)
6102
6103 2005-03-20 Borut Razem <borut.razem AT siol.net>
6104
6105         * support/scripts/inc2h.pl: WIN32 port
6106
6107 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6108
6109         * device/lib/makefile.in: added abs.c and labs.c
6110
6111 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6112
6113         * device/include/stdint.h: added
6114         * device/lib/abs.c: added
6115         * device/lib/labs.c: added
6116         * device/include/stdlib.h: added abs() and labs() prototypes
6117         * device/lib/libsdcc.lib: added abs and labs
6118         * device/include/float.h,
6119         * device/lib/_fsmul.c,
6120         * device/lib/printf_fast.c,
6121         * device/lib/printf_tiny.c: updated comments
6122
6123 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6124
6125         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6126         bug #1164313
6127
6128 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6129
6130         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6131         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6132
6133 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6134
6135         * device/lib/printf_large.c: removed inline assembly for portability and
6136           readability. Use printf_fast if speed or size are more important.
6137         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6138         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6139
6140 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6141
6142         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6143         prevent compiler warning
6144
6145 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6146
6147         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6148         moved to level 0 and declared as static. Also they are explicit
6149         placed in access bank. This was necessery because some times they
6150         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6151         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6152         optimizations. Currently only compare to unsigned char is implemented,
6153         * src/pic16/gen.c: added fReturnIdx array,
6154         * (struct resolvedIfx) is moved to gen.h and made public,
6155         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6156         * (aopForSym): added an optimization to directly store in stack of
6157         the operand of a SEND iCode,
6158         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6159         but as registers instead (AOP_REG) using the fReturnIdx array,
6160         * (pic16_freeAsmop): remove the freed register from the
6161         _G.sregsAlloc field,
6162         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6163         a compare of 'WREG',
6164         * (pic16_popGetTempRegCond): changed function prototype, now
6165         function takes also a bitVector argument v which holds the current
6166         set of registers that are allocated for stack access by aopForSym,
6167         registers allocated in aopForSym for accessing stack symbols are not
6168         any more part of the functions usedRegs field,
6169         * (genCall): some times aopOp is called for a stack variable to be
6170         send, aopForSym might perform the push, if this is true make sure
6171         that genCall doesn't push the variable twice by testing _G.resDirect,
6172         * (genFunction): changed testing for unspecified interrupt number
6173         from 256 to INTNO_UNSPEC,
6174         * modified selection scheme of frame pointer generation. Previously
6175         if function did use local registers a frame pointer was generated,
6176         now a frame pointer is generated only if function has arguments
6177         (that need PLUSW2 register access), or has stack arguments, or the
6178         compiler is not instructed to omit the frame pointer,
6179         * (genEndFunction): before restoring local registers that were saved
6180         in the function preamble, also restore the registers that *might*
6181         have been allocated for stack access,
6182         * (genRet): removed some old comments,
6183         * (genCmp, the active (RN's) version): added a call to the
6184         pic16_genCmp_special function to perform the compare with a more
6185         robust and optimized way,
6186         * (genInline): a feature has been added in inline code generation,
6187         which allows a wildcard variable substitution when writing inline
6188         assembly. Code is incomplete and experimental therefore undocumented,
6189         * (genCast): changed order of aopOp for result and right to allow
6190         aopForSym to directly load the result if possible,
6191         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6192         perform an optimized compare on some selected special occasions,
6193         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6194         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6195         generate an IVT any more,
6196         * src/pic16/main.c (pic16_optionsTable): added command line option
6197         --optimize-cmp,
6198         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6199         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6200         macros,
6201         * src/pic16/NOTES: Raphael Neider added in list of active developers
6202         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6203         jumptable_end to prevent bug #,
6204         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6205         inCond and outCond fields,
6206         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6207         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6208         turn off register spilling,
6209         * (packRegsForOneUse): synced with other ports' versions although it
6210         is not used currently,
6211         * (pic16_packRegisters): added an optimization while reading
6212         structure bitfields, some registers may be saved (malloc code is
6213         decreased by 80 bytes)
6214
6215 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6216
6217         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6218         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6219         this can be optimized more?
6220
6221 2005-03-10 Raphael Neider <rneider AT web.de>
6222
6223         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6224           genNearPointerGet): (hopefully) fixed access to bitfields via
6225           pointers (p->bitN = x; and x = p->bitN; failed)
6226
6227 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6228
6229         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6230
6231 2005-03-09 Raphael Neider <rneider AT web.de>
6232
6233         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6234
6235 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6236
6237         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6238         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6239           (regTypeNum): set REG_BIT type if necessary
6240         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6241         * support/regression/tests/critical.c: check bug 1144613
6242
6243 2005-03-02 Raphael Neider <rneider AT web.de>
6244
6245         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6246
6247 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6248
6249         * src/avr/ralloc.c (serialRegAssign),
6250         * src/ds390/ralloc.c (serialRegAssign),
6251         * src/hc08/ralloc.c (serialRegAssign),
6252         * src/mcs51/ralloc.c (serialRegAssign),
6253         * src/pic/ralloc.c (serialRegAssign),
6254         * src/pic16/ralloc.c (serialRegAssign),
6255         * src/xa51/ralloc.c (serialRegAssign),
6256         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6257
6258 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6259
6260         * src/SDCCast.c (decorateType): fixed bug 1124787
6261
6262 2005-02-20 Hubert Sack <sack AT digiplan.de>
6263         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6264
6265         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6266         patch #1121755
6267
6268 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6269
6270         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6271         to keep the correct label reference count when adding/removing references
6272         to labels. A peephole file using this is appended to patch #1144962.
6273
6274 2005-02-14 Raphael Neider <rneider AT web.de>
6275
6276         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6277         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6278         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6279           retrievals of result operand's value on assignment
6280
6281 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6282
6283         * device/include/pic16/string.h: modified prototype for memccpy()
6284         to memccpy(void *, void *, char, size_t)
6285         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6286         check whether to omit frame pointer or not,
6287         * (genInline): convert all occurences of "\n" to LF in inline
6288         assembler blocks, this helps formatting the inline text,
6289         * (pic16_loadFSR0): modified prototype,
6290         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6291         removed some 8051 legacy code,
6292         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6293         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6294         before allocating temporary registers in functions,
6295
6296 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6297
6298         * support/regression/tests/bitvars.c: corrected the "fix"
6299
6300 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6301
6302         * support/regression/tests/bitvars.c,
6303         * support/regression/tests/bitwise.c,
6304         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6305
6306 2005-02-10 Raphael Neider <rneider AT web.de>
6307
6308         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6309           different size for Alpha
6310         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6311
6312 2005-02-09 Raphael Neider <rneider AT web.de>
6313
6314         * src/SDCC.lex(doPragma) : save and restore warning options as well
6315           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6316         * have #pragma less_pedantic set the errorlevel to WARNING
6317           (fixes #1117001)
6318         * (cloneOptimize) : fixed wrong malloc's size
6319         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6320           facilitate correct handling of #pragma (save|restore)
6321
6322 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6323
6324         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6325
6326 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6327
6328         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6329
6330 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6331
6332         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6333
6334 2005-02-02 Raphael Neider <rneider AT web.de>
6335
6336         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6337         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6338         * (pic16_storeForReturn): fixed to allow returning function pointers
6339         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6340         * device/include/pic16/{stddef.h,stdbool.h}: added
6341
6342 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6343
6344         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6345
6346 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6347
6348         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6349         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6350          appeared to be required
6351
6352 2005-01-31 Borut Razem <borut.razem AT siol.net>
6353
6354         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6355           include/mcs51 and include/z80 directories to the package
6356
6357 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6358
6359         * src/hc08/gen.c (genFunction): fixed bug #1112752
6360
6361 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6362
6363         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6364
6365 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6366
6367         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6368
6369 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6370
6371         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6372
6373 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6374
6375         * device/include/c8051fxxx.h: removed these 6 files
6376         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6377
6378 2005-01-26 Raphael Neider <rneider AT web.de>
6379
6380         * src/pic16/gen.c (genAssign): fixed assignment from longs
6381           in codespace (were cut to three bytes)
6382         * (genDummyRead): implemented (except for CODESPACE...),
6383           fixed bug #1108575
6384         * src/pic16/glue.c (emitStatistics): beautified
6385         * device/lib/pic16/libm/Makefile: added include path
6386
6387 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6388
6389         * src/z80/gen.c (aopPut): fixed bug #1103902
6390
6391 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6392
6393         * device/lib/expf.c: fixed bug #1095792
6394
6395 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6396
6397         * device/lib/pic16/libm: added Math library sources
6398
6399 2005-01-24 Raphael Neider <rneider AT web.de>
6400
6401         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6402           to enable upcast to pCodeOpReg2 (there is no type tag to
6403           differenciate the two and pic16_popGet2p cast into PCOR2)
6404         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6405           (sizeof(sectNames) changed to sizeof(sectName))
6406           Both patches fix segfaults under MinGW.
6407
6408 2005-01-23 Raphael Neider <rneider AT web.de>
6409
6410         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6411           Safe_[mc]?alloc()'ed variables
6412         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6413           of (byte sized) temporaries (assign them to WREG for now)
6414         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6415           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6416           this might fix SIGSEGVs on MinGW...
6417         * src/SDCCopt.c (killDeadCode): restored original behaviour
6418           (volatile operands might get thrown away though)
6419
6420 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6421
6422         * src/pic16/gen.c: fixed bug #1106975,
6423         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6424         pointer update, INTCON is saved, global interrupts are disabled and
6425         restored after updateing TOS.
6426         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6427         * added function attribute 'shadowregs' to take advantage of shadow
6428         registers,
6429         * added function attribute 'wparam' as an alternative to the wparam
6430         pragma,
6431         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6432         user declares a non-ISR function as 'shadowregs',
6433         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6434
6435 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6436
6437         * .version: bumped version number to 2.4.8
6438         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6439         pic16 port,
6440         * device/lib/pic16/libio/i2c/: I2C module support library,
6441         * device/include/pic16/i2c.h: I2C support library header,
6442         * device/lib/pic16/libc/stdio/: standard IO support sources,
6443         * (printf_small.c): printf_small() source, supports float print,
6444         * (printf_tiny.c): printf_tiny() source, does not support floats,
6445         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6446         enable global optimizations for entire library source, other
6447         Makefiles in the source tree are also modified to reflect this,
6448         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6449         function,
6450         * doc/sdccman.lyx: updated to reflect new changes,
6451         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6452         sym->onStack if-case,
6453         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6454         sbit, idata, _idata, xdata, _xdata,
6455         * added pragma library, to link an external library, (see doc),
6456         * removed command line options, --pomit-config-words, --pomit-ivt,
6457         --pleave-reset-vector,
6458         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6459         when calling assembler to reflect memory model used, also define
6460         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6461         reflect stack model used,
6462         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6463         on stack return NULL,
6464
6465 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6466
6467         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6468           of the operands is volatile. Fixes #1020220
6469
6470 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6471
6472         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6473         * (OptimizeRegUsage): make sure that there is really no other flow where
6474           the first pCode is used
6475
6476 2005-01-22 Raphael Neider <rneider AT web.de>
6477
6478         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6479           to fix #1106967 (pCode->seq are not set up correctly)
6480
6481 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6482
6483         * src/SDCCglue.c (glue): make sure code area is declared before the
6484         static initialization area.
6485
6486 2005-01-21 Raphael Neider <rneider AT web.de>
6487
6488         * device/lib/Makefile.in: fixed test for pic16 install dir
6489         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6490           optimizations
6491         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6492           added --optimize-goto compiler switch and pragma wparam documentation
6493         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6494         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6495           and PRODH closing bug #1071770 (peephole optimizer)
6496
6497 2005-01-19 Raphael Neider <rneider AT web.de>
6498
6499         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6500           cmdLine buffers (used when calling sdcpp...) are large enough
6501           (MAX_PATH=256 truncates arguments leading to system halts when
6502           used in MinGW...)
6503         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6504         * (genUminus): rewritten to for efficiency
6505         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6506           used uninitialized in some cases)
6507         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6508           copy the third byte from the int -- now assumes 0x80 (data memory)
6509         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6510           operands (genAddLit expects the iCode's operands to swapped as
6511           well), fixed leftover bytes (crashed for short left operands)
6512         * (pic16_genMinusDec): performance improvements, removed false
6513           PIC14 emitSKPNCs
6514         * (pic16_genMinus): fixed to cope with differently sized operands
6515         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6516           for --obanksel > 1
6517         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6518         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6519           new banksel optimization
6520         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6521           analysis for temporary registers (segfaults...)
6522         * src/pic16/peeph.def: added rule
6523
6524 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6525
6526         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6527         which converts a float number to its ASCII representation
6528         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6529         functions to convert the fractional and integer part of a float to ASCII,
6530         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6531         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6532         ram
6533         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6534         _STATMEM macros,
6535         * device/include/pic16/adc.h: added GPL info,
6536         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6537         a pCodeOp as tested operand,
6538         * (genNearPointerGet): optimized bit testing, does not use
6539         intermediate register for bit value, test directly instead with
6540         BTFSS, BTFSC, works only for single bits,
6541         * (genpic16Code): dump the name of the iCode in the asm,
6542         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6543         renamed to pic16_decodeOp,
6544         * (serialRegAssign): do not allocate a temporary register for iCode
6545         sequences that test a single bit for 1/0
6546
6547 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6548
6549         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6550         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6551         access stack and frame pointers. They are initially assigned to
6552         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6553         accessing SFRs. Updated all occurences of modification of stack or
6554         frame pointer in gen.c and pcode.c,
6555         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6556         assigning of a literal value to pointers,
6557         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6558         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6559         selected
6560
6561 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6562
6563         * doc/sdccman.lyx: update documentation about stack pragma, added
6564         some info for stack memory models
6565
6566 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6567
6568         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6569
6570 2005-01-08 Raphael Neider <rneider AT web.de>
6571
6572         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6573           udata sections to fix bug #1097823
6574
6575 2005-01-05 Raphael Neider <rneider AT web.de>
6576
6577         * src/pic16/gen.c (genGenericShift): added handling of differently
6578           sized left operand and result
6579
6580 2005-01-04 Raphael Neider <rneider AT web.de>
6581
6582         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6583         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6584           to hold the condition bit)
6585         * added new version of genCmp (old code available via #define)
6586         * added new version of genShiftLeft/genShiftRight in a generic
6587           way, now supports shifting by negative values
6588         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6589           shiftCount (expected by genGenericShift)
6590         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6591         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6592           dump
6593         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6594           is an invalid literal too...)
6595
6596 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6597
6598         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6599         from Raphael Neider,
6600         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6601         for 8-bit literals. This fixes some literal operands which are sign
6602         extended to 16-bits ints when instruction needs only 8-bits.
6603
6604 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6605
6606         * device/lib/logf.c: added mcs51 assembly version
6607         * device/lib/expf.c: added mcs51 assembly version
6608         * device/lib/_logexpf.c: new shared asm code for expf and logf
6609         * device/include/math.h: add defines for assembly math library
6610         * device/lib/Makefile.in: build new _logexpf.c
6611         * device/lib/libfloat.lib: use new _logexpf.c
6612
6613 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6614
6615         * src/pic/device.c
6616         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6617           device types which have less than 0x7f registers.
6618
6619 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6620
6621         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6622
6623 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6624
6625         * device/lib/printf_fast.c: only build on supported arch.
6626         * device/lib/printf_tiny.c: only build on supported arch.
6627         * device/lib/printf_fast_f.c: only build if asm float lib
6628         * device/lib/_fsget1arg.c: only build if asm float lib
6629         * device/lib/_fsget2args.c: only build if asm float lib
6630         * device/lib/_fsnormalize.c: only build if asm float lib
6631         * device/lib/_fsreturnval.c: only build if asm float lib
6632         * device/lib/_fsrshift.c: only build if asm float lib
6633         * device/lib/_fsswapargs.c: only build if asm float lib
6634         * device/include/stdio.h: don't provide print_fast,
6635           print_fast_f, print_tiny prototypes if --xstack used
6636
6637 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6638
6639         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6640         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6641           to the SOURCES
6642
6643 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6644
6645         * device/lib/printf_fast_f.c: same as printf_fast, but
6646           with floating point enabled
6647         * device/lib/printf_fast.c: minor tweaks
6648         * device/include/stdio.h: add printf_fast_f
6649
6650 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6651
6652         * src/SDCCmain.c: make --float-reent default for mcs51
6653         * device/lib/_fsadd.c: added mcs51 assembly version
6654         * device/lib/_fssub.c: added mcs51 assembly version
6655         * device/lib/_fsmul.c: added mcs51 assembly version
6656         * device/lib/_fsdiv.c: added mcs51 assembly version
6657         * device/lib/_fseq.c: added mcs51 assembly version
6658         * device/lib/_fsneq.c: added mcs51 assembly version
6659         * device/lib/_fsgt.c: added mcs51 assembly version
6660         * device/lib/_fslt.c: added mcs51 assembly version
6661         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6662         * device/lib/Makefile.in: add _fscmp to build
6663         * device/lib/libfloat.lib: add _fscmp to build
6664
6665 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6666
6667         * device/lib/_fs2slong.c: added mcs51 assembly version
6668         * device/lib/_fs2sint.c: added mcs51 assembly version
6669         * device/lib/_fs2schar.c: added mcs51 assembly version
6670         * device/lib/_fs2ulong.c: added mcs51 assembly version
6671         * device/lib/_fs2uint.c: added mcs51 assembly version
6672         * device/lib/_fs2uchar.c: added mcs51 assembly version
6673         * device/lib/_slong2fs.c: added mcs51 assembly version
6674         * device/lib/_sint2fs.c: added mcs51 assembly version
6675         * device/lib/_schar2fs.c: added mcs51 assembly version
6676         * device/lib/_ulong2fs.c: added mcs51 assembly version
6677         * device/lib/_uint2fs.c: added mcs51 assembly version
6678         * device/lib/_uchar2fs.c: added mcs51 assembly version
6679         * device/include/float.h: added #define to select asm vs c
6680
6681 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6682
6683         * device/lib/printf_fast.c: improvements to float output
6684         * device/include/float.h: add defines for assembly float library
6685         * device/lib/_fsget1arg.c: receive 1 float arg
6686         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6687         * device/lib/_fsnormalize.c: normalize a float
6688         * device/lib/_fsreturnval.c: return float, various helper routines
6689         * device/lib/_fsrshift.c: right shift a float's mantissa
6690         * device/lib/_fsswapargs.c: swap 2 floats
6691         * device/lib/Makefile.in: build these 6 new files for mcs51
6692         * device/lib/libfloat.lib: add these 6 files to the library
6693
6694 2004-12-26 Borut Razem <borut.razem AT siol.net>
6695
6696         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6697           built by gcc 3.4.2
6698
6699 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6700
6701         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6702           and fully reentrant and register bank neutral.
6703         * device/lib/printf_fast.c: added float (not enabled by default),
6704           added compact/slower integer (also not enabled by default),
6705           improved size/speed of fast integer code, other minor changes
6706         * device/include/stdio.h, device/lib/Makefile.in,
6707           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6708
6709 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6710
6711         * src/pic16/pcode.c: declaring variables other than at the start of a
6712           block is not supported in C by VC6.
6713
6714 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6715
6716         * applied a previous patch from Raphael Neider that wasn't included
6717         in the previous commits, which fixes infinite loops within jumptable
6718         improvements,
6719         * made some fixes that previous patches introduced
6720
6721 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6722
6723         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6724         that fixes an issue with AOP_PCODE asmop's offset,
6725         * (pic16_popCopyReg): update instance field too,
6726         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6727         function of pic port,
6728         * (genCmp, genAnd, genAssign),
6729         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6730
6731 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6732
6733         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6734         variables initial values to idata section,
6735         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6736         variables in some functions. This utilizes parmBytes field of iCode
6737         structure to hold the offset of the variable in stack. (might be
6738         able to use the stack field too?)
6739         * applied patch from Raphael Neider # ### , # ###
6740         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6741         variable initial values in idata section,
6742         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6743         for static variables with initial value
6744         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6745         applied fix in while loop from Raphael Neider.
6746
6747 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6748
6749         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6750         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6751         * src/ds390/ralloc.c (serialRegAssign): spill bits
6752         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6753         * support/Util/SDCCerr.c,
6754         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6755         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6756         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6757
6758 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6759
6760         * device/include/sdcc-lib.h: inserted LGPL, added includes
6761           asm/ds390/features.h and asm/mcs51/features.h
6762         * device/include/asm/default/features.h,
6763         * device/include/asm/gbz80/features.h,
6764         * device/include/asm/z80/features.h: added empty _AUTOMEM
6765           and _STATMEM
6766         * device/include/asm/ds390/features.h,
6767         * device/include/asm/mcs51/features.h: added files with defines for
6768           _AUTOMEM and _STATMEM indicating automatic and static storage class
6769         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6770         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6771         * src/SDCCicode.c (geniCodeCast),
6772         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6773         * src/SDCCloop.c (loopInduction): removed unused variable lr
6774         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6775           to convertToFcall to include char modulo (RFE 1065037), added check
6776           if left operand is unsigned and use abs of literal value
6777         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6778           as it doesn't work after conversion from peephole.def to peephole.rul
6779         * src/mcs51/gen.c (toBoolean): added check for size,
6780           (genModOneByte): optimized code for signed char modulo a literal
6781           power of 2 (thanks to Hubert Sack),
6782           (genRRC): removed unnecessary "clr c",
6783           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6784         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6785           jump optimization,
6786           swapped rules 256.c and 256.d,
6787           extended 256.d by using new multiple checks (thanks Erik),
6788           added rules 256.e and 256.f,
6789           updated rule 261.a and 261.b to new generated code
6790         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6791
6792 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6793
6794         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6795           induction related bugs, including first part of bug #1074377
6796
6797 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6798
6799         * applied patch from bug-report #1076292,
6800         * applied patches for genAnd and Goto-optimizations for Raphael
6801         Neider,
6802         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6803         dump a less iCode information,
6804         * src/pic16/device.h (pic16_options_t): added field debgen,
6805         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6806         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6807         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6808         puclic,
6809         * (various functions): added macros FENTRY and FENTRY2 to functions,
6810         to emit function prologue,
6811         * (various functions): fixed indentation,
6812         * (genNearPointerGet): fixed loading of FSR0,
6813         * (genPackBits): applied patch from Raphael Neider to fix updating
6814         of FSR0 and touching only the modified bits,
6815         * src/pic16/genarith.c (various functions): added macros FENTRY to
6816         emit function prologue in comments,
6817         * src/pic16/pcode.h: added functions debugf2, debugf3,
6818         * src/pic16/ralloc.c: partial fix for packForPush caused
6819         segmentation fault,
6820
6821 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6822
6823         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6824           <stsp AT users.sourceforge.net> with reversed byte order
6825         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6826
6827 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6828
6829         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6830           bug #1074377
6831         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6832         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6833
6834 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6835
6836         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6837
6838 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6839
6840         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6841           conditions,
6842           (setFromConditionArgs): friendly operand parser for peephole rules,
6843           (operandBaseName, operandsNotRelated): new peephole condition
6844           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6845           architecture specific register naming into account, handles n-way
6846           comparisons, and supports quoted literals
6847         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6848
6849 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6850
6851         * src/mcs51/peeph.def: fixed bug #1076940
6852
6853 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6854
6855         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6856
6857 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6858
6859         Adding support for replacing ljmps with sjmps in jumptables
6860         generated for switch statements. For now you need to set the
6861         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6862         Now 4 algorithms for mcs51 jumptable generation are used:
6863         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6864         addresses loaded pc-relative for up to 112 cases and stack-pushing
6865         target addresses loaded with offset from dptr for up to 256 cases.
6866
6867         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6868         * src/mcs51/main.c: adapted constants for switch table generation
6869         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6870
6871 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6872
6873         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6874         * support/regression/tests/bug1057979.c: added test for bug 1073386
6875
6876 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6877
6878         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6879         compilers
6880
6881 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6882
6883         * src/pic16/device.h,
6884         * src/pic16/genarith.c,
6885         * src/pic16/glue.c,
6886         * src/pic16/main.c,
6887         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6888
6889 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6890
6891         Large cummulative patch for pic16 port.
6892         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6893         to call when a stack overflow occurs,
6894         * (malloc.h): added CVS Id tag,
6895         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6896         variable,
6897         * added libc directory. The current version of LibC contains string
6898         functions, ctype functions and macros and some functions of the
6899         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6900         be extensively tested in the future. Standard disclaimer here.
6901         Library is not automatically build yet. But one can build it by
6902         invoking 'make' inside the libc directory.
6903         * added ADC library under libio. Preliminary version yet.
6904
6905         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6906         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6907         aopForRemat() now and not by pic16_aopOp(),
6908         * (pic16_popGetTempReg): removed warning messgae when allocating
6909         temporary registers, its a buggy feature and will be removed,
6910         * (pic16_popGet): set register instance field in AOP_CRY,
6911         * (pic16_outBitC): fixed for results in size greater than 1,
6912         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6913         * (pic16_storeForReturn): optimized return of 0,
6914         * (genCmp): experimental code for new genCmp which uses PIC18's
6915         special compare&skip instructions. Initial tests fail some times
6916         with variables grater than 1 byte in size, so new code is disabled,
6917         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6918         a single bit,
6919         * (genCast): began a fix to optimize the casting of a bit to another
6920         bit, now assigning a bitfield to another bitfield will fail, sorry,
6921         * src/pic16/main.c: disabled the use of lr-support feature,
6922         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6923         * added some function prototypes, added function _debugf prototype,
6924         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6925         bits with offset (case PO_GPR_BIT),
6926         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6927         command line,
6928         * (isBankInstruction): modified to return 0 for no banking instruction,
6929         and 1 for banking instruction,
6930         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6931         caused stop processing pCodes after a inline assembly block,
6932         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6933         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6934         registers when it shouldn't,
6935         * src/pic16/ralloc.c (allocReg): add preliminary support for
6936         supporting a limited set of temporary registers,
6937
6938 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6939
6940         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6941           genDataPointerSet): ensure assignments always copy in MSB to LSB
6942           order,
6943           (loadRegFromAop): recognize CLRH optimization,
6944           (genFunction): optimize RECEIVE iCodes in reentrant functions
6945
6946 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6947
6948         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6949           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6950           selected.
6951         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6952         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6953           contiguous with data
6954
6955 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6956
6957         * device/lib/_gptrget.c (_gptrget),
6958         * device/lib/_gptrgetc.c (_gptrgetc),
6959         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6960           instead of sjmp to ret
6961         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6962           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6963
6964 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6965
6966         * .version: bumped version to 2.4.7
6967         * device/lib/_gptrget.c (_gptrget): is now _naked
6968         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6969         * device/lib/_gptrput.c (_gptrput): is now _naked
6970         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6971           (createFunction): fixed xstack
6972         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6973         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6974           or bit either,
6975           (geniCodeCritical): store original interrupt state in an iTemp bit
6976           var unless stack-auto
6977         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6978         * src/SDCCmain.c (setIncludePath): added include/target to search path
6979         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6980         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6981           prototype,
6982           (processFuncArgs): put bit vars in bit area
6983         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6984           unsaveRBank): fixed xstack,
6985           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6986           (genFunction, genEndFunction): fixed xstack,
6987           (genAssign): optimization don't walk backwards through mem
6988         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6989         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6990         * support/regression/Makefile: also make library (for stack-auto) when
6991           making "all" and added "test-mcs51-xstack-auto"
6992         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6993         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6994         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6995         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6996         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6997           make-library by MAKE_LIBRARY
6998         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6999           regression tests for xstack
7000         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
7001         * support/regression/tests/critical.c: test for critical on mcs51
7002
7003 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7004
7005         * support/regression/ports/ucz80/spec.mk: use include and lib files from
7006           built version of sdcc instead of installed version
7007
7008 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
7009
7010         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
7011         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
7012           vprintf.c now
7013         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
7014         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
7015           WARNING: remove device/lib/build/z80/printf.o by hand when
7016           updating from previous build!
7017         * device/lib/z80/printf.c: updated comment
7018         * support/regression/tests/bug1057979.c: test all ports now
7019         * support/regression/tests/bug1065458.c: file added
7020
7021 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7022
7023         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
7024           *_start and *_end symbols for static functions
7025
7026 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
7027
7028         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
7029           and search crt0.o in all library paths,
7030           (setIncludePath): proper handling of --nostdinc,
7031           (setLibPath): proper handling of --nostdlib
7032         * support/regression/Makefile,
7033         * support/regression/ports/ds390/spec.mk,
7034         * support/regression/ports/gbz80/spec.mk,
7035         * support/regression/ports/hc08/spec.mk,
7036         * support/regression/ports/mcs51/spec.mk,
7037         * support/regression/ports/mcs51-large/spec.mk,
7038         * support/regression/ports/mcs51-stack-auto/spec.mk,
7039         * support/regression/ports/z80/spec.mk: use include and lib files from
7040           built version of sdcc instead of installed version
7041         * doc/sdccman.lyx: fixed typo in --nostdinc
7042
7043 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
7044
7045         * src/pic/pcode.c,
7046         * src/pic/device.c,
7047         * src/pic/ralloc.c,
7048         * src/pic/gen.c : added support to generate code for struct bit fields.
7049
7050 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
7051
7052         * as/xa51/xa_version.h,
7053         * device/include/errno.h,
7054         * device/include/regc515c.h,
7055         * device/lib/_itoa.c,
7056         * device/lib/_ltoa.c,
7057         * device/lib/ser_ir_cts_rts.c,
7058         * sim/ucsim/xa.src/glob.cc,
7059         * sim/ucsim/xa.src/inst_gen.cc,
7060         * sim/ucsim/xa.src/xa_bit.cc,
7061         * sim/ucsim/xa.src/xa_sfr.cc,
7062         * sim/ucsim/z80.src/inst_dd.cc,
7063         * sim/ucsim/z80.src/inst_fdcb.cc,
7064         * support/scripts/keil2sdcc.pl,
7065         * src/pic16/pic16.dsp,
7066         * src/pic16/pic16a.dsp: corrected cvs line endings
7067         * device/lib/printf_large.c: fixed bug 1057979
7068         * src/pic16/gen.c: fixed non-C standard code
7069         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
7070         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
7071         * support/regression/ports/mcs51/support.c: reload T1 asap
7072         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
7073           pdata use and clear idata startup behaviour
7074         * support/regression/tests/bug1057979.c: added
7075
7076 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
7077
7078         * device/examples/ds390/ow390/ad26.h,
7079         * device/examples/ds390/ow390/cnt1d.h,
7080         * device/examples/ds390/ow390/crcutil.c,
7081         * device/examples/ds390/ow390/ownet.h,
7082         * device/examples/ds390/ow390/owsesu.c,
7083         * device/examples/ds390/ow390/swt12.h,
7084         * device/examples/ds390/ow390/swtoper.c,
7085         * device/examples/ds390/ow390/temp10.h,
7086         * device/examples/ds390/ow390/thermodl.c,
7087         * device/examples/ds390/tinitalk/tinitalk.dsp,
7088         * device/examples/ds390/tinitalk/tinitalk.dsw,
7089         * device/examples/mcs51/clock/hw.h,
7090         * device/examples/mcs51/simple2/go.bat,
7091         * device/examples/serialcomm/windows/serial.h,
7092         * device/examples/xa51/dummy.c,
7093         * device/examples/xa51/hello.c,
7094         * device/include/80c51xa.h,
7095         * device/include/at89x051.h: corrected cvs line endings
7096
7097 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7098
7099         * src/pic16/main.c (options): added command line --gstack, to trace
7100         stack over/under flows,
7101         * added pragma 'wparam' to allow passing first byte of function
7102         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7103         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7104         call to __gstack_test function and sets up the symbol as extern,
7105         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7106         * popaop): added call to pic16_testStackOverflow,
7107         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7108         wparamList list,
7109         * (genCall, genPcall): now all parameters are passed via stack
7110         except in functions that are pass to wparam pragma in which WREG is
7111         used too,
7112         * (genPcall): REENTRANT flag is checked to see if variable prototype
7113         contains reentrant keyword, don't call a non-reentrant function, via
7114         a reentrant function pointer or vice versa, functions are never
7115         passed via WREG,
7116         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7117         D.Winkler,
7118         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7119         SIGSEGV when accessing a NULL register stucture,
7120         * (pic16_printGPointerType): modified to handle UPPER modifier for
7121         function initializers, changed prototype of function to simpler one,
7122         * (pic16_printIvalFuncPtr): check to see if function is already
7123         added in externs list,
7124         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7125         optimized a move from W to SFR with a move to the same register
7126         later after a CALL,
7127         * device/lib/pic16/debug: NEW directory, contains debug features
7128         which are enabled when linking with libdebug.lib, currently command
7129         line option --gstack enables stack pointer tracing for over/under
7130         flow, corresponding sources are in debug/gstack
7131
7132 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7133
7134         * doc/sdccman.lyx: updated SDCC version,
7135         * (PIC16 port): update list of command line options,
7136         * src/pic16/device.h (structure pic16_options_t): added field gstack
7137         to enable stack overflow tracing on push/pops,
7138         * src/pic16/device.c (statistics structure): added statistics
7139         structure,
7140         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7141         pic16_dump_int_registers): increase statistics counters for each
7142         * variable which is encountered
7143         * (pic16_dump_usection): emit each .udata variable to its own udata
7144         section,
7145         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7146         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7147         parameters via stack, otherwise use old scheme,
7148         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7149         assembler output file,
7150         * src/pic16/main.c: added command line options --gstack to enable
7151         push/pop tracing for stack overflow,
7152         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7153         instructions): added size of each instruction,
7154         * (pic16_countInstruction): estimate size of instructions in
7155         the_pFile list, inline assembly blocks are not counted,
7156         * (pic16_FixRegisterBanking): trace previous register usage, when
7157         banksel optimizations is greater than 0, don't emit a redudant
7158         banksel directive,
7159
7160 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7161
7162         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7163         * src/pic16/ralloc.c : applied same fix for pic16.
7164         * src/pic/gen.c : tidied it up a little.
7165
7166 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7167
7168         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7169         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7170
7171 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7172
7173         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7174
7175 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7176
7177         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7178         non-reentrant function __modsint in the interrupt function (thus
7179         corrupting math operations during serial I/O)
7180         * device/lib/ser_ir.c: as above, changed buffersize
7181         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7182         256.c,d for zeroing
7183         * doc/Makefile: added option -t for rsync
7184
7185 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7186
7187         * src/SDCCast.h (struct ast),
7188         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7189
7190 2004-10-20 Borut Razem <borut.razem AT siol.net>
7191
7192         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7193         package
7194
7195 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7196
7197         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7198         makefile targets,
7199         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7200         support functions to replace long sequences of MOVFF's from access
7201         bank registers to stack and vice versa,
7202         * src/pic16/device.h: added new field opt_flags, where optimization
7203         flags can be set to enable certain features,
7204         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7205         * pBlock, (genFunction, genEndFunction): surroung loop for
7206         saving/loading used registers in stack with PC_INFO pCodes,
7207         INF_LREGS. Code in between can then be optimized by pCode optimizer
7208         to support function calls,
7209         * (genDataPointerSet): fixed bug which loaded float fields in
7210         structures with corrupt data,
7211         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7212         in a standard way debug info on stderr. Feature used for developing
7213         and debugging only,
7214         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7215         obsolete chunks of code,
7216         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7217         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7218         * pic16/src/pcode.c (pic16_newpCodeInfo,
7219         * (pic16_newpCodeOpLocalRegs),
7220         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7221         feature,
7222         * (pic16_pCodeConstString): printing of the initial value of a
7223         symbol as a comment is inhibited since parsing was already done by
7224         copyStr and output is corrupt,
7225         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7226
7227 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7228
7229         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7230
7231 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7232
7233         * as/mcs51/lkarea.c: removed old K&R style,
7234           (lnksect): changed check on boundary error,
7235           (lnksect2): changed check on boundary error,
7236           (lnksect2): extend XSTK to end of page if size = 1
7237         * as/mcs51/lkmain.c: removed old K&R style,
7238           (Areas51): create l_IRAM symbol
7239         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7240         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7241           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7242         * device/lib/_mullong.c: added version to be compiled with xstack
7243         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7244         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7245         * device/lib/mcs51/crtxstack.asm: fixed comment
7246         * src/SDCCglue.c: maxInterrupts defaults to 0,
7247           (emitMaps): added pdata,
7248           (createInterruptVect): (re)moved default,
7249           (glue): added pdata,
7250           (glue): moved __start__xstack to XSTK with default size 1
7251         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7252           and options.float_rent when options.stackAuto is set,
7253           (linkEdit): only write XDATA_NAME if provided on command line
7254         * src/SDCCmem.h,
7255         * src/SDCCmem.c: added pdata
7256         * src/port.h: added pdata_name to PORT
7257         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7258           (saveRegisters, unsaveRegisters): removed usage of B,
7259           (genMinus): fixed accumulator clash,
7260           (genJumpTab): added comment, this needs another look
7261         * src/mcs51/gen.c: added check for "B in use" paranoia,
7262           added pushB() and popB()
7263         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7264           chance
7265         * src/avr/main.c,
7266         * src/ds390/main.c,
7267         * src/hc08/main.c,
7268         * src/mcs51/main.c,
7269         * src/pic/main.c,
7270         * src/pic16/main.c,
7271         * src/xa51/main.c,
7272         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7273           added PSEG (PAG,XDATA) or NULL to port specifier
7274         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7275         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7276           (_mcs51_genInitStartup): removed __start__xstack equ,
7277           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7278         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7279         * src/z80/gen.c (_rleAppend): fixed warnings
7280         * support/regression/tests/zeropad.c: added pdata test
7281         * .version: bumped to 2.4.6
7282
7283 2004-10-17 Borut Razem <borut.razem AT siol.net>
7284
7285         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7286         as a part of nightly build
7287
7288 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7289
7290         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7291         WREG holds the first byte function parameters,
7292         * (aopForSym): take special case for symbols which are in FARSPACE
7293         but in CODESPACE too,
7294         * (assignResultValue): modified to take into account _G.useWreg,
7295         * (genCall): don't use wreg for parameter passing when function is
7296         declared as reentrant, too, added optimization INCF to stack
7297         pointer when stack parameter count is 1,
7298         * (genFunction, genEndFunction): refurnished and fixed to not using
7299         wreg for passing parameters when function has varargs or is
7300         reentrant, fixed bug with symbol name compare for generating
7301         functions in absolute address,
7302         * (pic16_storeForReturn): refurnished,
7303         * (genCmp): began writing a new version of the function, not ready
7304         yet, therefore it is disabled,
7305         * (genAssign): do not read code memory when assigning a function to
7306         a pointer function,
7307         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7308         array of characters, not pointer,
7309         * (pic16initialComments): in debug mode emit an .ident directive for
7310         the assembler,
7311         * (_process_pragma): emit a new warning type (internal to pic16)
7312         when setting stack to default length, emit a similar warning when
7313         placing a function at absolute address and address is not word aligned
7314         * (_pic16_parseOptions): added 'return TRUE' statement,
7315         * (_pic16_linkEdit): if compiling a source, then add the source's
7316         file object, first in the list of objects to link,
7317
7318 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7319
7320         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7321         * src/pic/main.c : removed VC warning.
7322         * src/pic/gen.c : changed comment.
7323
7324 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7325
7326         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7327         reference to a deprecated symbol _GPTRREG was causing failure to
7328         link. Thanks G. M. Gallant for the info.
7329
7330 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7331
7332         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7333         comments for Bugs item #954788.
7334
7335 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7336
7337         * src/pic16/device.c (pic16_dump_gsection,
7338         * pic16_groupRegistersInSection): handle symbols declared to be in
7339         access bank differently,
7340         * src/pic16/gen.c (struct _G): added field resDirect,
7341         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7342         send values read from stack directly to result and don't allocate
7343         temporary values,
7344         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7345         same registers,
7346         * (pic16_sameRegsOfs): NEW,
7347         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7348         free because they were not allocated from temporary pool,
7349         * pic16_popRegFromString): workaround to fix a problem with
7350         allocating variables twice or never,
7351         * (genGenPointerGet): using PRODL instead of FSR0H,
7352         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7353         instead of FSR0H,
7354         * (genAssign): take advantage of the _G.resDirect flag,
7355         * (genCast): around line 11844, use mov2f instead of directly
7356         MOVFF'ing between operands to account for literal values,
7357         * src/pic16/genutils.c: some new debug functions for gpsim have been
7358         added,
7359         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7360         float with integer part only,
7361         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7362         place variables in access bank
7363         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7364         updated sources to reflect recent changes in gen.c
7365
7366 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7367
7368         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7369         sources that searched for headers in installation path, now the
7370         device/include/pic16 is used,
7371         * src/pic16/glue.c (pic16glue),
7372         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7373         .line directives if not in debug mode, this suppresses assembler's
7374         warnings for ignored directives
7375
7376 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7377
7378         * src/port.h: made reset_regparms prototype void parameter explicit.
7379         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7380         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7381         * doc/sdccman.lyx: documented warning disabling and how to use
7382           printf_large to make it print floats.
7383         * device/include/stdbool.h: NEW
7384         * device/lib/_atof.c,
7385         * device/lib/_divuint.c,
7386         * device/lib/_divulong.c,
7387         * device/lib/expf.c,
7388         * device/lib/printf_large.c,
7389         * device/lib/sincosf.c,
7390         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7391         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7392           a completely reentrant lib.
7393
7394 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7395
7396         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7397         * device/include/pic16/stdio.h: fixed bug with colon
7398
7399 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7400
7401         * device/include/pic16/stdio.h,
7402         * device/include/pic16/stdlib.h,
7403         * device/include/pic16/math.h: NEW
7404         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7405         declared as _naked to reduce overhead
7406         * device/lib/Makefile.in (target port-specific-objects-pic16):
7407         changed * to *.* so to ignore the CVS directory,
7408         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7409         stacked variables back in stack,
7410         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7411         corruption
7412
7413 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7414
7415         * .version: bumped version number to 2.4.5
7416         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7417         * support/Util/SDCCerr.c (messages structure): added entry for
7418         W_POSSBUG2
7419
7420         Large cumulative patch for pic16 port and libraries.
7421         * device/include/pic16/sdcc-lib.h,
7422         * device/include/pic16/stdarg.h,
7423         * device/include/asm/pic16/features.h,
7424         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7425         * device/include/pic16/float.h: changes reentrant keyword with
7426         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7427         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7428         updated target build-libraries to include objects from gptr,
7429         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7430         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7431         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7432         all function headings,
7433         * src/SDCCmain.c: added global parameter userIncDirsSet,
7434         * (parseCmdLine): when option -I is encountered add directory to
7435         userIncDirsSet too,
7436         * src/version.awk: added space between control and long,
7437         * src/pic16/NOTES: added some notes for the port,
7438         * src/pic16/gen.c: added prototype for mov2fp function,
7439         * (fReturnpic16[]): properly named return value registers,
7440         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7441         * (aopForSym): added code to handle symbols with onStack flag set,
7442         symbols onStack are allocated PTRSIZE bytes,
7443         * (aopFreeAsmop): handles special case where asmops are stack objects,
7444         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7445         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7446         added argument lock to trace flaws in allocating temporary registers
7447         when developing port,
7448         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7449         * (pic16_popRegFromString): reenabled allocating a direct register
7450         from string,
7451         * (assignResultValue): various beautifications,
7452         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7453         referenced function argument,
7454         * (genIpush): reenabled to allow stacked arguments, handles only
7455         ic->parmPush iCodes,
7456         * (genCall, genPcall): major changes to allow for variable argument
7457         functions, fixed a bug with falsely restoring stack pointer after
7458         returning from call,
7459         * (genFunction): pending code for critical function,
7460         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7461         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7462         * (genNearPointerGet): fixed bug with indirect reading, was always
7463         reading from INDF0
7464         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7465         pointers,
7466         * (genAddrOf): rewrote code to take address of a stacked function parameter
7467         * (genCast): fixed casting to generic pointer type,
7468         * src/pic16/gen.h: added AOP_STA,
7469         * (struct asmop): added field stk,
7470         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7471         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7472         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7473         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7474         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7475         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7476         generic pointers,
7477         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7478         and library paths,
7479         * (pic16_port structure): generic pointer size is set to 3,
7480         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7481         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7482         compiler warning,
7483         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7484         operand is an iTemp,
7485
7486 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7487
7488         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7489         * debugger/mcs51/simi.c: addapt new syntax of s51
7490
7491 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7492
7493         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7494         * src/pic16/pcode.c: commented out some calls to free() in order to
7495         fix bug #989576,
7496
7497 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7498
7499         * src/SDCCicode.h,
7500         * src/SDCCicode.c (isiCodeInFunctionCall),
7501         * src/avr/ralloc.c (selectSpil),
7502         * src/pic/ralloc.c (selectSpil),
7503         * src/pic16/ralloc.c (selectSpil),
7504         * src/ds390/ralloc.c (selectSpil),
7505         * src/hc08/ralloc.c (selectSpil),
7506         * src/xa51/ralloc.c (selectSpil),
7507         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7508         stack in the middle of a function call sequence (fixes bug #1020268)
7509         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7510         costs associated with the minimum switch case.
7511
7512 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7513
7514         * src/SDCC.lex: fixed bug #1030549
7515
7516 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7517
7518         * src/SDCCcse.h (struct cseDef),
7519         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7520         over a function call if the CSE is derived from a symbol whose
7521         address has been taken (fixes bug #1029883)
7522         * support/regression/tests/bug-1029883: a new regression test for
7523         this bug
7524
7525 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7526
7527         * src/hc08/gen.c (emitinline): fixed bug #1029778
7528         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7529         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7530         and starts toward RFE #905167)
7531
7532 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7533
7534         * src/pic16/gen.c (mov2f): New function to move an operand to
7535         another without considering if it is a literal or a register,
7536         * (pic16_sameRegs): don't check if they are both AOP_REG,
7537         * (AccRsh): removed andmask=0 lines,
7538         * (genLeftShift): duplicated to be improved in future versions,
7539         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7540         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7541         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7542         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7543         * (insertBankSwitch): fixed inserting banksel directives algorithm
7544         for instructions that follow a skip instruction, this fixes a report
7545         for broken subtraction code generation,
7546         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7547         iCode is a left op, just in case result and right share the same
7548         registers
7549
7550 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7551
7552         * src/hc08/main.c,
7553         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7554         preservation of HX
7555         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7556         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7557         on 2004-09-12; it was buggy
7558
7559 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7560
7561         * src/SDCCsymt.h: removed RESULT_CHECK
7562         * src/SDCCast.c,
7563         * src/SDCCglue.c,
7564         * src/SDCCval.c,
7565         * src/pic/glue.c,
7566         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7567
7568 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7569
7570         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7571         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7572         configuration values no more rejected by compiler, they are assigned
7573         to configuration registers with a warning message instead,
7574         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7575         the for-loop so last conf register is emitted too,
7576         * (_pic16_initPaths): link library libsdcc.lib by default,
7577         * (_hasNativeMulFor): modified test for multiplication according to
7578         Raphael Neider's remarks. Integer multiplication is also done with
7579         support functions,
7580         * device/include/pic16/pic18fregs.h: corrected type error in while
7581         testing and including 18f6720 header file
7582
7583 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7584
7585         * src/pic16/device.h (pic16_options): removed field use_crt,
7586         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7587         until an optimization to handle single bits is added,
7588         * (pic16_loadFSR0): moved before genUnpackBits,
7589         * (genAnd): some white lines removed,
7590         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7591         leave_reset flags in pic16_options when using crt modules,
7592
7593 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7594
7595         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7596           for bugs 898889 & 979599. Also used some safer print instructions.
7597
7598 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7599
7600         * src/pic16/device.h (pic16_options_t): added field use_crt,
7601         crt_name, no_crt,
7602         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7603         catch a probable future bug,
7604         * src/pic16/gen.c: aopIdx function commented out,
7605         * (genAssign): commented out old code which used aopIdx,
7606         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7607         code, added if conditionals to take into account the --use-crt
7608         command line options,
7609         * src/pic16/main.c (pic16_optionsTable): added new command line
7610         options, --use-crt= and --no-crt,
7611         * (_pic16_linkEdit): now the proper crt object is added in the
7612         linker command line except than when --no-crt is specified,
7613         * src/pic16/pcode.c,
7614         * src/pic16/pcode.h: added some structures and functions for a new
7615         optimization scheme to compansate for instruction overhead between
7616         same iCodes, this scheme is currently under development and is not
7617         working in any way,
7618         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7619         to && operator,
7620         * device/lib/pic16/startup/crt0i.c,
7621         * device/lib/pic16/startup/crt0iz.c: added global char variable
7622         __uflags to force the generation of an idata section
7623
7624 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7625
7626         * doc/Makefile,
7627         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7628         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7629
7630 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7631
7632         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7633         Frieder) and clarified the default code optimization mode
7634
7635 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7636
7637         * src/SDCC.lex (doPragma, process_pragma),
7638         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7639         "opt_code_size", and "opt_code_balanced"
7640         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7641         regrouped options by category, added support for category headers
7642         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7643         and "--opt-code-size"
7644         * doc/sdccman.lyx: documented these new options and pragmas
7645         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7646         preference into account
7647
7648 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7649
7650         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7651           geniCodePreDec): Fixed bug 904237 by generating a warning
7652         * src/SDCCerr.h,
7653         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7654
7655 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7656
7657         * src/pic/device.c : When no max ram set validate full memory range.
7658         * src/pic/pcode.c,
7659         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7660
7661 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7662
7663         * device/lib/_gptrget.c,
7664         * device/lib/_gptrput.c: updated comment
7665         * device/lib/calloc.c,
7666         * device/lib/free.c,
7667         * device/lib/malloc.c,
7668         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7669         * src/SDCCcse.c (cseBBlock),
7670         * src/SDCCicode.c (printOperand, geniCodeArray),
7671         * src/SDCCicode.h (struct operand): fixed bug 868103
7672         * support/regression/tests/bug-868103.c: added
7673         * src/SDCCast.c (searchLitOp),
7674         * src/SDCCcse.h (struct cseDef),
7675         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7676         * src/SDCCicode.h (struct operand),
7677         * src/SDCCsymt.h (struct sym_link),
7678         * src/avr/gen.c (hasInc),
7679         * src/ds390/gen.c (hasInc),
7680         * src/hc08/gen.c (genPlusIncr, hasInc),
7681         * src/mcs51/gen.c (hasInc),
7682         * src/pic16/glue.c (pic16_printIvalChar),
7683         * src/pic16/ralloc.c (regWithIdx),
7684         * src/xa51/gen.c (hasInc) : removed warnings
7685         * src/SDCCast.c (createBlock): added comment ???
7686         * src/hc08/ralloc.c: updated comments
7687
7688 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7689
7690         * doc/sdccman.lyx: updated section on switch statements, added
7691         section about semaphore locking
7692         * doc/Makefile: added option -info for latex2html
7693         * device/lib/_gptrget.c,
7694         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7695
7696 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7697
7698         * src/pic/device.h,
7699         * src/pic/device.c,
7700         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7701          maxram is less than 0x100.
7702
7703 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7704
7705         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7706
7707 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         * src/port.h,
7710         * src/mcs51/main.c,
7711         * src/ds390/main.c,
7712         * src/z80/main.c,
7713         * src/hc08/main.c,
7714         * src/pic/main.c,
7715         * src/pic16/main.c,
7716         * src/avr/main.c,
7717         * src/xa51/main.c
7718         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7719         a jump table is the best form for a switch statement, including
7720         automatic insertion of missing cases to make the case range
7721         continuous. Developed in collaboration with Frieder Ferlemann.
7722
7723 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7724
7725         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7726         accumulator result if it needs sign extension
7727
7728 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7729
7730         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7731
7732 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7733
7734         * device/lib/gbz80/printf.c,
7735         * device/lib/z80/printf.c: removed define for NULL
7736
7737 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7738
7739         * as/xa51/xa_link.c,
7740         * device/examples/ds390/ow390/ad26.c,
7741         * device/examples/ds390/ow390/cnt1d.c,
7742         * device/examples/ds390/ow390/counter.c,
7743         * device/examples/ds390/ow390/ds2480.h,
7744         * device/examples/ds390/ow390/ds2480ut.c,
7745         * device/examples/ds390/ow390/findtype.c,
7746         * device/examples/ds390/ow390/gethumd.c,
7747         * device/examples/ds390/ow390/owllu.c,
7748         * device/examples/ds390/ow390/ownetu.c,
7749         * device/examples/ds390/ow390/swt12.c,
7750         * device/examples/ds390/ow390/swtloop.c,
7751         * device/examples/ds390/ow390/temp.c,
7752         * device/examples/ds390/ow390/temp10.c,
7753         * device/examples/ds390/ow390/thermo21.c,
7754         * device/examples/ds390/ow390/tinilnk.c,
7755         * device/examples/ds390/ow390/tstfind.c,
7756         * device/examples/serialcomm/windows/serial.cpp,
7757         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7758         * device/include/reg51.h: fixed line endings for cvs
7759
7760 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7761
7762         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7763         packRegsForAccUse, packRegisters): new accumulator register
7764         packing algorithm
7765         * support/regression/ports/hc08/support.c (_putchar): suppress
7766         warning of unused variable
7767         * src/SDCCicode.c: added SWAP entry to codeTable
7768
7769 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7770
7771         * device/lib/sprintf.c: forgot to add this file before previous commit
7772
7773 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7774
7775         * src/pic16/gen.c (genPackBits): added operand right in function
7776         parameters, load result directly if p_type is POINTER (that is
7777         called by genNearPointerSet)
7778         * (genUnPackBits): added operand left in function parameters,
7779         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7780         FSR0 if accessing bitfields,
7781
7782 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7783
7784         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7785           _print_format; updated printf, sprintf, vsprintf
7786         * device/include/asm/default/features.h: corrected comment/define
7787         * device/lib/Makefile.in: added sprintf.c
7788         * device/lib/libsdcc.lib: added sprintf module
7789         * device/lib/printf_large.c,
7790         * device/lib/vprintf.c,
7791         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7792           into these 3 files
7793         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7794         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7795         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7796           hc08 test
7797         * support/regression/tests/zeropad.c: define idata as data for hc08
7798
7799 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7800
7801         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7802         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7803         labels are referenced at least once (even if a reference is not found)
7804         * src/hc08/gen.c (emitcode): set isComment flag for comments
7805         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7806         loads), rules 6a..6b (optimize jumps to return)
7807
7808 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7809
7810         * device/lib/acosf.c (acosf),
7811         * device/lib/asinf.c (asinf),
7812         * device/lib/atanf.c (atanf),
7813         * device/lib/ceilf.c (ceilf),
7814         * device/lib/cosf.c (cosf),
7815         * device/lib/coshf.c (coshf),
7816         * device/lib/cotf.c (cotf),
7817         * device/lib/fabsf.c (fabsf),
7818         * device/lib/floorf.c (floorf),
7819         * device/lib/log10f.c (log10f),
7820         * device/lib/logf.c (logf),
7821         * device/lib/sinf.c (sinf),
7822         * device/lib/sinhf.c (sinhf),
7823         * device/lib/sqrtf.c (sqrtf),
7824         * device/lib/tanf.c (tanf),
7825         * device/lib/tanhf.c (tanhf),
7826         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7827         replaced all instances of "reentrant" in the library functions
7828         defined in math.h with this macro.
7829         * support/regression/tests/float_trans.c: reenabled test for hc08
7830
7831 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7832
7833         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7834         erroneously deleted
7835
7836 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7837
7838         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7839         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7840         multi-byte volatile operands are used
7841         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7842         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7843         initialization to area GSINIT0 so that it would always precede
7844         any static initializers in GSINIT
7845         * support/regression/tests/zeropad.c: fixed idata define for hc08
7846         * support/regression/tests/bug-927659.c,
7847         * support/regression/tests/float_trans.c: disabled tests for hc08
7848         pending missing library routines
7849         * .version: increased version number to 2.4.4 - hc08 port now passes
7850         regression tests
7851
7852
7853 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7854
7855         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7856         * Makefile.common.in,
7857         * as/Makefile,
7858         * as/hc08/Makefile.in,
7859         * as/mcs51/Makefile.in,
7860         * as/z80/Makefile.in,
7861         * debugger/mcs51/Makefile.in,
7862         * device/include/Makefile.in,
7863         * device/lib/Makefile.in,
7864         * doc/Makefile,
7865         * link/Makefile,
7866         * link/z80/Makefile.in,
7867         * packihx/Makefile.in,
7868         * sim/ucsim/main_in.mk,
7869         * sim/ucsim/avr.src/Makefile.in,
7870         * sim/ucsim/doc/Makefile.in,
7871         * sim/ucsim/gui.src/serio.src/Makefile.in,
7872         * sim/ucsim/hc08.src/Makefile.in,
7873         * sim/ucsim/s51.src/Makefile.in,
7874         * sim/ucsim/xa.src/Makefile.in,
7875         * sim/ucsim/z80.src/Makefile.in,
7876         * src/Makefile.in,
7877         * support/cpp2/Makefile.in,
7878         * support/librarian/Makefile,
7879         * support/makebin/Makefile: added DESTDIR to the install path proposed
7880         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7881         * doc/sdccman.lyx: added DESTDIR documentation
7882
7883 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7884
7885         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7886         instruction for interrupt handlers, use fast returns when returning
7887         from high priority interrupts
7888
7889 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7890
7891         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7892         code generation
7893         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7894         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7895         bugs, ported much of Bernhard's code from mcs51
7896         * src/mcs51/gen.c (genSend),
7897         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7898         than one when calling a reentrant function
7899         * device/lib/_mullong.c: defined an alternate struct layout for big
7900         endian ports (hc08)
7901
7902 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7903
7904         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7905         test
7906
7907 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7908
7909         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7910         are sane and complete before asking the port its prefered parameter
7911         passing method (fixes bug #1017633)
7912         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7913         and _ret3
7914
7915 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7916
7917         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7918         problem in bitfields >= 8 bits.
7919
7920 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7921
7922         * src/SDCCsymt.c: undid changes that were not meant to be committed
7923
7924 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7925
7926         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7927
7928 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7929
7930         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7931           copied and wrong bit got inverted
7932
7933 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7934
7935         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7936         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7937         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7938         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7939         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7940         assignments to bitfields at known addresses
7941         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7942         reads from bitfields at known addresses
7943         * src/hc08/ralloc.c (packRegisters),
7944         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7945         genhc08Code): optimize pointer get values used as conditionals
7946         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7947         and branch
7948
7949 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7950
7951         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7952         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7953         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7954         as conditionals
7955
7956 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7957
7958         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7959
7960 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7961
7962         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7963         related problems
7964
7965 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7966
7967         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7968
7969 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7970
7971         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7972         mcs51 port
7973
7974 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7975
7976         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7977
7978 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7979
7980         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7981         cases use more compact code.
7982
7983 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7984
7985         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7986
7987 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7988
7989         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7990
7991 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7992
7993         * src/SDCCsymt.h,
7994         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7995         parameter of changePointer() from symbol* to sym_link*
7996         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7997         * src/SDCCsymt.c (compareType): void* type is castable to other
7998         pointers, but not necesarily an exact match.
7999         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
8000         is no longer blindly treated as an exact match.
8001         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
8002
8003 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
8004
8005         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
8006
8007 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
8008
8009         * src/pic/gen.c,
8010         * src/pic/pcode.c,
8011         * src/pic/ralloc.h,
8012         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
8013
8014 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
8015
8016         * src/pic/device.c,
8017         * src/pic/device.h,
8018         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
8019
8020 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8021
8022         * src/mcs51/gen.c (emitcode): fixed bug #992819
8023
8024 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
8025
8026         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
8027           there's no need to make it worse
8028
8029 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8030
8031         * src/mcs51/ralloc.c (deassignLR),
8032         * src/ds390/ralloc.c (deassignLR),
8033         * src/hc08/ralloc.c (deassignLR),
8034         * src/z80/ralloc.c (deassignLR),
8035         * src/pic/ralloc.c (deassignLR),
8036         * src/pic16/ralloc.c (deassignLR),
8037         * src/avr/ralloc.c (deassignLR),
8038         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
8039         rlivePoint): fixed another part of bug #971834
8040
8041 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8042
8043         * src/z80/main.c: enabled "critical" keyword
8044         * src/z80/mappings.i,
8045         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
8046         functions (fixes bug #979646)
8047         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
8048
8049 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8050
8051         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
8052           such as c:\mydir.
8053
8054 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
8055
8056         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
8057           doesn't disable too much optimizations
8058
8059 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8060
8061         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
8062
8063 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
8064
8065         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
8066
8067 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
8068
8069         * src/pic/gen.c tidied up tabs
8070         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
8071         * src/pic/main.c tidied up tabs
8072         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
8073         * src/pic/pcoderegs.c tidied up tabs
8074         * src/pic/ralloc.c tidied up tabs
8075
8076 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
8077
8078         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
8079         to S_FIXED for pic16 port and when symbol is not in level 0,
8080         allocate for S_REGISTER storage class and pic16 port, too,
8081         * src/pic16/device.h: prototype for checkSym,
8082         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
8083         * (pic16_assignConfigWordValue): test the value and the mask to
8084         validate that the value is suitable for the configuration word,
8085         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
8086         collect extern declared symbols, don't emit symbol twice, check
8087         first if symbol is in publics set first,
8088         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
8089         * added command line '--fstack' which enables an experimental
8090         feature for stack access, too buggy to be used yet...
8091         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8092         * (pic16_allocDirReg): when register has storage class S_REGISTER
8093         allocate in pic16_dynAccessRegs,
8094         * device/include/pic16/pic18f????.h: modified configuration word
8095         naming convention, words started as CONFIG0H but should be CONFIG1H
8096
8097 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8098
8099         * device/include/mcs51reg.h: fixed bug 970993
8100
8101 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8102
8103         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8104         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8105         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8106         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8107         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8108         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8109           error/warning numbers,
8110           added function setWarningDisabled()
8111         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8112         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8113           _memcmp.c _memmove.c calloc.c realloc.c free.c
8114         * support/regression/tests/malloc.c: added tests for new functionality
8115         * support/regression/tests/zeropad.c: added tests for truncated initializers
8116           and initialized char arrays starting with '\x0'
8117         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8118
8119 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8120
8121         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8122
8123 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8124
8125         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8126         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8127         peephole 177.e. Thanks to anonymous
8128
8129 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8130
8131         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8132         function isn't used in the source but referenced as a
8133         variable initializer then declare it as extern in .asm file
8134
8135 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8136
8137         * .version: increased version number to 2.4.3
8138
8139         Adding version extension according to ChangeLog CVS revision
8140         * src/Makefile.in (target all): added dependency 'version.h'
8141         * (rule version.h): added rule to create version.h from ChangeLog,
8142         * (rule dep): added dependency version.h,
8143         * src/version.awk: AWK script to create version.h
8144         * src/SDCCdwarf2.c (dwWriteModule),
8145         * src/SDCCglue.c (initialComments),
8146         * src/SDCCmain.c (printVersionInfo): modified to write after
8147         version string the version extension number,
8148         * src/SDCCutil.c: included "version.h"
8149         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8150         number,
8151         * src/SDCCutil.h: added prototype for getBuildNumber
8152
8153         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8154         includeDirsSet, too,
8155         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8156         const char [] is found in function prototype...
8157
8158         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8159         moving to WREG with source is already in WREG,
8160         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8161         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8162         * (aopForSym): stack'ed symbols are partially supported, added
8163         if-clause to support symbols in FARSPACE,
8164         * (sameRegs): added test for AOP_ACC to see if registers are same,
8165         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8166         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8167         * (pic16_popRegFromString): will not allocate a new register if it
8168         doesn't find one by name, bug may have introduced...
8169         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8170         * (genIpush): revived to use pic16 port's stack,
8171         * (genAddrOf): added incomplete case for stack'ed operand,
8172         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8173         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8174         can handle multibyte operands,
8175         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8176         * (pic16initialComments): added message for MPLAB compatibility
8177         mode enabled,
8178         * src/pic16/main.h: prototype for pic16_mplab_comp,
8179         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8180         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8181         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8182         because of increased complexity of procedure,
8183         * (_process_pragma): stack pragma changed to format 'stack pos len',
8184         emit symbol '_stack_end' to conform with gplink,
8185         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8186         to search for register,
8187         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8188         PO_GPR_REGISTER,
8189         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8190         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8191         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8192         case for PO_GPR_REGISTER,
8193         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8194         dies, the new era is ahead !...
8195         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8196         pic16_dynInternalRegs,
8197         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8198         * (pic16_allocDirReg): minor optimizations and bug fixes,
8199         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8200
8201         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8202         load stack and frame pointer with address of 'stack_end' symbol
8203
8204 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8205
8206         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8207         without source code but only variable initializers
8208
8209 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8210
8211         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8212         external are not declared as extern to reduce overhead while linking
8213
8214 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8215
8216         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8217
8218 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8219
8220         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8221           Yee Keat for the patch
8222         * src/SDCCast.c (decorateType): fixed bug #979599
8223         * src/ds390/gen.h: removed local fReturnSizeDS390
8224         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8225         * src/ds390/gen.c (genAnd, genOr, genXor),
8226         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8227
8228 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8229
8230         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8231         add relFilesSet to $3, manipulate $2 to handle linking of object
8232         files without source files in command line,
8233         * device/include/pic16 (all headers): added ID location macros,
8234         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8235         entries for ID location bytes,
8236         * (pic16_assignIdByteValue): NEW,
8237         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8238         added field dumpcalltree to pic16_options_t,
8239         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8240         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8241         emitting rFalseIfx label after check_carry label,
8242         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8243         pic16_emitDIRegs), NEW
8244         * (pic16glue): dump .calltree file when option --calltree found,
8245         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8246         * (_pic16_genAssemblerPreamble): emit ID locations after
8247         configuration registers,
8248         * (pic16_linkCmd): modifications of the link command,
8249         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8250         * (pic16_pCodeInitRegisters): don't init stack registers,
8251         * (pic16_findPrevInstruction): fixed bug,
8252         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8253         bug with immediate registers,
8254         * (buildCallTree): traces stack push and pop,
8255         * (pct2): dump also stack usage for each function,
8256         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8257         * (pic16_allocDirReg): various modifications,
8258         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8259         fixed to 1,
8260
8261 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8262
8263         * src/pic16/pcode.c: removed buggy double colon
8264
8265 2004-07-01 Borut Razem <borut.razem AT siol.net>
8266
8267         * support/scripts/sdcc.nsi: added include/pic16 to setup
8268
8269 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8270
8271         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8272         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8273         target 'clean',
8274         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8275         specific command line arguments. Also added sample lkr script
8276         for placing a variable at a specific memory bank.
8277         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8278         at a specific memory bank,
8279         * (pic16_dump_isection): fixed bug which caused string literals to
8280         be omitted when dumping idata section,
8281         * (pic16_groupRegistersInSection): added code to handle registers
8282         in specific memory banks,
8283         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8284         public, all references are renamed too,
8285         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8286         AOP_DPTR2,
8287         * (pic16_storeForReturn): added case to handle when dest is WREG,
8288         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8289         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8290         pic16_rel_udata, check to see if that register is marked as being
8291         a member of a specific memory bank,
8292         * (pic16_printIvalCharPtr): added code to add string literals either
8293         to code or the idata sections,
8294         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8295         also accept the 'udata' pragma,
8296         * src/pic16/main.h: new structure types sectName and sectSym
8297         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8298         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8299         * (pic16_findPrevInstruction): fixed, it returned nothing,
8300         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8301         instruction combinations,
8302         * (pic16_FixRegisterBanking): heavily reorganised,
8303         * (pic16_AnalyzeBanking): if generating banksel directives is
8304         disabled, then don't call FixRegisterBanking at all,
8305         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8306         completely removed,
8307         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8308
8309 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8310
8311         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8312         Phuah Yee Keat <yk.phuah AT nestac.com>
8313
8314 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8315
8316         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8317         correctly the IVT even if it is relocated to some other location
8318
8319 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8320
8321         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8322         * device/include/pic16/pic18f2220.h: NEW,
8323         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8324         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8325         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8326         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8327         nodefaultlibs, ivt_loc is the location of the interrupt vector
8328         table, and nodefaultlibs signs that default libraries should not be
8329         linked in link stage,
8330         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8331         according to --ivt-loc argument,
8332         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8333         when pragma stack is found,
8334
8335 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8336
8337         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8338         256 (range check), 257 (do while), 258.a-f (bit banging
8339         f.e. on 3-wire SPI bus)
8340
8341 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8342
8343         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8344         variables used exclusively within a loop
8345
8346 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8347
8348         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8349
8350 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8351
8352         * src/SDCClrange.c (computeClash): fixed bug #971834
8353
8354 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8355
8356         * src/mcs51/gen.c (genCmp): fixed bug #975903
8357         * src/hc08/gen.c (operandsEqu),
8358         * src/ds390/gen.c (operandsEqu),
8359         * src/z80/gen.c (operandsEqu),
8360         * src/pic/gen.c (operandsEqu),
8361         * src/pic16/gen.c (operandsEqu),
8362         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8363         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8364
8365 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8366
8367         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8368
8369 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8370
8371         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8372         default case in switch statement,
8373         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8374         to eliminate problem with initialisation of pointers, but problem
8375         still exists,
8376         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8377         * (emitStaticSegment): removed various lines emitting debug info,
8378         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8379         added processor registers for utilizing EEPROM,
8380         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8381         configurable and set 8
8382
8383 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8384
8385         * .version: increased version number to 2.4.2,
8386
8387         Cumulative patch for pic16 port
8388         * src/pic16/device.c: changed scheme to dump initial values for
8389         variables in idata segment, all print_idata* functions were removed,
8390         now the pic16_printIval* will be called,
8391         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8392         * _pic16_printPointerType, pic16_printPointerType,
8393         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8394         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8395         NEW, similar to the respective functions in SDCCglue.c,
8396         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8397         way, emitting hex bytes,
8398         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8399
8400 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8401
8402         * src/avr/ralloc.c (serialRegAssign),
8403         * src/xa51/ralloc.c (serialRegAssign),
8404         * src/pic/ralloc.c (serialRegAssign),
8405         * src/pic16/ralloc.c (serialRegAssign),
8406         * src/hc08/ralloc.c (serialRegAssign),
8407         * src/z80/ralloc.c (serialRegAssign),
8408         * src/ds390/ralloc.c (serialRegAssign),
8409         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8410
8411 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8412
8413         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8414         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8415
8416 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8417
8418         Cumulative patch for pic16 port:
8419         * src/pic16/device.h (typedef PIC16_device) modified fields for
8420         defining microcontrollers,
8421         * src/pic16/device.c: added new info for all devices in Pics16 array,
8422         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8423         to be optimised out by the pCode optimiser,
8424         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8425         specially, bug reported by G.M. Gallant,
8426         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8427         as force'd so that cannot be optimised out by pCode optimiser,
8428         * src/pic16/pcode.c,
8429         * src/pic16/pcodepeeph.c,
8430         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8431         they are disabled by default, but can be enabled explicit with
8432         command argument --denable-peeps, for testing,
8433         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8434         --pomit-ivt in COMPILE_FLAGS
8435
8436 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8437
8438         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8439           compilation on MSVC
8440
8441 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8442
8443         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8444
8445 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8446
8447         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8448         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8449
8450 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8451
8452         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8453         would only assign 0x300001 register.
8454
8455 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8456
8457         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8458         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8459
8460 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8461
8462         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8463         for ds80c400
8464         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8465         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8466         added peephole 254 (left shift), 255 (jump table)
8467
8468 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8469
8470         * device/lib/Makefile.in: removed comment line with model-pic16,
8471         * (target port-specific-objects-pic16): the libraries and objects
8472         are copied to the build directory form the device/lib/pic16/bin
8473         directory
8474
8475         Cumulative patch concerning pic16 port:
8476         * library directory has been re-organized,
8477         * added support for PIC18F1220,
8478         * added headers and library sources for chips 18f1220,18f6520,
8479         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8480
8481         * configuration registers setting has changed, now each supported
8482         device has a complete description of the registers it uses,
8483         * all initialisations are moved to idata sections, these section
8484         can be absolute or relocatable,
8485         * fixed initialisation of codespace variables,
8486         * fixed warning about PCLATU and gpsim,
8487         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8488         * (genAssign): use table reads when assigning from variables in codespace,
8489         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8490         char/int variables placed in codespace,
8491         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8492         registers set in .asm file, no need for --pomit-config-words anymore,
8493         * (pic16glue): some 8051 legacy segments are commented out
8494         (to be removed completely),
8495         * added support for alternative assembler and linker with --asm=
8496         and --link= command line arguments,
8497         * peepholes are disabled automatically in the port, no need to
8498         specify on command line,
8499         * port supports natively char/int/long multiplication, but converts
8500         all divisions to support functions,
8501         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8502         to the file set in variable $2,
8503         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8504         strings in ASCII format and not in hex,
8505         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8506         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8507         allocate proper register if iCodes aren't temporary,
8508
8509 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8510
8511         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8512
8513 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8514
8515         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8516         is commented out
8517
8518 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8519
8520         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8521         computed address is reused
8522         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8523         multi-byte bitfields
8524
8525 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8526
8527         * src/z80/gen.c: (genArrayInit): must check for pointers too
8528
8529 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8530
8531         * support/regression/tests/zeropad.c: never meant to commit the
8532           nestedstruct test: removed, added check for GCC version
8533
8534 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8535
8536         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8537         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8538         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8539           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8540           bugs 928906 and 954082 half-empty initializers
8541         * src/SDCCsymt.h,
8542         * src/SDCCsymt.c (getAllocSize): added for above fix
8543         * src/z80/gen.c (genArrayInit): fixed bug 741044
8544         * support/regression/tests/zeropad.c: added tests
8545
8546 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8547
8548         * src/pic16/device.c (pic16_dump_section): corrected bug which
8549         caused some symbols of the libraries to be misplaced
8550
8551 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8552
8553         * src/pic16/glue.c,
8554         * src/pic16/ralloc.h,
8555         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8556         to fix conflict with pic port
8557
8558 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8559
8560         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8561         externs configuration variables,
8562         * src/pic16/ralloc.h,
8563         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8564         prototype in header, commented out some debug messages
8565
8566 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8567
8568         * src/pic16/glue.c,
8569         * src/pic16/main.c,
8570         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8571         for gpasm COFF object generation. Thanks to D. Hawkins for
8572         his patch info
8573
8574 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8575
8576         * src/ds390/main.c,
8577         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8578         Brock for spotting this)
8579         * src/ds390/gen.c (genEndFunction),
8580         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8581         interrupt handler and critical. Disable push/pop optimizations when
8582         peephole optimizations disabled.
8583
8584 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8585
8586         Updated pic16 library sources and headers.
8587         * device/lib/pic16/pic18f*/ ,
8588         * device/include/pic16/*.h: modified to handle structured SFR
8589         definitions
8590
8591 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8592
8593         * src/port.h (PORT structure): added hook initPaths, now each
8594         port can declare its own default search paths,
8595         which can been seen with the --print-search-dirs option,
8596         see pic16 port for example,
8597         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8598         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8599         * (doPrintSearchDirs): NEW, replaces in a central manner the
8600         printing of search dirs which was split in set*Paths functions,
8601         * (main): added call to port->initPaths and doPrintSearchDirs,
8602         * src/avr/main.c,
8603         * src/ds390/main.c,
8604         * src/hc08/main.c,
8605         * src/izt/i186.c,
8606         * src/izt/tlcs900h.c,
8607         * src/mcs51/main.c,
8608         * src/pic/main.c,
8609         * src/pic16/main.c: modified port structures to reflect addition of
8610         initPaths hook,
8611
8612         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8613         * (pic16_dump_section): for registers in same address reserve memory once,
8614         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8615         to no_banksel,
8616         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8617         result is greater in size than right or left,
8618         * (pic16_genUMult8X8_8): there are some cases where the result can
8619         be 16 bits size, so handle these,
8620         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8621         * (pic16_outBitC): modified to emit pcodes,
8622         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8623         or not,
8624         * (genDivOneByte): implemented algorithm to divide 8-bits,
8625         * (genCmp): uncommented goto, but issues still exist,
8626         * (genAnd): fixed a bug with variables >8bits,
8627         * (genPackBits): optimization added that uses BCF/BSF to change a
8628         single bit,
8629         * (genAssign): fixed bug when assigning floating point literals,
8630         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8631         __sdcc_gsinit_startup label,
8632         * src/pic16/main.c (_pic16_init): removed search directory
8633         initialisations,
8634         * (_pic16_initPaths): NEW, used to initialise search directories,
8635         * (_hasNativeMulFor): support functions for all except char/int
8636         multiplication, and char division,
8637         * (PIC16_port struct): modified entry for native mul support,
8638         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8639         no_banksel option,
8640         * (buildCallTree): call to register_usage is ifdef'ed out,
8641
8642 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8643
8644         * device/include/string.h: applied Stas Sergeev's patch to make this
8645         header file compatible with the preprocessor -Wundef option
8646         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8647         failure (fixes bug #941458)
8648
8649 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8650
8651         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8652         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8653         that the variable, not the function, should be static
8654         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8655         to be consistent with non-literal case
8656
8657 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8658
8659         * src/SDCCast.c (isConformingBody): fixed bug #949967
8660         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8661         convilong): fixed bug #952086
8662
8663 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8664
8665         * src/SDCCmem.c (allocVariables): fixed bug #955321
8666
8667 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8668
8669         * src/hc08/main.c (_hc08_genAssemblerEnd),
8670         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8671         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8672         completely eliminated the use of a temporary file
8673         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8674         when more than one file linked
8675         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8676
8677 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8678
8679         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8680         which fixes bug #543481
8681         * support/regression/tests/bug-751703.c: fixed comments left from a
8682         cut and paste error
8683         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8684         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8685         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8686         scopes
8687         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8688         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8689         are now changed to underscores in moduleName
8690
8691 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8692
8693         * as/mcs51/lkmem.c: better fix for bug #954173
8694
8695 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8696         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8697
8698         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8699         * device/include/c8051f000.h,
8700         * device/include/c8051f120.h,
8701         * device/include/c8051f300.h,
8702         * device/include/c8051f310.h,
8703         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8704         PWM16) and detab'ed
8705
8706 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8707
8708         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8709         and mailing lists, doc'ed --no-peep-comments, removed reference
8710         to knoppix (newest version has no LyX/LaTeX), other minor changes
8711         * src/SDCCglue.c (glue): save 2 bytes stack space with
8712         option --main-return. The ljmp could probably be avoided too
8713
8714 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8715
8716         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8717
8718 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8719
8720         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8721         * src/SDCCopt.c (isLocalWithoutDef),
8722         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8723         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8724         (credit to Maarten Brock for patch #949363, on which this is based)
8725         * support/regression/tests/bug-751703.c: some test cases of extern used
8726         within inner scopes.
8727
8728 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8729
8730         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8731         SPEC_STRUCT
8732         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8733         struct definitions
8734         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8735         dwWriteLabel): fix to create valid debugger symbols even when
8736         the module name has non-alphanumeric symbols in it
8737         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8738         when a variable's allocation has been optimized away
8739
8740
8741 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8742
8743         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8744         * src/hc08/main.c,
8745         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8746         * src/mcs51/main.c,
8747         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8748         * src/ds390/main.c,
8749         * src/z80/gen.c (z80_emitDebuggerSymbol),
8750         * src/z80/main.c,
8751         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8752         * src/pic/main.c,
8753         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8754         * src/pic16/main.c,
8755         * src/avr/gen.c (avr_emitDebuggerSymbol),
8756         * src/avr/main.c,
8757         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8758         * src/xa51/main.c,
8759         * src/SDCCdebug.c (emitDebuggerSymbol),
8760         * src/SDCCdebug.h,
8761         * src/port.h: added a debugger struct to the port struct. Added a
8762         callback for defining debugger symbols
8763
8764         * src/SDCCast.c (createLabel),
8765         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8766         with isitmp = 1
8767         * src/SDCCicode.h,
8768         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8769         iCode back to the ast for the function
8770
8771         * src/hc08/ralloc.c (hc08_assignRegisters),
8772         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8773         unneeded fields from the regs struct.
8774         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8775         pushReg() & pullReg() functions instead of emitcode()
8776
8777         * src/hc08/gen.c (genLabel, genhc08Code),
8778         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8779
8780         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8781         debugger hooks
8782
8783         * src/hc08/gen.c (genEndFunction, genhc08Code),
8784         * src/hc08/gen.h,
8785         * src/mcs51/gen.c (genEndFunction, gen51Code),
8786         * src/mcs51/gen.h,
8787         * src/ds390/gen.c (genEndFunction, gen390Code),
8788         * src/ds390/gen.h,
8789         * src/z80/gen.c (genEndFunction, genZ80Code),
8790         * src/z80/gen.h,
8791         * src/z80/z80.h,
8792         * src/pic/gen.c (genEndFunction, genpic14Code),
8793         * src/pic/gen.h,
8794         * src/pic16/gen.c (genEndFunction, genpic16Code),
8795         * src/pic16/gen.h,
8796         * src/avr/gen.c (genEndFunction, genAVRCode),
8797         * src/avr/gen.h,
8798         * src/xa51/gen.c (genEndFunction, genXA51Code),
8799         * src/xa51/gen.h,
8800         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8801         specific code to cdbFile.c and out of the backend code generators
8802
8803         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8804         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8805         starting address is now 0
8806
8807         * as/hc08/asm.h,
8808         * as/hc08/m08pst.c,
8809         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8810         assembler directive for DWARF support
8811         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8812
8813         * src/src.dsp,
8814         * src/Makefile.in,
8815         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8816
8817 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8818
8819         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8820         and inappropriate peephole optimization in jump tables
8821
8822 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8823
8824         * as/hc08/m08pst.c,
8825         * src/SDCCglue.c: sdccopt works for the hc08 port now
8826
8827 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8828
8829         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8830
8831 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8832
8833         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8834
8835 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8836
8837         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8838         rules
8839         * src/SDCCmain.c,
8840         * src/SDCCglobl.h,
8841         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8842         comments from the peephole optimizer replacement rules
8843         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8844         symbols
8845         * src/SDCCcse.c (updateSpillLocation),
8846         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8847         equivalents
8848         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8849         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8850         objects far pointers
8851
8852 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8853
8854         * src/SDCCsymt.h: a missing part of my last change
8855         * src/pic/ralloc.c (regTypeNum),
8856         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8857
8858 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8859
8860         * src/SDCCicode.h,
8861         * src/SDCCicode.c (aggrToPtrDclType),
8862         * src/SDCCptropt.h,
8863         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8864         ptrPseudoSymConvert),
8865         * src/pic/ralloc.c (regTypeNum),
8866         * src/pic16/ralloc.c (regTypeNum),
8867         * src/hc08/ralloc.c (regTypeNum),
8868         * src/ds390/ralloc.c (regTypeNum),
8869         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8870         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8871
8872 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8873
8874         * link/z80/lkmain.c (afile),
8875         * as/hc08/lkmain.c (afile),
8876         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8877         prevent a pointer problem when a filename has no directory and
8878         no extension specified.
8879
8880 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8881
8882         * link/z80/lkmain.c (afile): allow periods in directory names
8883         * link/z80/lkmain.c (afile),
8884         * as/mcs51/lkmain.c (afile),
8885         * as/hc08/lkmain.c (afile): allow linker script file to have an
8886         extension other than ".lnk"
8887         * link/z80/lklex.c (getfid),
8888         * link/z80/lkmain.c (parse),
8889         * as/mcs51/lklex.c (getfid),
8890         * as/mcs51/lkmain.c (parse),
8891         * as/hc08/lklex.c (getfid),
8892         * as/hc08/lkmain.c (parse): Support comments in the linker script
8893         file on lines by themselves and after filenames
8894
8895 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8896
8897         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8898
8899 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8900
8901         * src/z80/peeph-z80.def: removed some peephole rules that don't
8902         work with multibyte arithmetic (fixed bug #937126)
8903         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8904         to registers and not global variables
8905         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8906         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8907         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8908         checking for assignments not internally generated (fixed bug #931895)
8909         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8910         structure member (fixed bug #930072)
8911
8912 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8913
8914         * src/SDCCmain.c (linkEdit),
8915         * src/hc08/main.c (_hc08_parseOptions),
8916         * as/hc08/Makefile.in,
8917         * as/hc08/aslink.h,
8918         * as/hc08/asm.h,
8919         * as/hc08/m08pst.c,
8920         * as/hc08/lkrloc.c (relr, rele),
8921         * as/hc08/lkarea.c (lnkarea)
8922         * as/hc08/lkmain.c (afile, parse),
8923         * as/hc08/lkelf.c: support for ELF output
8924         * as/hc08/lks19.c (s19),
8925         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8926
8927 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8928
8929         * as/mcs51/lkihx.c: Fixed bug #899105.
8930
8931 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8932
8933         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8934         .dsp files from Unix to DOS.
8935
8936 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8937
8938         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8939         function pointers; we have been compliant for several months now.
8940         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8941         change that was accidently commented out
8942         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8943         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8944         bug #922319
8945
8946 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8947
8948         * src/hc08/gen.c: output of all of the internal debugging information
8949         is now controlled by the D() macro; it is disabled by default
8950
8951 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8952
8953         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8954         harder to keep the same registers during a CAST iCode
8955         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8956         long via int can be done in a single cast, if the signedness is
8957         correct.
8958         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8959         putchar() in tinibios.c in ds390's library
8960
8961 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8962
8963         * src/SDCCast.c (decorateType): fixed bug #898889,
8964         cast result of a literal complement too
8965         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8966         fixed check for bitfields
8967
8968 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8969
8970         * src/SDCCicode.c (geniCodeLogic): made it static,
8971         (geniCodeLogicAndOr): added in order to fix bug #905492,
8972         (ast2iCode): fixed bug #905492
8973         * support/regression/tests/bug-905492.c: added
8974         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8975         (processParms): fixed bug #927659: don't copy parms, this will clear
8976         decorated flag
8977         * support/regression/tests/bug-927659.c: added
8978
8979 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8980
8981         * src/SDCCast.c (addCast): don't cast float to char
8982         * device/lib/libsdcc.lib: added _memmove
8983
8984 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8985
8986         * device/lib/large/Makefile: fixed parallel execution by
8987         replacing `make` by `$(MAKE)`
8988
8989 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8990
8991         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8992         offsets (fixes bug #923936)
8993
8994 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8995
8996         * device/lib/small/Makefile: fixed parallel execution by
8997         replacing `make` by `$(MAKE)`
8998
8999 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9000
9001         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
9002
9003 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
9004
9005         * src/pic/gen.c (genCpl): multi-byte complements were not working.
9006         * src/regression/Makefile: Regression test was not running.
9007
9008 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
9009
9010         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
9011         complement if possible
9012         * src/SDCCval.c (valComplement),
9013         * src/SDCCicode.c (operandOperation): fixed complement of literal
9014         * support/regression/tests/onebyte.c (testComplement): added
9015
9016 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
9017
9018         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
9019         return an optimized tree; actually replace actParm with the new tree
9020         * src/SDCCast.h: added some parantheses to remove side effects
9021         * support/regression/tests/bug-920866.c
9022
9023 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
9024         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
9025         Bit operands were not being handled properly in the pic14 port.
9026         (now src/regression/add.c passes again).
9027
9028 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9029
9030         * src/SDCC.y (labeled_statement): case and default no longer require
9031         a following statement (RFE #893037)
9032
9033 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9034
9035         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
9036         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
9037         disabled (fixes bug #916294)
9038         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
9039         "mov a,acc"; patch provided by Lenny Story
9040         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
9041
9042 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9043
9044         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
9045         functions
9046         * src/ds390/gen.c (genFunction, genEndFunction),
9047         * src/ds390/ralloc.c (ds390_assignRegisters),
9048         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
9049         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
9050         pushed if there are parameters passed on the stack. Also, a cleaner
9051         way to decide if r0/r1 should be pushed/popped. (Together they fix
9052         bug #918693)
9053
9054 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9055
9056         * doc/sdccman.lyx,
9057         * device/lib/mcs51/crtpagesfr.asm,
9058         * device/lib/mcs51/crtxinit.asm,
9059         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
9060         to avoid confusion with Si Lab's SFRPAGE register.
9061
9062 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9063
9064         * src/SDCCglue.c (emitMaps): allow public sfr variables
9065         * src/SDCCglue.c (initialComments): include compiler build date
9066         with compiler version and put the timestamp of the generated
9067         assembly file on a serperate line to be less confusing.
9068         * src/port.h: added genInitStartup hook
9069         * src/avr/main.c,
9070         * src/ds390/main.c,
9071         * src/hc08/main.c,
9072         * src/pic/main.c,
9073         * src/pic16/main.c,
9074         * src/xa51/main.c,
9075         * src/z80/main.c: genInitStartup initialize as NULL (default to
9076         historical behaviour)
9077         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
9078         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
9079         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
9080         library instead of hard coding it into the compiler.
9081         * support/regression/ports/mcs51-stack-auto/spec.mk,
9082         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
9083         * device/lib/mcs51/Makefile,
9084         * device/lib/small/Makefile,
9085         * device/lib/large/Makefile,
9086         * device/lib/mcs51/crtpagesfr.asm,
9087         * device/lib/mcs51/crtstart.asm,
9088         * device/lib/mcs51/crtxclear.asm,
9089         * device/lib/mcs51/crtxinit.asm,
9090         * device/lib/mcs51/crtclear.asm,
9091         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9092         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9093         and into user configurable files.
9094         * device/lib/clean.mk: clean mcs51 directory too
9095         * support/regression/tests/longlit.c: added static to T1 declaration
9096         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9097         accesses in the initialization code
9098
9099 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9100
9101         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9102         OSCTRIMVAL as noted in bug #916008
9103
9104 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9105
9106         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9107         in loops with multiple exits (reported as incorrect registers
9108         used by Martin Helmling in Sdcc-user list)
9109
9110 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9111
9112         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9113         made ds390 register extensions look less like error messages
9114
9115 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9116
9117         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9118         reported by Adam Wozniak in Sdcc-user list
9119
9120 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9121
9122         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9123         arithmetic optimizations, added debug output
9124
9125 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9126
9127         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9128         * sdcc.spec: updated and split sdcc into 3 rpms
9129         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9130         needed for literals of LEFT_OP and '+'
9131         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9132         introduced RESULT_TYPE_NOPROM
9133         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9134         left shift
9135         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9136         limited promotion to int only for '*'
9137         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9138
9139 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9140
9141         * src/pic16/gen.c (genSkip),
9142         (genc16bit2lit), (gencjneshort): commented out
9143         (is_LitOp): new helper function, checks operand type
9144         (genCmpEq): rewritten
9145
9146 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9147
9148         * support/regression/tests/bug-908454.c: added
9149
9150 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9151
9152         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9153         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9154         (geniCodeCast): cosmetic, don't preserve bit storage class
9155         (geniCodeLeftShift): added promotion
9156         (geniCodeLogic): fixed regression
9157         * src/SDCCsymt.c (computeTypeOr): accept bits too
9158         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9159
9160 2004-03-07  Borut Razem <borut.razem AT siol.net>
9161
9162         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9163
9164 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9165
9166         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9167         version of pic16_genPackRegisters which does not check if ic is a
9168         CAST operator,
9169         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9170         function cause string1.c regression test fails
9171
9172 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9173
9174         * sim/ucsim/configure.in,
9175         * sim/ucsim/configure,
9176         * sim/ucsim/doc/Makefile.in: use docdir
9177         * src/SDCC.y: fixed sbit atrributes
9178         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9179         * src/SDCCast.c (decorateType): |^& need special promotion handling
9180         * src/SDCCast.h,
9181         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9182         * src/SDCCsymt.h (computeType),
9183         * src/SDCCicode.c: computeType() needs op
9184         * src/SDCCsymt.c (checkTypeSanity),
9185         * doc/sddman.lyx: "plain" bitfields are unsigned
9186         * src/SDCCsymt.c (computeTypeOr): added
9187         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9188         |^& ops
9189         * src/SDCCval.c (val*): computeType() needs op
9190         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9191         * support/regression/tests/onebyte.c: added tests for |^&
9192
9193 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9194
9195         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9196         for writing icode into asm output.
9197
9198 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9199
9200         * src/pic16/device.c: added some debug lines enabled
9201         with macro DEBUG_CHECK,
9202         * src/pic16/genarith.c: more debug in genPlus,
9203         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9204         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9205         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9206         * (aopForSym): onStack symbols are re-placed in data memspace,
9207         and onStack flag is cleared,
9208         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9209         copy temporary pcodeop,
9210         * (genPcall): added warning for not updating PCLATU,
9211         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9212         always true for pic16 port,
9213         * (genMultOneWord): NEW, supports integer multiplication,
9214         * (genMult): modified to call genMultOneWord,
9215         * (ifxForOp): added warning when return NULL,
9216         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9217         flag is set before call to operandFromSymbol for implicit
9218         added structures,
9219         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9220         options.intlong_rent are set by default,
9221         * (_hasNativeMulFor): modified to allow port generation of integer
9222         multiplication,
9223         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9224         set regtype to REG_SFR for all registers, restricting seting the
9225         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9226
9227 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9228
9229         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9230         more than 500 times in the regression tests
9231
9232 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9233
9234         * support/Util/SDCCerr.h,
9235         * support/Util/SDCCerr.c,
9236         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9237         enumerator_list),
9238         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9239         for symbol conflicts.
9240         * support/valdiags/tests/enum.c,
9241         * support/valdiags/tests/tentdecl.c,
9242         * support/valdiags/tests/struct.c: expect possible error messages
9243         referring to original symbol definitions.
9244         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9245         * src/SDCCsymt.h,
9246         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9247
9248 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9249
9250         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9251
9252 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9253
9254         * src/pic16/ralloc.c (newReg): fixed bug #908929
9255
9256 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9257
9258         * src/ds390/gen.c: added missing #include "main.h"
9259
9260 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9261
9262         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9263         checking if symbol is already in set,
9264         * src/pic16/device.h: prototype for checkAddSym,
9265         * src/pic16/gen.c: (_G): added entry interruptvector,
9266         * (assignResultValue): removed some commented out lines,
9267         * (genFunction): check for ISR via sym->type, absolute section for
9268         interrupt code is created via a new pBlock, the goto instruction is
9269         placed now correctly at the interrupt vector position, changed all
9270         references from ivec to _G.interruptvector,
9271         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9272         is the interrupt is a high priority one, same for return from ISR,
9273         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9274         externs to calls of checkAddSym,
9275         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9276         pic16_pcode_verbose flag is set,
9277         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9278         * src/pic16/pcoderegs.c: message about how many registers are saved
9279         will only be emitted if pic16_pcode_verbose flag is set,
9280
9281 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9282
9283         * src/ds390/ralloc.h,
9284         * src/ds390/ralloc.c (ds390_regWithIdx),
9285         * src/ds390/gen.c (emitcode),
9286         * src/ds390/main.h,
9287         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9288         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9289         ds390operandCompare, getRegsRead, getRegsWritten,
9290         initializeAsmLineNode): customized instruction size calculation for
9291         ds390, started basis for some register optimizations
9292         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9293         corresponding assembly output
9294         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9295         missing push/pop of r0/r1. Optimized push/pops
9296
9297 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9298
9299         * src/mcs51/main.c (instructionSize): fixed ACALL size
9300         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9301
9302 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9303
9304         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9305         the sorting of rlist with NULL elements
9306         * (print_idataType, print_idata): NEW to create idata sections
9307         * src/pic16/device.h: idataSymSet new variable
9308         * src/pic16/gen.c (genFunction): fixed some bugs in string
9309         comparing, improved the absolute section creation for ISRs,
9310         added FSR0L/FSR0H in registers that are saved in an ISR,
9311         * (genInline): fixed the processing of inline snippets,
9312         now they undergo no process by the peephole optimizer
9313         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9314         are placed in idataSymSet,
9315         * (pic16emitStaticSeg): extern symbols are added in externs,
9316         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9317         switching when aboslute variables are placed in access bank memory
9318         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9319         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9320         commented out with #if,
9321         * (pic16_packRegisters): reintroduce the check for CAST because some
9322         symbols are not correctly handled,
9323         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9324         pCodeInstruction instead of pCode,
9325         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9326         pCodeAsmDir definition,
9327         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9328         directive, then the argument directive is emitted without the leading
9329         tab, hack for inline labels which must be in the first column,
9330         * (compareLabel,pic16_findNextInstruction),
9331         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9332         * (insertBankSwitch): modified for the new pCodeAsmDir,
9333
9334 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9335         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9336
9337         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9338         instance,
9339         * (pushSide): commented out with #if,
9340         * (assignResultValue): fixed some typos in saving
9341         registers,
9342         * (genPcall): FIXED and sync'ed with genCall,
9343         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9344         * (genNearPointerGet): fixed to handle some more cases,
9345         implementation scheme via table reads,
9346         * (genConstPointerGet): modified to access code memory correct,
9347         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9348         and improved to handle some cases
9349         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9350         instead of "RETLW" for init data
9351         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9352         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9353         variables are placed in access bank memory (<0x80 and >=0xf80),
9354         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9355         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9356         TBLWT_POSTDEC,TBLWT_PREINC
9357         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9358         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9359         directives
9360         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9361         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9362         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9363         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9364
9365 2004-02-29  Borut Razem <borut.razem AT siol.net>
9366
9367         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9368         support/Util/findme.h, support/Util/system.h: enhance binary relative
9369         search for lib and include by using findProgramPath()
9370
9371 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9372
9373         * src/SDCCpeeph.h,
9374         * src/SDCCpeeph.c (pcDistance),
9375         * src/port.h,
9376         * src/mcs51/ralloc.h,
9377         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9378         * src/mcs51/main.h,
9379         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9380         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9381         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9382         size calculation port specific, started basis for some register
9383         optimizations
9384         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9385         missing push/pop of r0/r1. Optimized push/pops
9386         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9387         * device/lib/_modsint.c (_modsint),
9388         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9389         and stack version so regression tests pass
9390
9391 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9392
9393         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9394         * src/SDCCast.c (decorateType): catch another small optimization
9395         with '?' operator
9396         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9397         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9398         modified to finally use computeType() all over SDCC,
9399         see Feature Request #877103
9400         * src/SDCCval.h: cosmetic
9401         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9402         valCompare(); regression tested in muldiv.c
9403         * support/regression/tests/muldiv.c (testMod): mod sign follows
9404         dividend only
9405
9406 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9407
9408         * src/SDCCast.c (decorateType): fixed bug #902362
9409         * doc/INSTALL.txt: fixed install instructions for win32
9410
9411 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9412
9413         * device/include/Makefile.in (install): fixed by replacing spaces
9414         by tabs
9415         * doc/README.txt,
9416         * doc/INSTALL.txt: updated for release
9417         * doc/sdccman.lyx: added warning for --xstack being buggy
9418
9419 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9420
9421         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9422         to eliminate build warnings.
9423         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9424
9425 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9426            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9427
9428         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9429         removed -penable-stack, added comment for stack pragma, added
9430         warning for not initializing the stack/frame registers, removed
9431         comment at interrupts section
9432
9433         Stack is made permanent, there is no ability to disable stack usage.
9434         * src/pic16/device.h,
9435         * src/pic16/device.c: removed all references to USE_STACK macro,
9436         * src/pic16/device.c (pic16_dump_section): when no elements in
9437         rlist, free rlist before return,
9438         * (pic16_dump_int_registers): NEW, internal registers are a new set
9439         of general purpose registers reused by each function,
9440         * (checkAddReg): returns 1 if registers is added to set,
9441         * (pic16_groupRegistersInSection): when a registers is of type
9442         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9443         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9444         SRCASECMP macro is moved here from device.c
9445         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9446         PO_PCLATU, PO_PRODL, PO_PRODH,
9447         * (pic16_pCodeOpType, genMinus,
9448         changed compares to "a" register, with AOP_ACC,
9449         * (pic16_genPlus): fixed some bugs and indented properly,
9450         * (pic16_addSign): changed size to size+offset in the MOVWF
9451         instruction,
9452         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9453         multiply 8-bit operand by literal, result is 8-bit,
9454         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9455         multiply 2 8-bit operand, result is 8-bit,
9456         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9457         genUMult8X*_16,
9458         * src/pic16/gen.c: changed accUse to contain WREG only,
9459         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9460         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9461         true, do not use immediate addressing any more unless sym is a
9462         pointer in codespace,
9463         * (aopForRemat): do not use immediate addressing when symbol not in
9464         codespace and when symbol's address is requested,
9465         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9466         accUse size (= 1),
9467         * (aopGet): added case for AOP_ACC and don't return "accumulator
9468         bug" but WREG instead,
9469         * (popGetTempReg): pushes contents of temporary register in stack,
9470         * (popReleaseTempReg): pops contents of temporary register from
9471         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9472         * (pic16_popGet): separated case AOP_ACC to return register WREG
9473         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9474         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9475         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9476         the use of immediate pointers to certain cases only.
9477
9478         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9479         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9480         * (assignResultValue, genCall, genRet): modified to use the new
9481         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9482         genPcall is still broken,
9483         * (genFunction): added code to create 'A' type pBlocks when
9484         interrupt functions are generated, code not extensively tested yet,
9485         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9486         * (genEndFunction): modified so ISRs pop stored registers from stack,
9487         * (genMultOneByte): cleanup,
9488         * (AccRsh): added flag andmask, to and result with appropriate mask,
9489         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9490         * (genDataPointerGet): fixed and reenabled its use,
9491         * (genNearDataPointerGet): bugs fixed,
9492         * (genDataPointerSet): bugs fixed,
9493         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9494         pic16_DumpSymbol, pic16_DumpOp,
9495         * src/pic16/genutils.h: function prototypes for the above functions,
9496         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9497         pointers,
9498         * (pic16emitRegularMap): many many many improvements, but needs a
9499         major cleanup,
9500         * src/pic16/main.c: enable_stack in pic16_options is removed,
9501         * (_pic16_parseOptions): removed command line options -penable-stack,
9502         * (_process_pragma): emit stack symbol only when stack pragma is
9503         processed,
9504         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9505         redirected to FSR0L/FSR0H pair,
9506         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9507         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9508         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9509         for immediates,
9510         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9511         * (dumpPicOptype): NEW,
9512         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9513         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9514         with movff instruction,
9515         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9516         added pic16_int_regs, some packRegsFor* functions are commented out,
9517         because produce errors,
9518         * src/pic16/NOTES: minor modifications
9519
9520 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9521
9522         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9523         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9524         --pack-iram.
9525         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9526         * as/mcs51/lkaomf51.c: fixed bug #895763
9527
9528 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9529
9530         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9531
9532 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9533
9534         * doc/sdccman.lyx: added details about the HC08 storage classes and
9535         interrupts, fixed the register usage info for z80 & gbz80
9536
9537 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9538
9539         * doc/sdccman.lyx: added more pic16 port documentation
9540         * device/include/pic16/: added header pic18fregs.h
9541
9542 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9543
9544         * doc/sdccman.lyx: added Vangelis' contribution
9545
9546 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9547
9548         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9549         extend to the next CALL or PCALL, not just to the next CALL.
9550
9551 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9552
9553         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9554
9555 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9556
9557         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9558         bug #895752 and a better fix for bug #716790
9559
9560 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9561
9562         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9563
9564 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9565
9566         * doc/sdccman.lyx: minor changes, minor changed
9567
9568 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9569
9570         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9571         which can't handle SDCC_NEWONEBYTEOPS,
9572         (geniCodeMultiply): removed conversion from mult to shift for pic14
9573         and pic16
9574
9575 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9576
9577         * src/hc08/gen.h,
9578         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9579         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9580         thus fixing bug #895406
9581
9582 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9583
9584         * device/lib/_modsint.c,
9585         * device/lib/_modslong.c: sign follows divisor only
9586         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9587         signs or signedness can be ignored
9588         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9589         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9590         added optimization for IFX,
9591         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9592         arguments;
9593         reenabled optimization for IFX, which was removed on 2004-01-11
9594         * src/SDCCast.h: added return type IFX
9595         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9596         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9597         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9598         SDCC_OLDONEBYTEOPS selects the old behaviour
9599         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9600         changed again and commented promotion rule
9601         * src/SDCCval.c (valDiv): promotion no longer necessary
9602         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9603         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9604         rewritten
9605         * support/regression/tests/onebyte.c: added
9606
9607 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9608
9609         * gen.c (genInline): reverted to old code for assemnling inline
9610         code because of bug reported James Chadd
9611
9612 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9613
9614         * ralloc.h: missing declarations from previous patch,
9615         seems that patch for ralloc.h was never applied, fixed
9616
9617 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9618            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9619
9620         * pcode.c,
9621         * pcode.h,
9622         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9623         indirect addressing. Marked FSR0 as deprecated
9624         * gen.c (pointerCode): commented out, not needed now
9625         (pic16_popGet2p): new MOVFF helper function
9626         (genGenPointerGet),
9627         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9628         (shiftRLong): removed duplicate debugging info
9629
9630 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9631
9632         * src/ds390/gen.c (genNearPointerGet),
9633         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9634         optimization with bits, but not bitfields.
9635         * src/ds390/ralloc.c (packRegisters),
9636         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9637
9638 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9639
9640         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9641
9642 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9643
9644         * src/SDCCsymt.h,
9645         * src/SDCCicode.c (operandFromSymbol),
9646         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9647         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9648         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9649         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9650         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9651         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9652         bug #892038
9653         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9654         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9655         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9656         * src/SDCCsymt.c (newSymbol),
9657         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9658         enumerator_list),
9659         * src/SDCCval.h,
9660         * src/SDCCval.c (newiList): fixed bug #885705
9661
9662 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9663
9664         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9665         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9666
9667 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9668
9669         * device/include/c8051f120.h,
9670         * device/include/c8051f300.h,
9671         * device/include/c8051f310.h: added/updated header files for Silicon
9672         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9673         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9674         in new section Submitting patches
9675
9676 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9677
9678         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9679         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9680         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9681         genGenPointerSet),
9682         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9683         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9684         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9685         genGenPointerSet),
9686         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9687         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9688         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9689         genGenPointerSet),
9690         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9691         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9692         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9693         genGenPointerSet): fixed bug #892400
9694         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9695         to eliminate build warnings.
9696         * src/SDCCast.c (processParms),
9697         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9698         fixed bug 751859
9699         * support/valdiag/valdiag.py: added GCC to the list of defines active
9700         when compiling with gcc
9701
9702 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9703
9704         * support/Util/SDCCerr.h,
9705         * support/Util/SDCCerr.c,
9706         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9707         with an incomplete type (fixed bug #883734)
9708         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9709
9710 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9711
9712         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9713
9714 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9715
9716         * src/SDCCast.c (decorateType),
9717         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9718         function pointer implementation
9719         * support/regression/tests/funptrs.c: added tests to verify both forms
9720         of function pointers work correctly. Added tests to verify parameters
9721         are passed in the correct order.
9722
9723 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9724
9725         * device.c (regCompare): registers are sorted by ascending
9726         address and increasing size,
9727         * main.c (_pic16_finaliseOptions): removed the declaration
9728         of compiler macro MCU. Now a macro of the format pic18fxxxx
9729         will be defined from the command line
9730
9731 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9732             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9733
9734         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9735         PCOP_RLCF was overwritten!
9736         * gen.c (genSkip): commented out calls to pic16_emitcode,
9737         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9738         * (genlshTwo),
9739         * (genRRC): added debugging info,
9740         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9741         overwritten while shifting,
9742         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9743         overwritten while shifting,
9744         * (AccLsh),
9745         * (AccRsh),
9746         * (shiftLLeftOrResult),
9747         * (shiftRLeftOrResult),
9748         * (shiftRLong),
9749         * (shiftLLong): Implemented with pic16_emitpcode
9750         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9751         * (genLeftShift): Fixed bug, operand for shift by variable always
9752         was "and"ed with 0x0f,
9753         * (genLeftShiftLiteral),
9754         * (genrshTwo),
9755         * (genRightShiftLiteral): added debugging info,
9756         * (genrshFour): added comment,
9757         * (genRightShift): determined signedness from operand "left"
9758         instead of "result"
9759
9760 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9761
9762         * src/SDCCicode.c (geniCodeParms),
9763         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9764         function pointers, fixed function pointer bugs #861242 and #861896
9765
9766 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9767
9768         * device/include/c8051f000.h,
9769         * device/include/c8051f120.h,
9770         * device/include/c8051f300.h: added header files for Silicon
9771         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9772
9773 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9774
9775         * src/SDCCast.c (processParams): added new type flow and restructured
9776         (gatherAutoInit): added new type flow
9777         (addCast): cosmetic changes
9778         (getLeftResultType): added new type flow for array indices, patch
9779         provided by Stas, see FR #877103
9780         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9781         array index patch by Stas
9782         * src/SDCCast.h: added prototype getResultTypeFromType()
9783         * src/SDCCval.h,
9784         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9785         * src/pic/glue.c (pic14emitStaticSeg),
9786         * src/pic16/glue.c (pic16emitStaticSeg),
9787         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9788         for initialization of symbols
9789         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9790         * support/Util/SDCCerr.h:
9791         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9792         * .version: bumped version number to 2.3.8
9793         * device/include/Makefile.in (install),
9794         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9795         avoid warnings
9796
9797 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9798
9799         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9800         Slade Rich fixed an optimization bug
9801         * src/pic/pcodepeep.c,
9802         * src/pic/pcoderegs.c
9803         * doc/Makefile (install): added test for directory
9804
9805 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9806
9807         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9808         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9809         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9810         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9811         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9812         * as/mcs51/asexpr.c (term),
9813         * as/hc08/asexpr.c (term): fixed bug #887146
9814
9815 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9816
9817         * src/z80/gen.c (genMult): handle single byte result product
9818         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9819         DUMMY_READ_VOLATILE (fixed bug #886367)
9820
9821 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9822
9823         * support/regression/tests/libmullong.c: fixed logic, on little endian
9824         hosts we ended without a mullong_wrapper()
9825
9826 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9827
9828         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9829         virus/worm forged address usage.
9830
9831 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9832
9833         Fixed promotion, it should be done on AST level:
9834         * src/SDCCast.c (addCast): added promotion to int
9835         (decorateType): updated call to upCast()
9836         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9837         usualUnaryConversions()
9838
9839 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9840
9841         * support/regression/tests/literalop.c (mulWrapper): Added a
9842         wrapper to remove integer overflow warnings.
9843
9844         * support/regression/tests/float_trans.c: Made work on host.
9845
9846         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9847         location of sz80.
9848
9849         * support/regression/generate-cases.py (main): Changed from inline
9850         to a main method.
9851
9852         * doc/Makefile (install): Changed to depth first to get rid of
9853         missing directory install warning.
9854
9855         * as/Makefile (install-doc): Made work on Mac.
9856
9857 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9858
9859         * src/SDCCast.c: added an additional type flow in decorateType() of
9860         opposite direction, see feature request #860006; it's enabled at runtime
9861         by setting the environment variable SDCC_NEWTYPEFLOW
9862         * src/SDCCast.h: changed prototype of decorateType()
9863         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9864         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9865         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9866         see feature request #877103
9867         * src/SDCCval.c: updated call of decorateType()
9868         (valBitwise): fixed bug #882876
9869         (valMinus): added promotion
9870         (valLogicAndOr): result is unsigned
9871         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9872         * src/SDCCsymt.c (computeType),
9873         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9874         must not cause an unsigned operation
9875         * src/pic/glue (pic14emitRegularMap),
9876         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9877
9878 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9879
9880         * src/pic/pcode.c (PCodeID): commented out left over debug code
9881
9882 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9883
9884         * support/valdiag/tests/overflow.c: added shift tests
9885         * src/pic/device.c,
9886         * src/pic/gen.c,
9887         * src/pic/gen.h,
9888         * src/pic/glue.c,
9889         * src/pic/main.c,
9890         * src/pic/pcode.c,
9891         * src/pic/pcode.h,
9892         * src/pic/pcodepeep.c,
9893         * src/pic/pcoderegs.c,
9894         * src/pic/ralloc.c,
9895         * src/pic/ralloc.h: applied patch from Slade Rich;
9896         added support for multiple code pages and multiple RAM banks on the
9897         PIC 14 port. The ASM files now no longer simply assume all the
9898         code / RAM are in the same page / bank. This means the linker can
9899         safely allocate code/RAM of separate ASM files to different pages/banks.
9900         * doc/sdccman.lyx: added Slade's tips
9901         * src/mcs51/peeph.def: fixed bug #880768
9902
9903 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9904
9905         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9906         * src/SDCCast.c (decorateType): fixed bug #880197
9907
9908 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9909
9910         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9911         getopt.h.
9912
9913         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9914         strtof is not part of C89 and isn't included with Mac OS X.
9915
9916 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9917
9918         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9919         shiftL2Left2Result): fixed bug #879326
9920         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9921         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9922         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9923         address fetch for clr instruction
9924         * device/lib/hc08/_mulint.c: created optimized assembly version
9925         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9926
9927 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9928
9929         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9930         proposed in FR #877103
9931
9932 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9933
9934         * src/SDCCval.c (cheapestVal): added missing checks
9935         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9936         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9937
9938 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9939
9940         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9941         equal operands
9942
9943 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9944
9945         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9946         loaded with the linker search paths (-L arguments) and the libraries
9947         to be linked with the current source (-l arguments). Changes
9948         currently will affect only the pic16 port.
9949         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9950         include path the port specific paths and port specific libraries,
9951         * gplink command now contains the $3 argument,
9952         * src/pic16/device.h,
9953         * src/pic16/device.c,: structure PIC_device is made public and
9954         renamed to PIC16_device, the same for variable Pics which is renamed
9955         to Pics16. Updated all references to them.
9956         * src/pic16/glue.c (pic16glue): corrected bug with code
9957         initialization which bypassed the variable initializations block.
9958
9959         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9960         COMPILE_FLAGS and added the --nostdinc option
9961
9962 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9963
9964         * device/include/mc68hc908jb8.h: Register defs for another member
9965         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9966
9967 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9968
9969         Documenting changes from previous commits.
9970         * configure.in (version 1.56),
9971         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9972         when generating output files to configure the pic16 library,
9973         but now I've commented it out, since gputils aren't installed in the
9974         SF compile farm, so library won't compile
9975
9976         * device/lib/Makefile.in (version 1.56): initially I've added in
9977         target 'all' the prerequestive 'model-pic16' so it compiled the
9978         pic16 library, but now I've commented it out for the same reasons
9979         above,
9980         * added targets 'model-pic16' and 'objects-pic16' to compile the
9981         library
9982         * added target 'port-specific-objects-pic16' to handle the
9983         generated libraries and copy them into the build/ directory
9984         * added target 'clean-intermediate-pic16' to clean intermediate
9985         files into pic16 directory
9986         * in target 'installdirs' added line to create directory pic16 in
9987         the installation path
9988
9989         * device/include/Makefile.in (version 1.11): in target 'install'
9990         added lines to copy all header files to installation path,
9991         * in target 'installdirs' added line create directory for pic16
9992         headers in the installation path
9993
9994 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9995
9996         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9997          a function call
9998
9999 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
10000
10001         * configure,
10002         * device/lib/configure.in,
10003         * device/lib/configure: fixed for autoconf 2.57
10004
10005 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10006
10007         * src/z80/main.c (_parseOptions): fixed the portmode= command line
10008         option so that it actually works. Made it specific to the z80, since
10009         the gbz80 doesn't have these kinds of I/O ports.
10010
10011 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10012
10013         * device/include/z180.h,
10014         * device/lib/_memcpy.c,
10015         * device/lib/_memmove.c,
10016         * device/lib/_mulint.c,
10017         * device/lib/ser_ir.c,
10018         * device/lib/ser_ir_cts_rts.c,
10019         * device/lib/_strcmp.c,
10020         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
10021         * src/z80/main.c (_process_pragma): add support for pragmas bank and
10022         portmode; added deprecation warning for bank= and protmode= forms.
10023         Also, guard against buffer overflow.
10024         * src/z80/gen.c (aopGet): generate better code for sfr banked read
10025
10026 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10027
10028         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
10029         changed interrupt vector table generation to only emit declared vectors.
10030         * device/include/Makefile.in: added missing backslash
10031         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
10032
10033 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10034
10035         Mainly changes to support compilation of the device libraries
10036         * src/pic16/device.c: stack is allocated via symbol and not
10037         via literal number. The symbol is placed in the corresponding
10038         position of the data ram
10039         * (pic16_dump_section): relocatable and absolute uninitialized
10040         data are now emitted in sorted order to reduce section naming,
10041         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
10042         weren't marked as being in the access bank,
10043
10044 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
10045
10046         Added portion of GNU PIC Library under the directory
10047         device/include/pic16 and device/lib/pic16. These files
10048         contain the declarations of SFRs for the PIC18Fxx2 devices.
10049         The directory is initialized via configure from toplevel.
10050
10051 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
10052
10053         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
10054         the spilllocations to be compared correctly
10055
10056 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10057
10058         * src/SDCCast.c (decorateType): fixed bug introduced today
10059
10060 2004-01-12  Borut Razem <borut.razem AT siol.net>
10061
10062         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
10063         doc/sdccman.lyx: upper case pragmas are deprecated
10064
10065 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
10066
10067         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
10068         in simpler and even better code
10069
10070 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
10071
10072         * src/SDCCicode.c (operandOperation): fixed bug #874819
10073         * src/SDCCast.c (decorateType): fixed
10074         char foo (unsigned long ul) { return ul > 0; }
10075
10076 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10077
10078         * doc/sdccman.lyx: Moved and added some sections, small changes
10079         all over. Telling LaTeX to be less strict with word spacing
10080         to better keep the right margin. Changed some notes about
10081         maintainance of the ports in section 3.2.1 - is it OK like this?
10082
10083 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
10084
10085         SDCC source changes:
10086         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
10087         convilong): modified to inform the pic16 port that builtin functions
10088         are external
10089
10090         PIC16 PORT specific changes:
10091         * src/pic16/device.c pic16_dump_equates() added,
10092         processor registers declared internally by the port are emitted in
10093         the translation as equates,
10094         * src/pic16/gen.c: inline code is passed unprocessed to the
10095         translation,
10096         * (pic16_popGetLit2): fnuction modified to take second operand as
10097         pCodeOp pointer and not as literal,
10098         * (popRegFromIdx): prefixed with pic16_,
10099         * (pic16_popCombine2): modified to receive already allocated pCode
10100         operands,
10101         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10102         * (genFunction): initializes local stack frame and pushes on stack
10103         all the registers used by this function,
10104         * (genEndFunction): restores all registers from stack and restores
10105         stack frame,
10106         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10107         improvements,
10108         * (pic16glue): changed the program startup sequence,
10109         * added new dbName code 'A' for functions placed in absolute section
10110         * src/pic16/main.c: added function attribute _naked,
10111         * added pragma 'code' to place a fnuction at an absolute address,
10112         * added command line arguments --debug-ralloc and --pcode-verbose,
10113         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10114         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10115         * (pic16_newpCodeOpLit2): modified to take the second operand as
10116         pCodeOp pointer,
10117         * (pic16_printpBlock): modified to emit each function in a separate
10118         section,
10119         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10120         UPPER for immediate operands,
10121         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10122         instruction,
10123         * src/pic16/peeph.def: all peepholes with movff are commented out,
10124         because there is a problem in the pcode peep optimizer,
10125         * src/pic16/ralloc.c: the register allocator can now reuse local
10126         function symbols for another function. This saves register usage.
10127         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10128
10129         Added file src/pic16/NOTES with information about program writing on
10130         the current port version.
10131
10132 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10133
10134         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10135         and peephole 252 (array access)
10136
10137 2004-01-09  Borut Razem <borut.razem AT siol.net>
10138
10139         * src/SDCCmain.c : fixed #872250: -l command line defined library
10140           files are scanned before standard library files
10141
10142 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10143
10144         * src/SDCCast.c (decorateType): fixed bug #874046
10145
10146 2004-01-09  Borut Razem <borut.razem AT siol.net>
10147
10148         * support/scripts/sdcc.nsi: remove previous installation
10149
10150 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10151
10152         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10153         bytes for last interrupt vector (mcs51)
10154         * sdcc.spec: fixed typo
10155
10156 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10157
10158         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10159         gen51Code): more efficient parameter receive for --model-large
10160         ("bug" #845294)
10161
10162 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10163
10164         * src/ds390/main.c,
10165         * src/z80/main.c: added missed needLinkerScript flags (more than
10166         one port structure defined in these file)
10167         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10168         bug #795325
10169
10170 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10171
10172         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10173         * src/port.h: added flag needLinkerScript in port->linker
10174         structure to inform whether to create a .lnk file or not,
10175         * src/avr/main.c,
10176         * src/ds390/main.c,
10177         * src/hc08/main.c,
10178         * src/mcs51/main.c,
10179         * src/pic/main.c,
10180         * src/pic16/main.c,
10181         * src/xa51/main.c,
10182         * src/z80/main.c: changed appropriately to configure
10183         needLinkerScript flag
10184         * src/pic/gen.c,
10185         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10186         * src/pic/glue.c: added variable udata_section_name to
10187         override default uninitialized data segment definition for
10188         devices only with SHAREBANK memory (reported from Erik Epetrich)
10189         * (pic14emitOverlay): modified to emit a commented overlay segment
10190         directive when no overlay data exist
10191         * (picglue): modified to emit uninitialized data segment
10192         according to udata_section_name
10193         * src/pic/main.c (_pic14_parseOptions): added command line
10194         options --udata-section-name=[name] to override default
10195         udata definition name
10196         * modified _linkCmd and _asmCmd to include compiler passed
10197         arguments via -W option
10198         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10199         object file from '.rel' to '.o' in port->linker structure,
10200         changed size of fptr from 2 to 3 in port structure
10201
10202 2004-01-07  Borut Razem <borut.razem AT siol.net>
10203
10204         * support/scripts/sdcc.nsi: update PATH
10205         * support/scripts/sdcc.ico: craeted
10206
10207 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10208
10209         * device/include/Makefile.in: fix install
10210         * doc/Makefile: fix install
10211
10212 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10213
10214         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10215         in bug #860505
10216         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10217         how the function variable allocation summary is displayed; also
10218         include information about variables allocated to the overlay
10219         segment
10220
10221 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10222
10223         * as/mcs51/lkmain.c: Help about -Y option
10224         * as/mcs51/lkarea.c: Fixed gcc warnings
10225
10226 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10227
10228         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10229         fixed warning
10230         * support/valdiag/tests/overflow.c: added
10231         * src/SDCCast.c (decorateType),
10232         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10233         LEFT_OP (left shift)
10234
10235 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10236
10237         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10238         (default behaviour).
10239
10240 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10241
10242         A python script to validate compiler diagnostic messages. It can be
10243         used to verify that sdcc complains about bad c source code and
10244         gives a good location of the error.
10245         * support/valdiag/Makefile,
10246         * support/valdiag/valdiag.py,
10247         * support/valdiag/tests/*
10248
10249 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10250
10251         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10252         * src/SDCCsymt.c (newEnumType),
10253         * src/SDCCsymt.h
10254         * support/Util/SDCCerr.c,
10255         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10256         enum related bugs.
10257         * support/regression/tests/enum.c: added test for enum values that
10258         require at least 2 bytes of storage.
10259
10260 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10261
10262         * src/common.h: added ifndef/define/endif macros
10263         around the header file.
10264         Bug reported from Jesus Calvino-Fraga
10265
10266 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10267
10268         * sdcc.spec: updated
10269         * device/include/Makefile.in: don't install CVS directories
10270         * device/lib/Makefile.in: added removal of CVS directories after install
10271         * doc/Makefile: fixed install, added local_icons
10272         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10273         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10274         * src/ds390/gen.c (genRightShift): fixed bug #870788
10275         * src/SDCCast.c (decorateType): fixed bug #870781
10276
10277 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10278
10279         PIC16 port related changes:
10280         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10281         added variable stackPos,
10282
10283         * gen.c: genCall, assignResultValue: added support for
10284         pushing/retrieving function parameters to/from stack,
10285         genFunction,genEndFunction: setup stack frame for the
10286         generated function,
10287         genAddrOf: will be changed according to bug 863624
10288
10289         * added files genutils.c and genutils.h which contain gen*
10290         debugged and optimised functions extracted from gen.c
10291
10292         * glue.c: added variable 'externs' which holds extern symbols,
10293         pic16emitRegularMap: is modified to properly handle relocatable
10294          symbols under the new scheme,
10295         pic16createInterruptVect: is modified
10296         pic16printPublics: is modified to emit 'global' assembler directives,
10297         added pic16_printExterns to print extern symbols,
10298         pic16glue: initializes stack/frame pointer in the beginning of
10299         the assembly output. Temporary hack, will be corrected later,
10300         because gplink yet does not support stack and SDCC does not
10301         yet support a type of crt0.o object to create the final binary.
10302
10303         * Removed many lines that contain 8051 legacy code.
10304         * The code is finally placed under a 'code' directive.
10305         * Added port specific options.
10306
10307         * _process_pragma: simplified since now we do not need *special*
10308         include file to define SFR registers. But a separate header
10309         will be needed. This will be developed later.
10310         * _pic16_parseOptions: added, parses port specific options:
10311         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10312         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10313         --preplace-udata-with=
10314
10315         * _pic16_setDefaultOptions: modified to initialize section names,
10316         but hack is temporarly out of order since it needs improvement.
10317         * _pic16_genAssemblerPreamble: configuration words are emitted by
10318         their address instead of their name. This part is incomplete and
10319         supports only the 18Fxx2 devices. Other devices will emit an error
10320         during assembly since they do not contain the same set of config
10321         registers
10322         * _pic16_genIVT: is modified,
10323
10324         * pcode.c: added definitions for some hardware registers that are needed
10325         for stack support
10326         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10327         All PCI entries are updated. Now LFSR is supported.
10328         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10329         * added pic16_newpCodeOpLit2 to support instructions with
10330         two literal arguments
10331         * pic16_pCode2str: corrected code that emits assembler instructions
10332         with two literal operands and those that have an access bit modifier
10333         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10334         this fixes a bug which caused some labels to be lost, when an
10335         assembler directive was added, i.e. banksel,
10336         * pic16_FixRegisterBanking: improved logic that causes the insertion
10337         of bank switching,
10338         * InlineFunction: functions that are called once, are not any more
10339         inlined. This can be a port option in the future,
10340
10341         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10342
10343         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10344         hold the corresponding uninitialized symbols,
10345         * pic16_allocProcessorRegister: registers have explicit marked the
10346         accessBank field,
10347         * pic16_allocInternalRegister: registers are explicit marked as
10348         not used,
10349         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10350         processing list, so bit registers were lost,
10351         *
10352
10353         * ralloc.h: added field 'accessBank' and original symbol operand
10354         in register definition,
10355         * removed the field isMapped from register definition,
10356
10357         ** Several functions have been removed from various sources:
10358         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10359         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10360         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10361         pic16_assignRelocatableRegisters
10362
10363         ** others have been introduced:
10364         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10365         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10366
10367 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10368
10369         * support/scripts/inc2h.pl: changed definition of BIT_AT
10370         to emit 'sbit at' instead of 'bit at'. This was a request.
10371
10372         PIC16 port related preliminary changes:
10373         * gen.c: prefixed function popRegFromString with
10374         pic16_ and all references to it corrected
10375         * pcode.c: all pic16_pc_* hardware registers prefixed
10376         with underscore (_),
10377         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10378         * ralloc.c: newReg(): when register is REG_SFR then
10379         set address to rIdx,
10380         pic16_allocProcessorRegister(): marks register wasUsed=0
10381         pic16_writeUsedRegs(): added a call to assign processor
10382         registers via pic16_assignFixedRegisters
10383
10384 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10385
10386         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10387         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10388         variables in unused register banks.  Also the SSEG is placed
10389         wherever there is enough space for it, and IDATA can be anywhere
10390         in internal RAM.  For now compile using -Wl-Y[stack_size].
10391         The mem file is different for this option as well, since it
10392         makes no sense of talking about DSEG lenght.
10393
10394 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10395
10396         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10397         in certain cases, e.g. when ROM assignment, patch provided
10398         from Albert den Haan.
10399
10400 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10401
10402         Many signedness and type propagation fixes:
10403         * src/SDCCicode.c: made geniCodeCast() static
10404         replaced SPEC_ by IS_ (cosmetic)
10405         (operandOperation): fixed div and mod operation
10406         (usualBinaryConversions): added support for promotion of char
10407         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10408         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10409         (geniCodeAdd): an array index will stay unsigned, even if promoted
10410         from char to int
10411         (geniCodeArray): ditto
10412         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10413         * src/SDCCsymt.c (computeType): added more support for char;
10414         promotion of char is selectable by promoteCharToInt, fixed signedness
10415         for all cases
10416         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10417         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10418         * src/SDCCval (val*): replaced signedness calculation by
10419         computeType()
10420         rearranged if-branches (cosmetic)
10421         (valShift): added warning W_SHIFT_CHANGED
10422         (valCompare): fixed problem with different types
10423         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10424         * support/regression/tests/literalop.c: added many cases
10425         * support/regression/tests/ast_constant_folding.c: changed finally to
10426         'unsigned int'
10427         * .version: new year, new version: 2.3.7
10428         * src/SDCCmain.c (main): applied patch #866468
10429         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10430         provided by Scott Bronson
10431         * doc/sdccman.lyx: updated documentation for sdcdb
10432         updated and added chapter tips
10433
10434 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10435
10436         * src/SDCCsymt.h: missing from yesterday's commits
10437
10438 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10439
10440         * src/SDCC.y (struct_or_union_specifier),
10441         * support/Util/SDCCerr.c,
10442         * support/Util/SDCCerr.h: verify that struct & union tags are used
10443         as declared.
10444
10445 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10446
10447         * src/SDCCglobl.h: missing from yesterday's commits
10448
10449 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10450
10451         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10452         sft_attributes, struct_declaration, parameter_declaration,
10453         type_name, start_block, declaration_list),
10454         * src/SDCC.lex (check_type): support redefinition of typedef names
10455
10456 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10457
10458         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10459         aligned xdata arrays. Erik helped me with the if clause.
10460
10461 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10462
10463         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10464         warning
10465
10466 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10467
10468         * src/SDCCast.h,
10469         * src/SDCCast.c (newAst_),
10470         * src/SDCCicode.h,
10471         * src/SDCCicode.c (ast2iCode, newiCode),
10472         * src/SDCCglobl.h,
10473         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10474         expr, statement, expression_statement, selection_statement,
10475         iteration_statement, expr_opt, jump_statement): foundation for tracking
10476         sequence points
10477         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10478         point code too)
10479
10480 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10481
10482         * support/Util/SDCCerr.c,
10483         * src/SDCCast.h,
10484         * src/SDCCast.c (createCase, createDefault, decorateType),
10485         * src/SDCClabel.c (labelUnreach),
10486         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10487         to error messages.
10488         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10489         (with thanks to Stas Sergeev)
10490         * device/include/time.h,
10491         * device/lib/time.c (CheckTime): suppress unreachable code warning
10492
10493 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10494
10495         * src/SDCCast.c (createIvalCharPtr),
10496         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10497         bug #753752)
10498         * support/regression/tests/nullstring.c: tests for these two bugs
10499
10500 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10501
10502         * support/Util/SDCCerr.h,
10503         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10504         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10505         about storage class and 'at' used inside struct or union
10506         * src/SDCCBBlock.c (iCodeFromeBBlock),
10507         * src/SDCCcse.c (ifxOptimize),
10508         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10509         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10510         printIval, emitStaticSeg, emitOverlay),
10511         * src/SDCClabel.c (deleteIfx),
10512         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10513         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10514         gatherAutoInit, processParms),
10515         * support/Util/SDCCerr.h,
10516         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10517         reporting for post-parse errors.
10518
10519 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10520
10521         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10522         implicit casts via union; they don't work on big endian systems
10523         (possible fix for bug #861138)
10524
10525 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10526
10527         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10528         * src/mcs51/main.c: fixed the fix for bug #737001
10529
10530 2003-12-15  Borut Razem <borut.razem AT siol.net>
10531
10532         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10533
10534 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10535
10536         * support/makebin/makebin.c: put output in binary mode
10537
10538 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10539
10540         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10541         xdata and data memory on startup. Set the environment variable
10542         SDCC_NOGENRAMCLEAR to disable this.
10543         * src/mcs51/peephole.def,
10544         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10545         (allows non-interrupt and interrupt code to safely compete for a resource
10546         without the non-interrupt code having to disable interrupts)
10547
10548 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10549
10550         * src/SDCCicode.c (geniCodeAdd),
10551         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10552         with valFromType if type might be a pointer and host is big endian).
10553         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10554         types, not just integer types.
10555         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10556         multiply defined with mismatching "at" address.
10557
10558 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10559
10560         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10561         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10562         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10563         with embedded nulls (fixed bug #753752)
10564
10565 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10566
10567         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10568         Apparently this did not see much testing (endless loop)
10569
10570 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10571
10572         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10573
10574 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10575
10576         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10577         gracefully handle NULL memmap pointers
10578
10579 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10580
10581         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10582         instead of deleting the iCode when an operand is volatile
10583         * src/z80/gen.c (genDummyRead),
10584         * src/mcs51/gen.c (genDummyRead),
10585         * src/ds390/gen.c (genDummyRead),
10586         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10587         not just IC_RIGHT
10588         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10589         * src/SDCC.y: fixed bug #850420
10590
10591 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10592
10593         Applied z80 i/o port patch from Peter Townson and fixed some operators
10594         to better handle operands in A register.
10595         * device/include/z180.h
10596         * src/SDCC.y
10597         * src/SDCCglue.c
10598         * src/z80/gen.c
10599         * src/z80/gen.h
10600         * src/z80/main.c
10601         * src/z80/peeph-z80.def
10602         * src/z80/peeph.def
10603         * src/z80/z80.h
10604
10605 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10606
10607         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10608
10609 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10610
10611         * device/lib/hc08/_mullong.c: Removed extra #endif
10612
10613 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10614
10615         * sim/ucsim/hc08.src/inst.cc,
10616         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10617         carries from x to h
10618         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10619         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10620         * device/include/stdarg.h: fixed varargs for hc08
10621         * device/lib/Makefile.in,
10622         * device/lib/hc08/Makefile,
10623         * device/lib/hc08/_mulint.c,
10624         * device/lib/hc08/_mullong.c: fixed some endian problems
10625
10626 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10627
10628         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10629         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10630         * device/lib/_gptrget.c,
10631         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10632
10633 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10634
10635         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10636         * src/SDCCast.c (astErrors): fixed bug #846007
10637         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10638
10639 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10640
10641         * src/SDCCast.c (decorateType): disabled a transformation I added in
10642         revision 1.188 (access to fields of a structure at an absolute address);
10643         it breaks with bitfields, extern declarations, and gcse analysis.
10644         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10645         could be assigned through a pointer, so don't complain.
10646         * src/SDCCast.c (astErrors),
10647         * src/SDCCast.h,
10648         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10649
10650 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10651
10652         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10653         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10654         output of __config directives, since gpasm now supports them
10655         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10656         pre-processor macro, i.e. -DMCU=p18f452
10657         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10658         and modified to handle 'cast' icode similarly to '=' icode
10659         * src/pic16/device.h (typedef struct PIC_device): added field
10660         'extMIface' to indicate that chip has external memory interface
10661         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10662         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10663         18F8720
10664
10665 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10666
10667         * src/SDCC.y (pointer): fixed bug #846006
10668         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10669         * src/SDCCast.c (decorateType): fixed bug #846009
10670         * src/ds390/peeph.def,
10671         * src/ds390/gen.c (genAnd, genOr),
10672         * src/mcs51/peeph.def,
10673         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10674
10675 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10676
10677         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10678         * src/SDCCdflow.c
10679         * src/SDCCcse.c
10680         * src/SDCCcse.h
10681         * src/SDCCBBlock.h
10682         * src/SDCCBBlock.c
10683
10684 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10685
10686         fixed bug #845089
10687         * src/SDCCbitv.h,
10688         * src/SDCCbitv.c: added function to free a bitvector
10689         * src/SDCClrange.h,
10690         * src/SDCClrange.c: added function to recompute the liveranges
10691         * src/avr/ralloc.c,
10692         * src/ds390/ralloc.c,
10693         * src/hc08/ralloc.c,
10694         * src/mcs51/ralloc.c,
10695         * src/pic/ralloc.c,
10696         * src/pic16/ralloc.c,
10697         * src/xa51/ralloc.c,
10698         * src/z80/ralloc.c: recompute the liveranges after register packing
10699
10700 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10701
10702         * src/SDCCloop.c (newInduction): fixed bug #845630
10703
10704 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10705
10706         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10707         inadvertantly left behind from my 2003-11-12 change
10708
10709 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10710
10711         Updated headers I neglected to commit yesterday.
10712         * src/SDCClrange.h,
10713         * src/SDCCicode.h
10714
10715 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10716
10717         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10718         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10719         * src/SDCCopt.c (eBBlockFromiCode),
10720         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10721         the creation of the key hash table from the sequencing so it can be used
10722         earlier (for some GCSE bug fixes still pending)
10723
10724 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10725
10726         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10727         * support/regression/tests/addsub.c: testing genPlus shortcut
10728
10729 2003-11-15  Borut Razem <borut.razem AT siol.net>
10730
10731         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10732
10733 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10734
10735         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10736         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10737         ordering is immaterial.
10738         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10739
10740 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10741
10742         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10743         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10744         (SIGSEV) of bug #840381
10745         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10746         unlink new file before rename if new and old filenames are the same)
10747
10748 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10749
10750         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10751         uninitialized variables) for the mcs51. Set environment variable
10752         SDCC_GENRAMCLEAR to test.
10753         xdata initialization slightly shorter
10754
10755 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10756
10757         * src/SDCCsymt.h,
10758         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10759         #838241 & 780691 (basicly the same bug)
10760         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10761         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10762
10763 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10764
10765         * src/SDCCmain.c (linkEdit): "fix" #834252
10766
10767 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10768
10769         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10770         * src/SDCCast.h,
10771         * src/SDCC.y: fixed bug #819403
10772
10773 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10774
10775         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10776         the reentrant attribute.
10777         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10778         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10779         simulation
10780         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10781         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10782         erroneously reduced to a literal.
10783         * src/hc08/ralloc.c (packRegisters, rematStr),
10784         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10785         some cases
10786
10787 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10788
10789         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10790         * doc/sdccman.lyx: changed from 'article' to 'book'
10791         * doc/Makefile: readded test_suite_spec and cdbfileformat
10792
10793 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10794
10795         * device/include/stdlib.h: include malloc.h to comply with ANSI
10796         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10797
10798 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10799
10800         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10801         * doc/clean.mk: also remove *.out files
10802         * doc/sdccman.lyx: some additions, larger top/bottom margins
10803
10804 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10805
10806         * src/SDCC.y: fixed bug #837365
10807         * support/regression/tests/bitopcse.c
10808         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10809         a symbol (might be valop instead)
10810         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10811         * device/lib/clean.mk: added hc08 to the cleaning list
10812
10813 2003-11-04  Borut Razem <borut.razem AT siol.net>
10814
10815         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10816           made 2003-11-04
10817         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10818           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10819           malloc is declared in standard stdlib.h
10820
10821 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10822
10823         * device/lib/hc08/Makefile: need to clean .rel not .o files
10824         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10825
10826 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10827
10828         * src/port.h,
10829         * src/hc08/main.c,
10830         * src/mcs51/main.c,
10831         * src/ds390/main.c,
10832         * src/z80/main.c,
10833         * src/avr/main.c,
10834         * src/pic/main.c,
10835         * src/pic16/main.c,
10836         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10837         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10838         tests (which uses the port's oclsExpense function)
10839         * src/SDCC.y,
10840         * src/SDCCast.c,
10841         * src/SDCCicode.c,
10842         * src/hc08/gen.c,
10843         * src/ds390/gen.c,
10844         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10845
10846 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10847
10848         * src/SDCCcse.c (ifxOptimize),
10849         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10850         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10851         deleting the IFX iCode.
10852         * src/hc08/ralloc.c: reduced unneeded slocs
10853         * src/hc08/gen.c: fixed bug in asmopToBoolean
10854
10855 2003-11-04  Borut Razem <borut.razem AT siol.net>
10856
10857         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10858           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10859           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10860           transferred to configure
10861
10862 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10863
10864         Use headers defined in the C[++] standards:
10865         * sim/ucsim/gui.src/serio.src/fileio.cc
10866         * sim/ucsim/gui.src/serio.src/frontend.cc
10867         * sim/ucsim/gui.src/serio.src/main.cc
10868         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10869         * support/Util/NewAlloc.c
10870         * as/hc08/lklibr.c
10871         * as/mcs51/lklibr.c
10872         * as/z80/aslist.c
10873         * as/z80/assym.c
10874
10875 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10876
10877         * Added MSVC projects for hc08 assembler and linker:
10878         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10879         /as/hc08/link_hc08.dsp
10880
10881 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10882
10883         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10884
10885 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10886
10887         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10888
10889 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10890
10891         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10892
10893 2003-10-31  Borut Razem <borut.razem AT siol.net>
10894
10895         * support/cpp2/cpplib.h,
10896           support/cpp2/cpplib.c,
10897           support/cpp2/cpplex.c,
10898           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10899           to switch _asm block preprocessing on / off. Default is
10900           #pragma preproc_asm +
10901
10902 2003-10-31  Borut Razem <borut.razem AT siol.net>
10903
10904         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10905           when outputting comment blocks (when executed with -C option) and
10906           _asm (SDCPP specific) blocks
10907
10908 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10909
10910         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10911
10912 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10913
10914         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10915
10916 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10917
10918         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10919         * src/SDCCast.c (decorateType): fixed bug #832664
10920
10921 2003-10-31  Borut Razem <borut.razem AT siol.net>
10922
10923         * support/cpp2/cpplex.c: fixed for SDCPP:
10924           comments(when executed with -C option) and _asm blocks
10925           were included even if they where in skipped #if block.
10926           Applied solution from GCC cpp 3.3.2
10927
10928 2003-10-31  Borut Razem <borut.razem AT siol.net>
10929
10930         * src/SDCC.lex: sdcc now understands both formats:
10931           '# <line_number> <file_name>' and
10932           '#line <line_number> <file_name>'
10933         * support/cpp2/cppmain.c: sdcpp now generates the standard
10934           '# <line_number> <file_name>' instead of former
10935           '#line <line_number> <file_name>'
10936
10937 2003-10-30  Borut Razem <borut.razem AT siol.net>
10938
10939         * support/cpp2/cpphash.h,
10940         * support/cpp2/cpplib.h
10941         * support/cpp2/cpplex.c,
10942         * support/cpp2/cppmain.c,
10943         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10944
10945 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10946
10947         Fixed a number of problems revealed by bug #827883.
10948         * src/SDCCloop.c (loopInvariants): Spill location of the
10949         result operand should be recomputed if extracted from
10950         a loop. Also, don't extract assignments of an iTemp
10951         from a literal.
10952         * src/SDCCast.c (isConformingBody): loop reversal should
10953         not occur if the control variable is involved with a
10954         relational operator.
10955
10956 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10957
10958         * .version: bumped to 2.3.6 to reflect the big improvements
10959         made by Erik and Klaus. Thanks!
10960
10961 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10962
10963         Replaced the livrange code.
10964         * src/SDCClrange.c: added new LR code
10965         * src/SDCCloop.c,
10966         * src/SDCCBBlock.h: removed remainig parts from old LR code
10967         * src/ds390/ralloc.c,
10968         * src/ds390/gen.c: minor fixes to make it work with new code
10969
10970 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10971
10972         * as/hc08/asm.h,
10973         * as/hc08/lkrloc.c,
10974         * src/hc08/gen.c,
10975         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10976         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10977         (tweaked fix for bug #818696)
10978
10979 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10980
10981         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10982
10983 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10984
10985         * src/SDCCmain.c,
10986         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10987         * src/mcs51/gen.c (gencjneshort),
10988         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10989         more efficient (per Scott Bronson's suggestion)
10990
10991 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10992
10993         Extended the semantics of the critical keyword to include
10994         individual statements. See RFE #827755 and #799831
10995         * src/SDCC.y
10996         * src/SDCCicode.c
10997         * src/SDCCopt.c
10998         * src/SDCCast.c
10999         * support/Util/SDCCerr.c
11000         * support/Util/SDCCerr.h
11001         * src/mcs51/gen.c
11002         * src/ds390/gen.c
11003         * src/hc08/gen.c
11004
11005 2003-10-19  Borut Razem <borut.razem AT siol.net>
11006
11007         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
11008
11009 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11010
11011         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
11012         Fixed bug #818696
11013         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
11014         and predecrement operand is displayed
11015
11016 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11017
11018         * src/SDCCval.c (valMinus): fixed bug #826041
11019
11020 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11021
11022         Some hc08 related updates that I missed earlier
11023         * sim/ucsim/stypes.h
11024         * support/regression/ports/hc08/spec.mk
11025
11026 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11027
11028         New target "hc08" for the Motorola 68hc08 family of micros
11029
11030         * configure
11031         * configure.in
11032         * Makefile
11033         * src/hc08/*
11034         * src/SDCCmain.c
11035         * src/port.h
11036         * sim/ucsim/hc08.src/*
11037         * sim/ucsim/configure.in
11038         * src/ucsim/configure
11039         * sim/ucsim/packages_in.mk
11040         * as/hc08/*
11041         * as/Makefile
11042         * device/include/mc68hc908qy.h
11043         * device/lib/hc08/*
11044         * device/lib/Makefile.in
11045         * support/regression/ports/hc08/*
11046         * support/regression/Makefile
11047
11048 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11049
11050         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
11051         regression test
11052         * src/ds390/gen.c (genCast): fixed bug #821957
11053
11054 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
11055
11056         * device/lib/logf.c: "fixed" overlay bug
11057         * support/regression/ports/host/spec.mk: added m library
11058         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
11059         * support/regression/tests/float_trans: added (for Eric)
11060
11061 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
11062
11063         * src/mcs51/gen.c (genCpl): fixed bug
11064         http://sf.net/mailarchive/message.php?msg_id=6263915
11065
11066 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
11067
11068         * src/SDCCast.c (decorateType): added extended constant folding
11069         * src/SDCCsymt.c (computeType): cleanup
11070         * src/SDCCval.c (valShift): minor optimization
11071         * support/regression/tests/ast_constant_folding.c: added
11072
11073 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11074
11075         * src/SDCCmain.c: removed some unintended changes
11076
11077 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11078
11079         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
11080         * src/z80/gen.c: fixed part of bug #817589
11081         * src/SDCCsymt.c (checkFunction): fixed bug #817895
11082
11083 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
11084
11085         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
11086         * src/SDCCcflow.c
11087         * src/SDCCcse.c
11088         * src/SDCCdflow.c
11089         * src/SDCClabel.c
11090         * src/SDCClrange.c
11091         * src/SDCCmem.c
11092         * src/SDCCopt.c
11093         * src/SDCCpeeph.c
11094         * src/SDCCset.c
11095         * src/avr/ralloc.c
11096         * src/ds390/ralloc.c
11097         * src/izt/ralloc.c
11098         * src/mcs51/ralloc.c
11099         * src/pic/ralloc.c
11100         * src/pic16/ralloc.c
11101         * src/xa51/ralloc.c
11102         * src/z80/ralloc.c
11103         * src/z80/gen.c: removed unused label "release:"
11104
11105 2003-10-06  Borut Razem <borut.razem AT siol.net>
11106
11107         * src/SDCC.lex: removed definition of unused variables
11108           save_optimize and save_options
11109
11110 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11111
11112         * clean.mk: removed '=' in "-maxdepth=1"
11113         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11114         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11115
11116 2003-10-06  Borut Razem <borut.razem AT siol.net>
11117
11118         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11119           my_unput() replaced by unput()
11120
11121 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11122
11123         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11124         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11125         type-punned pointer will break strict-aliasing rules"
11126         Old LR behaviour is again default; Klaus' LR can be choosen by
11127         defining the environment variable LRKLAUS
11128         * src/SDCCBBlock.h
11129         * src/SDCCloop.c
11130         * src/SDCClrange.c
11131         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11132         * clean.mk: fixed removal of files in bin/CVS/
11133         * device/lib/clean.mk: fixed removal of directories small and large
11134         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11135         * src/SDCCicode.c,
11136         * src/SDCCval.c: removed superflous test for pedantic
11137
11138 2003-10-05  Borut Razem <borut.razem AT siol.net>
11139
11140         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11141           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11142           message "unmatched #pragma SAVE and #pragma RESTORE"
11143
11144 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11145
11146         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11147           assembly, critical functions, atomic, nojtbound)
11148
11149 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11150
11151         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11152         * src/SDCCBBlock.h
11153         * src/SDCCloop.c
11154         * src/SDCCloop.h
11155         * src/SDCClrange.c
11156
11157 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11158
11159         * src/z80/gen.h,
11160         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11161         * src/mcs51/gen.h
11162         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11163         * src/ds390/gen.h
11164         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11165         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11166         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11167
11168 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11169
11170         * src/z80/gen.c (genRet): fixed bug #524753
11171         * src/z80/gen.c (genCast): fixed internal error on cast from
11172         pointer to long
11173         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11174         fix for bug #477835 to the z80
11175         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11176         for tracking iCodes in the peephole optimizer for z80
11177
11178 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11179
11180         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11181         the other part of bug #814548
11182         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11183
11184 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11185
11186         * src/SDCCcse.c: fixed part of bug #814548
11187
11188 2003-09-28  Borut Razem <borut.razem AT siol.net>
11189
11190         * src/asm.c: rewrite of printILine() to use temporary file instead
11191           a pipe
11192         * src/xa51/main.c: commented out declaration of int rewinds
11193
11194 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11195
11196         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11197
11198 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11199
11200         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11201         * src/asm.c (printILine): Fixed bug #811015
11202
11203 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11204
11205         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11206         freeing.
11207
11208 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11209
11210         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11211         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11212         to correctly handle general case of AOP_PAIRPTR
11213         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11214
11215 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11216
11217         * src/mcs51/ralloc.c (fillGaps),
11218         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11219         register positioning bug)
11220
11221 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11222
11223         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11224
11225 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11226
11227         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11228         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11229         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11230         (ralloc doesn't intentionally do this now, but perhaps later)
11231         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11232         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11233         register positioning bugs (Fixed bug #762602 and #795325)
11234         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11235         (Fixed bug #808779)
11236         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11237         lines that --i-code-in-asm generates
11238
11239 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11240
11241         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11242         trying to fclose a FILE* that was already closed.
11243
11244 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11245
11246         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11247         of const struct should be treated as if const themselves)
11248
11249 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11250
11251         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11252
11253 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11254
11255         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11256         Unix (/n) and DOS (/r/n) line terminations.
11257
11258 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11259
11260         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11261         bug #613775
11262
11263 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11264
11265         * src/mcs51/gen.c (genFunction, genEndFunction),
11266         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11267         and restore of EA so that stack offsets to parameters are
11268         correct when using both critical and reentrant/stack-auto.
11269         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11270         size (can be triggered in error if sloc is shared between
11271         different sized objects)
11272         * device/include/float.h: fixed macros to explicitly use
11273         unsigned long where needed
11274
11275 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11276
11277         Feature req. 799831: added code to allow nesting of critical functions
11278         * src/mcs51/gen.c (genFunction, genEndFunction)
11279         * src/ds390/gen.c (genFunction, genEndFunction)
11280
11281 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11282
11283         * src/SDCCsymt.c (sclsFromPtr),
11284         * src/SDCCsymt.h,
11285         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11286         support for standard C idiom of memory mapped variables; for
11287         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11288         to xdata int at 0x1234 tempvar = 1.
11289         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11290         provided by Akiya ISHIDA
11291
11292 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11293
11294         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11295         * src/SDCCval.c (constVal): added reduction from int to char
11296         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11297         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11298         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11299         to ignore the sign
11300         * support/regression/tests/shifts.c: fixed
11301
11302 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11303
11304         * src/z80/gen.c (genXor): Fixed bug #805445
11305
11306 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11307
11308         Fixed bug #621531 (const & volatile confusion in the type chain).
11309         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11310         refer to the const or volatile state of the pointer itself.
11311
11312         * src/SDCCast.c
11313         * src/SDCCglue.c
11314         * src/SDCCicode.c
11315         * src/SDCCsymt.c
11316         * src/SDCCval.c
11317         * src/SDCC.y
11318         * src/SDCCsymt.h
11319         * src/pic/gen.c
11320         * src/pic/ralloc.c
11321         * src/pic16/gen.c
11322         * src/pic16/ralloc.c
11323         * support/regression/tests/const.c
11324
11325 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11326
11327         When checking for duplicated modules, use absolute paths
11328         instead of relative paths.  Files changed:
11329
11330         * as/mcs51/lklib.c
11331         * link/z80/lklib.c
11332
11333 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11334
11335         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11336
11337 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11338
11339         * device/include/string.h: added size_t typedef, changed
11340         prototypes to use size_t, eliminated separate reentrant and
11341         non-reentrant declarations, added _memmove declaration
11342         * device/lib/_memcpy.c: changed to use size_t instead of int,
11343         changed /4 to >>2 to avoid division library call
11344         * device/lib/_memcmp.c,
11345         * device/lib/_memset.c,
11346         * device/lib/_strncat.c,
11347         * device/lib/_strncpy.c,
11348         * device/lib/_strncmp.c: changed to use size_t instead of int
11349         * device/lib/_memmove.c: new file (fixed bug #772294)
11350         * device/lib/Makefile.in: added _memmove.c
11351         * device/lib/z80/asm_strings.s: fixed bug #772290
11352         * support/regression/tests/bitfields.c: attempt to fix host assertion
11353         failure on amd64-unknown-linux2.2
11354
11355 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11356
11357         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11358         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11359         * as/z80/asmain.c (main): fixed bug #801766
11360
11361 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11362
11363         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11364         compilers
11365
11366 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11367
11368         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11369         reported in bug #800609
11370
11371 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11372
11373         * Top header beautifications in src/pic16 directory:
11374           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11375           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11376           pcoderegs.h, ralloc.c, ralloc.h
11377         * main.c: added top header and GPL license notice
11378         * pcode.c: fixed the if-conditional warning
11379
11380 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11381
11382         * device/lib/_mullong.c: replaced int by short for gcc
11383
11384 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11385
11386         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11387         and JUMPTABLE iCodes properly now (worked by accident before)
11388         * src/mcs51/gen.c (leftRightUseAcc),
11389         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11390         iCode properly now. Use getSize instead of nRegs since a & b
11391         aren't part of the nRegs tally.
11392
11393 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11394
11395         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11396         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11397           before instructions that use the _STATUS register
11398
11399 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11400
11401         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11402         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11403         fetching of the pointer
11404         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11405         copied from genNearPointerSet()
11406         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11407         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11408         If they pop r0/r1 they must be called in the opposite order than aopOp().
11409         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11410         (resp. --stack-auto), prepared for --xstack
11411
11412 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11413
11414         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11415
11416 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11417
11418         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11419         these ports have their own __sdcc_external_start()
11420
11421 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11422
11423         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11424         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11425         type for bits was changed. It resulted in bit variables becoming
11426         global, which is not permitted in PIC 14 assembly output.
11427
11428 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11429
11430         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11431
11432 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11433
11434         Z80 and MCS51 linkers complaint if a public symbol is defined
11435         in more than one library module:
11436
11437         * as/mcs51/lklib.c
11438         * link/z80/lklib.c
11439         * as/mcs51/Makefile.in
11440
11441 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11442
11443         A few small changes that speed up the peephole optimizer.
11444
11445         * src/SDCCpeeph.c
11446
11447 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11448
11449         Try to make the peephole optimizer smarter by maintaining
11450         an association between the assembly source code and the
11451         iCodes that originated them. Put this information to use
11452         with a new peephole rule condition "notVolatile" so that
11453         the rules can be aggressive yet still safe.
11454
11455         * src/SDCCpeeph.c
11456         * src/SDCCpeeph.h
11457         * src/mcs51/gen.c
11458         * src/mcs51/peeph.def
11459
11460 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11461
11462         Fixed bug #741761
11463
11464         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11465         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11466         if the left or right operand symbols have the accuse flag set.
11467
11468 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11469
11470         Changed the type of the result of the ! (NOT) operator to char;
11471         previously it returned the same type as the source. This allows
11472         us to eliminate all the genFloatNot functions (all of its target
11473         implementations were very buggy) since !float can use the same
11474         code as !long now.
11475
11476         * src/SDCCicode.c (ast2iCode): ! returns char
11477         * src/mcs51/gen.c (genNot, genNotFloat),
11478         * src/ds390/gen.c (genNot, genNotFloat),
11479         * src/z80/gen.c (genNot, genNotFloat),
11480         * src/pic/gen.c (genNot, genNotFloat),
11481         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11482
11483 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11484
11485         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11486         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11487            during interrupts. Ensure WSAVE is located at a shared bank address.
11488         2. Fixed page selection in some places
11489         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11490            the registers name strings.
11491         4. Fixed "signed / unsigned compare" compiler warnings.
11492         5. The PIC port manages its own allocation of the general purpose
11493            registers, but makes no attempt to reuse them. As a result when
11494            compiling it soon runs out of general purpose registers. Some
11495            additional code was added to the files pcode.c and device.c to walk
11496            through the function call tree and rename the registers so that they
11497            get reused.
11498
11499         * src/pic/device.c
11500         * src/pic/gen.c
11501         * src/pic/glue.c
11502         * src/pic/pcode.c
11503         * src/pic/pcode.h
11504         * src/pic/ralloc.c
11505         * src/pic/ralloc.h
11506         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11507         genPlus() & genMinus() when the result is the same as left or right
11508
11509 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11510
11511         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11512
11513 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11514
11515         Made bitfield a distinct type from bit so that bitfields
11516         convert as per ANSI C and bits retain their traditional
11517         boolean style behaviour. Implemented bitfield support in
11518         the z80 port.
11519
11520         * src/SDCCsymt.h,
11521         * src/SDCCsymt.c,
11522         * src/SDCCast.c,
11523         * src/cdbFile.c,
11524         * src/mcs51/gen.c,
11525         * src/ds390/gen.c: bit v bitfield split
11526         * src/z80/gen.c: New support for bitfields
11527         * support/regression/tests/bitfields.c: reenabled z80,
11528         added more tests
11529
11530 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11531
11532         Rules 246.x, 247.x relate to bitfields, the others speed up
11533         access to xdata mapped I/O devices.
11534
11535         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11536
11537 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11538
11539         Cleaned up genPackBits and genUnpackBits and added two helper
11540         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11541         for literal assignments in genPackBits (thanks to Frieder for
11542         reminding me).
11543
11544         * src/mcs51/gen.c
11545         * src/ds390/gen.c
11546
11547 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11548
11549         Fixed bug #748310 (pointer to function type mishandled when the
11550         function name is omitted). Also fixed a SIGSEGV when a function
11551         attribute (reentrant, etc) is used on a non-function or on a
11552         function but misplaced before the parameter list.
11553
11554         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11555         bug #748310
11556         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11557         * support/Util/SDCCerr.h,
11558         * support/Util/SDCCerr.c: Added func attr misuse error msg
11559
11560 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11561
11562         Fixed bug #787649 by anonymous
11563         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11564         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11565
11566 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11567
11568         Fixed numerous bitfield problems.
11569
11570         * src/SDCC.y: More bitfield related error checking
11571         * src/SDCCsymt.h,
11572         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11573         * support/Util/SDCCerr.h,
11574         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11575         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11576         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11577         * support/regression/tests/bitfields.c: tests added
11578
11579 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11580
11581         Made the constant following the "interrupt" keyword optional. If
11582         omitted, the function will not automatically be given an entry
11583         in the interrupt vector table (similar to #pragma NOIV, but
11584         less syntacticly kludgy). The interrupt number is also now
11585         range checked. Also fixed a bug in the high order bit example
11586         in the manual.
11587
11588         * src/SDCC.y
11589         * src/SDCCmem.c
11590         * src/SDCCglue.c
11591         * src/SDCCsymt.h
11592         * support/Util/SDCCerr.c
11593         * support/Util/SDCCerr.h
11594         * doc/sdccman.lyx
11595
11596 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11597
11598         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11599         * src/SDCCicode.c (operandOperation): rewritten some ops
11600         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11601         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11602         other type
11603         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11604         be re-activated by defining REDUCE_LITERALS)
11605         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11606         unsigned, but are signed by default
11607         * src/SDCCval.c (constVal): rearranged
11608         * src/SDCCval.c (valMod): preliminary fix
11609         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11610         * support/regression/literalop.c: added, work in progress
11611
11612 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11613
11614         Generate warnings for useless declarations like "char data;"
11615         that don't do what new users expect.
11616
11617         * src/SDCC.y
11618         * support/Util/SDCCerr.h
11619         * support/Util/SDCCerr.c
11620
11621 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11622
11623         * src/SDCCval.c (valMult): fix overflow detection of negative int
11624
11625 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11626
11627         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11628
11629         Changes to support big endian targets:
11630
11631         * src/ports.h
11632         * src/SDCCglue.c
11633         * src/avr/main.c
11634         * src/ds390/main.c
11635         * src/izt/i186.c
11636         * src/mcs51/main.c
11637         * src/pic/main.c
11638         * src/pic16/main.c
11639         * src/xa51/main.c
11640         * src/z80/main.c
11641
11642 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11643
11644         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11645         * device/lib/time.c: fixed warning "integer overflow in expression"
11646
11647 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11648
11649         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11650         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11651         constants are unsigned; added recognition of "u" flag for unsigned
11652         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11653         * src/SDCCval.c (valDiv, valMod): fixed signdness
11654         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11655         signedness of modulo, left and right shift
11656         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11657         * support/Util/SDCCerr.h: added warning W_INT_OVL
11658         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11659         * src/SDCCast.c (ast_print): improved output of constants
11660
11661 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11662
11663         Fixed some warnings when building with MSVC:
11664
11665         * as/mcs51/asdata.c
11666         * as/z80/asdata.c
11667         * as/mcs51/asm.h
11668         * as/z80/asm.h
11669         * link/z80/aslink.h
11670         * link/z80/lkdata.c
11671         * link/z80/lkeval.c
11672         * link/z80/lkgb.c
11673         * link/z80/lkihx.c
11674         * link/z80/lks19.c
11675         * link/z80/lksym.c
11676         * support/cpp2/cpplib.c
11677         * src/ds390/gen.c
11678         * src/mcs51/gen.c
11679
11680 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11681
11682         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11683
11684 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11685
11686         * support/librarian/clean.mk: Do not remove Makefile.
11687         * support/librarian/Makefile: added.
11688
11689 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11690
11691         Added librarian to MSVC build:
11692         * all.dsp
11693         * sdcc.dsw
11694         * support/librarian/librarian.dsp
11695
11696         'configure' not needed for librarian, removed:
11697         * support/librarian/configure
11698         * support/librarian/configure.in
11699         * support/librarian/config_in.h
11700         * support/librarian/Makefile.in
11701
11702         Hopefully these ones built the librarian and the rest of sdcc properly:
11703         * Makefile
11704         * Makefile.common.in
11705
11706         Messed up 'configure', so revert to previous version:
11707         * configure
11708         * configure.in
11709
11710 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11711
11712         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11713         there, while the mantissa of a double is "only" 53 bits wide.
11714
11715 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11716
11717         Adding sdcclib to the build.  MSVC project coming soon.
11718         Files added/changed:
11719
11720         * support/librarian/clean.mk
11721         * support/librarian/configure
11722         * support/librarian/configure.in
11723         * support/librarian/config_in.h
11724         * support/librarian/Makefile.bcc
11725         * support/librarian/Makefile.in
11726         * support/librarian/sdcclib.c
11727         * Makefile.bcc
11728         * Makefile
11729         * Makefile.common.in
11730         * configure
11731         * configure.in
11732
11733 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11734
11735         Linker now complaints if linked modules have conflicting options, for
11736         example, one compiled using --model-large and another one compiled with
11737         --model-small.  The following files were modified:
11738
11739         * as/mcs51/asdata.c
11740         * as/mcs51/aslink.h
11741         * as/mcs51/asm.h
11742         * as/mcs51/asmain.c
11743         * as/mcs51/asout.c
11744         * as/mcs51/i51pst.c
11745         * as/mcs51/lkdata.c
11746         * as/mcs51/lklibr.c
11747         * as/mcs51/lkmain.c
11748         * as/z80/asdata.c
11749         * as/z80/asm.h
11750         * as/z80/asmain.c
11751         * as/z80/asout.c
11752         * as/z80/z80pst.c
11753         * link/z80/aslink.h
11754         * link/z80/lkdata.c
11755         * link/z80/lklibr.c
11756         * link/z80/lkmain.c
11757         * src/SDCCglue.c
11758
11759 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11760
11761         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11762         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11763
11764 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11765
11766         * src/z80/mappings.i: fix _mul[us][int,long] entries
11767
11768 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11769
11770         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11771
11772 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11773
11774         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11775         * support/regression/tests/bitopcse.c: added
11776         fixed warning:
11777         * src/avr/gen.c:
11778         * src/pic/gen.c:
11779         * src/pic16/gen.c:
11780         * src/z80/gen.c:
11781         * src/xa51/gen.c:
11782
11783 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11784
11785         added support for new library format to z80, gbz80 linkers:
11786         *link/z80/aslink.h
11787         *link/z80/lklex.c
11788         *link/z80/lklib.c
11789         *link/z80/lklist.c
11790
11791 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11792
11793         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11794         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11795
11796 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11797
11798         added DUMMY_READ_VOLATILE:
11799         * src/SDCC.y:
11800         * src/avr/gen.c:
11801         * src/xa51/gen.c:
11802         * src/z80/gen.c:
11803         * src/pic/gen.c:
11804         * src/pic16/gen.c:
11805         * src/mcs51/gen.c:
11806         * src/ds390/gen.c:
11807         * src/SDCCcse.c (algebraicOpts): many improvements
11808         * src/SDCCcse.h: removed algebraicOpts()
11809         * src/SDCCicode.c (picDummyRead): added
11810
11811 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11812
11813         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11814         "Insufficient space in data memory".
11815
11816 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11817
11818         * src/mcs51/gen.c: fixed bug #771358
11819         * src/z80/gen.c: fixed bug #759087
11820
11821 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11822
11823         * src/pic16/glue.c: minor cleanup by Vangelis
11824
11825 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11826
11827         * device/include/regc515c.h: fixed #758477
11828         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11829         * device/lib/_gptrput.c: saved a few bytes
11830         * my tab spacing is 8, yours too?)
11831         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11832         * device/lib/serial.c: process RX bytes earlier than TX bytes
11833         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11834
11835 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11836
11837         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11838
11839 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11840
11841     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11842
11843 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11844
11845         * device/lib/Makefile.in: bad fix, reverted to 1.43
11846
11847 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11848
11849         * device/lib/Makefile.in: added missing z80 object files
11850
11851 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11852
11853         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11854         pic16 progress by Vangelis:
11855         * src/SDCCglobl.h:
11856         * src/SDCCmain.c:
11857         * src/pic/Makefile:
11858         * src/pic:
11859         * pic/Makefile:
11860         * pic16/device.c:
11861         * pic16/device.h:
11862         * pic16/gen.c:
11863         * pic16/gen.h:
11864         * pic16/genarith.c:
11865         * pic16/glue.c:
11866         * pic16/main.c:
11867         * pic16/pcode.c:
11868         * pic16/pcode.h:
11869         * pic16/pcodepeep.c:
11870         * pic16/peeph.def:
11871
11872 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11873
11874     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11875
11876 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11877
11878     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11879     added gbz80 build to MSVC project.
11880     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11881     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11882     from 8051 stuff and setup so it links using a .lnk file.
11883
11884 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11885
11886     * support/librarian/sdcclib.c: sdcc librarian.
11887     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11888     with sdcclib.
11889
11890 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11891
11892     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11893
11894 2003-07-02  Borut Razem <borut.razem AT siol.net>
11895
11896         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11897         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11898         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11899         src/xa51/main.c, src/z80/main.c:
11900         virtualization of glue() function: each port has it's own glue function,
11901         which is accessed by do_glue function pointer in PORT.general structure
11902
11903 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11904
11905         * DS800C400 fun, improved ROM interface and tinibios.
11906
11907 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11908
11909         * More support for DS80C400. Now includes beginning of interface to ROM.
11910
11911 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11912
11913         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11914
11915 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11916
11917         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11918
11919 2003-06-19  Borut Razem <borut.razem AT siol.net>
11920
11921         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11922
11923 2003-06-19  Borut Razem <borut.razem AT siol.net>
11924
11925         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11926         fixed Z80 port - crt0.o: cannot open.
11927
11928 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11929
11930         * support/Util/MySystem.c (merge_command): revert bad fix
11931
11932 2003-06-18  Borut Razem <borut.razem AT siol.net>
11933
11934         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11935
11936 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11937
11938         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11939         option --use-stdout sends errors to stdout instead of stderr.
11940
11941 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11942
11943         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11944
11945 2003-06-15  Borut Razem <borut.razem AT siol.net>
11946
11947         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11948         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11949         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11950         fixed width array of pointers replaced with sets;
11951         multiple include and lib paths ared transferred to preprocessor and linker
11952         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11953         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11954         fixed width array of pointers
11955         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11956         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11957         fixupPath(), getPathDifference()
11958         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11959         fixed width array of pointers
11960
11961 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11962
11963         * src/pic16/ralloc.c: fix warnings
11964         * src/pic16/pcode.c: fix warning
11965
11966 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11967
11968          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11969         know all the details, but essentially this set of changes enable
11970         the pic16 port to generate movff instructions and generate assembler
11971         directives,
11972         * src/SDCCmain.c:
11973         * src/pic16/gen.c:
11974         * src/pic16/glue.c:
11975         * src/pic16/pcode.c:
11976         * src/pic16/device.c:
11977         * src/pic16/main.c:
11978         * src/pic16/pcode.h:
11979         * src/pic16/pcoderegs.c:
11980         * src/pic16/ralloc.c:
11981         * src/pic16/ralloc.h:
11982
11983 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11984
11985         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11986         added option --vc, so sdcc errors and warnings are compatible with
11987         Microsoft Visual Studio.
11988
11989 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11990
11991         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11992           device/lib/libfloat.lib: added atof function.
11993
11994 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11995
11996         * doc/sdccman.lyx: updated to Lyx 1.3
11997         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11998         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11999         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
12000
12001 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
12002
12003         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
12004
12005 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12006
12007         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
12008           additions to the "related tools/documentation" section
12009
12010 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
12011
12012         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
12013
12014 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
12015
12016         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
12017         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
12018
12019 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
12020
12021         * doc/sdccman.lyx: fix double dash and other minor things
12022         * doc/Makefile: fix double dash
12023
12024 2003-05-28  Karl Bongers(patches from Martin Helmling)
12025         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
12026           condition and ignore commands.
12027
12028 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12029
12030         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
12031           is in parts still quite out of date, I did changes as far as I felt makes sense
12032           for a non-native english speaker.
12033           Please feel free to add to the manual or to correct my changes.
12034         * doc/Makefile: undid touching the date of intermediate tex files.
12035
12036 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12037
12038         * doc/sdccman.lyx: Manual has an index now
12039
12040 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
12041
12042         Finalize muluint/mulsint and mululong/mulslong merging:
12043         * device/lib/_mulint.c
12044         * device/lib/_mullong.c
12045         * device/lib/gbz80/mul.s
12046         * device/lib/gbz80/stubs.s
12047         * device/lib/z80/mul.s
12048         * device/lib/z80/stubs.s
12049         * src/SDCCsymt.c (initCSupport)
12050
12051 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12052
12053         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
12054         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
12055           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
12056           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
12057           instead of /Zm500.
12058
12059 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12060
12061         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
12062           the regression tests I'm not brave enough to enable 245.b, 245.c
12063         * doc/sdccman.lyx: added latex preamble for hyperref package.
12064           Using pdflatex this will give you a hyperlinked pdf file with
12065           bookmarks. (prepend '%' before /usepackage if this breaks something)
12066
12067 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12068
12069          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
12070
12071 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
12072
12073         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
12074
12075 2003-05-21    <johan AT balder>
12076
12077         * src/SDCCglue.c (printIval): fixed bug #739934
12078
12079 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12080
12081         Applied patch from bug 737905 (renamed yylineo to mylineno):
12082         * src/altlex.c
12083         * src/SDCCast.c
12084         * src/SDCglobl.h
12085         * src/SDCC.lex
12086         * src/SDCCsymt.c
12087         * src/SDCCval.c
12088         * src/pic16/pcode.c: Cleaned warnings
12089         * src/pic16/pcodeflow.c: Cleaned warnings
12090         * src/pic16/pcoderegs.c: Cleaned warnings
12091
12092 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12093
12094         * src/pic16/pcode.c: Cleaned warnings
12095         * src/pic16/pcodepeep.c: Cleaned warnings
12096         * src/pic16/ralloc.c: Cleaned warnings
12097
12098 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12099
12100         * doc/sdccman.lyx: fixed bug 739745
12101         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12102
12103 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12104
12105         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12106         it can be defined with CFLAGS when running configure
12107         * src/SDCCmain.c: fixed compiling + linking with object files
12108
12109 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12110
12111         * configure.in: configure for pic16 port,
12112             added --disable-pic16-port
12113         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12114         * src/SDCCmain.c: linkOptions is changed to set *,
12115             added if/endif conditional macros to remove options help
12116             messages from optionsTable when a port is not configured, added
12117             support for the PIc16 port in the ports table, when executing
12118             the compiler with no port specified on command line, a default
12119             port is selected with the new macro DEFAULT_PORT which is
12120             defined in port.h, in setDefaultOptions() linkOptions is removed
12121             from initialization assignment, since now it is a set,
12122             parseCmdLine uses setParseWithComma for linkOptions, in
12123             linkEdit() linkOptions are accessed with new function indexSet()
12124             which returns the i'th item of a set variable. See SDCCset.c, in
12125             linkEdit() when calling buildCmdLine(), added linkOptions as
12126             last argument. Now users can pass arguments to gplink via the
12127             -Wl option, main() uses pic16glue() to glue up pic16 programs
12128         * src/SDCCpeeph.c: various changes to support pic16
12129         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12130             return the i'th item of the set
12131         * src/SDCCset.h: added function prototype for indexSet()
12132         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12133         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12134         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12135             added macro DEFAULT_PORT
12136         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12137         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12138             generated
12139         * src/pic16/glue.c: commented out some error producing lines
12140         * src/pic16/main.c: __config directives are commented out to stop
12141             gpasm complaining and test the linkage with gplink, _linkCmd and
12142             _asmCmd changed to be more gplink and gpasm friendly
12143         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12144             produced an error when parsed, peep rule 12 is added to utilize
12145             movff, but it is commented out since the pCode does not support
12146             yet a command with 2 address arguments
12147
12148 2003-05-18    <johan AT balder>
12149
12150         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12151         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12152 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12153
12154         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12155   Added feature to script commands from file.
12156
12157 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12158
12159         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12160         * src/SDCCutil.c: include ctype.h for win32
12161
12162 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12163
12164         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12165
12166 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12167
12168         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12169   Fixed so you can set breakpoints prior to run, run does not stop
12170   on entry now.  Add tbreak.  Other enhancements and fixes for use
12171   with ddd.
12172
12173 2003-05-12  Borut Razem <borut.razem AT siol.net>
12174
12175         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12176
12177 2003-05-11  Borut Razem <borut.razem AT siol.net>
12178
12179         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12180         the path of bin directory, so that PATH is the only env. variable, which has to be set
12181         in case of standard installation.
12182         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12183         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12184         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12185
12186 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12187
12188         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12189         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12190         temp files are in the port dir; clean the gen/test directory when
12191         generating new test.c
12192         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12193         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12194         * support/regression/tests/zeropad.c: added
12195
12196 2003-05-09    <johan AT balder>
12197
12198         * src/SDCCglue.c: fixed bug #597940
12199
12200 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12201
12202         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12203   cache sfr, optimize next,step, fix off by one sourceline,
12204   support ddd list function.
12205         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12206
12207 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12208
12209         * support/regression/HTMLgen.py: added compare_s2f()
12210         * support/regression/Makefile: redo 1.27
12211         * support/regression/generate-cases.py: redo 1.5
12212
12213 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12214
12215         * support/regression/tests/float.c: workaround 33 bit hex constant
12216         * support/regression/tests/simplefloat.c: fix division for host
12217
12218 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12219
12220         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12221         that tame's the PIC's over-aggressive optimizer.
12222
12223 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12224
12225          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12226          support for MSVC.
12227
12228 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12229
12230         Initial support for DS80C400. "Hello world" runs on TINIm400
12231         (with polled I/O).
12232
12233 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12234
12235          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12236          * Some notes on ddd usage added in debugger/README
12237          Martin Helmling adding more features and fixes for ddd GUI debugger.
12238          Code added for nexti, stepi, up, down, and other adjustments.
12239
12240 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12241
12242         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12243         * src/pic/peeph.def Added two rules to optimize carry manipulation
12244         * src/pic/* removed debug printfs
12245
12246 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12247
12248         * debugger/mcs51/cmd.c: added header newalloc.h
12249
12250 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12251
12252         * as/Makefile: new EXEEXT
12253         * as/z80/Makefile: remove trailing slash of BUILDIR
12254         * as/z80/clean.mk: new EXEEXT
12255         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12256         * support/cpp2/Makefile.in: new EXEEXT
12257         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12258
12259 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12260
12261         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12262         EXEEXT was introduced to fix all related problems with targets
12263         "clean", "install" and "uninstall"; a couple of further flaws
12264         especially with "clean" have been fixed too
12265         * as/mcs51/Makefile.in
12266         * as/mcs51/clean.mk
12267         * as/z80/Makefile
12268         * Makefile
12269         * clean.mk
12270         * debugger/mcs51/Makefile.in
12271         * debugger/mcs51/clean.mk
12272         * link/z80/Makefile
12273         * link/z80/Makefile.in
12274         * link/z80/clean.mk
12275         * link/Makefile
12276         * packihx/Makefile.in
12277         * packihx/clean.mk
12278         * sim/ucsim/Makefile
12279         * sim/ucsim/clean.mk
12280         * sim/ucsim/avr.src/Makefile.in
12281         * sim/ucsim/avr.src/clean.mk
12282         * sim/ucsim/s51.src/Makefile.in
12283         * sim/ucsim/s51.src/clean.mk
12284         * sim/ucsim/xa.src/Makefile.in
12285         * sim/ucsim/xa.src/clean.mk
12286         * sim/ucsim/z80.src/Makefile.in
12287         * sim/ucsim/z80.src/clean.mk
12288         * sim/ucsim/main_in.mk
12289         * sim/ucsim/packages_in.mk
12290         * sim/ucsim/gui.src/Makefile.in
12291         * sim/ucsim/gui.src/serio.src/Makefile.in
12292         * sim/ucsim/gui.src/serio.src/clean.mk
12293         * src/Makefile.in
12294         * src/clean.mk
12295         * support/cpp2/Makefile.in
12296         * support/cpp2/clean.mk
12297         * support/makebin/Makefile
12298         * support/makebin/clean.mk
12299         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12300         * doc/sdccman.lyx: --program-suffix no longer needed
12301
12302 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12303
12304          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12305          Martin Helmling added support for ddd GUI debugger.
12306          Code added to display assembly, set variables, and other commands
12307          to interface to ddd.
12308
12309 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12310
12311         * as/Makefile: fix target clean
12312         * as/clean.mk: fix target clean
12313         * as/z80/clean.mk: fix target clean
12314
12315 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12316
12317         * Makefile.common.in: added  AT EXEEXT AT
12318         * configure.in: removed all mingw32 stuff
12319         * configure: rebuilt from configure.in
12320         * doc/sdccman.lyx: updated section "installation"
12321         * support/scripts/sdcc_mingw32: adapted to configure
12322         * support/scripts/sdcc_cygwin_mingw32: added
12323
12324 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12325
12326         * src/pic Added object file support for the PIC port
12327         * src/pic Applied patch from Craig Franklin (this started the object file support)
12328         * src/regression Updated the PIC regression tests for object files
12329
12330 2003-04-20  Borut Razem <borut.razem AT siol.net>
12331
12332         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12333           lklex.c: In function `getfid':
12334           lklex.c:203: warning: array subscript has type `char'
12335         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12336           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12337         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12338           stack handling macros
12339
12340 2003-04-19  Borut Razem <borut.razem AT siol.net>
12341
12342         * "handling space characters in file path" task:
12343         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12344         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12345         * support/Util/MySystem.h: make it self-sufficient
12346         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12347           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12348           handling space characters in file path
12349         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12350           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12351         * support/Util/MySystem.c: handling space characters in executable's path
12352
12353 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12354
12355         * as/z80/Makefile: fix permanent rebuild of z80
12356         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12357         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12358
12359 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12360
12361         * src/SDCCopt.c: add special case optimization to replace modulo by
12362           a power of two with a bitwise AND.
12363
12364 2003-04-18    <johan AT balder>
12365
12366         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12367
12368 2003-04-17    <johan AT balder>
12369
12370         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12371         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12372
12373 2003-04-13  Borut Razem <borut.razem AT siol.net>
12374
12375         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12376         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12377           fixed mingw problem in adl_NORMALIZE_PATH
12378
12379 2003-04-12  Borut Razem <borut.razem AT siol.net>
12380
12381         * fixed "#pragma SAVE/RESTORE can not be nested":
12382         * src/SDCC.lex: reworked pragma handling functions
12383         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12384         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12385
12386 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12387
12388         * src/SDCCutil.c (pathEquivalent): defined but not used
12389         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12390         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12391         * configure: rebuilt from configure.in
12392         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12393         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12394         * device/include/Makefile.in: replace sdcc_datadir
12395         * device/lib/Makefile.in: replace sdcc_datadir
12396         * Makefile.common.in: add LDFLAGS from configure
12397         * packihx/Makefile.in: use LDFLAGS
12398         * src/Makefile.in: use LDFLAGS
12399         * support/cpp2/Makefile.in: add LDFLAGS from configure
12400         * support/makebin/Makefile: use LDFLAGS
12401         * .version: bumped version number to 2.3.5
12402
12403 2003-04-12  Borut Razem <borut.razem AT siol.net>
12404
12405         * completed "different paths" task:
12406         * src/SDCCmacro.c: fixed bug in handling quotes
12407         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12408         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12409
12410 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12411
12412         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12413
12414 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12415
12416         * ds390/gen.c ds390/peeph.def: fix bug 706781
12417
12418 2003-04-11  Borut Razem <borut.razem AT siol.net>
12419
12420         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12421
12422 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12423
12424         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12425         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12426          set - this bit used to not be set...).
12427         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12428           bad code in PIC Port
12429         * src/regression/and2.c added to test bug 609268
12430         * src/regression/Makefile added and2.c to regression test
12431
12432
12433 2003-04-08    <johan AT CP255758-A>
12434
12435         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12436         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12437         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12438
12439 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12440
12441         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12442         fix bug #487815
12443         * support/cpp2/Makefile.in: fix bug #487815
12444         * configure: rebuilt from configure.in
12445         * Makefile.common.in: docdir changed, new path suffixes
12446         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12447         * sdcc_vc_in.h: reflect changes from sdccconf.h
12448         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12449         * src/SDCCutil.h: remove BINDIR hack
12450         * doc/sdccman.lyx: update new path hierarchy
12451
12452 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12453
12454         * src/SDCCpeeph.c: added okToRemoveSLOC test
12455
12456 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12457
12458         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12459
12460 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12461
12462         * src/SDCCpeeph.c: added labelIsReturnOnly test
12463         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12464
12465 2003-04-05    <johan AT balder>
12466
12467         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12468         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12469         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12470         * src/SDCCast.c: fixed a warning
12471         * src/SDCCast.h: fixed a warning
12472         * src/SDCCicode.c (operandFromAst): fixed a warning
12473
12474 2003-04-04    <johan AT balder>
12475
12476         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12477         * src/SDCCast.c (decorateType): fixed bug #715076
12478         * src/SDCC.y: fixed bug #702907
12479
12480 2003-04-03    <johan AT balder>
12481
12482         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12483         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12484         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12485         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12486         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12487
12488 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12489
12490         * _decdptr.c: fix return values
12491         * _gptrget.c: fix return values
12492         * _gptrgetc.c: fix return values
12493         * _gptrput.c: fix return values
12494         * _mulint.c: fix return values
12495         * as/z80/Makefile: fix 'make -j' problem
12496
12497 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12498
12499         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12500         * configure.in: big cleanup, updated to autoconf 2.5x
12501         * configure: rebuilt from configure.in
12502         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12503         * sdcc_vc_in.h: reflect changes from sdccconf.h
12504         * doc/Makefile: fixed a flaw in "make install"
12505
12506 2003-04-02    <johan AT balder>
12507
12508         * src/ds390/gen.c (genCmp): no comments
12509         * src/mcs51/gen.c (genCmp): no comments
12510         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12511         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12512
12513 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12514
12515         * support/regression/generate-cases.py: place generated file in given sub directory
12516         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12517         * support/regression/Makefile: improvements for 'make -j';
12518         side effect: it's simpler and faster now
12519
12520 2003-03-31  Borut Razem <borut.razem AT siol.net>
12521
12522         * src/z80/main.c: link-{port} and as-{port} defined without path
12523         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12524
12525 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12526
12527         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12528
12529 2003-03-30  Borut Razem <borut.razem AT siol.net>
12530
12531         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12532           changed type of list parameter to set
12533         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12534         * src/port.h: changed type of do_assemble() parameter to set
12535         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12536           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12537           definition of "cppoutfilename" macro with NULL value in preProcess()
12538         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12539         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12540         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12541           replaced with set *binPathSet
12542         * shash_add() deallocates the item, if allready exsists, before adding the new one
12543         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12544
12545 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12546
12547         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12548           a nested for loop bug in the PIC port
12549         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12550           for loops
12551
12552 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12553
12554         * support/Util/dbuf.h: remove C++ stuff to make it portable
12555
12556 2003-03-28  Borut Razem <borut.razem AT siol.net>
12557
12558         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12559           literal strings in stringLiteral()
12560         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12561         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12562           to the project
12563
12564 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12565
12566         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12567
12568 2003-03-26    <johan AT balder>
12569
12570         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12571         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12572         * src/SDCCast.c (decorateType): fixed " -v < 3"
12573
12574 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12575
12576         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12577         Added Lenny Story's debug infrastructure changes:
12578         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12579         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12580         * src/cdbFile.c: added
12581         * src/SDCCdebug.c: added
12582         * src/SDCCdebug.h: added
12583         * src/SDCCast.c (createFunction)
12584         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12585         * src/SDCCmain.c (parseCmdLine, main)
12586         * src/SDCCmem.c (redoStackOffsets)
12587         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12588         * src/SDCCsymt.h
12589         * src/common.h
12590         * src/avr/gen.c (genAVRCode)
12591         * src/ds390/gen.c (gen390Code)
12592         * src/mcs51/gen.c (gen51Code)
12593         * src/pic/gen.c (genpic14Code)
12594         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12595         * src/xa51/gen.c (genXA51Code)
12596         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12597
12598 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12599
12600         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12601         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12602
12603 2003-03-22    <johan AT balder>
12604
12605         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12606
12607 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12608
12609         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12610         * doc/cdbfileformat.lyx: added, written by Lenny Story
12611         * doc/Makefile: added cdbfileformat.lyx
12612         * doc/clean.mk: added cdbfileformat.lyx
12613
12614 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12615
12616         * src/mcs51/peeph.def: fix bug #705773
12617
12618 2003-03-20    <johan AT balder>
12619
12620         An sfr/sbit can have an "at #" AND an initializer
12621         * src/SDCCsymt.c (checkSClass):
12622         * src/SDCCmem.c (allocGlobal):
12623         * src/SDCCmem.c (allocLocal):
12624         * src/SDCCast.c (createBlock):
12625
12626 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12627
12628         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12629
12630 2003-03-16    <johan AT balder>
12631
12632         Undid the hackup of const and volatile, the problem is much bigger
12633         * src/SDCC.y:1.65
12634         * src/SDCCast.c:1.171
12635         * src/SDCCglue.c:1.138
12636         * src/SDCCicode.c:1.146
12637         * src/SDCCsymt.c:1.150
12638         * src/SDCCval.c:1.65
12639
12640 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12641
12642         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12643         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12644
12645 2003-03-13    <johan AT balder>
12646
12647         Hackup const and volatile modifiers in type chains a bit:
12648         * src/SDCC.y:1.63
12649         * src/SDCCast.c:1.169
12650         * src/SDCCglue.c:1.136
12651         * src/SDCCicode.c:1.143
12652         * src/SDCCsymt.c1.146
12653         * src/SDCCsymt.h1.59
12654         * src/SDCCval.c:1.63
12655
12656 2003-03-12    <johan AT balder>
12657
12658         * src/SDCCBBlock.h: more LRH debugging junk
12659         * src/SDCCcflow.h: more LRH debugging junk
12660         * src/SDCCloop.c: more LRH debugging junk
12661         * src/SDCC.y (struct_declaration): fixed bug #697590
12662         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12663         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12664         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12665
12666 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12667         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12668         test function names must now match exactly).
12669         * src/SDCCcse.c: added special case in findCheaperOp to allow
12670         extending a short integer. Makes less awful code for bug 700121 test case.
12671
12672 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12673
12674         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12675         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12676
12677 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12678
12679         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12680         actually called (operandsNotEqual() was called for all
12681         operandsNotEqualX tests).
12682
12683 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12684
12685         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12686         with shorter literals. Fixes bug 700121.
12687
12688 2003-03-11    <johan AT balder>
12689
12690         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12691
12692 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12693
12694         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12695         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12696
12697 2003-03-10  Borut Razem <borut.razem AT siol.net>
12698
12699         * src/SDCCmain.c: pipe preprocessor's output
12700         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12701         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12702         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12703         which closes all pipes in pipeSet set
12704         * src/SDCCset.c: free deleted item in function deleteSetItem()
12705         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12706         moved from z80 to src subproject
12707         * .version: increased version number to 2.3.4
12708
12709 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12710
12711         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12712         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12713         * support/regression/ports/xa51/spec.mk: fix typo
12714
12715 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12716
12717         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12718
12719 2003-03-09  Borut Razem <borut.razem AT siol.net>
12720
12721         * src/SDCCmain.c: pipe preprocessor's output
12722         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12723         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12724         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12725         which closes all pipes in pipeSet set
12726         * src/SDCCset.c: free deleted item in function deleteSetItem()
12727         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12728         moved from z80 to src subproject
12729
12730 2003-03-09  Borut Razem <borut.razem AT siol.net>
12731
12732         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12733         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12734         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12735         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12736         * src/SDCCglobl.h: unification of WIN32 native definitions
12737
12738 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12739
12740         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12741
12742 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12743
12744         * src/configure.in:   check for endianess (even while cross-compiling)
12745         * src/configure:      check for endianess (even while cross-compiling)
12746         * src/configure_in.h: check for endianess (even while cross-compiling)
12747         * src/avr/gen.c:        remove old endianess stuff
12748         * src/mcs51/gen.c:      remove old endianess stuff
12749         * src/ds390/gen.c:      remove old endianess stuff
12750         * src/pic/gen.c:        remove old endianess stuff
12751         * src/pic/genarith.c:   remove old endianess stuff
12752         * src/pic/glue.c:       fix endianess check
12753         * src/pic16/gen.c:      remove old endianess stuff
12754         * src/pic16/genarith.c: remove old endianess stuff
12755         * src/pic16/glue.c:     fix endianess check
12756         * src/xa51/gen.c:       remove old endianess stuff
12757         * src/z80/gen.c:        fix endianess check
12758         * src/SDCCglue.c:       fix endianess check
12759         * src/ds390/peeph.def: fix bug 700036
12760
12761 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12762
12763         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12764         * src/configure: find appropriate data-types on host for SDCC's int and long
12765         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12766         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12767         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12768
12769 2003-03-07    <johan AT balder>
12770
12771         Just a big NOOP:
12772                 some minor cleanups before the big shot
12773                 OP_DEFS and OP_USES now use Kevin's protection
12774                 new option --nolabelopt
12775
12776         * src/SDCCBBlock.c:
12777         * src/SDCCast.c,:
12778         * src/SDCCcflow.c:
12779         * src/SDCCcse.c:
12780         * src/SDCCicode.c:
12781         * src/SDCCicode.h:
12782         * src/SDCClabel.c:
12783         * src/SDCCloop.c:
12784         * src/SDCCmain.c:
12785         * src/ds390/ralloc.c:
12786         * src/mcs51/ralloc.c:
12787         * src/pic/ralloc.c:
12788         * src/xa51/ralloc.c:
12789         * src/z80/ralloc.c:
12790
12791 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12792
12793         * src/pic/pcode.c (get_op): fix 64 bit warnings
12794         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12795         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12796         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12797         * support/regression/tests/malloc.c: fix 64 bit warnings
12798
12799 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12800
12801         * src/mcs51/gen.c (genMinus): fixed bug 696436
12802
12803 2003-03-02  Borut Razem <borut.razem AT siol.net>
12804
12805         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12806
12807 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12808
12809         * configure.in: test for mkstemp
12810         * sdccconf_in.h: add HAVE_MKSTEMP
12811
12812 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12813
12814         * device/include/ctype.h: removed warning while using --stack-auto
12815         * device/include/malloc.h: removed warning while using --stack-auto
12816         * device/include/string.h: removed warning while using --stack-auto
12817
12818 2003-02-23  Borut Razem <borut.razem AT siol.net>
12819
12820         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12821         because NDEBUG is defined (see man assert)
12822         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12823
12824 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12825
12826         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12827         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12828
12829 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12830
12831         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12832         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12833
12834 2003-02-18    <johan AT balder>
12835
12836         * as/mcs51/asmain.c (asmbl): module can start with a digit
12837         * as/z80/asmain.c (asmbl): module can start with a digit
12838
12839 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12840
12841         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12842         * src/asm.c: fix pipe() for Mingw32
12843
12844 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12845
12846         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12847         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12848         make -V work again; --c1mode reads now from stdin
12849         * doc/sdccman.lyx: added --c1mode
12850         * support/Util/SDCCerr.c: new messages for c1 mode
12851         * support/Util/SDCCerr.h: new messages for c1 mode
12852         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12853
12854 2003-02-15    <johan AT balder>
12855
12856         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12857
12858 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12859
12860         * doc/sdccman.lyx: Environment variables, -o and other minor things
12861
12862 2003-02-14    <johan AT balder>
12863
12864         * src/xa51/main.c: before anyone really tries to use it :)
12865
12866         * Install doc's in share/sdcc/doc
12867         * removed some obsolete files
12868         * Do a proper make distclean and uninstall
12869         M Makefile.common.in
12870         R sdccbuild.sh
12871         M as/Makefile
12872         M device/include/Makefile.in
12873         M device/lib/Makefile.in
12874         M doc/sdccman.lyx
12875         M link/Makefile
12876         M sim/ucsim/doc/Makefile.in
12877         M src/clean.mk
12878         R src/avr/peeph.rul
12879         R src/xa51/peeph.rul
12880         M support/cpp2/Makefile.in
12881         M support/makebin/Makefile
12882
12883
12884 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12885
12886         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12887
12888 2003-02-10  Borut Razem <borut.razem AT siol.net>
12889
12890         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12891         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12892         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12893         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12894         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12895         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12896         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12897         src/z80/Makefile.bcc: Borland Makefile cleanup
12898         * as/z80/Makefile.bcc: Added Borland Makefile
12899         * support/cpp2/borland.h: Removed
12900
12901 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12902
12903         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12904         * src/SDCC.lex: new pragma NOIV
12905         * src/SDCCglobl.h: new pragma NOIV
12906         * src/SDCCmem.c: new pragma NOIV
12907
12908 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12909
12910         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12911
12912 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12913
12914         * src/SDCCmain.c: signal handling is switched off by --debug
12915         * doc/Makefile: small fix for install; use clean.mk again
12916         * doc/clean.mk: clean *.pdf and *.html too
12917
12918 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12919
12920         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12921         * device/lib/printfl.c: fix a ds390 bug by making it portable
12922         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12923         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12924         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12925         * debugger/mcs51/cmd.c: converted multi-line string literals
12926         * sim/ucsim/globals.cc: converted multi-line string literals
12927         * src/SDCCmain.c: introduced signal handler to remove temp files
12928         * doc/Makefile: small tweaks, implement clean
12929         * doc: removed generated files
12930
12931 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12932
12933         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12934         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12935         Address Record is not correctly generated for DS390."
12936
12937 2003-02-02  Borut Razem <borut.razem AT siol.net>
12938
12939         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12940         * as/mcs51/asm.h: fixed compilation with Borland C
12941         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12942         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12943         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12944         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12945         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12946         src/z80/Makefile.bcc: delete $(LIB) only if exist
12947         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12948
12949 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12950
12951         * device/include/malloc.h: introduced NULL
12952         * device/include/string.h: introduced NULL
12953         * device/include/stdlib.h: introduced NULL
12954         * device/lib/_memcpy.c: removed NULL
12955         * device/lib/_strcat.c: removed NULL
12956         * device/lib/_strchr.c: removed NULL
12957         * device/lib/_strcmp.c: removed NULL
12958         * device/lib/_strcpy.c: removed NULL
12959         * device/lib/_strcspn.c: removed NULL
12960         * device/lib/_strlen.c: removed NULL
12961         * device/lib/_strncat.c: removed NULL
12962         * device/lib/_strncmp.c: removed NULL
12963         * device/lib/_strncpy.c: removed NULL
12964         * device/lib/_strpbrk.c: removed NULL
12965         * device/lib/_strrchr.c: removed NULL
12966         * device/lib/_strspn.c: removed NULL
12967         * device/lib/_strstr.c: removed NULL
12968         * device/lib/_strtok.c: removed NULL
12969         * device/lib/malloc.c: removed NULL, include own header
12970
12971 2003-02-02    <johan AT balder>
12972
12973         * 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
12974         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12975         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12976         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12977         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12978         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12979
12980 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12981
12982         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12983         area 'DATA'"
12984
12985 2003-02-01    <johan AT balder>
12986
12987         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12988
12989 2003-01-31    <johan AT CP255758-A>
12990
12991         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12992
12993 2003-01-30    <johan AT balder>
12994
12995         * src/SDCCBBlock.c: automatic bug detection
12996         * src/SDCCicode.c: automatic bug detection
12997
12998 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12999
13000         * src/SDCCglobl.h:   now --xram-size 0 works
13001         * src/SDCCmain.c:    now --xram-size 0 works
13002
13003 2003-01-29    <johan AT balder>
13004
13005         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
13006
13007 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13008
13009         * as/mcs51/aslink.h: Added options --xram-size and --code-size
13010         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
13011         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
13012         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
13013         * src/SDCCglobl.h:   Added options --xram-size and --code-size
13014         * src/SDCCmain.c:    Added options --xram-size and --code-size
13015
13016 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
13017
13018         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
13019         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
13020
13021 2003-01-27    <johan AT balder>
13022
13023         * src/SDCC.y: fixed bug #613764
13024
13025 2003-01-26    <johan AT balder>
13026
13027         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
13028         * src/SDCCsymt.h: fixed bug #673374
13029         * src/SDCCglue.c: fixed bug #661910
13030         * src/SDCCast.c: fixed bug #458099 and 673374
13031
13032 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
13033
13034         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
13035         * as/mcs51/strcmpi.h: added
13036         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
13037         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
13038         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
13039         * as/mcs51/assym.c: strcmpi -> as_strcmpi
13040         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
13041         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
13042         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
13043         * as/mcs51/Makefile.aslink: new module strcmpi
13044         * as/mcs51/Makefile.asx8051: new module strcmpi
13045         * as/mcs51/Makefil.bcc: new module strcmpi
13046         * as/mcs51/Makefile.in: new module strcmpi
13047         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
13048
13049 2003-01-26    <johan AT balder>
13050
13051         * src/SDCCglue.c: reverted back to 1.124
13052         * src/SDCCast.c: reverted back to 1.156
13053         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
13054
13055 2003-01-25    <johan AT balder>
13056
13057         * src/SDCCglue.c: A better fix for bug #661910
13058         * src/SDCCast.c: A better fix for bug #661910
13059         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
13060
13061 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13062
13063         * src/Makefile.in: remove spawn.o
13064         * src/SDCCmain.c: remove spawn.h
13065         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
13066         * src/spawn.c: removed
13067         * src/spawn.h: removed
13068         * support/regression/ports/ds390/spec.mk: link with -r
13069
13070 2003-01-24    <johan AT CP255758-A>
13071
13072         * src/ds390/gen.c (aopOp): fixed bug #667458
13073         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
13074         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
13075         (createIvalCharPtr): an ival doesn't always have a storage class anymore
13076
13077 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
13078
13079         * src/mcs51/peeph.def: better assembler identation by Frieder
13080         * src/mcs51/gen.c: better assembler identation by Frieder
13081
13082 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
13083
13084         * as/z80/string.h: removed for gcc 3.2
13085         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
13086         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
13087
13088 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13089
13090         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
13091         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13092         * support/regression/Makefile: separate temp files for ports
13093         * support/regression/generate-cases.py: separate temp files for ports
13094         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13095         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13096
13097 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13098
13099         * moved tinitalk to device/examples/ds390
13100
13101 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13102
13103         * as/mcs51/lkmem.c: rflag is for DS390
13104         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13105         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13106                          (linkEdit): move mem- and map-files the same way as ihx-files
13107         * src/z80/main.c (_setDefaultOptions): removed --generic
13108         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13109         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13110         * src/pic/glue.c (picglue): --c1mode works again
13111         * src/pic16/glue.c (pic16glue): --c1mode works again
13112         * src/asm.c (printCLine): fix #660034
13113
13114 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13115
13116         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13117         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13118         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13119         * as/mcs51/lkmem (summary): better fix for sp problem
13120         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13121         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13122         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13123                                               remove --stack-after-data
13124
13125 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13126
13127         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13128         * src/SDCCutil.c (join): ugly bug: missing '\0'
13129         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13130
13131 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13132
13133         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13134         * src/port.h: typo
13135         * src/pic/main.c (_asmCmd): gpasm supports -o
13136         * src/z80/main.c: more general macros
13137         * device/lib/Makefile.in: remove intermediate files
13138
13139 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13140
13141         * .version: Bumped version number to 2.3.3
13142         * src/SDCCBBlock.c: new option -o
13143         * src/SDCCglobl.h: new option -o
13144         * src/SDCCglue.c: new option -o
13145         * src/SDCCmain.c: new option -o
13146         * src/asm.c: new option -o
13147         * src/ds390/main.c: new option -o
13148         * src/pic/glue.c: new option -o
13149         * src/pic/pcode.c: new option -o
13150         * src/pic/ralloc.c: new option -o
13151         * src/pic16/glue.c: new option -o
13152         * src/pic16/pcode.c: new option -o
13153         * src/pic16/ralloc.c: new option -o
13154         * src/z80/main.c: new option -o
13155         * device/lib/Makefile.in: use -o
13156         * support/regression/ports/ds390/spec.mk: use -o
13157         * support/regression/ports/gbz80/spec.mk: use -o
13158         * support/regression/ports/mcs51/spec.mk: use -o
13159         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13160         * support/regression/ports/z80/spec.mk: use -o
13161         * support/regression/ports/ucz80/spec.mk: use -o
13162         * support/regression/ports/xa51/spec.mk: use -o
13163         * support/regression/fwk/lib/timeout.c: fix usage string
13164
13165 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13166         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13167
13168 2003-01-07    <johan AT balder>
13169
13170         * src/SDCCast.c (decorateType): fixed bug #600035
13171
13172 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13173         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13174         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13175         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13176         * src/pic/pcode.c: outcommented unused variable to remove warnings
13177         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13178
13179 2003-01-06    <karl AT turbobit.com>
13180         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13181    regression tests.
13182
13183 2003-01-06    <johan AT balder>
13184
13185         * src/SDCCicode.c: fixed array add
13186
13187 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13188         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13189         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13190
13191 2003-01-04    <johan AT balder>
13192
13193         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13194
13195 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13196         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13197
13198 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13199         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13200         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13201
13202 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13203         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13204
13205 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13206         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13207
13208 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13209         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13210
13211 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13212
13213     * in /sdcc/as/mcs51/ changed these files in order to create an
13214     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13215     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13216     following files to include the previous two files: aslink.dsp,
13217     Makefile.aslink, Makefile.bcc, and Makefile.in.
13218
13219     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13220     .adb instead of .cdb
13221
13222 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13223
13224         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13225         value from option --iram-size.
13226
13227 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13228
13229         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13230         dram[] array.
13231
13232 2002-09-18    <wiml AT hhhh.org>
13233
13234         * SDCClrange.h: exposed setFromRange() and setToRange()
13235         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13236           packRegsForAccUse() (bug 542397)
13237         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13238           multiple times and emitting the fetch operations more than once
13239           added aopGetUsesAcc() function to allow binary operators to
13240           fetch their operands in the correct order; made genMinus() emit
13241           compact code for X = LITERAL - Y
13242
13243 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13244         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13245         sprintf() in line 1267.
13246
13247 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13248         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13249         like ports.
13250
13251 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13252         Changes to aslink (All the changes are marked with 'JCF'):
13253
13254         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13255         summary().
13256
13257         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13258         area BSEG.  Also moves, if possible, the DATA area down into the internal
13259         ram so more space is available.
13260
13261         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13262         sflag.
13263
13264         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13265         not bytes.  Function summary() which creates a memory usage summary
13266         file with extension .mem.  Reports of overlaping stack and small stack
13267         size.  If the space for the stack is less than 16 bytes aslink trows a
13268         warning.
13269
13270         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13271         the 8051.  Option 'y' for memory summary output file.
13272
13273         Changes to sdcc (All the changes are marked with 'JCF'):
13274
13275         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13276
13277         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13278         overlaying area for it (uses RegBankUsed[4]).
13279
13280         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13281         bank zero as used by default.  By default aslink locates the stack
13282         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13283         the creation of the .mem file.  Delegates the allocation of data area
13284         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13285         the begining of the stack area to aslink.
13286
13287         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13288         glue() in SDCCglue.c creates an area for it.
13289
13290 2002-09-03  Borut Razem <borut.razem AT siol.net>
13291         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13292         sdcc/src/pic/glue.c:
13293         introduced atexit() handler for teporay files removal in case of
13294         errors, assertions, ...
13295
13296 2002-08-29  Borut Razem <borut.razem AT siol.net>
13297         * sdcc/support/cpp2/auto-host_vc_in.h:
13298         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13299         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13300         Maybe there is a similar problem with BORLANDC? It should be checked!
13301
13302         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13303         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13304         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13305         was not executed, and the compiler (cl) launched a warning:
13306         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13307
13308 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13309         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13310
13311 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13312         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13313
13314         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13315           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13316           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13317           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13318           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13319           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13320           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13321         - added Release configuration in VS projects
13322         - review of compiler an linker options
13323         - VC .exe files are generated in bin_vc directory, not to interfere
13324           with binaries generated from other projects (cygwin, mingw, bcc ...)
13325
13326         * sdcc/src/yacc.dsp: added
13327
13328         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13329         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13330         and insert the version number definitions from .version
13331
13332         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13333
13334         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13335         added - genarate auto-host.h using auto-host_vc_in.h as template
13336
13337         * sdcc/sdcc_vc.h,
13338         removed from CVS, generated automatically
13339
13340 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13341         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13342
13343 2002-08-11  Borut Razem <borut.razem AT siol.net>
13344         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13345
13346 2002-08-10  Borut Razem <borut.razem AT siol.net>
13347         * src/SDCCmain.c (main):
13348         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13349         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13350         The consequence was that some temporary files were not removed.
13351
13352         * src/SDCCglue.c:
13353         unification of code in functions tempfilename() and tempfile():
13354         function tempnam() is defined in Visual Studio 6.0 and .NET
13355
13356         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13357
13358         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13359           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13360         - removed compiler command line option /WX: Treats all warnings as errors
13361         - update a list of source files, included into the project
13362
13363         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13364           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13365         changed project type to Generic Project so that can be correcly converted to VS.NET project
13366
13367         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13368
13369         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13370
13371         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13372
13373         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13374         added return 0 statements after assert() to make compiler happy
13375
13376         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13377         added newline in the def file to keep MSC compiler satisfied
13378
13379         * sdcc/src/z80/gen.c:
13380         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13381           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13382         - solved MSC error in function aopDump()
13383
13384         * sdcc_vc.h: define PREFIX as "\\sdcc"
13385
13386 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13387         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13388
13389 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13390         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13391         - Rewrote the register banking algorithm.
13392         - Added pCode live-range analysis to registers (for now, only non-used and
13393         singly-used registers optimized away)
13394
13395         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13396
13397         * 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.
13398
13399 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13400         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13401
13402 2002-04-22  Michael Hope  <michaelh AT vroom>
13403
13404         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13405
13406         * configure.in (DD_COPT): Added include support required for gbdk.
13407
13408         * .version: Bumped version number just to increase it.
13409
13410         * src/SDCCmain.c: Added -nostdinc to the default options.
13411
13412 2002-04-15  Michael Hope  <michaelh AT vroom>
13413
13414         * device/lib/z80/printf.c (sprintf): Added.
13415
13416         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13417
13418         * src/z80/peeph.def: Added transpose redundent load rule.
13419
13420         * src/z80/main.c: Added force callee saves for jaune.
13421
13422         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13423
13424         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13425
13426 2002-03-28  Johan Knol  <johan AT balder>
13427
13428         * src/SDCCval.c: fixed bug #532436
13429
13430 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13431         * /src/port.h:
13432         Added "char *Processor" field to the port structure.
13433
13434         * /src/SDCCmain.c:
13435         Added -p option. Allows port dependent processor to be specified.
13436
13437         * all ports:
13438         Initialized the new field char *Processor field to NULL in all ports
13439
13440         * /src/pic/*:
13441         Compiler generated registers for interrupt context saving
13442         were not getting allocated.
13443
13444 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13445
13446         * /src/SDCCast.c:
13447         Fixed left shift. Will promote the left side of a left shift
13448         if a) left shifting more than size of operand or b) when assigned
13449         to something size > size of left side
13450
13451 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13452         * src/pic/*
13453         tons of changes. Register allocation has been
13454         rewritten. Added customization for the various PICs. Flow
13455         analysis is restructured. ...
13456
13457         * src/pic/device.h:
13458         Added
13459
13460         * src/pic/device.c:
13461         Added. device.c is a PIC port hack to accomodate variations
13462         in PIC devices.
13463
13464 2002-03-13  Michael Hope  <michaelh AT vroom>
13465
13466         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13467
13468 2002-03-04  johanknol  <johanknol AT manik>
13469
13470         * /src/SDCCval.c: fixed
13471
13472         const unsigned char arr[][2] = { { 0, 1 } };
13473         t18.c:1: error: Initializer element is not constant
13474
13475 2002-03-04  bela  <bela AT manik>
13476
13477         * /device/include/mcs51reg.h:
13478         ds89c420 register definition update
13479
13480 2002-03-03    <johan AT FRIJA>
13481
13482         * support/Util/SDCCerr.c: did something, but don't no why anymore
13483
13484         * support/regression/tests/bug-524691.c: made it a little less shy
13485
13486         * src/SDCCast.c (decorateType): fixed bug #524697
13487
13488         * src/SDCCast.c: made some lineno improvements
13489
13490         * src/SDCCval.c (getNelements): changed warning to error
13491
13492         * src/SDCCglue.c (printIvalArray): changed warning to error
13493
13494         * src/SDCCicode.c: fixed a warning for mingw
13495
13496         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13497
13498         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13499
13500 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13501
13502         * src/ds390/peeph.def:
13503         Added some more peephole rules
13504
13505         * src/ds390/gen.c: Various fixes & enhancements
13506
13507         * src/SDCClrange.c, src/SDCClrange.h:
13508         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13509
13510         * src/ds390/ralloc.c:
13511         various fixes & enhancements (ds390) specific
13512
13513         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13514         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13515         from rallocs.
13516
13517         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13518
13519 2002-03-02    <johan AT FRIJA>
13520
13521         * src/SDCCast.c (decorateType): fixed bug #524708
13522
13523         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13524
13525         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13526
13527 2002-03-01  Michael Hope  <michaelh AT vroom>
13528
13529         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13530
13531         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13532
13533 2002-03-01    <johan AT FRIJA>
13534
13535         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13536
13537         * src/SDCCast.c (decorateType): fixed bug #524209
13538
13539         * src/SDCCval.c (valNot): fixed bug #524195
13540
13541 2002-02-26    <johan AT balder>
13542
13543         * src/xa51/gen.c: fixed a warning
13544
13545         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13546
13547         * src/SDCCast.c (decorateType): fixed bug #522534
13548
13549 2002-02-23    <johan AT balder>
13550
13551         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13552
13553 2002-02-22    <johan AT balder>
13554
13555         * src/SDCCast.c: fixed bug #514865
13556
13557         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13558
13559 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13560
13561         * sdcc/src/SDCCloop.c:
13562         Previous fix was not good. basic blocks that have "break" or "return" are
13563         not really partof a loop , but live ranges used in these blocks should
13564         be live thru the entire loop, so set partOfLoop but don't add them to
13565         loop region
13566
13567 2002-02-21    <johan AT FRIJA>
13568
13569         * src/SDCCcse.c: fixed bug #514308
13570
13571 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13572
13573         * src/SDCCloop.c:
13574         Fixed BUG #519583. If a conditional block ended in a return/break
13575         statement inside a loop, it was not being considered part of the loop.
13576
13577         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13578
13579 2002-02-10  Karl Bongers <karl AT turbobit.com>
13580
13581         * debugger/*:
13582         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13583         with lots of comments and notes.
13584
13585         * device/examples/test2.c:
13586         Fix bug, "red" variable not being initialized(compiler complained).
13587
13588         * device/examples/Makefile, examples/test3.c:
13589         Add Makefile in device/examples folder, compiles test3.c
13590         for use as a multiple module SDCDB test case.
13591
13592         * sim/ucsim/cmd.src/cmdset.cc:
13593         Took out debug printfs in ucsim "next" command.
13594
13595         * sim/ucsim/xa.src:
13596         Karl and Johan start ucsim XA support.  Most dissassembly working,
13597         about 75% emulation done(plenty of work remaining).
13598
13599         * sim/ucsim/z80.src:
13600         Add Z80 support to ucsim, add test-ucz80 regression test,
13601         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13602         Notice z80 compiler fails on examples/test3.c/crc code.
13603
13604 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13605
13606         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13607         Added support for --parms-in-bank1
13608
13609         * src/ds390/peeph.def:
13610         added a few more peephole optimzations
13611
13612         * src/ds390/main.c:
13613         1) added __builtin_inp & __builtin_outp used to read in data of given length
13614            from a memory mapped port
13615         2) added __builtin_memcmp
13616         3) added __builtin_swapw swap bytes of a short
13617
13618         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13619         1) handle multiple send & receives from register bank1
13620         2) ralloc can now allocate DPTR1 to some liveRanges
13621
13622         * src/SDCCsymt.c, src/SDCCsymt.h:
13623         changes to handle multiple sends & receives
13624
13625         * src/SDCCptropt.h:
13626         added some pointer arithmetic optimization
13627
13628         * src/SDCCptropt.c:
13629         added some pointer arithmetic optimizations but not stable yet so not
13630         called from anywhere (will get this working shortly)
13631
13632         * src/SDCCopt.c: fixed for multiple sends & receives
13633
13634         * src/SDCCmain.c:
13635         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13636         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13637            set preprocessor defines (depending on options)
13638
13639         * src/SDCCicode.c, src/SDCCicode.h:
13640         changes made to handle multiple sends & receives
13641
13642         * src/SDCCglobl.h:
13643         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13644
13645         * src/SDCCcse.c, src/SDCCcse.h:
13646         added function findbackward def (to be used in upcoming optimization)
13647
13648         * src/SDCCcflow.c, src/SDCCcflow.h:
13649         added function returnAtEnd - to determine if a basic block terminates with
13650         a RETURN iCode
13651
13652         * src/SDCCast.c, src/SDCCast.h:
13653         added option parms-in-bank1
13654
13655         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13656         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13657         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13658         adjusted for --parms-in-bank1 option
13659
13660         * device/include/string.h:
13661         donot redefine "reentrant" keyword
13662
13663         * device/include/ds80c390.h: Added some more SFRs
13664
13665 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13666
13667         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13668
13669 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13670
13671         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13672
13673 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13674
13675         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13676
13677 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13678
13679         * Added --xram-movc option
13680
13681 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13682
13683         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13684
13685 2002-01-11  Johan Knol
13686
13687         * Added math lib of Jesus Calvino-Fraga
13688
13689 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13690
13691         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13692         * support/regression/Makefile: new target test-mcs51-stack-auto
13693         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13694
13695 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13696
13697         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13698
13699 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13700
13701         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13702
13703 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13704
13705         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13706
13707         * src/SDCCglue.h: add definition for printIvalChar()
13708
13709 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13710
13711         * src/SDCCast.c: fix #498138 by Johan
13712
13713         * src/SDCCglue.c: fix #498138 by Johan
13714
13715 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13716
13717         * support/regression/Makefile: fix clean
13718
13719         * support/regression/ports/ds390/support.c: fix transmission of last character
13720
13721 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13722
13723         * /sdcc/src/ds390/gen.c:
13724         a) improved computing address of stack variable
13725         b) took out some #if 0 code
13726         c) improved parmBytes adjustment
13727         d) improved genPlusIncr & genMinusIncr
13728         e) genCmp could generate bad code (when left assigned to DPTR)
13729         f) Fixed bug in hasInc
13730
13731         * /sdcc/src/ds390/ralloc.c:
13732         a) packRegsForSupport could mess up live information (Fixed)
13733         b) packRegsDPTRuse could be incorrect for left & right shift
13734
13735         * /sdcc/src/mcs51/ralloc.c:
13736         packRegsForSupport could mess up the live information (Fixed)
13737
13738         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13739
13740         * /sdcc/src/SDCCast.c:
13741         can reverse a loop even if function call is present as long
13742         as the loop control variable is local & is not passed as parameter
13743
13744 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13745
13746         * /sdcc/ChangeLog: *** empty log message ***
13747
13748         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13749         More builtin function additions for TININative
13750
13751         * /sdcc/src/ds390/ralloc.c:
13752         Had broken the regression testsuite
13753
13754         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13755
13756         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13757         Added funcattr hasStackParms will be set for reentrant functions when there
13758         are paramteres on the stack, this helps in minimizing frame pointer generation
13759         typeFromStr can handle function pointers now
13760
13761         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13762         *** empty log message ***
13763
13764 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13765
13766         * /src/ds390/gen.c, /src/ds390/main.c:
13767         More builtin function additions for TININative
13768
13769         * /src/ds390/ralloc.c:
13770         Had broken the regression testsuite
13771
13772         * /src/SDCCast.c: Fixed a bug in dumptree
13773
13774         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13775         Added funcattr hasStackParms will be set for reentrant functions when there
13776         are paramteres on the stack, this helps in minimizing frame pointer generation
13777         typeFromStr can handle function pointers now
13778
13779         * /doc/builtins.txt, /doc/TININative.txt:
13780         *** empty log message ***
13781
13782
13783 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13784
13785         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13786         ALPHA version for -mTININative
13787
13788         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13789         updated to reflect changes in the port structure
13790
13791         * /src/port.h:
13792         added function do_assemble (similar to do_link) if non-null this function
13793         will be called to do assembly (-mTININative) requires a multi command
13794         assembly
13795         added function genAssemblerEnd will be called to generate assembler Epilogue
13796
13797         * /src/SDCCsymt.c:
13798         added _JavaNative to debug info printing
13799
13800         * /src/SDCCmain.c: added option --tini-libid
13801         added port->do_assemble function (-mTININative) has a multi command assemble
13802
13803         * /src/SDCCglue.c: Disabled "constExpr" check
13804         added port->genAssemblerEnd function
13805
13806         * /src/SDCCglobl.h: Added option --tini-libid value
13807
13808         * /src/SDCCast.h:
13809         tookout optimizeCompare from the header (has no external references)
13810
13811         * /src/SDCCast.c: made one more function "static"
13812
13813 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13814
13815         * src/z80/mappings.i: Added z80asm support.
13816
13817         * src/z80/main.c: Added z80asm support on --asm=z80asm
13818
13819         * src/z80/gen.c: Fixed asm portability issues.
13820
13821         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13822
13823         * src/SDCCglue.c (printExterns): Added global/extern split.
13824
13825 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13826
13827         * support/regression/Makefile: added test for mcs51 model large
13828
13829         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13830
13831         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13832
13833 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13834
13835         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13836
13837 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13838
13839         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13840
13841         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13842
13843 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13844
13845         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13846
13847         * support/regression/tests/simplefloat.c: Port to mcs51.
13848
13849 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13850         * support/regression/tests/bug-485362.c: Added.
13851
13852         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13853
13854         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13855
13856         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13857
13858         * src/z80/gen.c (aopDump): Added a dump function.
13859
13860 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13861         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13862
13863         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13864
13865         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13866
13867         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13868
13869         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13870
13871         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13872
13873         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13874
13875         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13876
13877         * support/regression/ports/ds390/support.c: Use tinibios.
13878
13879         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13880
13881 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13882
13883         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13884         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13885
13886         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13887
13888         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13889
13890 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13891
13892         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13893
13894         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13895         (packRegsForIYUse): Created and optimised.
13896
13897 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13898
13899         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13900 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13901
13902         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13903
13904         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13905
13906         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13907
13908 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13909
13910         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13911
13912         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13913
13914 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13915
13916         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13917
13918         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13919
13920         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13921
13922 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13923
13924         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13925         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13926         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13927
13928         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13929
13930         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13931         (genNotFloat): Added.
13932         (genUminusFloat): Added.
13933
13934         * device/lib/z80/Makefile: Added floating pt stubs.
13935
13936         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13937
13938         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13939
13940         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13941
13942 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13943
13944         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13945
13946         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13947
13948         * sdcc/support/regression/Makefile: Add port ds390.
13949
13950         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13951
13952         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13953
13954         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13955
13956         * sdcc/support/regression/ports/ds390/support.c: Added.
13957
13958         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13959
13960         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13961
13962         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13963
13964 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13965
13966         * device/include/malloc.h: Added z80 and gbz80 support.
13967
13968         * device/lib/gbz80/heap.s: Added.
13969
13970         * device/lib/z80/heap.s: Added.
13971
13972         * device/lib/malloc.c: Added z80 and gbz80 support.
13973
13974         * support/regression/tests/malloc.c (testMalloc): Added.
13975
13976         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13977
13978         * support/regression/tests/bug-478094.c: Added.
13979
13980         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13981
13982 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13983
13984         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13985
13986         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13987
13988         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13989
13990         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13991
13992         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13993
13994 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13995
13996         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13997
13998 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13999
14000         * support/regression/tests/bug-477927.c: Added.
14001
14002         * src/z80/peeph.def: Added minor rules.
14003
14004         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
14005
14006         * src/z80/peeph.def: Added jump optimisation modification.
14007
14008 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
14009
14010         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
14011
14012 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
14013
14014         * support/regression/tests/funptrs.c: Added.
14015
14016 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
14017
14018         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
14019
14020 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
14021
14022         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
14023
14024         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
14025
14026         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
14027         (movLeft2ResultLong): Created.
14028
14029         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
14030         (joinPushes): Added.  Joins two char pushes into a word push.
14031
14032 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
14033
14034         * support/cpp2/Makefile.in (install): Added creation of dest dir.
14035
14036         * support/makebin/Makefile (install): Added creation of dest dir.
14037
14038 2001-10-24 Karl Bongers <karl AT turbobit.com>
14039
14040         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
14041
14042 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
14043
14044         * src/z80/ralloc.c: Turned off faulty pack for one use.
14045
14046         * src/z80/peeph-gbz80.def: Removed redundent restart options.
14047
14048         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
14049
14050 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
14051
14052         * support/regression/Makefile: Improved clean
14053
14054         * support/regression/ports/gbz80/spec.mk: Added clean
14055
14056         * support/regression/ports/host/spec.mk: Added clean
14057
14058         * support/regression/ports/z80/spec.mk: Added clean
14059
14060         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
14061
14062         * support/regression/ports/mcs51/timeout.c: little improvements
14063
14064 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
14065
14066         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
14067
14068         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
14069
14070         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
14071
14072 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
14073
14074         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
14075
14076         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
14077
14078 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
14079         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
14080
14081         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
14082
14083         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
14084
14085         * src/mcs51/main.c (_linkCmd): Added bin path to command.
14086
14087         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
14088
14089         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
14090
14091         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14092
14093         * support/regression/tests/longor.c: Added.
14094
14095 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14096
14097         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14098
14099         * as/mcs51/aslink.h: define PATH_MAX
14100
14101         * as/mcs51/asm.h: define PATH_MAX
14102
14103         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14104
14105         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14106
14107         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14108
14109         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14110
14111         * src/SDCCglobl.h: define PATH_MAX
14112
14113         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14114
14115         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14116
14117 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14118
14119         * src/z80/gen.c (gencjneshort): Fixed
14120
14121         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14122
14123 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14124
14125         * support/regression/tests/bug-469671.c: Added.
14126
14127         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14128
14129 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14130
14131         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14132
14133         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14134
14135 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14136
14137         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14138
14139         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14140
14141         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14142
14143         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14144
14145         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14146
14147         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14148
14149         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14150
14151 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14152
14153         * 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.
14154
14155         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14156
14157         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14158
14159 2001-10-07    <johan AT FRIJA>
14160
14161         * device/lib/gets.c (gets): fixed the return value.
14162
14163 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14164         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14165
14166         * 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.
14167
14168         * 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.
14169
14170         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14171
14172         * src/pic/gen.c: Removed Safe_strdup.
14173
14174         * configure.in: Added option to enable libgc support.
14175
14176         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14177         (bitVectUnion): Optimised.
14178         (bitVectIntersect): Optimised.
14179         (bitVectBitsInCommon): Optimised.
14180         (bitVectCplAnd): Optimised.
14181
14182         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14183
14184 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14185
14186         * src/SDCCmain.c: distinguish between assembler debug and plain options
14187
14188         * src/avr/main.c:   remove standard assembler options
14189
14190         * src/ds390/main.c: remove standard assembler options
14191
14192         * src/mcs51/main.c: remove standard assembler options
14193
14194         * src/port.h: removed "PENDING" comment
14195
14196 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14197
14198         * src/device/lib/_mulint.c  : new, with assember functions
14199
14200         * src/device/lib/_mullong.c : new, with assember functions
14201
14202         * src/device/lib/_divuint.c : with assember functions
14203
14204         * src/device/lib/_divsint.c : with assember functions
14205
14206         * src/device/lib/_divulong.c: with assember functions
14207
14208         * src/device/lib/_divslong.c: with assember functions
14209
14210         * src/device/lib/_moduint.c : with assember functions
14211
14212         * src/device/lib/_modsint.c : with assember functions
14213
14214         * src/device/lib/_modulong.c: with assember functions
14215
14216         * src/device/lib/_modslong.c: with assember functions
14217
14218         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14219
14220         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14221
14222         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14223                                       replaced _mululong.c and _mulslong.c by _mullong.c
14224
14225 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14226
14227         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14228
14229 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14230
14231         * src/SDCCglue.c: test, if win32api is available for MINGW
14232
14233 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14234
14235         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14236         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14237         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14238         * support/regression/ports/host/spec.mk: removed GENERIC
14239         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14240         * support/regression/ports/z80/spec.mk: removed GENERIC
14241
14242 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14243
14244         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14245
14246         * support/regression/tests/bug-467035.c: Created.
14247
14248 2001-10-01    <johan AT FRIJA>
14249
14250         * src/SDCC.y: fixed bug #466586 part 1
14251
14252 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14253
14254         * SDCCicode.c: z80 has no generic pointers
14255         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14256
14257 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14258
14259         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14260
14261 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14262
14263         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14264
14265         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14266
14267 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14268
14269         * configure.in: Fixed up so that ucsim is only configured once.
14270
14271         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14272
14273         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14274         (getPathDifference): As above.
14275
14276         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14277
14278         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14279
14280 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14281         * .version: Updated to 2.3.1
14282
14283         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14284         Added copyright header.
14285
14286         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14287         (assemble): Added support for macro based assembler commands.
14288         (linkEdit): Added support for macro based linker commands.
14289         (preProcess): Changed the pre-processor to use macros.
14290         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14291         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14292
14293         * device/lib/z80/crt0.s: Added module name for debugging.
14294
14295 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14296
14297         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14298
14299         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14300
14301         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14302
14303         * src/Makefile.in: Added SDCCmacro and SDCCutil
14304
14305 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14306
14307         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14308
14309 2001-09-16    <johan AT FRIJA>
14310
14311         * 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.
14312
14313 2001-09-15    <johan AT FRIJA>
14314
14315         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14316         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14317
14318 2001-09-11    <johan AT FRIJA>
14319
14320         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14321
14322 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14323
14324         * support/regression/tests/bug-460444.c: Added test case.
14325
14326         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14327         (genCast): Added justification for all of the asserts.
14328
14329 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14330
14331         * support/regression/support.c: _xdata replaced by xdata
14332
14333         * support/regression/spec.mk: removed _generic
14334
14335 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14336
14337         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14338
14339         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14340         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14341
14342         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14343
14344         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14345
14346         * support/regression/tests/bug-460010.c: Added test case.
14347
14348         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14349
14350 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14351
14352         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14353
14354         * support/regression/testfwk.c: removed workaround for bug #436344
14355
14356         * support/regression/tests/bp.c: use less memory with mcs51
14357
14358         * support/regression/tests/bug-441448.c: use less memory
14359
14360         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14361
14362         * support/regression/collate-results.py: typo
14363
14364 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14365
14366         * support/regression/tests/fetchoverlap.c: Added new test case.
14367
14368         * support/regression/tests/bp.c: Added new test case.
14369
14370         * support/regression/tests/bug-448984.c: Added new test case.
14371
14372         * support/regression/tests/pow2shifts.c: Added new test case.
14373
14374         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14375         (genlshTwo): Fixed right shift for count > 8.
14376
14377         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14378
14379 2001-09-08    <johan AT FRIJA>
14380
14381         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14382
14383 2001-09-07    <johan AT FRIJA>
14384
14385         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14386
14387         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14388
14389 2001-09-06    <johan AT FRIJA>
14390
14391         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14392         * bernhard noted me at this: "() equals to (void)" (1.38)
14393
14394 2001-09-05    <johan AT FRIJA>
14395
14396         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14397
14398 2001-09-04    <johan AT FRIJA>
14399
14400         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14401
14402
14403 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14404
14405         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14406
14407 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14408
14409         * link/z80/aslink.h: Fixed path for PATH_MAX
14410
14411 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14412
14413         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14414
14415         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14416
14417         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14418
14419         * 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.
14420
14421 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14422
14423         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14424         (genCmp): Fixed up genCmp for the GB with longs.
14425
14426         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14427
14428         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14429
14430         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14431
14432         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14433
14434 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14435
14436         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14437
14438 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14439
14440         * 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.
14441
14442         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14443
14444 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14445
14446         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14447
14448         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14449
14450 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14451
14452   * sim/ucsim/configure:    little improvement of Cygwin-detection
14453   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14454   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14455   * support/regression/tests/bug-221100.c: small changes for mcs51
14456   * support/regression/tests/bug-221168.c: small changes for mcs51
14457   * support/regression/tests/bug-227710.c: small changes for mcs51
14458   * support/regression/tests/staticinit.c: small changes for mcs51
14459   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14460   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14461   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14462
14463 $Revision$