* device/include/pic16/pic18fregs.h,
[fw/sdcc] / ChangeLog
1 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * device/include/pic16/pic18fregs.h,
4         * device/lib/_bp.c,
5         * device/lib/_decdptr.c,
6         * device/lib/_divsint.c,
7         * device/lib/_divslong.c,
8         * device/lib/_divuint.c,
9         * device/lib/_divulong.c,
10         * device/lib/_fs2schar.c,
11         * device/lib/_fs2sint.c,
12         * device/lib/_fs2slong.c,
13         * device/lib/_fs2uchar.c,
14         * device/lib/_fs2uint.c,
15         * device/lib/_fs2ulong.c,
16         * device/lib/_fsadd.c,
17         * device/lib/_fscmp.c,
18         * device/lib/_fsdiv.c,
19         * device/lib/_fseq.c,
20         * device/lib/_fsget1arg.c,
21         * device/lib/_fsget2args.c,
22         * device/lib/_fsgt.c,
23         * device/lib/_fslt.c,
24         * device/lib/_fsmul.c,
25         * device/lib/_fsneq.c,
26         * device/lib/_fsnormalize.c,
27         * device/lib/_fsreturnval.c,
28         * device/lib/_fsrshift.c,
29         * device/lib/_fssub.c,
30         * device/lib/_fsswapargs.c,
31         * device/lib/_gptrget.c,
32         * device/lib/_gptrgetc.c,
33         * device/lib/_gptrput.c,
34         * device/lib/_logexpf.c,
35         * device/lib/_modsint.c,
36         * device/lib/_modslong.c,
37         * device/lib/_moduint.c,
38         * device/lib/_modulong.c,
39         * device/lib/_mulint.c,
40         * device/lib/_mullong.c,
41         * device/lib/_schar2fs.c,
42         * device/lib/_ser.c,
43         * device/lib/_setjmp.c,
44         * device/lib/_sint2fs.c,
45         * device/lib/_slong2fs.c,
46         * device/lib/_spx.c,
47         * device/lib/_uchar2fs.c,
48         * device/lib/_uint2fs.c,
49         * device/lib/_ulong2fs.c,
50         * device/lib/asincosf.c,
51         * device/lib/atanf.c,
52         * device/lib/calloc.c,
53         * device/lib/ds390/tinibios.c,
54         * device/lib/ds400/tinibios.c,
55         * device/lib/expf.c,
56         * device/lib/free.c,
57         * device/lib/hc08/_mulint.c,
58         * device/lib/logf.c,
59         * device/lib/malloc.c,
60         * device/lib/printf_fast.c,
61         * device/lib/printf_tiny.c,
62         * device/lib/printfl.c,
63         * device/lib/realloc.c,
64         * device/lib/ser_ir.c,
65         * device/lib/serial.c,
66         * support/regression/tests/libmullong.c: replaced all special keywords
67           with their double underscore equivalent
68         * support/regression/ports/mcs51-xstack-auto/spec.mk,
69         * device/lib/Makefile.in: compile libs with --std-c99 instead of
70           --std-sdcc99
71         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
72           (genRet): if the bit-symbol is ruonly it already is in the carry
73         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
74         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
75         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
76           type UCHAR if dest is not bit
77
78 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
79
80         * device/include/math.h,
81         * device/lib/cotf.c,
82         * device/lib/expf.c,
83         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
84
85 2007-04-01 Borut Razem <borut.razem AT siol.net>
86
87         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
88           fixed bug #1692042: input buffer overflow...scanner uses REJECT
89         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
90           gcc_unreachable() called internal_error()...
91
92 2007-03-30 Raphael Neider <rneider AT web.de>
93
94         * src/pic/ralloc.c (isData): suppress garbage debug output4/1/2007 6:28PM
95
96 2007-03-28 Borut Razem <borut.razem AT siol.net>
97
98         * doc/sdccman.lyx:
99           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
100           is developed, built and used worldwide, and the word "night" doesn't
101           make any sense.
102
103 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
104
105         * device/include/mcs51/C8051F360.h: new, added
106         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
107
108 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
109
110         * src/SDCC.y (declaration_specifiers, function_specifier),
111         * support/Util/SDCCerr.c,
112         * support/Util/SDCCerr.h,
113         * src/SDCCsymt.h,
114         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
115           inline keyword
116         * src/SDCCmem.c (deallocParms),
117         * src/SDCCast.c: support for function inlining, not quite complete
118         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
119           'restrict' qualifier
120
121 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
122
123         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
124           (saveRBank, unsaveRBank): don't save bits,
125           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
126         * support/regression/tests/bug1535242.c: new, added
127         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
128           thanks Alexey Shamrin <shamrin AT gmail.com>,
129           made assert.h header ANSI compliant (added a check for NDEBUG macro,
130           removed header guard)
131         * .version,
132         * sdcc.spec: bumped version to 2.6.5
133         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
134
135 2007-03-22 Borut Razem <borut.razem AT siol.net>
136
137         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
138           fixed bug #1653671: sdcdb integration into ddd is broken
139
140 2007-03-22 Raphael Neider <rneider AT web.de>
141
142         * src/pic/gen.c (popGetExternal): augmented to also create references
143           to external variables (not only labels),
144           (genCall): comment on plan to reduce PAGESEL overhead,
145           (genFunction, genEndFunction): also save/restore FSR around interrupt
146           handling code, removed lots of unused code
147           (genDivOneByte): release acquired temp register
148         * src/pic/glue.c (pic14createInterruptVect): adadt to new signature
149           of popGetExternal
150         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
151           for registers that need to be saved during interrupts (FSR, STATUS,
152           PCLATH; W needs special handling), currently only FSR is used
153
154 2007-03-22 Raphael Neider <rneider AT web.de>
155
156         * device/include/pic/pic14devices.txt: 16f688 has only one config word
157
158 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
159
160         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
161
162 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
163
164         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
165
166 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
167
168         * as/link/aslink.h: added LKOBJEXT
169         * as/link/hc08/link_hc08.dsp,
170         * as/link/hc08/Makefile.bcc,
171         * as/link/hc08/Makefile.in,
172         * as/link/mcs51/aslink.dsp,
173         * as/link/mcs51/Makefile.bcc,
174         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
175         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
176         * as/link/lkaomf51.c: merged and moved
177         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
178         * as/link/z80/lkdata.c,
179         * as/link/lkdata.c: merged and moved
180         * as/link/hc08/lkmain.c,
181         * as/link/mcs51/lkmain.c: cosmetic changes
182         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
183         * as/link/lklex.c: use LKOBJEXT
184         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
185           ANSI-fied functions, removed bubble-sorts
186         * as/link/z80/lksym.c           as/link/lksym.c: merged,
187           ANSI-fied functions
188         * as/link/z80/linkgbz80.dsp,
189         * as/link/z80/linkz80.dsp,
190         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
191           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
192         * as/link/z80/lkhead.c,
193         * as/link/z80/lklex.c: deleted
194         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
195         * as/link/z80/lkmain.c: added copyfile()
196
197 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
198
199         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
200
201 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
202
203         * device/lib/_strlen.c: assembler version for mcs51
204
205 2007-03-13 Raphael Neider <rneider AT web.de>
206
207         * device/include/pic16/pic18f2221.h,
208         * device/include/pic16/pic18f2321.h,
209         * device/include/pic16/pic18f2331.h,
210         * device/include/pic16/pic18f4221.h,
211         * device/include/pic16/pic18f4321.h,
212         * device/include/pic16/pic18f4331.h: fixed config byte location names
213         * support/scripts/inc2h-pic16.pl: removed debug output, emit
214           consistently named config byte locations
215
216 2007-03-13 Borut Razem <borut.razem AT siol.net>
217
218         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
219           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
220           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
221           as/link/z80/Makefile.in, as/z80/Makefile.in:
222           introduced LDFLAGS
223
224 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
225
226         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
227         * device/lib/printf_large.c: pointer was converted to generic
228         pointer for mcs51 models other than model-small (Maarten noticed)
229
230 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
231
232         * device/include/mcs51/ADuC84x.h: Added.
233
234 2007-03-10 Borut Razem <borut.razem AT siol.net>
235
236         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
237           fixed RFE #1624219: double backslashes in filenames;
238           functions hexEscape(), octalEscape() and copyStr() moved from
239           SDCCval.c to SDCCutil.c and made them glovbally available
240
241 2007-03-09 Borut Razem <borut.razem AT siol.net>
242
243         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
244           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
245           1673361: Missaligned comments in output files
246
247 2007-03-09 Raphael Neider <rneider AT web.de>
248
249         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
250
251 2007-03-09 Raphael Neider <rneider AT web.de>
252
253         * src/pic/gen.c,
254         * src/pic/glue.c,
255         * src/pic/ralloc.c: suppress undesired debug output
256         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
257
258 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
259
260         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
261
262 2007-03-07 Borut Razem <borut.razem AT siol.net>
263
264         * device/lib/pic16/libdev/pic18f[24][34]31.c:
265           search include files in the current directory
266
267 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
268
269         * src/SDCCglue.c (emitMaps, glue),
270         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
271           absolute xdata
272         * support/regression/tests/absolute.c: added xdata test
273
274 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
275
276         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
277           added condition to macro, fixes bug 1666080
278
279 2007-03-02 Raphael Neider <rneider AT web.de>
280
281         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
282
283 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
284
285         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
286         be cleared. Unconditionally set __XPAGE
287         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
288
289 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
290
291         * src/SDCCglobl.h,
292         * src/SDCCmain.c,
293         * src/mcs51/gen.c,
294         * src/mcs51/rtrack.c,
295         * src/ds390/gen.c,
296         * doc/sdccman.lyx: added --no-gen-comments
297         * src/mcs51/peeph.def: added 192.b, disabled 185
298
299 2007-02-25 Raphael Neider <rneider AT web.de>
300
301         * src/pic16/gen.c (genCast): fixed typo
302         * device/lib/pic16/Makefile.subdir: only install existing files
303         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
304
305 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
306
307         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
308         * device/lib/mcs51/crtclear.asm,
309         * device/lib/mcs51/crtxclear.asm: renumbered labels
310         * device/lib/mcs51/Makefile.in: added crtcall.asm
311         * doc/sdccman.lyx: documented mcs51 crt* library startup code
312         * src/mcs51/gen.c (movc): removed,
313           (aopGet, genPlusBits): clear a after loading the carry (possibly from
314             acc.x or psw.x),
315           (toCarry, genSend, genRet): added function toCarry,
316           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
317           (assignBit, genAssign, genCast): added function assignBit
318         * src/mcs51/Makefile.bcc: added rtrack.c
319         * src/mcs51/ralloc.h: made valueKnown a bitfield
320         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
321           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
322           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
323         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
324         * src/z80/gen.c: added AOP_IS_PAIRPTR,
325           (_pop): only pop valid pairs, see gencjneshort,
326           (gencjneshort): return pair that still needs to be popped, restructured,
327           (gencjne, genCmpEq): call _pop
328
329 2007-02-23 Raphael Neider <rneider AT web.de>
330
331         * device/include/pic/pic14devices.txt: 16f684 has only one config word
332
333 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
334
335         * device/include/mcs51/P89LPC925.h: Added.
336
337 2007-02-18 Raphael Neider <rneider AT web.de>
338
339         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
340
341 2007-02-17 Borut Razem <borut.razem AT siol.net>
342
343         * support/cpp2/directives.c, support/cpp2/version.c:
344           synchronized with GCC CPP 4.1.2
345
346 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
347
348         * src/mcs51/rtrack.h,
349         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
350           by checking the strings passed by emitcode() to the assembler.
351           Feel free to change. This in part addresses RFE #482179.
352           Set environment variable SDCC_RTRACK to enable.
353         * src/mcs51/gen.c: inserted hooks
354         * src/mcs51/ralloc.h: added two members to struct regs
355         * support/regression/tests/regtrack.c: added
356
357 2007-02-14 Borut Razem <borut.razem AT siol.net>
358
359         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
360         * Makefile.in: applied patch from Makefile related part of
361           #1469393: Compiler does not initialize static data
362
363 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
364
365         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
366           for better fix of bug 1273984, compiles pic16 rand.c
367
368 2007-02-12 Borut Razem <borut.razem AT siol.net>
369
370         * src/pic16/main.c: fixed pic16 standard library directory bug
371
372 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
373
374         * src/hc08/gen.c (genSwap): fix swap regression test
375
376 2007-02-10 Borut Razem <borut.razem AT siol.net>
377
378         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
379           with same scope
380         * support/regression/tests/bug-1654060.c: added regression test for
381           #1654060
382
383 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
384
385         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
386         bit moves in return statement
387
388 2007-02-09 Borut Razem <borut.razem AT siol.net>
389
390         * src/SDCC.y: fixed bug #1654060 typedef within function causes
391           syntax error
392
393 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
394
395         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
396         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
397
398 2007-02-07 Raphael Neider <rneider AT web.de>
399
400         * src/pic16/devices.inc,
401         * device/include/pic16/pic18fregs.h,
402         * device/include/pic16/pic18f[24][34]31.h,
403         * device/lib/pic16/libdev/pic18f[24][34]31.c,
404         * device/lib/pic16/pics.all: added 18f[24][34]31 family
405         * device/lib/pic16/libio/i2c.ignore: do not build i2c
406
407 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
408
409         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
410           can this have lived here for so many years?
411         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
412           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
413         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
414
415 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
416
417         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
418         appended by loop induction must be at the very end of the eBBlock
419
420 2007-02-05 Kevin Vigor
421
422         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
423
424 2007-02-05 Borut Razem <borut.razem AT siol.net>
425
426         * support/regression/fwk/lib/timeout.c: native WIN32 port,
427           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
428
429 2007-02-03 Borut Razem <borut.razem AT siol.net>
430
431         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
432           applied patch #1646602 option to set default signedness of char to
433           unsigned, added -funsigned-char command line option,
434           thanks to Gunther Jehle
435         * device/lib/Makefile.in: added the -f option to rm so it doesn't
436           prompt for file deletion a few hundred times (especially the
437           subversion files, which have ro permissions so it asks for
438           confirmation), thanks to Simon McAuliffe;
439           added {} + option to find in order to remove multiple files from a
440           single rm commad
441
442 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
443
444         * device/include/mcs51/SST89x5xRDx.h: Added.
445
446 2007-02-02 Raphael Neider <rneider AT web.de>
447
448         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
449         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
450
451 2007-02-01 Raphael Neider <rneider AT web.de>
452
453         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
454           config words again
455
456 2007-01-31 Borut Razem <borut.razem AT siol.net>
457
458         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
459           if compiled with GCC. Thanks to Raphael Neider
460
461 2007-01-31 Raphael Neider <rneider AT web.de>
462
463         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
464             operand names, handles name and (name + n) for all n,
465           (sameBank): restructured, also check bank allocation policy,
466         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
467           (pic14_operandsAllocatedInSameBank): check whether to operands
468             will be allocated into the same bank (i.e., section) to reduce
469             BANKSEL overhead, queried from pcode.c:sameBank,
470           (pic14printLocals): reintroduced clustering registers into a single
471             section: all compiler generated symbols will now reside in one
472             bank (per file), reducing BANKSEL overhead and code size,
473           (showAllMemmaps): use local dbuf where possible
474
475 2007-01-29 Raphael Neider <rneider AT web.de>
476
477         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
478           (call_libraryfunc): retrieve/create symbol and mark as used,
479           (genFunction): mark defined functions as non-extern and add again
480            to code memmap for later output
481         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
482           (pic14printLocals): reworked for new symbol emission,
483           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
484           showAllMemmaps): reworked symbol output using dbufs, added handling
485             of string literals (still incomplete),
486           (picglue): removed symbol emission, moved into showAllMemmaps,
487           (emitSymbolSet): new workhorse for symbol output,
488           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
489
490 2007-01-29 Borut Razem <borut.razem AT siol.net>
491
492         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
493           component contains the extension separator.
494
495 2007-01-28 Borut Razem <borut.razem AT siol.net>
496
497         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
498           on WIN32
499         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
500           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
501           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
502           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
503           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
504           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
505           src/z80/gen.c, support/Util/MySystem.c:
506           accept slash and backslash as directory separator on WIN32 and
507           Cygwin ports
508
509 2007-01-28 Raphael Neider <rneider AT web.de>
510
511         * src/pic16/devices.inc,
512         * device/include/pic16/pic18f[24][23]21.h,
513         * device/include/pic16/pic18fregs.h,
514         * device/lib/pic16/libdev/pic18f[24][23]21.c,
515         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
516         * device/lib/pic16/libio/adc.ignore,
517         * device/lib/pic16/libio/i2c.ignore,
518         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
519           family, as gputils do not yet support the devices
520         * device/lib/pic16/Makefile.subdir: ignore errors on install
521         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
522           headers and libraries from gputils .inc files
523
524 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
525
526         * doc/sdccman.lyx: add printf_fast_f precision limitation note
527
528 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
529
530         * doc/sdccman.lyx: add printf benchmarks
531
532 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
533
534         * device/lib/printf_fast.c: fix %c, char promoted to int
535         * device/lib/printf_tiny.c: fix %c, char promoted to int
536
537 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
538
539         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
540
541 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
542
543         * support/regression/tests/swap.c: 64 bit hosts failed
544         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
545
546 2007-01-25 Raphael Neider <rneider AT web.de>
547
548         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
549           based on absolute register address, patch by Alex Blond
550
551 2007-01-22 Raphael Neider <rneider AT web.de>
552
553         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
554           emitted, do not emit them again...
555
556 2007-01-22 Raphael Neider <rneider AT web.de>
557
558         * src/regression/bank1.c, src/regression/compare6.c,
559           src/regression/add.c: cosmetic changes
560         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
561         * src/pic/gen.c: fixed global zero and one,
562           (aopForSym): removed unued code,
563           (aopGet): assert aop is defined, check and use `index' of
564             pCodeImmd operands (fixes #1630908),
565         * src/pic/pcode.c (get_op): added output of generic pointer tag,
566           (register_reassign): prevent accidental register unification,
567           (ReuseReg): cosmetic changes (also above)
568         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
569           pic14emitStaticSeg): do not emit initialized data,
570           (printIval*): replaced with working versions,
571           (pic14createInterruptVect,picglue): use idata for initialized data,
572             now init data should work in all modules (not only main()),
573         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
574
575 2007-01-21 Borut Razem <borut.razem AT siol.net>
576
577         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
578           use -fPIC or -fpic if they are supported and not ignored
579         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
580         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
581
582 2007-01-20 Borut Razem <borut.razem AT siol.net>
583
584         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
585           implemented RFE #1470316: allow "$" in variable names
586
587 2007-01-20 Raphael Neider <rneider AT web.de>
588
589         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
590
591 2007-01-20 Raphael Neider <rneider AT web.de>
592
593         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
594         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
595         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
596         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
597           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
598         * device/lib/pic/libdev/pic*.c,
599         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
600         * device/lib/pic/libdev/Makefile.in: show progress
601
602 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
603
604         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
605         * support/scripts/sdcc_cygwin_mingw32,
606         * support/scripts/sdcc_mingw32,
607         * support/scripts/build.mak: replaced --datadir by --datarootdir for
608         conformance with autoconf 2.6
609
610 2007-01-19 Raphael Neider <rneider AT web.de>
611
612         * src/pic/device.c (register_map): fixed list construction
613         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
614           (genMod): removed case for genModbits,
615           (genModbits): removed as now unused/unimplemented
616         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
617
618 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
619
620         * support/regression/tests/swap.c: added in response to #1638622
621         * doc/sdccman.lyx: synced version, minor changes
622
623 2007-01-18 Borut Razem <borut.razem AT siol.net>
624
625         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
626           thanks to Gunther Jehle
627         * src/asm.c: don't die if the file drfined in #line couldn't be opened
628         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
629           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
630           use filename in lineno instead.
631         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
632           print the file name in ast_print()
633
634 2007-01-18 Borut Razem <borut.razem AT siol.net>
635
636         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
637           defined in MSVC
638         * src/SDCC.lex: stringLiteral() returns const char pointer,
639           EOF detection in stringLiteral(), fixed asmbuf memory leak,
640           fixed column counting
641         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
642           accept const char pointer as parameter
643         * src/SDCCdwarf2.c: corrected buffer size
644
645 2007-01-17 Borut Razem <borut.razem AT siol.net>
646
647         * support/Util/dbuf_string.c: fixed for amd64
648
649 2007-01-15 Borut Razem <borut.razem AT siol.net>
650
651         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
652           removed terminal symbol ELIPSIS, since it was never generated by the
653           lexer and it was wrongly used in parameter_identifier_list rule
654
655 2007-01-15 Raphael Neider <rneider AT web.de>
656
657         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
658             code page and data banking description
659         * src/pic/genarith.c,
660         * src/pic/gen.h: removed bit arithmetic functions,
661             updated exit(1) to exit(EXIT_FAILURE)
662         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
663         * device/include/pic16/pic18f2455.h,
664         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
665             TRISD and TRISE, fixed/added some bit names
666         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
667         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
668             updated pic18f2455.{c,h} instead of duplicating them
669
670 2007-01-14 Borut Razem <borut.razem AT siol.net>
671
672         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
673           Cannot debug files that contain spaces in the path name
674           by converting spaces in asm file name to underscores
675
676 2007-01-13 Borut Razem <borut.razem AT siol.net>
677
678         * doc/sdccman.lyx: fixed format errors
679
680 2007-01-10 Borut Razem <borut.razem AT siol.net>
681
682         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
683           codeseg/constseg #pragma fail
684         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
685         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
686           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
687           suppoprt/cpp2/sdcpp.[ch]: house cleaning
688
689 2007-01-09 Borut Razem <borut.razem AT siol.net>
690
691         * get rid of diagnistic.[ch], pretty-print.[ch],
692           c-pretty-print.[ch], ... used just for error, warning, ...
693           message formatting
694         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
695           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
696           suppoprt/cpp2/pretty-print.[ch]:
697           removed
698         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
699           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
700           suppoprt/cpp2/sdcpp.dsp:
701           changed
702
703 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
704
705         * device/lib/printf_large.c (output_float): removed recursion,
706           use smaller buffer on stack for mcs51,
707           fixed bug printing 1.96
708         * support/regression/tests/snprintf.c: added test
709
710 2007-01-07 Borut Razem <borut.razem AT siol.net>
711
712         * use dynamic memory buffers instead temporary files
713         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
714           added
715         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
716           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
717           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
718           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
719           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
720           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
721           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
722           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
723           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
724           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
725           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
726           support/Util/dbuf.c, support/Util/dbuf.h:
727           modified
728         * .version, sdcc.spec: bumped version to 2.6.4
729
730 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
731
732         * src/port.h: added TARGET_Z80_LIKE macro
733         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
734           output PSEG location if --xram-loc or --xstack-loc was used
735         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
736
737 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
738
739         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
740         * as/as_z80.dsp,   as/z80/as_z80.dsp,
741         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
742         * sdcc.dsw: moved project files into subdir
743         * as/hc08/as_hc08.dsp,
744         * as/hc08/Makefile.bcc,
745         * as/hc08/Makefile.in,
746         * as/mcs51/Makefile.bcc,
747         * as/mcs51/Makefile.in,
748         * as/z80/Makefile.bcc,
749         * as/z80/Makefile.in,
750         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
751         * as/hc08/asm.h,
752         * as/mcs51/asm.h,
753         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
754         * as/hc08/asmain.c,
755         * as/hc08/assym.c,
756         * as/mcs51/asmain.c,
757         * as/mcs51/assym.c,
758         * as/z80/assym.c: removed include "strcmpi.h"
759         * as/hc08/strcmpi.c,
760         * as/hc08/strcmpi.h,
761         * as/mcs51/strcmpi.c,
762         * as/mcs51/strcmpi.h,
763         * support/Util/strcmpi.c,
764         * support/Util/strcmpi.h: removed files
765         * as/strcmpi.c: added as_strncmpi()
766
767 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
768
769         * sdcc.dsw: Added some dependencies on project config.dsp
770
771 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
772
773         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
774           with [di]ram_start to fix a regresion
775
776 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
777
778         * configure.in: added missing mcs51 in status output
779         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
780         directory
781         * debugger/mcs51/clean.mk (distclean): remove config.h
782         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
783         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
784         options.h, s-options-h and options.c
785         * support/cpp2/clean.mk: unused, removed
786         * Makefile.common.in,
787         * main_in.mk,
788         * as/Makefile.in,
789         * as/hc08/Makefile.in,
790         * as/hc08/clean.mk,
791         * as/mcs51/Makefile.in,
792         * as/mcs51/clean.mk,
793         * as/z80/clean.mk,
794         * as/z80/conf.mk,
795         * as/z80/Makefile.in,
796         * as/z80/clean.mk,
797         * as/link/Makefile.in,
798         * as/link/hc08/Makefile.in,
799         * as/link/hc08/clean.mk,
800         * as/link/mcs51/Makefile.in,
801         * as/link/mcs51/clean.mk,
802         * as/link/z80/Makefile.in,
803         * as/link/z80/clean.mk,
804         * as/link/z80/conf.mk,
805         * debugger/mcs51/Makefile.in,
806         * debugger/mcs51/clean.mk,
807         * device/include/Makefile.in,
808         * device/lib/Makefile.in,
809         * device/lib/mcs51/Makefile.in,
810         * device/lib/pic/Makefile.in,
811         * device/lib/pic/Makefile.common.in,
812         * device/lib/pic/Makefile.subdir,
813         * device/lib/pic/Makefile.rules,
814         * device/lib/pic16/libio/Makefile.in,
815         * device/lib/pic16/Makefile.subdir,
816         * device/lib/pic16/libdev/Makefile.in,
817         * device/lib/pic16/Makefile.rules,
818         * device/lib/pic16/Makefile.common.in,
819         * sim/ucsim/avr.src/Makefile.in,
820         * sim/ucsim/main_in.mk,
821         * sim/ucsim/cmd.src/Makefile.in,
822         * sim/ucsim/doc/Makefile.in,
823         * sim/ucsim/gui.src/Makefile.in,
824         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
825         * sim/ucsim/gui.src/serio.src/Makefile.in,
826         * sim/ucsim/hc08.src/Makefile.in,
827         * sim/ucsim/libltdl/Makefile.in,
828         * sim/ucsim/s51.src/Makefile.in,
829         * sim/ucsim/sim.src/Makefile.in,
830         * sim/ucsim/sim.src/conf.mk,
831         * sim/ucsim/xa.src/Makefile.in,
832         * sim/ucsim/z80.src/Makefile.in,
833         * src/Makefile.in,
834         * src/clean.mk,
835         * src/port.mk,
836         * support/cpp2/Makefile.in,
837         * support/librarian/Makefile.in,
838         * support/librarian/clean.mk,
839         * support/makebin/Makefile.in,
840         * support/makebin/clean.mk,
841         * support/packihx/Makefile.in,
842         * support/regression/Makefile.in,
843         * support/regression/ports/ds390/spec.mk,
844         * support/regression/ports/gbz80/spec.mk,
845         * support/regression/ports/hc08/spec.mk,
846         * support/regression/ports/mcs51/spec.mk,
847         * support/regression/ports/mcs51-large/spec.mk,
848         * support/regression/ports/mcs51-medium/spec.mk,
849         * support/regression/ports/mcs51-xstack-auto/spec.mk,
850         * support/regression/ports/pic14/spec.mk,
851         * support/regression/ports/pic16/spec.mk,
852         * support/regression/ports/mcs51-stack-auto/spec.mk,
853         * support/regression/ports/ucz80/spec.mk,
854         * support/regression/ports/xa51/spec.mk,
855         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
856         adding a slash after $(top_builddir) and/or adding @datarootdir@
857         * configure.in,
858         * debugger/mcs51/configure.in,
859         * device/lib/pic/configure.in,
860         * device/lib/pic16/configure.in,
861         * sim/ucsim/configure.in,
862         * support/cpp2/configure.in,
863         * support/packihx/configure.in: changed AC_PREREQ to 2.60
864         * configure,
865         * debugger/mcs51/configure,
866         * device/lib/pic/configure,
867         * device/lib/pic16/configure,
868         * sim/ucsim/configure,
869         * support/cpp2/configure,
870         * support/packihx/configure: generated with autoconf 2.60
871
872 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
873
874         * as/link/hc08/lkihx.c (newArea),
875         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
876
877 2007-01-02 Borut Razem <borut.razem AT siol.net>
878
879         * doc/sdccman.lyx: documented #pragma sdcc_hash
880         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
881           initialized to 0
882         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
883
884 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
885
886         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
887         empty 'while'-loop to work correctly, see regression test 'while.c'
888         * support/regression/tests/while.c: added
889
890 2007-01-01 Borut Razem <borut.razem AT siol.net>
891
892         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
893           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
894           support/cpp2/libcpp/sdcpp.c:
895           sdcpp specific pragma/directive/option handling moved to sdcpp.c
896         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
897         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
898
899 2006-12-31 Borut Razem <borut.razem AT siol.net>
900
901         * SDCPP synchronized with GCC CPP release version 4.1.1,
902           currently the latest release:
903         * support/cpp2/libcpp, support/cpp2/libcpp/include,
904           support/cpp2/libcpp/include/cpp-id-data.h
905           support/cpp2/libiberty/fopen_unlocked.c
906           support/cpp2/libiberty/md5.c
907           support/cpp2/md5.h
908           support/cpp2/opt-functions.awk
909           support/cpp2/opt-gather.awk
910           support/cpp2/optc-gen.awk
911           support/cpp2/opth-gen.awk:
912           added
913         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
914           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
915           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
916           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
917           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
918           support/cpp2/diagnostic.h, support/cpp2/except.h,
919           support/cpp2/hwint.h, support/cpp2/input.h,
920           support/cpp2/intl.h, support/cpp2/move-if-change,
921           support/cpp2/opts.c, support/cpp2/opts.h,
922           support/cpp2/output.h, support/cpp2/prefix.c,
923           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
924           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
925           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
926           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
927           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
928           support/cpp2/version.c:
929           modified
930         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
931           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
932           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
933           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
934           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
935           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
936           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
937           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
938           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
939           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
940           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
941           moved
942         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
943           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
944           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
945           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
946           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
947           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
948           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
949           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
950           support/cpp2/hashtable.h, support/cpp2/line-map.c,
951           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
952           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
953           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
954           support/cpp2/system.h:
955           deleted / moved
956
957 2006-12-31 Borut Razem <borut.razem AT siol.net>
958
959         * configure.in, configure: fixed bug #1538756: configure dies if bison
960           and flex are not installed, 2nd try
961
962 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
963
964         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
965         400.x for better code in RFE 899102
966
967 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
968
969         * src/SDCCpeeph.c (deadMove),
970         * src/port.h,
971         * src/mcs51/peep.h: renamed 'op' by 'reg'
972         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
973         (scan4op): small change for removeDeadMove(), added support for
974         'callee saves' and/or PACLL function calls,
975         (removeDeadMove): added, removes superflous 'mov r%1,%2',
976         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
977         left in new dispatcher mcs51DeadMove()
978         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
979         removeDeadMove()
980         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
981
982 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
983
984         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
985           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
986
987 2006-12-30 Borut Razem <borut.razem AT siol.net>
988
989         * support/cpp2/spacs.h: deleted from svn
990         * configure.in, configure: fixed bug #1538756: configure dies if bison
991           and flex are not installed
992
993 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
994
995         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
996           with this z80 passes printf float test when enabled
997         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
998
999 2006-12-28 Borut Razem <borut.razem AT siol.net>
1000
1001         * support/cpp2/config.in, support/cpp2/configure.in,
1002           support/cpp2/configure, support/cpp2/Makefile.in:
1003           fix for the solaris build
1004
1005 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1006
1007         * src/SDCC.y (type_specifier2, pointer),
1008         * src/SDCCsymt.h,
1009         * src/SDCCsymt.c (mergeSpec, checkSClass),
1010         * support/Util/SDCCerr.c,
1011         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
1012         * support/valdiag/valdiag.py: Allow test cases to specify
1013           required language standard
1014         * support/valdiag/tests/restrict.c: New file to test restrict keyword
1015         * support/valdiag/tests/tentdecl.c: Supress empty source file error
1016
1017 2006-12-27 Borut Razem <borut.razem AT siol.net>
1018
1019         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
1020         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
1021           mbchar removed
1022         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
1023           fixed for borland C
1024         * support/cpp2/libiberty/Makefile.bcc: updated
1025         * src/pic16/main.c: fixed #pragma udata handling
1026         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
1027
1028 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
1029
1030         * src/SDCCpeeph.c: made labelHashEntry global,
1031         made pcDistance, FBYNAME static,
1032         (pcDistance): made static, use isComment and isLabel,
1033         (deadMove): added,
1034         (getLabelRef): added, extracted from labelRefCount(),
1035         (labelRefCount): use new getLabelRef(),
1036         (callFuncByName): made static, added deadMove,
1037         use isComment and isLabel,
1038         (newPeepRule): made static, set isLabel,
1039         (isLabelDefinition): added parameter isPeepRule to allow '%' in
1040         labels from peephole rules,
1041         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
1042         when isComment or isLabel is set
1043         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
1044         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
1045         to make them global
1046         * src/mcs51/peep.h: added
1047         * src/mcs51/peep.c: added, implements mcs51DeadMove()
1048         * src/port.h: added peep->deadMove to port structure
1049         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
1050         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
1051         deadMove, finally removed no. 1 and 2
1052         * src/mcs51/gen.c,
1053         * src/pic/gen.c,
1054         * src/z80/gen.c,
1055         * src/z80/ralloc.c,
1056         * src/pic16/gen.c,
1057         * src/ds390/gen.c,
1058         * src/hc08/gen.c: mark lines with isComment or isLabel
1059         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
1060         * .version,
1061         * sdcc.spec: bumped version to 2.6.3
1062
1063 2006-12-26 Borut Razem <borut.razem AT siol.net>
1064
1065         * support/cpp2/Makefile.in: added dependency on options.h
1066         * configure: regenerated
1067         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
1068         * support/cpp2/Makefile.in: added vasprintf.c
1069
1070 2006-12-25 Borut Razem <borut.razem AT siol.net>
1071
1072         * SDCPP synchronized with GCC CPP release version 3.4.6,
1073           the latest release before 4.x:
1074         * support/cpp2/Makefile.in, support/cpp2/config.h,
1075           support/cpp2/configure, support/cpp2/configure.in,
1076           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
1077           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
1078           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
1079           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
1080           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
1081           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
1082           support/cpp2/cpptrad.c, support/cpp2/except.h,
1083           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
1084           support/cpp2/hwint.h, support/cpp2/intl.h,
1085           support/cpp2/line-map.c, support/cpp2/line-map.h,
1086           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
1087           support/cpp2/output.h, support/cpp2/prefix.c,
1088           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
1089           support/cpp2/system.h, support/cpp2/version.c:
1090           modified
1091         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1092           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
1093           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
1094           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
1095           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
1096           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
1097           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
1098           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
1099           support/cpp2/move-if-change, support/cpp2/opts.c,
1100           support/cpp2/opts.h, support/cpp2/opts.sh,
1101           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
1102           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
1103           support/cpp2/win32, support/cpp2/win32/dirent.c,
1104           support/cpp2/win32/dirent.h:
1105           added
1106         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
1107         * support/cpp2/sdcpp.h: renamed from sdcc.h
1108         * sdcppinit.c: deleted
1109
1110 2006-12-23 Borut Razem <borut.razem AT siol.net>
1111
1112         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1113           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
1114           preproc.c: an other try to fix bug #982435: introduced
1115           -pedantic-parse-number command line option and pedantic_parse_number
1116           pragma
1117
1118 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
1119
1120         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
1121            BSEG handling,
1122           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
1123            corrected overlayed areax addresses, warn about memory overlaps
1124         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
1125         * src/avr/main.c,
1126         * src/ds390/main.c,
1127         * src/hc08/main.c,
1128         * src/mcs51/main.c,
1129         * src/pic16/main.c,
1130         * src/pic/main.c,
1131         * src/xa51/main.c,
1132         * src/z80/main.c,
1133         * src/port.h: added xabs_name and iabs_name
1134         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
1135           (glue, emitMaps): create and emit maps d_abs and i_abs
1136         * src/SDCCglue.h: cosmetic changes
1137         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
1138         * src/SDCCmem.h,
1139         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
1140           (allocDefault): put absolute, initialized globals in them
1141         * support/regression/tests/absolute.c: added absolute bdata test
1142         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
1143
1144 2006-12-20 Borut Razem <borut.razem AT siol.net>
1145
1146         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
1147         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
1148           added regression test for bug #982435
1149
1150 2006-12-18 Borut Razem <borut.razem AT siol.net>
1151
1152         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
1153         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
1154           small cosmetic changes
1155         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
1156         * support/regression/tests/bug-1351710.c: added regression test
1157
1158 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1159
1160         * doc/sdccman.lyx: added the long missed iCode table
1161           "<where is figure II?>", added links to wiki
1162
1163 2006-12-17 Borut Razem <borut.razem AT siol.net>
1164
1165         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
1166           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
1167           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
1168           unified table driven pragma handling, pragma argument type checking
1169         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
1170           current one - version 1.1.3
1171         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
1172
1173 2006-12-13 Raphael Neider <rneider AT web.de>
1174
1175         * src/pic/device.h: removed AssignedMemory structure and macros
1176         * src/pic/device.c: removed global finalMapping (linker assigns
1177             memory locations),
1178           (register_map): add SFRs to remembered memRanges
1179           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
1180           assignFixedRegisters,assignRelocatableRegisters): removed,
1181           (setMaxRAM,validAddress): adapted accordingly,
1182           (pic14_hasSharebank,pic14_getSharedStack): only report and use
1183             reasonably sized sharebanks,
1184         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
1185           (allDefsOutOfRange): removed unused code,
1186         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
1187             handling
1188         * src/pic/pcode.c (register_reassign): removed recursion warning,
1189             fired far too often,
1190         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
1191             to use existing pic14_stringInSet() to avoid duplicate symbols,
1192             tidied up the code a bit,
1193           (pic14printLocals): added in symmetry to printExterns, replaces
1194             writeUsedRegs more or less,
1195           (picglue): call new pic14_printLocals(),
1196         * device/include/pic/pic*.h: removed #pragma memmap directives,
1197             information gathered from include/pic/pic14devices.txt
1198         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
1199
1200 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1201
1202         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
1203
1204 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1205
1206         * device/include/mcs51/cc2430.h: fixed missing ';'
1207
1208 2006-12-10 Raphael Neider <rneider AT web.de>
1209
1210         * device/lib/pic16/libc/stdio/vfprintf.c,
1211         * device/lib/pic16/libc/stdio/printf_small.c,
1212         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
1213           char arguments, as char varargs are cast to int by the caller,
1214           hopefully fixes #1604915 (other device libraries are still affected)
1215
1216 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1217
1218         * src/mcs51/ralloc.c (packRegsForAssign),
1219         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
1220
1221 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
1222
1223         * device/include/malloc.h: removed init_dynamic_memory
1224         * device/lib/malloc.c: made init_dynamic_memory static and automatically
1225           call it once from malloc. Also use _sdcc_heap[] from _heap.c
1226         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
1227         * device/lib/libsdcc.lib,
1228         * device/lib/Makefile.in,
1229         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
1230         * doc/sdccman.lyx: documented use of new _heap.c
1231         * support/regression/tests/malloc.c: removed init_dynamic_memory
1232         * src/cdbFile.c(spacesToUnderscores): new function,
1233           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
1234           1068030
1235         * device/include/tinibios.h: removed defines for putchar and getchar
1236         * device/lib/ds390/Makefile.in: added putchar.c
1237         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
1238
1239 2006-12-09 Borut Razem <borut.razem AT siol.net>
1240
1241         * support/cpp2/sdcc.h: prevent multiple inclusion
1242         * support/cpp2/options.h: deleted
1243
1244 2006-12-08 Borut Razem <borut.razem AT siol.net>
1245
1246         * support/cpp2/sdcc.h: removed x*alloc() macros
1247         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
1248         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
1249           support/cpp2/sdcpp.sdc: x*alloc files added to the project
1250         * support/cpp2/system.h: moved #include "sdcc.h"
1251         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
1252           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
1253           added
1254         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
1255           -funsigned-char options
1256         * support/cpp2/sdcppmain.c: fixed bug 1611411
1257
1258 2006-12-07 Borut Razem <borut.razem AT siol.net>
1259
1260         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
1261           directive
1262
1263 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1264
1265         * src/SDCCsymt.c (addDecl): fixed bug 1609244
1266         * src/SDCCmain.c (linkEdit): fixed bug 1609279
1267         * doc/sdccman.lyx,
1268         * .version: bumped to 2.6.2 because a) it's been a while
1269           b) the linker sources have moved c) the preprocessor is upgraded
1270
1271 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1272
1273         * support/regression/tests/snprintf.c: some checks
1274         * lib/src/printf_large.c: %bc: read char instead of int from stack
1275
1276 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
1277
1278         * device/include/mcs51/cc2430.h: inserted _XPAGE
1279
1280 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1281
1282         * device/include/mcs51/cc2430.h: added
1283
1284 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
1285
1286         * device/include/asm/default/features.h,
1287         * device/include/asm/ds390/features.h,
1288         * device/include/mcs51/at89s53.h,
1289         * device/include/ser.h,
1290         * device/include/ser_ir.h,
1291         * device/include/serial.h: changed keywords to double underscore variants,
1292           fixes bug 1590261 some more, thanks Steven Borley
1293
1294 2006-12-01 Raphael Neider <rneider AT web.de>
1295
1296         * src/pic/pcode.c (register_reassign): do not crash on recursive code
1297           but emit warning (recursion is not supported for pic14)
1298
1299 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1300
1301         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
1302         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
1303
1304 2006-11-30 Raphael Neider <rneider AT web.de>
1305
1306         * src/pic/device.c (dump_sfr): always emit symbols
1307         * src/pic/glue.c (pic14printPublics): fixed typo
1308
1309 2006-11-30 Raphael Neider <rneider AT web.de>
1310
1311         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
1312           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
1313           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
1314            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
1315            a sharebank, use a non-shared bank for the stack if none available
1316         * src/pic/device.h (struct memRange): added linked list next field,
1317           added prototypes for above functions
1318         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
1319           (typeRegWithIdx): accept fixed and unfixed stack registers
1320         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
1321           the stack, handle shared and banked stack (except for WSAVE),
1322           (insertBankSel): removed useless optimization (will never fire),
1323           (FixRegisterBanking): added optimization for devices with only one
1324           possibly aliased bank of memory, like 16f84
1325         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
1326           devices have no SHAREBANK in the linker script
1327         * device/include/pic/pic14devices.txt: documented memmap
1328         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
1329
1330 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1331
1332         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
1333           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
1334           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
1335           genhc08Code): switched most of the D (debug) macros to DD (detailed
1336           debug) macros to better control clutter in the generated .asm file.
1337         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
1338           genRightShift): fixed bug with non-constant bit shift stored to
1339           a volatile result (SF Open Discussion forum thread #1616749).
1340           Single byte case is not yet optimized.
1341
1342 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
1343
1344         * device/include/asm/mcs51/features.h,
1345         * device/include/malloc.h,
1346         * device/include/stdio.h: changed keywords to double underscore variants,
1347           fixes bug 1590261
1348
1349 2006-11-27 Borut Razem <borut.razem AT siol.net>
1350
1351         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1352           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
1353           support/cpp2/output.h, support/cpp2/cppinit.c,
1354           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
1355           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1356           support/cpp2/cppdefault.c, support/cpp2/system.h,
1357           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
1358           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
1359           support/cpp2/prefix.c, support/cpp2/except.h,
1360           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
1361           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
1362           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1363           support/cpp2/version.c, support/cpp2/cppmain.c,
1364           support/cpp2/version.h, support/cpp2/hashtable.c,
1365           support/cpp2/cpperror.c:
1366           synchronized with GCC CPP release version 3.3.6,
1367           the latest where cppmain.c still exists.
1368         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
1369           support/cpp2/sdcppinit.c: added
1370
1371 2006-11-27 Borut Razem <borut.razem AT siol.net>
1372
1373         * support/cpp2/cpplex.c:
1374           fixed _asm ... _endasm handling bug, introduce with GCC CPP
1375           synchronization
1376         * support/cpp2/cpplib.c: removed definitions of unused variables
1377
1378 2006-11-26 Borut Razem <borut.razem AT siol.net>
1379
1380         * support/cpp2/libiberty.h: commented out x*alloc() declarations
1381           since they are redefined by macros in support/cpp2/sdcc.h
1382         * support/cpp2/sdcc.h: x*alloc macro redefinition
1383
1384 2006-11-25 Borut Razem <borut.razem AT siol.net>
1385
1386         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
1387           support/cpp2/configure, support/cpp2/Makefile.in,
1388           support/cpp2/cppfiles.c, support/cpp2/output.h,
1389           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
1390           support/cpp2/config.h, support/cpp2/cpplib.h,
1391           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
1392           support/cpp2/cppdefault.c, support/cpp2/config.in,
1393           support/cpp2/system.h, support/cpp2/cpplex.c,
1394           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
1395           support/cpp2/cppdefault.h, support/cpp2/prefix.c
1396           support/cpp2/hwint.h, support/cpp2/mbchar.h,
1397           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
1398           support/cpp2/configure.in, support/cpp2/intl.h,
1399           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
1400           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
1401           support/cpp2/version.c, support/cpp2/cppmain.c,
1402           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
1403           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
1404           support/cpp2/cpperror.c,
1405           support/cpp2/libiberty/safe-ctype.c,
1406           support/cpp2/libiberty/safe-ctype.h,
1407           support/cpp2/libiberty/splay-tree.c,
1408           support/cpp2/libiberty/obstack.c,
1409           support/cpp2/libiberty/lbasename.c,
1410           support/cpp2/libiberty/splay-tree.h,
1411           support/cpp2/libiberty/obstack.h:
1412           synchronized with GCC CPP release version 3.2.3,
1413           the latest before integration of cpp into gcc
1414         * support/cpp2/except.h, support/cpp2/line-map.c,
1415           support/cpp2/line-map.h,
1416           support/cpp2/libiberty/hex.c,
1417           support/cpp2/libiberty/concat.c,
1418           support/cpp2/libiberty/filenames.h: added
1419         * support/cpp2/intl.c: deleted
1420
1421 2006-11-24 Borut Razem <borut.razem AT siol.net>
1422
1423         * src/SDCC.y: enabled compilation of empty source file
1424         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
1425           "ISO C forbids an empty source file"
1426         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
1427           if all the code is ifdefed out.
1428
1429 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1430
1431         * src/hc08/gen.c (genPcall): fix for bug #1601032
1432
1433 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1434
1435         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
1436         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
1437         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
1438         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
1439         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
1440         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
1441         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
1442         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
1443         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
1444         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
1445         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
1446         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
1447         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
1448         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
1449         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
1450           Renamed to all upper case as per the standard set by SiLabs
1451
1452 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
1453
1454         * device/include/mcs51/C8051F520.h: new, added
1455         * device/include/mcs51/compiler.h: added link about predefined macros
1456
1457 2006-11-23 Raphael Neider <rneider AT web.de>
1458
1459         * src/regression/Makefile: add -L path to fresh library
1460         * src/regression/simulate: emphasize FAILED output
1461         * src/regression/create_stc: output _failures from gpsim
1462         * src/regression/compare4.c,
1463         * src/regression/rotate6.c: fixed char literals,
1464           all compile, all run =8-D
1465
1466         * src/pic/pcode.h: added isPCASMDIR macro
1467         * src/pic/gen.c (genAnd): fixed bit offset
1468         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
1469           packBits): unified register numbering schemes,
1470           (newReg): do not insert stack registers into hash table,
1471           (initStack): unpinned pseudo stack, simplified,
1472           (typeRegWithIdx): fixed retrieval of stack registers,
1473         * src/pic/pcode.c (addpCodeComment,sameBank): added,
1474           (pCodeReplace): removed invalid assertion,
1475           (insertPCodeInstruction): fixed newly added labels,
1476           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
1477           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
1478           DumpFlow): removed unsed (broken?) code,
1479           (insertBankSel): prevent STATUS from being BANKSELed,
1480           (FixRegisterBanking): rewritten from scratch, implemented generic
1481             optimizations (suppress BANKSELs to same register and to registers
1482             present in all banks),
1483           (AnalyzeBanking): update flow after BANKSELection
1484
1485         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
1486             sharebank, let linker place it, mark STKxx symbols as emitted
1487
1488 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1489
1490         * src/regression/arrays.c,
1491         * src/regression/bank1.c,
1492         * src/regression/bool2.c,
1493         * src/regression/compare7.c,
1494         * src/regression/compare8.c,
1495         * src/regression/compare9.c,
1496         * src/regression/compare10.c,
1497         * src/regression/configword.c,
1498         * src/regression/for.c,
1499         * src/regression/mult1.c,
1500         * src/regression/pointer1.c,
1501         * src/regression/rotate6.c,
1502         * src/regression/string1.c,
1503         * src/regression/struct1.c,
1504         * src/regression/Makefile: make PIC14 regression tests run again
1505           (3 fail, 6 won't compile)
1506
1507 2006-11-21 Raphael Neider <rneider AT web.de>
1508
1509         * device/include/pic16/pic18f4550.h,
1510         * device/include/pic16/pic18f4455.h,
1511         * device/lib/pic16/libdev/pic18f4550.c,
1512         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
1513         * configure.in: removed superfluous closing bracket
1514
1515 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1516
1517         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
1518           always positive.
1519
1520 2006-11-21 Raphael Neider <rneider AT web.de>
1521
1522         * src/pic/device.{c,h}: added pic14_getPIC()
1523         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
1524           (genAnd): added PIC code for one case, fixes #1597044
1525         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
1526           SFRs that are present in all banks (e.g., STATUS)
1527
1528 2006-11-20 Raphael Neider <rneider AT web.de>
1529
1530         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
1531           INCFSZ/INCFSZW and declared them as changing Z bit,
1532           (insertPCodeInstruction): correctly invert the above instructions,
1533           fixes #1599333,
1534           (DoBankSelect): don't panic on po_immediates
1535
1536 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1537
1538         * as/link/aslink.h,
1539         * as/link/mcs51/lkihx.c (newArea),
1540         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
1541         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
1542
1543 2006-11-11 Raphael Neider <rneider AT web.de>
1544
1545         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
1546           bitfield symbols, fixes #1579535 (once more...).
1547
1548 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1549
1550         * support/regression/generate-cases.py,
1551         * support/regression/fwk/include/testfwk.h,
1552         * support/regression/fwk/lib/testfwk.c: used code pointers,
1553           (about 50kByte less code generated for mcs51)
1554
1555 2006-11-06 Borut Razem <borut.razem AT siol.net>
1556
1557         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1558           debugger/mcs51/configure: fixed failed check because the function
1559           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
1560           who submitted the patch for gpsim.
1561         * debugger/mcs51/configure.in: removed the result message
1562         * debugger/mcs51/Makefile.in: fixed the config.status warning
1563           "... seems to ignore the --datarootdir setting"
1564
1565 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
1566
1567         * device/include/mcs51/c8051f020.h,
1568         * device/include/mcs51/c8051f040.h,
1569         * device/include/mcs51/c8051f060.h,
1570         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
1571         * src/z80/gen.c (gencjneshort),
1572         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
1573
1574 2006-10-31 Borut Razem <borut.razem AT siol.net>
1575
1576         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1577           debugger/mcs51/configure: get readline version
1578
1579 2006-10-30 Borut Razem <borut.razem AT siol.net>
1580
1581         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
1582         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
1583           debugger/mcs51/configure: locate readline even when cross compiling
1584         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
1585
1586 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1587
1588         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
1589           serial port.
1590
1591 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1592
1593         * device/include/malloc.h,
1594         * device/lib/calloc.c,
1595         * device/lib/free.c,
1596         * device/lib/malloc.c,
1597         * device/lib/realloc.c: moved definition of struct into sources
1598         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
1599
1600 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
1601
1602         * as/asx8051.dsp: corrected output directories
1603         * as/link/hc08: new directory for hc08 linker
1604         * as/hc08/aslink.h,             as/link/aslink.h,
1605         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
1606         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
1607         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
1608         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
1609         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
1610         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
1611         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
1612         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
1613         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
1614         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
1615         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
1616         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
1617         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
1618         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
1619         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
1620         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
1621         * as/link/hc08/conf.mk,
1622         * configure,
1623         * configure.in,
1624         * Makefile.in,
1625         * sdcc.dsw: moved hc08 linker to as/link/hc08
1626         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
1627         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
1628         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
1629         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
1630         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
1631         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
1632         * as/link/mcs51/aslink.dsp,
1633         * as/link/mcs51/Makefile.in: factored out the common files
1634         * as/hc08/lkstore.c: deleted, use the one already in as/link/
1635         * as/clean.mk: extra cleaning common files
1636         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
1637         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
1638         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
1639
1640 2006-10-29 Raphael Neider <rneider AT web.de>
1641
1642         * src/pic/ralloc.c (newReg): create aliases for registers with
1643           multiple names to fix #1579535 and #1584001,
1644           (regWithIdx,dirregWithName): resolve aliases on lookup
1645         * src/pic/pcode.c (DoBankSelect): die with error message on failing
1646           bankselect
1647         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
1648           to prevent build errors on small devices
1649
1650 2006-10-28 Raphael Neider <rneider AT web.de>
1651
1652         * src/pic/gen.c (genFunction,genCall): drop "same code page"
1653           assumption within interrupt handlers, fixes #1584940
1654         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
1655           "emitted" to avoid emitting them again in udata
1656
1657 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1658
1659         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1660         Removed.
1661
1662 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1663
1664         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
1665         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
1666         on/off CR to CRLF conversion.
1667
1668 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1669
1670         * doc/sdccman.lyx: updated IRQ section
1671
1672 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1673
1674         * device/lib/serial_io.c: removed
1675         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
1676         replacements for serial_io.c
1677
1678 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
1679
1680         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
1681
1682 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1683
1684         * device/lib/serial_io.c: Default putchar() and getchar() for
1685           mcs51 uses serial port.
1686
1687 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
1688
1689         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
1690
1691 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1692
1693         * support/regression/ports/mcs51/support.c: smaller
1694         _sdcc_external_startup()
1695         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
1696
1697 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
1698
1699         * device/lib/gbz80/crt0.s,
1700         * device/lib/gbz80/crt0_rle.s,
1701         * device/lib/gbz80/div.s,
1702         * device/lib/gbz80/fstubs.s,
1703         * device/lib/gbz80/heap.s,
1704         * device/lib/gbz80/mul.s,
1705         * device/lib/gbz80/putchar.s,
1706         * device/lib/gbz80/stubs.s,
1707         * device/lib/z80/crt0.s,
1708         * device/lib/z80/crt0_rle.s,
1709         * device/lib/z80/div.s,
1710         * device/lib/z80/fstubs.s,
1711         * device/lib/z80/heap.s,
1712         * device/lib/z80/mul.s,
1713         * device/lib/z80/putchar.s,
1714         * device/lib/z80/stubs.s: reverted, I was mistaken
1715
1716 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1717
1718         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
1719         * support/regression/ports/mcs51/support.c: removed race
1720         condition on TI in _putchar allowing to use serial port mode 0
1721
1722 2006-10-20 Borut Razem <borut.razem AT siol.net>
1723
1724         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
1725
1726 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1727
1728         * device/lib/gbz80/crt0.s,
1729         * device/lib/gbz80/crt0_rle.s,
1730         * device/lib/gbz80/div.s,
1731         * device/lib/gbz80/fstubs.s,
1732         * device/lib/gbz80/heap.s,
1733         * device/lib/gbz80/mul.s,
1734         * device/lib/gbz80/putchar.s,
1735         * device/lib/gbz80/stubs.s,
1736         * device/lib/z80/crt0.s,
1737         * device/lib/z80/crt0_rle.s,
1738         * device/lib/z80/div.s,
1739         * device/lib/z80/fstubs.s,
1740         * device/lib/z80/heap.s,
1741         * device/lib/z80/mul.s,
1742         * device/lib/z80/putchar.s,
1743         * device/lib/z80/stubs.s: removed all leading underscores from area names
1744
1745 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
1746
1747         * support/regression/ports/mcs51/support.c: use highest baudrate so the
1748           regression tests are not waiting in the simulator for simulated
1749           transmission of debug output
1750
1751 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1752
1753         * device/lib/printf_large.c: slightly smaller
1754         * doc/sdccman.lyx: do not use spaces within html links
1755
1756 2006-10-16 Borut Razem <borut.razem AT siol.net>
1757
1758         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
1759           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
1760           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
1761           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
1762           debugger/mcs51/configure:
1763           [ 1185668 ] add gnu readline support to sdcdb - enabled
1764
1765 2006-10-16 Raphael Neider <rneider AT web.de>
1766
1767         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
1768           fixes #1577882, removes close to all banking optimizations
1769
1770 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
1771
1772         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
1773           variables in code memory
1774         * support/regression/tests/absolute.c: added test for this
1775
1776 2006-10-15 Raphael Neider <rneider AT web.de>
1777
1778         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
1779           devices,
1780           (BankSelect): emit BANKSEL before touching linker-placed regs,
1781           fixes #1570934
1782
1783 2006-10-10 Raphael Neider <rneider AT web.de>
1784
1785         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
1786         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
1787         * src/pic/main.c (_pic14_parseOptions),
1788         * src/pic/main.h: mostly reverted to previous state, now use results
1789             from SDCCmain.c's argument parsing
1790
1791 2006-10-10 Borut Razem <borut.razem AT siol.net>
1792
1793         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
1794           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
1795           [ 1185668 ] add gnu readline support to sdcdb -
1796           prepared for READLINE, not enabled yet,
1797           thanks to <tal.bav AT gmail.com>
1798
1799 2006-10-10 Raphael Neider <rneider AT web.de>
1800
1801         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
1802         * src/pic16/devices.inc,
1803         * device/include/pic16 (pic18f[24]620.h),
1804         * device/include/pic18fregs.h,
1805         * device/lib/pic16/pics.all,
1806         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
1807             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
1808             Gary Plumbridge and Anton Strobl
1809
1810 2006-10-10 Raphael Neider <rneider AT web.de>
1811
1812         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
1813           --stack-siz=NUM options to configure the argument passing stack
1814         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
1815         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
1816           (pic14_getSharebankSize): obey --stack-siz=NUM,
1817           (pic14_getSharebankAddress): obey --stack-loc=NUM
1818
1819 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1820
1821         * doc/sdccman.lyx: added to the manual
1822         * doc/figures/ddd_example.png: added (neither pdflatex nor
1823         most browsers seem to like the .eps file)
1824
1825 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1826
1827         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
1828         to /tmp and /var/tmp acc. LSB
1829         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
1830         RESULT_TYPE_IFX
1831         * support/regression/tests/onebyte.c: added test
1832
1833 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1834
1835         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
1836
1837 2006-10-05 Borut Razem <borut.razem AT siol.net>
1838
1839         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
1840           thanks to dfulab:
1841           - sdcc.dsw: changed property eol-style to CRLF
1842           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
1843
1844 2006-10-04 Raphael Neider <rneider AT web.de>
1845
1846         * device/include/pic/{pic16f84.h,pic16f84a.h},
1847         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
1848           from patch #1522504, thanks to Robas Teodor
1849
1850 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
1851
1852         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
1853           fixes bug 1566015
1854
1855 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
1856
1857         * src/pic16/glue.c (pic16emitMaps),
1858         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
1859         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
1860         * device/lib/pic16/libc/string/memcpypgm2ram.c,
1861         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
1862           Philipp Krause
1863         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
1864         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
1865
1866 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1867
1868         * support/librarian/sdcclib.c: Added option -l.
1869         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
1870           usage totals.
1871         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
1872           using Windows command prompt.
1873
1874 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1875
1876         * device/lib/libsdcc.lib: added module rand
1877         * src/ds390/ralloc.c (rematStr),
1878         * src/hc08/ralloc.c (rematStr),
1879         * src/mcs51/ralloc.c (rematStr),
1880         * src/z80/ralloc.c (rematStr): made output more consistent
1881         * src/mcs51/gen.c: cosmetic changes
1882
1883 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
1884
1885         * src/port.h: added mem.cabs_name to PORT
1886         * src/ds390/main.c,
1887         * src/hc08/main.c,
1888         * src/mcs51/main.c,
1889         * src/pic16/main.c,
1890         * src/pic/main.c,
1891         * src/xa51/main.c,
1892         * src/z80/main.c: added cabs_name initializers
1893         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
1894           constants
1895           (emitMaps): emit absolutes in code memory into cabs_name
1896         * src/SDCCmem.c,
1897         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
1898         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
1899         * support/regression/fwk/include/testfwk.h: added define for at
1900         * support/regression/tests/absolute.c: added, new
1901
1902 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
1903
1904         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
1905           optimizations, see also patch 887161 by Stas Sergeev
1906         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
1907           to be necessary anymore,
1908           (102, 103, 104, 127): renamed all occurances of bp to _bp
1909
1910 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
1911
1912         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
1913           thanks Weston T. Schmidt for patch 1555221
1914         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
1915         * src/SDCCicode.c(geniCodeMultiply): small optimization
1916
1917 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1918
1919         * device/include/stdlib.h: added rand prototypes
1920         * device/lib/rand.c: new, added
1921         * device/lib/Makefile.in: added rand.c
1922         * src/z80/peeph.def,
1923         * src/z80/peeph-gbz80.def,
1924         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
1925
1926 2006-09-20 Raphael Neider <rneider AT web.de>
1927
1928         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
1929
1930 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
1931
1932         * as/link/aslink.h: cosmetic changes
1933         * as/link/mcs51/Makefile.in,
1934         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
1935
1936 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
1937
1938         * as/link/aslink.h,
1939         * as/link/mcs51/aslink.h,
1940         * as/link/z80/aslink.h: merged and moved to as/link/
1941         * as/link/lkstore.c,
1942         * as/link/mcs51/lkstore.c: moved to as/link/
1943         * as/link/clean.mk: remove *.o
1944         * as/link/mcs51/alloc.h: deleted
1945         * as/link/mcs51/lkarea.c: added lnksect prototype
1946         * as/link/mcs51/lkdata.c,
1947         * as/link/mcs51/lklex.c,
1948         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
1949         * as/link/mcs51/lkmem.c,
1950         * as/link/mcs51/lknoice.c: removed include strcmpi.h
1951         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
1952         * as/link/mcs51/aslink.dsp,
1953         * as/link/mcs51/Makefile.aslink,
1954         * as/link/mcs51/Makefile.bcc,
1955         * as/link/mcs51/Makefile.in: updated for moved files
1956         * as/link/z80/lkarea.c,
1957         * as/link/z80/lkhead.c,
1958         * as/link/z80/lklex.c,
1959         * as/link/z80/lklibr.c,
1960         * as/link/z80/lklist.c,
1961         * as/link/z80/lkmain.c,
1962         * as/link/z80/lkrloc.c,
1963         * as/link/z80/lksym.c: synced with mcs51
1964         * as/link/z80/lkdata.c,
1965         * as/link/z80/lkeval.c,
1966         * as/link/z80/lkihx.c,
1967         * as/link/z80/lks19.c: cosmetic changes
1968         * as/link/z80/Makefile.in,
1969         * as/link/z80/linkgbz80.dsp,
1970         * as/link/z80/linkz80.dsp: updated for moved files
1971
1972 2006-09-16 Borut Razem <borut.razem AT siol.net>
1973
1974         * debugger/mcs51/sdcdb.c: partially fixed
1975           [ 1203664 ] sdcdb fails to open files w. two "." periods
1976         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
1977           debugger/mcs51/symtab.h: fixed indenting
1978         * configure.in, configure: up to date with latest Maarten's changes
1979
1980 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
1981
1982         as/link/mcs51
1983         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
1984         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
1985         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
1986         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
1987         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
1988         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
1989         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
1990         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
1991         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
1992         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
1993         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
1994         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
1995         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
1996         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
1997         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
1998         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
1999         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
2000         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
2001         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
2002         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
2003         as/link/mcs51/alloc.h,
2004         as/link/mcs51/clean.mk,
2005         as/link/mcs51/conf.mk,
2006         as/link/mcs51/Makefile.bcc,
2007         as/link/mcs51/Makefile.in,
2008         as/link/mcs51/readme.390,
2009         as/link/mcs51/strcmpi.c,
2010         as/link/mcs51/strcmpi.h,
2011         as/mcs51/clean.mk,
2012         as/mcs51/Makefile.bcc,
2013         as/mcs51/Makefile.in,
2014         configure,
2015         Makefile.in,
2016         sdcc.dsw: moved mcs51 linker to as/link/mcs51
2017
2018 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
2019
2020         * as/link,
2021         * as/link/Makefile.in,
2022         * as/link/z80/linkgbz80.dsp,
2023         * as/link/z80/linkz80.dsp,
2024         * configure,
2025         * link,
2026         * link/clean.mk,
2027         * link/Makefile.in,
2028         * link/README,
2029         * link/z80,
2030         * link/z80/aslink.h,
2031         * link/z80/clean.mk,
2032         * link/z80/conf.mk,
2033         * link/z80/linkgbz80.dsp,
2034         * link/z80/linkz80.dsp,
2035         * link/z80/lkarea.c,
2036         * link/z80/lkdata.c,
2037         * link/z80/lkeval.c,
2038         * link/z80/lkgb.c,
2039         * link/z80/lkgg.c,
2040         * link/z80/lkhead.c,
2041         * link/z80/lkihx.c,
2042         * link/z80/lklex.c,
2043         * link/z80/lklibr.c,
2044         * link/z80/lklist.c,
2045         * link/z80/lkmain.c,
2046         * link/z80/lkrloc.c,
2047         * link/z80/lks19.c,
2048         * link/z80/lksym.c,
2049         * link/z80/Makefile.in,
2050         * Makefile.in,
2051         * sdcc.dsw: moved link/ to as/link/
2052
2053 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
2054
2055         * as/mcs51/i51mch.c (machine): fixed warning
2056
2057 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2058
2059         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
2060
2061 2006-09-09 Borut Razem <borut.razem AT siol.net>
2062
2063         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
2064           sdcdb WIN32 native port
2065         * src/clean.mk: fixed
2066
2067 2006-09-08 Borut Razem <borut.razem AT siol.net>
2068
2069         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
2070
2071 2006-09-08 Raphael Neider <rneider AT web.de>
2072
2073         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
2074         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
2075             to gplink to disable processor mismatch warning and to allow
2076             the use of devices with only aliased (shared) memory banks,
2077           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
2078
2079 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2080
2081         * doc/sdccman.lyx: Some re-formating plus example on using
2082           #pragma preproc_asm +/-
2083
2084 2006-09-07 Borut Razem <borut.razem AT siol.net>
2085
2086         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
2087           section
2088
2089 2006-09-06 Borut Razem <borut.razem AT siol.net>
2090
2091         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
2092           line at sdcc.nsi:153
2093         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
2094
2095 2006-09-05 Borut Razem <borut.razem AT siol.net>
2096
2097         * configure.in, configure: support for winsock2
2098         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
2099           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
2100           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
2101           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
2102           debugger/mcs51/symtab.h: sdcdb WIN32 native port
2103
2104 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
2105
2106         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
2107           and OP_DEFS
2108         * support/regression/tests/bug1551947.c: new, added
2109         * src/SDCCsymt.h: strings are char* not byte*
2110
2111 2006-09-05 Raphael Neider <rneider AT web.de>
2112
2113         * device/lib/pic16/libdev/pic18f4550.c,
2114           device/include/pic16/pic18f4550.h: added PORTD/TRISD
2115             declarations/definitions from patch #1520949
2116
2117 2006-09-05 Raphael Neider <rneider AT web.de>
2118
2119         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
2120           byte-aligned bitfields, fixes #1539278
2121
2122 2006-09-05 Raphael Neider <rneider AT web.de>
2123
2124         * src/pic/gen.c (genReceive): skip unreferenced arguments,
2125           fixes #1544120
2126
2127 2006-09-04 Borut Razem <borut.razem AT siol.net>
2128
2129         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
2130         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
2131           -mno-cygwin is a part of the compiler name
2132         * support/scripts/sdcc_mingw32: don't disable ucsim
2133
2134 2006-09-03 Borut Razem <borut.razem AT siol.net>
2135
2136         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
2137         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
2138
2139 2006-09-03 Raphael Neider <rneider AT web.de>
2140
2141         * src/pic/ralloc.c,
2142         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
2143           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
2144           fixes #1550049
2145
2146 2006-09-01 Borut Razem <borut.razem AT siol.net>
2147
2148         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
2149           to make ppc-osx happy
2150
2151 2006-08-31 Borut Razem <borut.razem AT siol.net>
2152
2153         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
2154         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2155         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
2156         * support/regression/ports/ds390/spec.mk,
2157           support/regression/ports/mcs51/spec.mk,
2158           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
2159           To run regression tests in mingw environment:
2160           make DEV_NULL=NUL CC=gcc
2161
2162 2006-08-30 Borut Razem <borut.razem AT siol.net>
2163
2164         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
2165           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
2166           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
2167           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
2168           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
2169           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
2170           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
2171           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
2172           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
2173           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
2174           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
2175           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
2176           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2177           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
2178           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
2179           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
2180           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
2181           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
2182           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
2183           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
2184           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
2185           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
2186           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
2187           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
2188           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
2189           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
2190           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
2191           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
2192           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
2193           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
2194           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
2195           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
2196           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
2197           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
2198           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
2199           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
2200           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2201           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
2202           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
2203           ucsim WIN32 native port
2204
2205 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2206
2207         * doc/sdccman.lyx: added note on dynamic memory heap initialization
2208
2209 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2210
2211         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2212         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
2213
2214 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
2215
2216         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
2217         * support/regression/tests/bug1546986.c: new, added
2218         * as/mcs51/.cvsignore,
2219         * debugger/mcs51/.cvsignore,
2220         * src/.cvsignore: deleted
2221
2222 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2223
2224         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
2225           definitions)
2226
2227 2006-08-20 Borut Razem <borut.razem AT siol.net>
2228
2229         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
2230           removed cl_listen_console::match(), cl_console::match(),
2231           restructured cl_commander::proc_input()
2232
2233 2006-08-16 Borut Razem <borut.razem AT siol.net>
2234
2235         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
2236           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
2237           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
2238
2239 2006-08-14 Borut Razem <borut.razem AT siol.net>
2240
2241         * support/regression/Makefile.in,
2242           support/regression/ports/pic14/gpsim.cmd,
2243           support/regression/ports/pic14/spec.mk,
2244           support/regression/ports/pic14/support.c:
2245           added pic14 regression test
2246
2247 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
2248
2249         * as/doc/asxhtm.html: documented changed ABS behaviour
2250         * as/doc/README: fixed some typos
2251
2252 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
2253
2254         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
2255           not defined on host
2256
2257 2006-08-12 Borut Razem <borut.razem AT siol.net>
2258
2259         * support/regression/fwk/include/testfwk.h,
2260           support/regression/fwk/lib/testfwk.c,
2261           support/regression/generate-cases.py,
2262           support/regression/Makefile.in:
2263           regression test framework does not depend on function pointers and
2264           variable arguments
2265
2266 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2267
2268         * device/include/stddef.h: c temporary hack to fix bug 1518273
2269
2270 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2271
2272         * device/include/mcs51/cc2510fx.h: added
2273         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
2274           to projects.
2275
2276 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
2277
2278         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
2279         * as/z80/Makefile.in: added strcmpi.c
2280         * as/z80/z80adr.c: added upper case registers and lower case conditionals
2281         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
2282
2283 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
2284
2285         * device/lib/gbz80/asm_strings.s,
2286         * device/lib/gbz80/crt0_rle.s,
2287         * device/lib/gbz80/div.s,
2288         * device/lib/gbz80/mul.s,
2289         * device/lib/gbz80/shift.s,
2290         * device/lib/z80/asm_strings.s,
2291         * device/lib/z80/crt0_rle.s,
2292         * device/lib/z80/div.s,
2293         * device/lib/z80/mul.s,
2294         * device/lib/z80/shift.s: changed to all lower case menmonics except the
2295           flags which are all upper case
2296
2297 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2298
2299         * as/z80/asm.h: made CASE_SENSITIVE 1
2300         * link/z80/aslink.h: made CASE_SENSITIVE 1
2301         * src/z80/gen.c (throughout): made all conditionals upper case
2302         * support/regression/tests/bug1503067.c: new
2303
2304 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
2305
2306         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
2307           (shiftIntoPair): added case 2 for PAIR_IY,
2308           (setupToPreserveCarry): replaced parameters with iCode and check if
2309            PAIR_DE is in use to fix bug 1399290,
2310           (genPlus, genMinus): updated call to setupToPreserveCarry
2311         * support/regression/tests/bug1399290.c: new
2312
2313 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
2314
2315         * device/lib/Makefile.in (Z80SOURCES): enabled float support
2316         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
2317         * src/ds390/gen.c (shiftRLong),
2318         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
2319         * src/mcs51/gen.c (sameReg): changed to sameByte,
2320           (xch_a_aopGet): new,
2321           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
2322            shiftRLong): fixed bug 1533966
2323         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
2324           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
2325         * support/regression/Makefile.in: disabled z80, enabled ucz80
2326         * support/regression/tests/float_trans.c: enabled test for z80 and host
2327         * support/regression/tests/shifts2.c: new, for testing bug 1533966
2328
2329 2006-08-01 Borut Razem <borut.razem AT siol.net>
2330
2331         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
2332           comparison is always false due to limited range of data type
2333           on PPC64 machine (openpower-linux1) where "char = unsigned char"
2334
2335 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
2336
2337         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
2338         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
2339         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
2340         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
2341
2342 2006-07-31 Borut Razem <borut.razem AT siol.net>
2343
2344         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
2345           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
2346           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
2347           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
2348           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
2349           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
2350           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
2351           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
2352           enable ucsim mingw compilation. Serial port is disabled,
2353           since it uses termios.h API, which is not available on native
2354           WIN32
2355
2356 2006-07-31 Borut Razem <borut.razem AT siol.net>
2357
2358         * Small Device C Compiler 2.6.0 released
2359         * support/scripts/sdcc.nsi: added FULL_DOC option
2360         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
2361
2362 2006-07-28 Borut Razem <borut.razem AT siol.net>
2363
2364         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
2365         * doc/INSTALL.txt: updated
2366
2367 2006-07-27 Borut Razem <borut.razem AT siol.net>
2368
2369         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
2370           device/lib/pic/libdev/Makefile.in: fixed bug
2371           [ 1438354 ] pic libsdcc: distclean doesn't work
2372         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
2373           device/lib/pic16/libio/Makefile.in: fixed bug
2374           [ 1438344 ] pic16 lib: clean doesn't work properly
2375         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
2376
2377 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
2378
2379         * device/lib/pic/libsdcc/fsdiv.c,
2380         * device/lib/pic/libsdcc/fsmul.c,
2381         * device/lib/pic16/libsdcc/float/fsdiv.c,
2382         * device/lib/pic16/libsdcc/float/fsmul.c,
2383         * device/lib/_fsdiv.c,
2384         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
2385         * support/regression/tests/bug1520966.c: added
2386         * doc/knownbugs.html: removed [ 1520966 ] from the list
2387
2388 2006-07-25 Borut Razem <borut.razem AT siol.net>
2389
2390         * configure.in, configure, sdccconf_in.h: fixed bug
2391           [ 1519095 ] regression test onebyte.c fails on ppc64 host
2392         * doc/knownbugs.html: removed [ 1519095 ] from the list
2393
2394 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
2395
2396         * doc/knownbugs.html: added, contains list of known bugs at release
2397         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
2398
2399 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2400
2401         * device/include/mcs51/compiler.h: added SFRX for xdata based special
2402           function registers and corrected defaults with additional warning
2403         * device/lib/malloc.c: cosmetic changes
2404         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
2405         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
2406           (fillGaps): and used it
2407
2408 2006-07-20 Raphael Neider <rneider AT web.de>
2409
2410         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
2411           output unless SDCCPICDEBUG is set
2412         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
2413           output if SILENT is set
2414
2415 2006-07-11 Borut Razem <borut.razem AT siol.net>
2416
2417         * doc/README.txt: updated
2418
2419 2006-07-10 Borut Razem <borut.razem AT siol.net>
2420
2421         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
2422           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
2423           in WIN32 installation
2424         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
2425           release candidate 1
2426
2427 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
2428
2429         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
2430         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
2431
2432 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
2433
2434         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
2435
2436 2006-07-06 Borut Razem <borut.razem AT siol.net>
2437
2438         * support/regression/tests/bitfields.c:
2439           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
2440         * support/regression/tests/constantRange.c:
2441           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
2442
2443 2006-07-04 Borut Razem <borut.razem AT siol.net>
2444
2445         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
2446           src/port.mk,
2447           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2448           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2449           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2450           reverted changes from 2006-07-03
2451         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
2452         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
2453           added CPPFLAGS, used by the host port
2454
2455 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
2456
2457         * support/regression/valdiag/tests/switch.c,
2458         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
2459         * support/regression/tests/libmullong.c: fixed for host
2460         * support/regression/ports/host/spec.mk: disable all warnings for host,
2461         SDCC runs with --less-pedantic too
2462
2463 2006-07-03 Borut Razem <borut.razem AT siol.net>
2464
2465         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
2466           defined CPPFLAGS
2467         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
2468         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
2469           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
2470           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
2471           include ../port.mk
2472         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
2473           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2474           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
2475           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
2476
2477 2006-07-02 Raphael Neider <rneider AT web.de>
2478
2479         * src/pic16/devices.inc,
2480         * device/include/pic16/pic18fregs.h,
2481         * device/include/pic16/pic18f4550.h,
2482         * device/lib/pic16/pics.all,
2483         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
2484
2485 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
2486
2487         * as/hc08/lkaomf51.c (OutputName),
2488         * as/mcs51/lkaomf51.c (OutputName),
2489         * as/z80/asmain.c (asmbl),
2490         * src/ds390/main.c (asmLineNodeFromLineNode),
2491         * src/hc08/ralloc.c (hc08_assignRegisters),
2492         * src/mcs51/main.c (asmLineNodeFromLineNode),
2493         * src/xa51/ralloc.c (checkRegMask),
2494         * src/xa51/gen.c (emitcode),
2495         * src/z80/gen.c (_emit2),
2496         * src/SDCCast.c (searchLitOp),
2497         * src/SDCCglobl.h,
2498         * support/packihx/packihx.c,
2499         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
2500         * src/ds390/gen.c (aopPutUsesAcc),
2501         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
2502         * support/regression/tests/libmullong.c (mullong_wrapper),
2503         * src/SDCCsymt.c (powof2),
2504         * src/SDCCast.c,
2505         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
2506         * src/SDCCsymt.h: added TYPE_TARGET_*
2507         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
2508         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
2509         SDCCast because 1) header problems 2) this is the right place
2510         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
2511         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
2512         prototype
2513
2514 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2515
2516         * src/SDCCicode.h: removed buggy semicolon in unused macro
2517         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
2518         search for previous definiton of auto symbols too,
2519         (findPrevUse): fixed logic of emitWarnings
2520
2521 2006-06-26 Raphael Neider <rneider AT web.de>
2522
2523         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
2524           PCLATH and PCLATU on interrupts, potentially fixes #1505141
2525
2526 2006-06-25 Raphael Neider <rneider AT web.de>
2527
2528         * device/lib/pic/libm: NEW, added math library functions
2529         * device/lib/pic/libsdcc: NEW; added float support functions
2530         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
2531         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
2532           NEW, added math related headers
2533         * device/include/asm/pic/features.h: NEW
2534         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
2535           (popGet): allow larger offsets for AOP_PCODE,
2536           (genDataPointerSet): handle literals explicitly, more debug output,
2537           (genAssign): fixed for float using aopLiteral ;-)
2538         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
2539           GOTO initialisation routine
2540         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
2541           flag on registers, fixes #1469043 (local variables do not work)
2542         * src/pic/main.c (_pic14_do_link),
2543         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
2544           available
2545
2546 2006-06-25 Borut Razem <borut.razem AT siol.net>
2547
2548         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
2549           characters printed (not including the trailing '\0' used to end
2550           output to strings). Problem detected in regression test bug-927659.c.
2551           NOTE: printf() family functions should return int instead
2552           unsigned int!
2553         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
2554           specifier are printed as themselves
2555         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
2556           support flags, width and precision specifiers
2557
2558 2006-06-24 Borut Razem <borut.razem AT siol.net>
2559
2560         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
2561           to the list of sdcc tagrets not supporting bit type
2562         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
2563           testfor pic16 due to bug:
2564           [ 1511794 ] pic16: regression test bug-895992.c fails
2565
2566 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
2567
2568         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
2569         * src/SDCCglue.c (initPointer), fixed bug 1496419
2570         * support/regression/tests/bug1496419.c: new, added
2571
2572 2006-06-22 Borut Razem <borut.razem AT siol.net>
2573
2574         * support/regression/ports/pic16/support.c: use gpsim usart module from
2575           libgpsim_modules library
2576
2577 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2578
2579         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
2580         IP0H to IPH0.
2581
2582 2006-06-19 Raphael Neider <rneider AT web.de>
2583
2584         * src/pic/glue.h,src/pic16/glue.h: added prototypes
2585         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
2586           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
2587           (pic14printExterns,pic14printPublics,pic16printPublics,
2588           pic16_printExterns): use new functions to emit symbols
2589           (picglue,pic16glue): emit publics before emitting externs
2590         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
2591           locally defined functions to avoid bug #1443651
2592         * support/regression/tests/bug-716242.c: removed pic16 workaround
2593         * support/regression/ports/pic16/spec.mk: ignore errors during build
2594
2595 2006-06-19 Raphael Neider <rneider AT web.de>
2596
2597         * src/pic/glue.h: added pic14aopLiteral prototype
2598         * src/pic/glue.c (pic14aopLiteral): return unsigned int
2599         * src/pic/gen.c: removed stdint.h dependency
2600           (aopGet): use Safe_strdup()
2601           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
2602           (genDataPointerSet): use pic14aopLiteral()
2603         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
2604           for pic16; thanks to Bernhard and Maarten
2605
2606 2006-06-18 Borut Razem <borut.razem AT siol.net>
2607
2608         * support/regression/tests/structflexarray.c: flexible array members
2609           not supported by gcc < 3
2610         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
2611           GUI tool by default
2612         * src/pic/gen.c: don't include [p]strdin.h on solaris
2613         * support/Util/pstdint.h: addad svn attributes
2614         * support/regression/tests/constantRange.c,
2615           support/regression/tests/rotate.c: include inttypes.h instead
2616           stdint.h on solaris, addad svn attributes
2617
2618 2006-06-18 Raphael Neider <rneider AT web.de>
2619
2620         * src/SDCCsymt.c (initCSupport): change return type of divschar to
2621           int for PIC16
2622         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
2623           (pic16_genMinusBits): simplified sign-extension
2624           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
2625             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
2626             adjusted to correctly handle mixed-signed operands, disabled
2627             now unused multiplciation routines
2628         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
2629           (assignResultValue): added argument denoting the size of the result
2630             as returned by the function (fixes upcasts in assigning from
2631             function calls: char foo(); int i = foo();)
2632           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
2633             function result to assignResultValue
2634           (genMult): disabled inlined multiplication code
2635           (genDiv): augmented to also handle the modulus operator, fixed to
2636             handle mixed-signed operands correctly
2637           (genMod): simply call genDiv, disabled unused code
2638           (genAssign): fixed missing (sign-)extension on result
2639         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
2640             valid char operands, allow signed operands for native code, added
2641             division and modulo operator handling
2642         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
2643
2644         As a consequence, onebyte.c (if split into two files) and muldiv.c
2645         pass regression tests.
2646
2647 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2648
2649         * doc/Makefile.in: two runs of makeindex seem needed to get
2650         correct page references in the index of sdccman.pdf
2651         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
2652
2653 2006-06-17 Borut Razem <borut.razem AT siol.net>
2654
2655         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
2656
2657 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2658
2659         * doc/sdccman.lyx: updated, added (porting source code, debugging),
2660         mentioned ec2drv and paulmon
2661
2662 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
2663
2664         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
2665           consecutive abs areas
2666           (find_empty_space, allocate_space): added map to handle codemap or
2667            xdatamap,
2668           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
2669            absolute idata and xdata
2670         * as/mcs51/lkmem.c (summary2): updated legend
2671
2672 2006-06-16 Raphael Neider <rneider AT web.de>
2673
2674         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
2675
2676 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
2677
2678         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
2679           1208515
2680         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
2681
2682 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
2683
2684         * src/port.h (struct PORT): added field gp_tags, to hold the tag
2685         value of generic pointers,
2686         * src/avr/main.c,
2687           src/ds390/main.c,
2688           src/hc08/main.c,
2689           src/izt/i186.c,
2690           src/izt/tlcs900h.c,
2691           src/mcs51/main.c,
2692           src/pic/main.c,
2693           src/pic16/main.c,
2694           src/xa51/main.c,
2695           src/z80/main.c: PORT structure, added elements for gp_tags field,
2696         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
2697         fields in the PORT structure of each port,
2698         * src/SDCCast.c (decorateType): allow processing of generic pointers
2699         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
2700         S_FIXED symbols
2701
2702 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
2703
2704         * link/z80/lkgb.c,
2705         * link/z80/lkgg.c,
2706         * src/pic16/gen.c,
2707         * src/pic16/main.c,
2708         * src/pic16/pcode.c,
2709         * src/pic/main.c,
2710         * src/pic/pcoderegs.c,
2711         * src/SDCCicode.c,
2712         * src/SDCCmain.c,
2713         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
2714           bug 1504689 on minGW
2715
2716 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2717
2718         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
2719
2720 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
2721
2722         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
2723
2724 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
2725
2726         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
2727           for optimization
2728
2729 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
2730
2731         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
2732         to a char variable. Fixed bug #1504211
2733         * device/include/pic16/adc.h,
2734         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
2735         and fixed bug #1364390
2736
2737 2006-06-10 Borut Razem <borut.razem AT siol.net>
2738
2739         * CVSROOT: removed the CVS left-over
2740
2741 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2742
2743         * as/hc08/asmain.c (asexit),
2744         * as/hc08/lkmain.c (lkexit),
2745         * as/mcs51/asmain.c (asexit),
2746         * as/mcs51/lkmain.c (lkexit),
2747         * src/SDCCglue.c (DEFSETFUNC),
2748         * src/SDCCmain.c (linkEdit, assemble),
2749         * support/librarian/sdcclib.c (AddRel),
2750           replaced unlink() by standard C remove()
2751         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
2752         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
2753           gatherImplicitVariables): new, added to fix bug 608752,
2754           (createFunction): added gatherImplicitVariables()
2755         * src/SDCCast.h: added createRMW prototype
2756         * src/SDCCsymt.h (struct symbol): added infertype
2757         * support/regression/tests/bug608752.c: new, added
2758
2759 2006-06-10 Raphael Neider <rneider AT web.de>
2760
2761         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
2762           multibyte dummy reads (fixes #1503234)
2763
2764 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
2765
2766         * device/include/mcs51/compiler.h: new, added header file to enable
2767           creating common sfr definition header files for different compilers
2768
2769 2006-06-05 Raphael Neider <rneider AT web.de>
2770
2771         * src/pic16/{pcode.h,genarith.c}:
2772           introduced pCodeOp combining any two pCodeOps (previously only
2773           two register operands could be combined), removed pcop2 from
2774           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
2775         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
2776         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
2777           rewritten to use new PO_TWO_OPS
2778         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
2779         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
2780           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
2781           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
2782           (pic16_get_op): embraced return arg to allow #define return(x),
2783             added new case for combined opcodes
2784           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
2785           (pic16_pCode2str,pic16_getRegFrompCodeOp,
2786            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
2787
2788 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2789
2790         * src/SDCCval.c (checkConstantRange): added
2791         * src/SDCCval.h: added checkConstantRange
2792         * support/Util/SDCCerr.c,
2793         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
2794         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
2795         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
2796         * src/SDCCast.c (decorateType): added checkConstantRange,
2797         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
2798         can be emitted with the correct always true/false warning,
2799         added optimization for double '!';
2800         result of decorateType() must be assigned back to the tree, because
2801         decorateType() can change the tree
2802         * src/SDCCicode.c (geniCodeLogic),
2803         (geniCodeAssign): replaced new checkConstantRange, added warnings,
2804         (checkConstantRange): removed, it was only a fragment which never
2805         emitted a warning
2806         * src/SDCCsymt.c (computeType): fixed promotion for
2807         "-1 < (unsigned bit) b"
2808         * src/pic/ralloc.c (packRegsForAssign),
2809         * src/pic16/ralloc.c (packRegsForAssign),
2810         * src/hc08/ralloc.c (packRegsForAssign),
2811         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
2812         from mcs51
2813         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
2814         * support/regression/tests/constantRange.c: added
2815         * support/valdiag/tests/constantRange.c: added
2816         * support/valdiag/valdiag.py: added -DPORT_HOST=1
2817
2818 2006-06-02 Borut Razem <borut.razem AT siol.net>
2819
2820         * support/regression/ports/pic16/support.c: increase stack size
2821           to 255 bytes
2822         * support/regression/Makefile.in: sort tests by name so that the
2823           resutlts can be compared on different machines / platforms
2824
2825 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2826
2827         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
2828         * src/ds390/gen.c (emitLabel): new, added,
2829           (genDjnz): fixed stack overflow bug,
2830           (throughout): cosmetic changes to sync with mcs51/gen.c,
2831           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
2832         * src/mcs51/gen.c (genEndFunction): small optimization,
2833           (throughout): cosmetic changes to sync with ds390/gen.c
2834
2835 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2836
2837         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
2838           (_print_format): fixed printing pointers
2839         * src/mcs51/gen.c (emitLabel, movb): new, added,
2840           (genAssign): small optimization,
2841           (genDjnz): fixed stack overflow bug,
2842           (throughout): replaced sprintf with SNPRINTF,
2843           replaced mcs51_regWithIdx with REG_WITH_INDEX,
2844           replaced emitcode("mov", "b,...") with MOVB(...),
2845           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
2846           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2847         * src/mcs51/peeph.def: added rules 140 and 264
2848         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
2849           so they may get optimized into registers
2850
2851 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
2852
2853         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
2854           immediately when encountered,
2855           (printUsage): always use stderr even on windows
2856
2857 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
2858
2859         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
2860         (processParms): fixed bug #1247551
2861         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
2862         parseCmdLine, main): print '--version' to stdout,
2863         print 'help' to stdout if --help is given,
2864         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
2865         arguments are given; fixed --help
2866
2867 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
2868
2869         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
2870         * support/regression/tests/bug-1493710.c: added
2871
2872 2006-05-27 Borut Razem <borut.razem AT siol.net>
2873
2874         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
2875           static instead auto
2876         * support/regression/ports/pic16/support.c: increase stack size
2877           from default 64 bytes to 128 bytes
2878         * support/regression/tests/staticinit.c,
2879           support/regression/tests/float.c: regression tests fully enabled
2880           for pic16 port by putting the initialized data arrays into the code
2881           section
2882         * support/regression/ports/pic16/spec.mk: don't link default libraries.
2883           This was changed by mistake in the previous version.
2884
2885 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
2886
2887         * src/pic16/gen.c (genFunction, genEndFunction): some
2888         beautifications, fixed bug with falsely restoring FSR2 in large
2889         stack model, thanks to Beau E. Cox for reporting the bug
2890
2891 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2892
2893         * debugger/mcs51/break.c,
2894         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
2895           use %p to print pointers, made address variables unsigned
2896         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
2897         * debugger/mcs51/symtab.c (parseSymbol): must return something
2898         * src/mcs51/gen.c (aopForSym): small optimization,
2899            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
2900           (freeAsmop): added missing break,
2901           (aopPut): removed parameter bvolatile, determine it inside the function,
2902           (saveRegisters, unsaveRegisters): small optimization,
2903           (genIpush): removed pointless check,
2904           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
2905           replaced sprintf with SNPRINTF,
2906           replaced strcpy with strncpyz,
2907           updated aopPut calls,
2908           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
2909         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
2910
2911 2006-05-24 Borut Razem <borut.razem AT siol.net>
2912
2913         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
2914           modification of test for the pic16 port, put the array to the code
2915           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
2916
2917 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2918
2919         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
2920         * support/Util/pstdint.h: added
2921
2922 2006-05-22 Borut Razem <borut.razem AT siol.net>
2923
2924         * src/regression/Makefile: removed bool2.c test, added -q linker option
2925         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
2926           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
2927           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
2928           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
2929           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
2930           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
2931           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
2932           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
2933           define SUPPORT_BIT_TYPES 0, removed unused bit variables
2934
2935 2006-05-22 Raphael Neider <rneider AT web.de>
2936
2937         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
2938           bug #1492360 (problematic due to generic pointers, see code)
2939
2940 2006-05-22 Borut Razem <borut.razem AT siol.net>
2941
2942         * support/regression/ports/pic16/specs.mk: removed stack size linker
2943           directive
2944         * support/regression/tests/array.c,
2945           support/regression/tests/bitopcse.c,
2946           support/regression/tests/bug-908454.c,
2947           support/regression/tests/malloc.c: modified for pic16 regression test
2948         * support/regression/tests/bitfields.c:
2949           pic16 - excluded bitfileds of size > 8
2950         * support/regression/tests/bp.c: pic16 - reduced data size
2951         * support/regression/tests/bug-221100.c: pic16 - reduced data size
2952         * support/regression/tests/bug-460010.c:
2953           pic16 - used the absolute address the fits in memory
2954         * support/regression/tests/bug-716242.c:
2955           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
2956         * support/regression/tests/float.c:
2957           pic16 - excluded - data size too big
2958         * support/regression/tests/onebyte.c:
2959           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
2960         * support/regression/tests/shifts.c:
2961           pic16 - function names probably have to differ in first X characters
2962           (gpasm limitation?)
2963         * support/regression/tests/staticinit.c:
2964           pic16 - excluded some tests due error: no target memory available for
2965           section ".idata"
2966
2967 2006-05-22 Borut Razem <borut.razem AT siol.net>
2968
2969         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
2970           second try. Thanks Stas Sergeev once more.
2971
2972 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2973
2974         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
2975           (genLeftShift, genRightShift): fixed bug 1491627
2976         * src/hc08/peeph.def (rules 7, 8.x): added
2977         * support/regression/tests/shifts.c (ShiftLeftByParam,
2978           ShiftRightByParam, testShiftByParam): added to test variable shifting
2979
2980 2006-05-20 Raphael Neider <rneider AT web.de>
2981
2982         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
2983         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
2984           (allocReg): add only new registers to dynAllocRegs,
2985           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
2986             #1489055, #1445850, and probably #1483693
2987
2988 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
2989
2990         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
2991         bug in for-loop that didn't emit the last of CONFIG and ID registers
2992
2993 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
2994
2995         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
2996           with offset
2997         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
2998           1489016, 1434401 and 1490124
2999         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
3000           1489016, 1434401 and 1490124
3001
3002 2006-05-17 Borut Razem <borut.razem AT siol.net>
3003
3004         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
3005           thanks Stas Sergeev
3006
3007 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3008
3009         * device/include/mcs51/P89c51RD2.h,
3010         * device/include/mcs51/P89LPC901.h,
3011         * device/include/mcs51/P89LPC922.h,
3012         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
3013
3014 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3015
3016         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
3017         to fix missing stack pragma in compiled binary object file,
3018
3019 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
3020
3021         * support/packihx/configure.in,
3022         * support/packihx/configure: removed warning, autoconf >= 2.5x can
3023         determine sizeof basic types even while cross compiling
3024
3025 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
3026
3027         * src/avr/gen.c (aopop),
3028         * src/ds390/gen.c (aopOp),
3029         * src/hc08/gen.c (aopOp),
3030         * src/mcs51/gen.c (aopop),
3031         * src/pic16/gen.c (pic16_aopOp),
3032         * src/pic/gen.c (aopOp),
3033         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
3034         if size of operand is smaller than spill location
3035
3036 2006-05-12 Borut Razem <borut.razem AT siol.net>
3037
3038         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
3039           have to have CR/LF line endings even if they are checked out on *nix
3040           or on WIN32 in cygwin binmode
3041
3042 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
3043
3044         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
3045         * device/include/ds80c390.h: added sfr16 definitions
3046         * src/ds390/gen.c,
3047         * src/ds390/gen.h,
3048         * src/ds390/main.c,
3049         * src/ds390/ralloc.c,
3050         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
3051           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
3052           bit returning functions
3053         * support/regression/tests/sfr16.c: enabled test on ds390
3054
3055 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3056
3057         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
3058         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
3059
3060 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
3061
3062         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
3063         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
3064           (cl_address_space constructor): removed expensive initialization,
3065           (cl_address_space::get_cell): extended for late initialization,
3066           (cl_address_space::*): use late initialization,
3067           (cl_address_decoder::activate): removed expensive initialization,
3068           This reduced regression test running time by 25%
3069
3070 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
3071
3072         * packihx/,
3073         * configure.in,
3074         * configure,
3075         * sdcc.dsw,
3076         * Makefile.bcc,
3077         * Makefile.in,
3078         * support/packihx/Makefile.in,
3079         * support/packihx/clean.mk,
3080         * support/packihx/Makefile.bcc,
3081         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
3082
3083 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3084
3085         * src/SDCCval.c (valNot): fix for regression test failure
3086           of not.c on big endian hosts
3087
3088 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3089
3090         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
3091
3092 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3093
3094         * device/lib/mcs51/Makefile.in: changed string comparison operator
3095           to = for POSIX compliance; == is bash extension
3096
3097 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
3098
3099         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
3100           kosmonaut_pirx
3101
3102 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
3103
3104         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
3105         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
3106         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
3107         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
3108         bug report #1478657,
3109
3110 2006-05-05 Borut Razem <borut.razem AT siol.net>
3111
3112         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
3113           making the html
3114
3115 2006-05-02 Borut Razem <borut.razem AT siol.net>
3116
3117         * doc/Makefile.in: removed *.ind dependency since there is no rule to
3118           create *.ind, which made make to fail if invoked with -j 2
3119
3120 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
3121
3122         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
3123           Hubert Sack for patch 1479782
3124
3125 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
3126
3127         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
3128
3129 2006-05-01 Raphael Neider <rneider AT web.de>
3130
3131         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
3132           (create_pic): store only prefix-free device name,
3133           (init_pic): check for device names with "16" prefix,
3134           (list_valid_pics),
3135         * src/pic/device.h (struct PIC_device),
3136         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
3137             stored device name,
3138         * device/include/pic/pic12f{635,675,629,683}.h,
3139         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
3140         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
3141         * device/include/pic/pic16f505.h,
3142         * device/lib/pic/libdev/pic16f505.c: removed
3143         * device/include/pic/pic14devices.txt: added support for pic12f
3144             devices, removed unsupported non 16-bit devices
3145             [above changes provided by patch from Zik Saleeba]
3146         * src/pic/*, src/pic16/*, device/include/pic16/*,
3147           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
3148
3149 2006-05-01 Borut Razem <borut.razem AT siol.net>
3150
3151         * configure.in, configure, doc/Makefile.in:
3152           sync with nightly build makefile - latex, dvipdf and dvips
3153           not needed any more
3154
3155 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
3156
3157         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
3158         in the library source
3159
3160 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
3161
3162         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
3163
3164 2006-04-28 Raphael Neider <rneider AT web.de>
3165
3166         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
3167         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
3168           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
3169         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
3170
3171 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
3172
3173         * device/lib/pic/libdev/Makefile.in,
3174         * device/lib/hc08/Makefile.in,
3175         * device/lib/gbz80/Makefile.in,
3176         * device/lib/z80/Makefile.in,
3177         * device/lib/ds390/Makefile.in,
3178         * device/lib/ds400/Makefile.in: added srcdir to include search path,
3179         thanks to Borut for the bug report
3180         * configure.in,
3181         * configure: always create doc/Makefile independent from --enable-doc
3182         * Makefile.in: always install from directory doc independent from
3183         --enable-doc
3184         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
3185         removed
3186         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
3187         * doc/Makefile.in: install *.txt if present
3188         * device/include/Makefile.in (install): added installation of pic/*.inc
3189         and pic/*.txt files again, they were erroneously removed
3190
3191 2006-04-28 Raphael Neider <rneider AT web.de>
3192
3193         * src/pic/{gen.c,main.h,pcode.c},
3194         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
3195             concerning signedness with casts
3196
3197 2006-04-28 Raphael Neider <rneider AT web.de>
3198
3199         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
3200             definition of an interrupt handler,
3201         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
3202             interrupt handler stuff from picglue() to separate routine,
3203           (picglue): enabled definition of intr handlers in files w/o main()
3204
3205 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3206
3207         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
3208           compilation with MSVC 2005 Express Edition (VC8)
3209
3210 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
3211
3212         * device/lib/Makefile: fixed build of gbz80 lib
3213
3214 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3215
3216         * support/regression/tests/bug-460010.c,
3217         * support/regression/tests/bug-524691.c,
3218         * support/regression/tests/bug-716242.c: removed conditional defines
3219           that are already in testfwk.h
3220
3221 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3222
3223         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
3224           (AccAXRsh1): added, shift right by 1,
3225           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
3226            AccAXLrl1
3227         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
3228
3229 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
3230
3231         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
3232         remove cast to same type
3233         * src/SDCCast.c (decorateType): fix for RFE 1475742,
3234         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
3235         * as/z80/Makefile,
3236         * link/z80/Makefile: removed, they have moved to
3237         Makefile.in files
3238         * configure,
3239         * configure.in: replaced duplicate message about ucsim by missing sdcpp
3240         * install-sh: fix bug #1204398 by setting umask 0022
3241         * device/lib/Makefile: separate build of z80 and gbz80 lib
3242
3243 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
3244
3245         Enabled VPATH feature: changed nearly all Makefiles (149 files).
3246         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
3247
3248         One basic decision: e.g. src/clean.mk includes further files. In order
3249         to make this work there are two solutions:
3250         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
3251           run configure on them. This way they can use
3252           'include $(srcdir)/port-clean.mk'
3253         - always include clean.mk by the Makefile at the same level. To avoid
3254           that `make clean` tries to include and build Makefile.dep the
3255           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
3256           implemented, because now even `make uninstall` doesn't create
3257           Makefile.in. clean.mk could be eliminated by pasting it in
3258           Makefile.in.
3259
3260         * debugger/mcs51/Makefile.in: build own objects from library sources
3261         (SLIB, SDCC) in current directory
3262
3263         * configure, configure.in: renamed --disable-device-lib-build in
3264         --disable-device-lib; added --enable-doc, the required tools are
3265         searched by configure; added result message; the toolchain for the
3266         belonging ports are now only built, if the port is enabled.
3267
3268         * support/regression/*: all output is written in directory gen, because
3269         the fwk and ports directories don't livet in the build tree using vpath
3270
3271         * doc/sdccman.lyx: renamed --disable-device-lib-build to
3272         --disable-device-lib, added --enable-doc, added section VPATH
3273
3274         * sim/ucsim/configure.in,
3275         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
3276         z80 are enabled by default
3277
3278 2006-04-24 Raphael Neider <rneider AT web.de>
3279
3280         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
3281             to config word, "pic14_"-prefixed some extern functions
3282           (pic14_emitConfigWord): emit __config directive(s) if assignment to
3283             config word has been found
3284         * src/pic/device.h: added prototypes
3285         * src/pic/pcode.c: added "pic14_"-prefix where needed
3286         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
3287             fixup
3288         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
3289             words,
3290           (pic14emitRegularMap): ignore config words,
3291           (pic14createInterruptVect): moved generating __config directives away
3292           (picglue): have __config directives emitted
3293
3294 2006-04-24 Borut Razem <borut.razem AT siol.net>
3295
3296         * doc/Makefile: sync with nightly build makefile
3297
3298 2006-04-24 Raphael Neider <rneider AT web.de>
3299
3300         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
3301             registers that have not been assigned proper liveranges,
3302             fixes #1469504 and #1474602,
3303           (pCodeRegOptimizeRegUsage): fixed typo in comment
3304
3305 2006-04-24 Borut Razem <borut.razem AT siol.net>
3306
3307         * device/examples/main8051.c: deleted - it was removed from CVS
3308           24.mar.2000 and after that modified 18.feb.2001, so it reappered
3309           after the transition to Subversion
3310         * src/SDCCalloc.h: deleted - it was removed  from CVS
3311           3.feb.2001 and after that modified 18.feb.2001, so it reappered
3312           after the transition to Subversion
3313         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
3314           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
3315           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
3316           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
3317
3318 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
3319
3320         * as/asx8051.dsp: added mcs51/strcmpi.h
3321         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
3322         * as/hc08/aslink.h: updated lnksect prototype
3323         * as/hc08/asm.h,
3324         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
3325         * as/hc08/asmain.c,
3326         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
3327           (newdot): handle A_ABS
3328         * as/hc08/asout.c,
3329         * as/mcs51/asout.c (outarea): output address
3330         * as/hc08/lkaomf51.c,
3331         * as/mcs51/lkaomf51.c: disabled unused array UsageType
3332         * as/hc08/m08pst.c,
3333         * as/mcs51/i51pst.c,
3334         * as/z80/z80pst.c: "ABS" is not A_OVR
3335         * as/hc08/lkarea.c (newarea): read a_addr,
3336           (lnkarea): added codemap array, sort absolute areas to the front,
3337            combine all GSINITx/GSFINAL,
3338           (find_empty_space, allocate_space): new functions,
3339           (lnksect): return next address, handle absolute sections
3340         * as/mcs51/lkarea.c (newarea): read a_addr,
3341           lnksect2 prototype changed,
3342           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
3343           (find_empty_space, allocate_space): new, factored out of lnksect2,
3344           (lnksect2): return next address, handle absolute sections
3345         * as/hc08/lkhead.c,
3346         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
3347         * as/hc08/lklibr.c (addfile, fndsym),
3348         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
3349           index out of range and detect both '\' and '/'
3350         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
3351         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
3352           regression tests (ds390 cannot return bool yet)
3353         * doc/sdccman.lyx: changed version number, document changed --no-peep,
3354           document critical interrupts on z80, document changed SDCC define
3355         * src/asm.c (_asxxxx_mapping): fixed .org directive,
3356           (_a390_mapping): added .org directive
3357         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
3358           (genMultOneByte): fixed warnings
3359         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
3360           ones
3361         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
3362         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
3363           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
3364         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
3365         * src/pic16/main.c: removed newReg prototype
3366         * src/pic16/pcode.c,
3367         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
3368           warnings
3369         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
3370           ones
3371         * src/pic16/ralloc.c
3372         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
3373           to fix warnings
3374         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
3375           from short to PIC_OPTYPE
3376         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
3377         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
3378           optype from short to PIC_OPTYPE
3379         * src/port.h: made int_size unsigned to fix warnings
3380         * src/SDCC.y: fixed warning on MSVC
3381         * src/SDCCicode.c (getArraySizePtr): return unsigned int
3382         * src/SDCCopt.c (convertToFcall): fixed warnings
3383         * src/SDCCsymt.h: removed double prototype for genSymName
3384         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
3385           offset int to fix warnings
3386
3387 2006-04-22 Borut Razem <borut.razem AT siol.net>
3388
3389         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3390           references to CVS replaced with Subversion
3391
3392 2006-04-21 Borut Razem <borut.razem AT siol.net>
3393
3394         * doc/sdccman.lyx, */Makefile, */Makefile.in:
3395           references to CVS replaced with Subversion
3396
3397 2006-04-19 Borut Razem <borut.razem AT siol.net>
3398
3399         * src/version.awk: adapted for svn
3400         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
3401           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
3402           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
3403           /binutils-avr/etc/*.vi, *.jin: removed all properties
3404           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
3405
3406 2006-04-19 Borut Razem <borut.razem AT siol.net>
3407
3408         * CVS to Subversion migration completed
3409
3410 2006-04-18 Borut Razem <borut.razem AT siol.net>
3411
3412         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
3413           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
3414
3415 2006-04-17 Borut Razem <borut.razem AT siol.net>
3416
3417         * device/include/Makefile.in: added pic/*.inc to the installation
3418
3419 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
3420
3421         * support/regression/collate-results.py: fixed output in case of
3422         a valdiag error
3423         * support/regression/generate-cases.py: fixed splitting of pathnames
3424         with dots
3425         * as/hc08/lklibr.c (addfile),
3426         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
3427
3428 2006-04-11 Raphael Neider <rneider AT web.de>
3429
3430         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
3431         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
3432         * src/pic16/pcode.c (assignValnums): fixed #1460578
3433
3434 2006-04-11 Raphael Neider <rneider AT web.de>
3435
3436         * device/lib/pic/libdev/*.c,
3437         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
3438           fixes #1468739, enables compilation in --std-c99 mode
3439         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
3440
3441 2006-04-11 Raphael Neider <rneider AT web.de>
3442
3443         * src/pic/device.c (find_device): removed debug output
3444           (list_valid_pics): enabled verbose listing of supported devices
3445         * device/include/stdbool.h: define bool as char for pic14/16 as well
3446
3447 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3448
3449         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
3450
3451 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3452
3453         * .version: bumped version to 2.5.6
3454         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
3455
3456 2006-04-06 Raphael Neider <rneider AT web.de>
3457
3458         * .version: bumped version to 2.5.6 (pic14 ABI changed)
3459         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
3460         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
3461           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
3462             pic14_constructAbsMap
3463           (pic14printPublics): declare absolute global symbols as global
3464           (pic14createInterruptVect),
3465         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
3466           (newReg): assume new registers unused, use correct name in
3467             hashtable (reg->name instead of name), more debugLog output
3468         * src/pic/device.h (PIC_device): added fields for verbose output
3469         * src/pic/device.c: moved device definition to pic14devices.txt,
3470             added routines for runtime parsing of pic14devices.txt,
3471             added support for second config word
3472         * src/pic/main.c (_process_pragma): removed #pragma maxram,
3473           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
3474           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
3475           (_pic14_parseOptions): moved pCodeInitRegisters here
3476           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
3477         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
3478           (pCodeInitRegisters): rewrapped comments, perpared new approach to
3479             handling the pseudo stack
3480         * device/lib/Makefile.in: ignore failures in objects-pic16,
3481         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
3482         * device/lib/pic/NEWS: document new dependency on picXXX.lib
3483         * device/lib/pic/Makefile.subdir,
3484         * device/lib/pic16/Makefile.subdir: improved clean rules
3485         * device/lib/pic/libdev/: NEW, pic14 device libraries
3486         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
3487         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
3488         * device/include/Makefile.in: create subdir and install pic14 headers
3489         * device/include/pic/p16f_common.inc: removed unused declarations
3490         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
3491             PICs from inc2h.pl v1.6,
3492             replaced BIT_AT macros with struct declarations
3493         * device/include/pic/pic14devices.txt: definition of supported devices,
3494             all above improvements contributed by Zik Saleeba, thanks
3495         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
3496         * support/scripts/sdcc.nsi: also install pic14 device libraries and
3497             headers
3498
3499 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3500
3501         * device/include/mcs51/c8051f410.h: added interrupt numbers,
3502         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
3503           thanks to Charles Olds
3504
3505 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3506
3507         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
3508
3509 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3510
3511         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
3512         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
3513         * support/regression/bug1464657.c: added, new test
3514
3515 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3516
3517         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
3518           version number
3519
3520 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3521
3522         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
3523           --no-peep and --peep-file <file> are used don't use default rules but
3524           do use the <file>
3525
3526 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
3527
3528         * src/mcs51/gen.c (genCall): fixed bug 1457608
3529
3530 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3531
3532         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
3533         changes seem to cause (trigger?) problems with the build system.
3534
3535 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
3536
3537         * src/SDCCpeeph.c (operandsLiteral): new, added,
3538           (callFuncByName): inserted operandsLiteral
3539         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
3540
3541 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3542
3543         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
3544         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
3545
3546 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3547
3548         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
3549           implemented patch 1120823 Thanks to Willy De la Court (normal
3550           interrupts need an interrupt number now if they are made critical),
3551           and enabled nesting of critical functions though not for gbz80
3552           (genCritical, genEndCritical): added functions
3553           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
3554         * src/z80/mappings.i: added "ei" to all mappings
3555
3556 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3557
3558         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
3559         submitted by the Debian SDCC maintainer Aurelien Jarno:
3560         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
3561         archive with gcc 4.1 on mips and wrote the patch"
3562
3563 2006-03-16 Raphael Neider <rneider AT web.de>
3564
3565         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
3566           the left operand is shorter than the result (c* = lit-c* + int),
3567           fixes bug #1450796
3568         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
3569           OP_SYMBOL
3570
3571 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3572
3573         * src/.version: increased version number to 2.5.5
3574         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
3575         linking is done manually in pic16 port's _linkEdit,
3576         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
3577         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
3578         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
3579         allocate asmop as AOP_ACC,
3580         (aopForRemat): added parameter 'bool result' in function declaration,
3581         (pic16_aopGet): return AOP_ACC when accessing WREG,
3582         (pic16_popGetTempReg): minor modification,
3583         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
3584         'pic16_allocWithIdx',
3585         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
3586         calling function in absolute addresses,
3587         (genAssign): take into account AOP_ACC asmop,
3588         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
3589         * src/pic16/pcoderegs.c: some debug functions and lines added,
3590         * src/pic16/ralloc.c (decodeRegType): added but commented out,
3591         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
3592         register too,
3593         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
3594         call to allocReg, not by manually allocating a new one,
3595         (pic16_assignRegisters): now before going through the register
3596         allocating functions mark all registers as free. This eliminates some
3597         side effects resulting from peephole parser done earlier in the backbone
3598
3599 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
3600
3601         * src/SDCCicode.c (geniCodeLogic),
3602         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
3603
3604 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
3605
3606         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
3607           (genSend): bugfix, do not allocate and free twice,
3608           (shiftRLong): handle partially overlapping aops
3609         * support/regression/tests/bitopcse.c: fixed warning redefined idata
3610
3611 2006-03-08 Borut Razem <borut.razem AT siol.net>
3612
3613         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
3614           for pic16
3615
3616 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
3617
3618         * support/regression/tests/bug1409955.c: new, added
3619         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
3620         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
3621           (aopForSym, aopOp): increment asmop.allocated if reused,
3622           (freeAsmop): decrement asmop.allocated and check for zero instead of
3623           using asmop.freed,
3624           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
3625           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
3626            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
3627            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
3628            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
3629            genSignedRightShift, genRightShift, genDataPointerGet,
3630            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
3631            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
3632             in reverse order from allocation,
3633           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
3634             added swappedLR to keep track
3635         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
3636           pdata & code for GCC, z80, gbz80 & hc08
3637         * support/regression/tests/zeropad.c: moved defines to testfwk.h
3638
3639 2006-03-08 Raphael Neider <rneider AT web.de>
3640
3641         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
3642
3643 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
3644
3645         * device/include/mcs51/c8051f410.h: new SiLabs mcu
3646         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
3647         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
3648
3649 2006-03-06 Borut Razem <borut.razem AT siol.net>
3650
3651         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
3652           made the linker quiet
3653
3654 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3655
3656         * src/pic16/gen.c (genPcall): fixed bug #1443644
3657         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
3658         which dumps before the function entry point a data byte which represents
3659         the number of the local variables used by the specified function, added
3660         'xinst' for initial support for Extended Instruction Support,
3661         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
3662         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
3663         port->fun_prefix anymore (may change later),
3664         (genFunction, genEndFunction): do not store/restore local registers for
3665         _main (this should take care the --main-return command line option in
3666         the future),
3667         (genOr): removed some legacy pic-port instructions,
3668         * src/pic16/genarith.c (genAddLit): re-enabled old code because
3669         performing operations with SFR's causes data to be written more than
3670         once to each SFR. Perhaps SFRs should be handled in special cases...
3671         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
3672         pcode.h
3673         * src/pic16/main.c (_process_pragma): stack bound checking did not take
3674         into account for stack starting position,
3675         (struct OPTIONS pic16_optionsTable): added command line argument
3676         --extended or -y for Extended Instruction Support,
3677         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
3678         (deassignLRs): *** perhaps the most important change, old 'for' code
3679         (commented out for reference), didn't account for some registers which
3680         were left marked 'not free' after a pointer operation. The change
3681         reduces register usage a lot in some cases
3682
3683 2006-03-04 Borut Razem <borut.razem AT siol.net>
3684
3685         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
3686           _clean
3687         * support/regression/tests/bug-524697.c: decreased array size for
3688           mcs51 to fit into the internal RAM
3689         * support/regression/Makefile.in: a little bit more verbose
3690
3691 2006-03-03 Borut Razem <borut.razem AT siol.net>
3692
3693         * support/regression/fwk/lib/testfwk.c,
3694           support/regression/fwk/include/testfwk.h: introduced function
3695           _prints(), nonrecursive _printn(), call _initEmu() from main()
3696         * support/regression/ports/gbz80/support.asm,
3697           support/regression/ports/ucz80/support.asm,
3698           support/regression/ports/z80/support.asm,
3699           support/regression/ports/ds390/support.c,
3700           support/regression/ports/hc08/support.c,
3701           support/regression/ports/host/support.c,
3702           support/regression/ports/mcs51/support.c,
3703           support/regression/ports/xa51/support.c: added empty _initEmu()
3704           function
3705         * support/regression/ports/pic16/gpsim.cmd,
3706           support/regression/ports/pic16/spec.mk,
3707           support/regression/ports/pic16/support.c,
3708           support/regression/Makefile.in: added pic16 regression test
3709
3710 2006-03-01 Raphael Neider <rneider AT web.de>
3711
3712         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
3713           genConstPointerGet): use safe way of generating MOVFF to cover
3714             literals as well as registers, fixes bug #1440527
3715         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
3716             dereference
3717           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
3718             more correctly, fixes bug #1232186
3719           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
3720         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
3721             gplink guess the correct processor in more cases, applied patch
3722             from Till Riedel attached to and fixing bug #1436552
3723
3724 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3725
3726         * support/regression/tests/array.c: added, contains check for #1434401
3727         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
3728
3729 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
3730
3731         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
3732         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
3733         * device/include/mcs51/c8051f326.h,
3734         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
3735         * device/include/mcs51/c8051f000.h,
3736         * device/include/mcs51/c8051f018.h,
3737         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
3738           PCON_IDLE,PCON_STOP and added sfr16 definitions
3739
3740 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3741
3742         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
3743           genGetWord): fixed bug 1409955
3744
3745 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
3746
3747         * device/include/hc08/mc68hc908gp32.h,
3748         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
3749
3750 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
3751
3752         * src/SDCCast.c (constExprValue): return NULL if not a value
3753         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
3754         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
3755         * support/regression/tests/bitfields.c: enabled signed bitfield for all
3756
3757 2006-02-13 Borut Razem <borut.razem AT siol.net>
3758
3759         * src/regression/ptrarg.c: added, fails due to bug #1430967
3760         * src/regression/Makefile: ptrarg.c added, ...
3761
3762 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
3763
3764         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
3765         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
3766
3767 2006-02-11 Borut Razem <borut.razem AT siol.net>
3768
3769         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
3770           print "Processor: xxx" message to stdout only if --verbose
3771
3772 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3773
3774         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
3775         * support/regression/tests/bug1426356.c: added
3776         * support/regression/tests/bitfields.c: removed 2 tests
3777
3778 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3779
3780         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
3781         * device/include/mcs51/c8051f330.h,
3782         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
3783           PCON_IDLE,PCON_STOP and added sfr16 definitions
3784         * device/lib/_divsint.c,
3785         * device/lib/_divuint.c,
3786         * device/lib/_divulong.c,
3787         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
3788           register bank bug for small stackauto
3789
3790 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3791
3792         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
3793
3794 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
3795
3796         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
3797         * all.dsp: corrected several bin paths
3798         * device/include/mcs51/c8051f120.h,
3799         * device/include/mcs51/c8051f300.h,
3800         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
3801           to PCON_IDLE,PCON_STOP
3802         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
3803         * device/lib/printf_large.c (output_float): fixed bug 1388703
3804         * support/regression/tests/bug1057979.c: added test for bug 1388703
3805
3806 2006-02-08 Raphael Neider <rneider AT web.de>
3807
3808         * src/pic/pcode.c (pciTRIS): fixed typo,
3809           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
3810           (LinkFlow): fixed handling of flows that end in a call,
3811           (ReuseReg): perform safety check earlier
3812         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
3813             to work with flows at the beginning of a pBlock,
3814             fixes #1426557 (Symbol not previously defined),
3815           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
3816             usage information
3817           (RemoveUnusedRegisters): update register usage info
3818         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
3819             created, reuse existing ones instead
3820         * src/pic/gen.c (genPcall): fixed #1424719
3821
3822 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
3823
3824         * link/z80/lkmain.c,
3825         * link/z80/lklex.c,
3826         * link/z80/lkdata.c,
3827         * link/z80/aslink.h: fixed build on current cygwin:
3828         replaced getline() by lk_getline()
3829
3830 2006-02-01 Borut Razem <borut.razem AT siol.net>
3831
3832         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
3833           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
3834           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
3835           src/regression/bool1.c, src/regression/bool2.c,
3836           src/regression/bool3.c, src/regression/call1.c,
3837           src/regression/compare.c, src/regression/compare10.c,
3838           src/regression/compare2.c, src/regression/compare3.c,
3839           src/regression/compare4.c, src/regression/compare5.c,
3840           src/regression/compare6.c, src/regression/compare7.c,
3841           src/regression/compare8.c, src/regression/compare9.c,
3842           src/regression/configword.c, src/regression/for.c,
3843           src/regression/inline.c, src/regression/mult1.c,
3844           src/regression/nestfor.c, src/regression/or1.c,
3845           src/regression/pointer1.c, src/regression/ptrfunc.c,
3846           src/regression/rotate1.c, src/regression/rotate2.c,
3847           src/regression/rotate3.c, src/regression/rotate4.c,
3848           src/regression/rotate5.c, src/regression/rotate6.c,
3849           src/regression/rotate7.c, src/regression/string1.c,
3850           src/regression/struct1.c, src/regression/sub.c,
3851           src/regression/sub2.c, src/regression/switch1.c,
3852           src/regression/while.c, src/regression/xor.c,
3853           src/regression/create_stc, src/regression/simulate,
3854           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
3855           regression tests
3856         * src/regression/gpsim_assert.h: added
3857
3858 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3859
3860         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
3861         ((void (code *) (void)) 0) ();
3862         * as/hc08/aslex.c,
3863         * as/hc08/aslink.h,
3864         * as/hc08/asm.h,
3865         * as/hc08/asmain.c,
3866         * as/hc08/lkdata.c,
3867         * as/hc08/lklex.c,
3868         * as/hc08/lkmain.c,
3869         * as/mcs51/aslex.c,
3870         * as/mcs51/aslink.h,
3871         * as/mcs51/asm.h,
3872         * as/mcs51/asmain.c,
3873         * as/mcs51/lkdata.c,
3874         * as/mcs51/lklex.c,
3875         * as/mcs51/lkmain.c,
3876         * as/z80/aslex.c,
3877         * as/z80/asm.h,
3878         * as/z80/asmain.c: fixed build on current cygwin:
3879         replaced getline() by as_getline()
3880
3881 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3882
3883         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
3884         declarator in the symbol chain
3885         * src/SDCCsymt.h,
3886         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
3887         parameter list for function pointers
3888         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
3889         * support/regression/tests/bug-716242.c: added
3890
3891 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3892
3893         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
3894         offset if possible
3895         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
3896
3897 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3898
3899         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
3900         inifinitely recurseable, added static
3901         * support/regression/tests/bug-1408066.c: added
3902
3903 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
3904
3905         * src/SDCCicode.h,
3906         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
3907         renamed, added possibility to create "postLoopLbl"-labels
3908         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
3909         newiTempLoopHeaderLabel
3910         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
3911         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
3912         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
3913         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
3914         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
3915         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
3916         (basicInduction): fixed bug #136564, made static,
3917         (loopInduction): changed parameter of basicInduction, made static,
3918         (addPostLoopBlock): added
3919         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
3920         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
3921         findLoopEndSeq
3922         * support/regression/tests/bug-136564.c: added
3923         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
3924         --std-sdcc99 to LIBSDCCFLAGS
3925
3926 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
3927
3928         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
3929         while loop
3930         * support/regression/tests/bug-1406131.c: added
3931
3932 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
3933
3934         * src/SDCCast.c (decorateType): fix promotion of unary minus
3935         * src/SDCCsymt.c (computeType): beautified
3936         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
3937         (valUnaryPM, valComplement): fix sign and promotion,
3938         (valNot): ANSI: result type is int (SDCC: unsigned char)
3939         * support/regression/tests/uminus.c: speedup by removing superflous
3940         test case 'int'
3941         * support/regression/tests/onebyte.c: added promotion and signedness
3942         tests for unary minus
3943         * support/regressions/tests/bug-477927.c: disable warning about
3944         uninitialized variables
3945         * support/regression/tests/not.c: added
3946
3947 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3948
3949         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
3950         * src/mcs51/gen.c (gen51Code): show final register usage after
3951         fillGaps in asm with --i-code-in-asm
3952         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
3953         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
3954         incUsed, rliveClear, adjustIChain): made static,
3955         (setFromRange): excluded because it's unused,
3956         (findPrevUseSym, markWholeLoop): added,
3957         (findPrevUse): rewritten; fixes bug 895992; now a complete search
3958         through all branches of predecessors enables sdcc to emit the warning
3959         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
3960         (rlivePoint): made static, added parameter emitWarnings which is only
3961         true during the first run out of two,
3962         (findRecursiveSucc, findRecursivePred): removed,
3963         (computeLiveRanges): made static, added parameter emitWarnings,
3964         (dumpIcRlive): added for debugging only
3965         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
3966         removed prototype of setFromRange()
3967         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
3968         in call of computeLiveRanges()
3969         * support/regression/tests/bug-895992.c: added
3970         * support/regression/tests/bug-971834.c: added
3971         * support/valdiag/tests/bug-895992.c: added
3972         * support/valdiag/tests/bug-971834.c: added
3973
3974 2005-12-18 Raphael Neider <rneider AT web.de>
3975
3976         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
3977           (genUnpackBits): improved code for direct operands,
3978           (genPackBits): improved code for literal assignment to bitfields
3979             and for direct destination operands (no FSR indirection),
3980             prevented redundant AND, fixes #1362800,
3981           (AccLsh): added parameter to disable masking of the result
3982         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
3983           skip instructions with side-effects (like incfsz),
3984           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
3985         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
3986         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
3987           fixes #1375263
3988
3989 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
3990
3991         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
3992         volatile variables as spill location
3993
3994 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
3995
3996         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
3997         replacing literals
3998         * support/regression/tests/bug-1376320.c: added
3999
4000 2005-12-08 Raphael Neider <rneider AT web.de>
4001
4002         * src/pic/device.c: renamed is_shared to pic14_is_shared
4003         * src/pic/gen.c (genIfx): re-enabled handling of sbits
4004         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
4005           (is_valid_identifier): added for above workaround
4006
4007 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
4008
4009         * device/lib/Makefile.in: fixed to enable port-specific-objects
4010         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
4011           char, thanks Hubert Sack
4012         * doc/sdccman.lyx: documented --xstack-loc,
4013           elaborated a bit more on interrupts and pitfalls,
4014           removed "setjmp/longjmp unsupported",
4015           documented some unsupported C99 features
4016         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
4017         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
4018           if, thanks Hubert Sack
4019         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
4020         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
4021           make make_library
4022         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
4023           regression tests can report resource usage (rfe 700441)
4024         * support/regression/collate-results.py: report resource usage
4025         * support/regression/ports/ds390/spec.mk,
4026         * support/regression/ports/hc08/spec.mk,
4027         * support/regression/ports/mcs51/spec.mk,
4028         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
4029         * support/regression/ports/ds390/uCsim.cmd,
4030         * support/regression/ports/hc08/uCsim.cmd,
4031         * support/regression/ports/mcs51/uCsim.cmd,
4032         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
4033         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
4034           library, use the default one
4035         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
4036           building the library
4037
4038 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
4039
4040         * config.dsp: added dependency on .version and configure_vc.awk
4041         * device/include/setjmp.h: updated for --stack-auto and --xstack
4042         * device/include/mcs51/at89c51snd1c.h: corrected line endings
4043         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
4044         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
4045         * device/lib/libsdcc.lib: added _setjmp
4046         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
4047           (decorateType): fixed bug 1372851,
4048           (optimizeGetHbit): fixed warning
4049         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
4050           array initialisation
4051         * support/regression/tests/bug1057979.c: added test for bug 1358192
4052         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
4053
4054 2005-12-03 Borut Razem <borut.razem AT siol.net>
4055
4056         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
4057           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
4058
4059 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4060
4061         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
4062         createIval): implement symbol independant "flexible array member",
4063         (createIvalCharPtr): implemented flexible array initialisation with a
4064         string
4065         * src/SDCCsymt.c (copyStruct): removed,
4066         (getSize): fixed misleading comment,
4067         (getAllocSize): removed, the additional allocation size is now in
4068         sym->flexArrayLength,
4069         (checkStructFlexArray): new, syntax checks for flexible array members,
4070         (compStructSize): added syntax checks for "flexible array members"
4071         (copyStruct): removed,
4072         (copyLinkChain): removed inefficient fix for bug 770487
4073         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
4074         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
4075         symbol->flexArrayLength
4076         * src/SDCCerr.c,
4077         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
4078         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
4079         * support/regression/tests/structflexarray.c: added
4080         * support/valdiag/tests/structflexiblearray.c: added
4081
4082 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
4083
4084         * src/SDCCast.c (decorateType): fixed bug 1368489
4085         * support/Util/SDCCerr.c,
4086         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
4087
4088 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4089
4090         * device/include/mcs51/at89c51snd1c.h: added file submitted by
4091           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
4092
4093 2005-11-27 Borut Razem <borut.razem AT siol.net>
4094
4095         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
4096           support/cpp2/mkdeps.h: added command line option
4097           -obj-ext=<extension> to SDCPP to define object file externion, used
4098           for generation of make dependencies (-M)
4099         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
4100
4101 2005-11-26 Borut Razem <borut.razem AT siol.net>
4102
4103         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
4104           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
4105           added pic and pic16 libraries
4106
4107 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4108
4109         * device/include/float.h: Corrected typo in prototype of __fsgt
4110
4111 2005-11-25 Borut Razem <borut.razem AT siol.net>
4112
4113         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
4114           added creation of model-mcs51-stack-auto libraries
4115
4116 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
4117
4118         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
4119         and fields-list too
4120         * src/SDCCast.c (createIvalArray): removed obsolete comment
4121
4122 2005-11-24 Borut Razem <borut.razem AT siol.net>
4123
4124         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
4125           added missing device/lib/mcs51/crt*.asm sources
4126
4127 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
4128
4129         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
4130
4131 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
4132
4133         * device/lib/_fs2schar.c,
4134         * device/lib/_fs2sint.c,
4135         * device/lib/_fs2slong.c: optimized inline asm
4136
4137 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4138
4139         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4140           Better handling of floats between -1.0 and 0.0.
4141
4142 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4143
4144         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
4145           (the missing "if"s prohibited removal of redundant labels)
4146
4147 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4148
4149         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
4150           Properly convert floats between -1.0 and 0.0 to long, int, and char
4151           types (max integer value of negative floats tends to zero).
4152         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4153           Removed changes made so to work properly with floats between
4154           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
4155           and _fs2char.c
4156
4157 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4158
4159         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4160         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
4161         (genCast) cosmetic change
4162         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
4163         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
4164         from mcs51
4165         * support/regression/tests/bitfields (testSignedBitfields): added
4166
4167 2005-11-18 Borut Razem <borut.razem AT siol.net>
4168
4169         * sdcc/device/lib/Makefile.in: remove all unnecessary files
4170         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
4171           introduced SILENT option to make building of pic16 libraries less
4172
4173 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4174
4175         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
4176           Now they work properly with floats between -1.0 and 0.0
4177         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
4178
4179 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4180
4181         * src/SDCCicode.c (printOperand): added missing else
4182
4183 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4184
4185         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4186         reformatted for better readability
4187         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
4188         signed bitfields
4189
4190 2005-11-17 Borut Razem <borut.razem AT siol.net>
4191
4192         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
4193           introduced SILENT option to make building of pic16 libraries less
4194           verbose - used for nightly snapshot build
4195         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
4196           available on Win32 platforms.
4197         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
4198           medium, large, pic and pic16
4199
4200 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4201
4202         * device/lib/printf_large.c: Temporary patch for bug 1358192:
4203           printf("%f"...) sets fraction to zero.
4204
4205 2005-11-16 Raphael Neider <rneider AT web.de>
4206
4207         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
4208           fixes #1357221
4209         * src/pic/gen.c (genIfx): implemented for CARRY bit
4210         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
4211           to generic pointers, fixes #1357332,
4212           (pic16_movLit2f): NEW,
4213           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
4214
4215 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4216
4217         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
4218
4219 2005-11-11 Raphael Neider <rneider AT web.de>
4220
4221         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
4222         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
4223           compute pointer's type from operand,
4224           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
4225           improved single bit reads, fixes bug #1353379
4226
4227 2005-11-09 Borut Razem <borut.razem AT siol.net>
4228
4229         * support/scripts/sdcc.nsi: added lib/pic to the package
4230
4231 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
4234
4235 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4236
4237         * support/regression/tests/bug1348008.c: added
4238         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
4239         * support/regression/tests/bug1337835.c: updated comment
4240
4241 2005-11-06 Borut Razem <borut.razem AT siol.net>
4242
4243         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4244           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4245           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4246           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4247           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
4248           dynamic construction of cl_error_class and derivates - 2.nd try
4249
4250 2005-11-05 Borut Razem <borut.razem AT siol.net>
4251
4252         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
4253           bug, which caused Bus Errors on sparc solaris
4254
4255 2005-11-04 Borut Razem <borut.razem AT siol.net>
4256
4257         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
4258           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
4259           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
4260           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
4261           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
4262           and derivates to resolve the initialization problem on OSX
4263
4264 2005-11-02 Borut Razem <borut.razem AT siol.net>
4265
4266         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4267           corrected typo - #include <winsock2.h>
4268
4269 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
4270
4271         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
4272           (_asxxxx_mapping): added org directive for future enhancements
4273
4274 2005-11-01 Borut Razem <borut.razem AT siol.net>
4275
4276         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
4277           enabled sockets on WIN32
4278         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
4279
4280 2005-10-31 Borut Razem <borut.razem AT siol.net>
4281
4282         * support/regression/generate-cases.py: escape backslashes in {testcase}:
4283           WIN32 backslash path delimiters should be escaped when used in C strings
4284         * support/regression/tests/bitfields.c: exclude failing assertions for
4285           __CYGWIN32__ and __MINGW32__ hosts
4286
4287 2005-10-30 Borut Razem <borut.razem AT siol.net>
4288
4289         * src/SDCCutil.c: corrected double comparison typo
4290
4291 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
4292
4293         * device/lib/medium/Makefile: added for new memory model medium
4294         * device/include/asm/mcs51/features.h: updated for medium/pdata
4295         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
4296           added Multiply & Accumulate sbit's and MAC0_PAGE define
4297         * device/include/mcs51/c8051f300.h: added sfr16 definitions
4298         * device/include/mcs51/c8051f310.h: added sfr16 definitions
4299         * device/lib/_mullong.c: update for medium model
4300         * device/lib/incl.mk: added medium model
4301         * doc/sdccman.lyx: documented medium model
4302         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
4303         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
4304         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
4305         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
4306           (allocParms): set SCLS and OCLS to pdata for medium model
4307         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
4308           for pdata,
4309           (powof2): return <0 if not power of 2
4310         * src/avr/gen.c (genBitWise): use updated powof2
4311         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
4312           (shiftR2Left2Result): small optimization in setup, save acc when storing,
4313           (shiftLLeftOrResult): use B if necessary
4314         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
4315         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
4316         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
4317         * support/regression/Makefile.in: added test-mcs51-medium
4318         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
4319
4320 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4321
4322         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
4323         specifier unsigned
4324         * device/lib/time.c (mktime): fixed bug 1334315
4325
4326 2005-10-28 Raphael Neider <rneider AT web.de>
4327
4328         * device/include/pic/p16f_common.inc: added common declarations
4329         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
4330
4331 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4332
4333         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
4334           (aopPutUsesAcc): added to predict accumulator use,
4335           (assignResultValue): save acc if necessary,
4336           (genMinusDec): store result if indirectly addressed,
4337           (genDivOneByte):  save acc if necessary,
4338           (movLeft2Result): bugfix if left already in acc,
4339           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
4340             attention to accumulator use (esp. pdata),
4341           (genReceive): receive pdata correctly
4342         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
4343         * src/SDCCicode.h: added isOperandInPagedSpace prototype
4344
4345 2005-10-27 Raphael Neider <rneider AT web.de>
4346
4347         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
4348
4349 2005-10-27 Raphael Neider <rneider AT web.de>
4350
4351         * .version: changed version to 2.5.4
4352         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
4353         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
4354           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
4355             arithmetics support routines
4356         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
4357         * device/lib/Makefile.in: also create installdir for pic
4358
4359         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
4360           pic14 port as well
4361         * src/pic/device.c (dump_sfr): rewritten to delegate register
4362           placement to the linker (use `extern sym' rather than sym EQU addr),
4363           (validAddress): fixed to check last specified address
4364         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
4365           (popGetLit): truncate literal value to 8 bit,
4366           (popGet): moved assert to more appropriate place
4367           (popGetExternal): create pCode operand from and mark the according
4368             symbol as being `extern'
4369           (popGetAddr): added sanity check on immediate's offset, provide
4370             GPOINTER tag on demand
4371           (aopPut): fixed for immediates,
4372           (mov2w_op): move operand's address or contents to WREG (depending on
4373             operand type), safer variant of mov2w,
4374           (movwf,call_libraryfunc): NEW, handy abbreviations,
4375           (get_argument_pcop,get_return_val_pcop,pass_argument,
4376           get_returnvalue): interface for accessing function parameters and
4377             return values,
4378           (assignResultValuei,genRet): use new parameter/return value interface
4379           (pic14_getDataSize): back to old version handling generic pointers,
4380           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
4381             provided implementation and/or fixed old one,
4382           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
4383             calls, removed legacy 8051 reference code
4384           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
4385           (loadSignToC): NEW, move the operands sign bit to CARRY,
4386           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
4387             genRightShiftSigned, accepts negative shift counts,
4388           (setup_fsr): load FSR and adjust IRP (indirect memory access),
4389           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
4390             generic pointers, __data pointers and __code pointers,
4391           (genUnpackBits,genPackBits): rewritten to work with generic pointers
4392             and signed bitfields, limit bitfields to 8 bit,
4393           (genDataPointerGet): fixed number of bytes read,
4394           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
4395           (genPointerGet,genPointerSet): fixed handling of __code pointers,
4396             pointers to constant data are no longer assumed to point to __code
4397             space, removed invalid pointer types,
4398           (bitpatternFromVal): retrieve the PICs representation of an integer
4399             or float literal,
4400           (genDataPointerSet): fixed assigning to po_immediate operands,
4401           (genGenPointerSet): implemented as library call,
4402           (genIfx): fixed incorrect condition,
4403           (genAddrOf): limit generic pointers' addresses to 2 bytes,
4404             provide GPOINTER tag according to destination's storage class,
4405           (genCast): added code to handle casting to generic pointers, added
4406             sign-/zero extension of the result
4407           (aop_isLitLike,op_isLitLike): fixed handling of immediates
4408         * src/pic/gen.h: added macros to access IRP bit in STATUS register
4409         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
4410           extend the result
4411         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
4412           address/register resides in the shared banks
4413           (emitSymbolToFile): improved to handle global and `pinned' symbols,
4414             put all variables into separate sections (have the linker arrange
4415             them)
4416           (picglue): put init code and interrupt handlers in separate sections
4417         * src/pic/main.c: added port specific options table, modified to PORT
4418           structure to make GPOINTERs 3 byte, added pic14_options
4419           (_pic14_do_link): private linking routine (update paths to libraries,
4420             add libsdcc.lib by default)
4421         * src/pic/main.h: declare pic14_options
4422         * src/pic/pcode.c: fixed instructions i/o relations,
4423           (RegCond): reverted to correct version,
4424           (newpCodeOpLit): truncate literals to 8 bit,
4425           (genericPrint): added debug output,
4426           (getRegFromInstruction): fixed for various operand types, simplified
4427           (BuildFlow): fixed broken handling of isntructions with labels
4428           (LinkFlow): start at last instruction in flow (skip trailing comments),
4429             pass the flow on to the next instruction after CALL
4430           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
4431           (insertPCodeInstruction): fixed inserting after a skip instruction,
4432           (DoBankSelect): fixed for labeled instructions
4433           (OptimizepBlock): honor --nopeep switch
4434           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
4435         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
4436         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
4437           (pCodeOptime2pCodes): allow disabling this optimization via
4438             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
4439             but is still buggy), started implementation of a dataflow based
4440             pCode optimization (CSE + dead code elimination)
4441           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
4442         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
4443           names are independant of the stack location and therefore portable across
4444           devices
4445
4446 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
4447
4448         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
4449           (selectSpil): fixed bug 1337835 by not spilling bit variables
4450         * support/regression/tests/bug1337835.c: added test for this bug
4451         * src/mcs51/peeph.def: restart after rule 3.c,
4452           addded rules 263.x to optimize loading constants
4453
4454 2005-10-26 Raphael Neider <rneider AT web.de>
4455
4456         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
4457         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
4458           (genAssign): emit warning when casting literals to generic pointer
4459             type, also applies when taking the address of a fixed variable,
4460           (genCast): improved casting to generic pointers
4461         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
4462           extern variables, added verbose error message
4463         * device/include/pic16/{string.h,errno.h}: added #pragma library c
4464
4465 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
4466
4467         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
4468         carry must be complemented too
4469         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
4470         could be emitted by genMinus
4471         * src/SDCCval.c (constVal): fixed bug 1305065
4472
4473 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
4474
4475         * src/SDCCast.c (addCast): added promotion for bit variables
4476         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
4477         promotion casts + optimisation
4478         (optimizeGetWord): fix warning 'i' might be used uninitialized
4479         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
4480         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
4481
4482 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
4483
4484         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
4485         all chars are promoted to int; promotion should be handled in SDCCast.c
4486
4487 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4488
4489         * device/lib/_strcmp.c: Fixed bug 1326457
4490
4491 2005-10-11 Raphael Neider <rneider AT web.de>
4492
4493         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
4494         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
4495
4496 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4497
4498         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
4499         * support/regression/tests/sfr16.c: added test for the sfr32 bug
4500
4501 2005-10-04 Raphael Neider <rneider AT web.de>
4502
4503         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
4504           device/lib/pic16/pics.all: added pic18f1320
4505         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
4506
4507 2005-09-30 Raphael Neider <rneider AT web.de>
4508
4509         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
4510         * src/pic16/devices.inc: NEW, provides device descriptions
4511         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
4512
4513 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
4514
4515         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
4516           GETHBIT
4517
4518 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
4519
4520         * doc/sdccman.lyx: updated Highest Order Bit documentation,
4521           documented Any Order Bit, Higher Order Byte and Higher Order Word
4522         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
4523         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
4524           (optimizeGetAbit): new, to get any bit, not only the high bit,
4525           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
4526           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
4527           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
4528           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
4529             RIGHT_OP: also try GETBYTE, GETWORD optimization,
4530             GETABIT, GETBYTE, GETWORD: decorate them,
4531           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
4532           (ast_print): added GETABIT, GETBYTE, GETWORD
4533         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
4534         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
4535           (geniCodeBinary): new generic binary icode,
4536           (ast2iCode): added GETABIT, GETBYTE, GETWORD
4537         * src/port.h: updated comment for PORT.hasExtBitOp
4538         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
4539           (genGetByte): new, to get a single byte,
4540           (genGetWord): new, to get a word from a long,
4541           (gen51Code): added GETABIT, GETBYTE, GETWORD
4542         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
4543
4544 2005-09-23 Raphael Neider <rneider AT web.de>
4545
4546         * configure.in, configure: have device/lib/pic configured
4547         * device/lib/Makefile.in: added model-pic14
4548         * device/lib/clean.mk: added pic/ to clean rule
4549         * device/lib/pic: added rudimentary pic14 library providing support
4550           functions for multiplication/division/generic pointer access
4551         * src/SDCCopt.c (convilong): mark support functions as extern
4552           for pic14 port as well
4553         * src/pic/gen.c (genMult): added assertions,
4554           (genpic14Code): emit warning on unhandled iCodes
4555         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
4556         * src/pic/pcode.c (pCodeOpCopy),
4557         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
4558           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
4559           SFR_REGISTER}), made safe for future extensions
4560         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
4561           instructions even if preceeded by SKIP instructions (also remove
4562           them); removed unused code
4563         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
4564           prevents leaving parts of the structure uninitialized after copying
4565
4566 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
4567
4568         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
4569           ago by me
4570         * support/regression/tests/addsub.c: added test for the bug
4571
4572 2005-09-21 Raphael Neider <rneider AT web.de>
4573
4574         * device/include/pic16/pic18f1220.h,
4575           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
4576         * device/lib/pic16/Makefile.rules: added missing opening paren
4577         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
4578           are provided in genutils.c,
4579           (genUminusFloat,genUminus,genCmpEq): added asserts on different
4580           operand/result sizes,
4581           (genCmp): assert on NULL pointers first, then check deref'ed values
4582         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
4583           result size
4584
4585 2005-09-18 Raphael Neider <rneider AT web.de>
4586
4587         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
4588           as these are now unused,
4589           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
4590         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
4591           local, avoids uninitialized pointer dereference on r->name
4592         * src/pic16/ralloc.c (newReg): fixed indentation
4593
4594 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
4595
4596         * src/SDCCval.c (constVal): fixed bug 730366
4597         * support/Util/SDCCerr.c,
4598         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
4599
4600 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
4601
4602         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
4603
4604 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
4605
4606         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
4607
4608 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4609
4610         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
4611           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4612         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
4613           (hex2dec): made hex_digit unsigned char, removed ascii dependance
4614         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
4615         * packihx/packihx.c (hexDigit): made c unsigned char
4616         * as/mcs51/lklibr.c (fndsym),
4617         * link/z80/lkgb.c (gb),
4618         * link/z80/lklibr.c (fndsym),
4619         * link/z80/lkrloc.c (relr),
4620         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
4621         * src/SDCC.lex (checkCurrFile, process_pragma),
4622         * src/SDCCglue.c (spacesToUnderscores),
4623         * src/SDCCmain.c (setParseWithComma, processFile),
4624         * src/asm.c (tvsprintf, printCLine),
4625         * src/avr/gen.c (emitcode, aopPut),
4626         * src/ds390/gen.c (emitcode),
4627         * src/hc08/gen.c (emitcode, emitinline),
4628         * src/mcs51/gen.c (emitcode, genInline),
4629         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4630           tokenizeLineNode),
4631         * src/pic/ralloc.c (debugLog),
4632         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
4633           tokenizeLineNode),
4634         * src/pic16/ralloc.c (debugLog),
4635         * src/z80/main.c (_process_pragma):
4636            made all ctype.h function calls safe
4637         * src/SDCCopt.c: include math.h for fabs
4638         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
4639           and used them throughout the code to make ctype.h function calls safe
4640         * src/ds390/main.c (asmLineNodeFromLineNode),
4641         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
4642         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
4643            unsigned char*
4644         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
4645           (newpCodeAsmDir): made ctype.h function calls safe
4646         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
4647           pic16_emitcode):  made lbp unsigned char*
4648         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
4649           (pic16_newpCodeAsmDir): made ctype.h function calls safe
4650         * src/xa51/gen.c (emitcode),
4651         * src/z80/gen.c (_emit2): made lbp unsigned char*
4652         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
4653            char*
4654
4655 2005-09-05 Raphael Neider <rneider AT web.de>
4656
4657         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
4658           access bank splitpoint
4659
4660 2005-09-05 Raphael Neider <rneider AT web.de>
4661
4662         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
4663
4664 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
4665
4666         * .version: changed to version 2.5.3
4667         * doc/sdccman.lyx: changed version to 2.5.3,
4668           documented --codeseg and --constseg and pragma codeseg and constseg,
4669           documented bit parameters (reentrant) and bit returning
4670         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
4671            currFunc->recvSize, but is this ok for all ports?
4672           (ast2iCode): result of ~ on unsigned char must be cast to int for
4673            bool to work
4674         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
4675           function pointers in bit space
4676         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
4677           (processFuncArgs): call port.reg_parm() with reentrancy info
4678         * src/port.h,
4679         * src/avr/main.c,
4680         * src/ds390/main.c,
4681         * src/hc08/main.c,
4682         * src/pic/main.c,
4683         * src/pic16/main.c,
4684         * src/xa51/main.c,
4685         * src/z80/main.c: port.reg_parm prototype extended with
4686           "bool reentrant" parameter
4687         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
4688           options.stackAuto for allocating bit register parameters
4689         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
4690           (genSend): set BitBankUsed if it is,
4691           (selectRegBank): factored out of genCall for use in genPcall,
4692           (genCall): removed redundant dtype assignmen, use selectRegBank,
4693           (genPcall): handle returning in Carry properly, save in F0 if needed,
4694           (genReceive): handle bit register parameters
4695         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
4696           (mcs51_assignRegisters): enable bit registers for all reentrant
4697            functions and don't set BitBankUsed unconditionally
4698         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
4699         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
4700         * support/regression/tests/funptrs.c: added tests for BOOL and for return
4701
4702 2005-08-27 Borut Razem <borut.razem AT siol.net>
4703
4704         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
4705         ppc-osx (Darwin) does not support -u option. It seems that it is
4706         supported only on Linux - GNU cp
4707
4708 2005-08-25 Borut Razem <borut.razem AT siol.net>
4709
4710         * sim/ucsim/gui.src/serio.src/Makefile.in,
4711           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
4712           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4713           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
4714           install and strip, since the strip at /usr/ccs/bin should be used
4715           on solaris
4716
4717 2005-08-24 Borut Razem <borut.razem AT siol.net>
4718
4719         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
4720
4721 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
4722
4723         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
4724         ffffffffu
4725
4726 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
4727
4728         * as/mcs51/aslink.h: completed lkrloc.c prototypes
4729         * as/mcs51/lkmain.c (link_main): fixed warning
4730         * device/include/stdbool.h: ds390 has no advanced bit support yet
4731         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
4732         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
4733         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
4734           and updated their macros
4735         * src/SDCCval.c (constVal): updated comment for renamed b_long
4736
4737 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
4738
4739         * as/mcs51/asdata.c: changed ctype['['] to BINOP
4740         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
4741           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
4742           (oprio): set priority for '['
4743         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
4744            and adb_24_bit
4745         * as/mcs51/asm.h: added defines R_BIT and S_BIT
4746         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
4747         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
4748         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
4749           added overlayable BIT_BANK area
4750         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
4751           (summary2): explain 'T' in legenda
4752         * as/mcs51/lkrloc.c: replaced old K&R style,
4753           (relr): added R_BIT processing,
4754           (errmsg): added "Bit-addressable relocation error",
4755           (adb_bit): added for converting from byte- to bit-addressable space,
4756           (adb_24_bit): added for converting from byte- to bit-addressable space
4757         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
4758            used in reentrant functions now even as return value
4759         * device/lib/_gptrput.c (_gptrput): removed obsolete code
4760         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
4761           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
4762         * src/SDCCglobl.h: added indicator BitBankUsed
4763         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
4764            the bit registers b0-b7
4765         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
4766           (geniCodeCast): fixed bug 1263853,
4767           (geniCodeLogicAndOr): put result in bool or char,
4768           (geniCodeReceive): added parameter func for accessing the return type,
4769           (geniCodeFunctionBody): pass func to geniCodeReceive
4770         * src/SDCCmain.c: added indicator BitBankUsed
4771         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
4772         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
4773           (checkSClass): don't put automatic bool/bit on stack,
4774           (checkFunction): removed check on function cannot return bit
4775         * src/SDCCsymt.h: added newBoolLink prototype
4776         * src/mcs51/gen.c (rb1regs): added bit registers,
4777           (movc): created for assigning to carry,
4778           (pushReg, popReg): created for pushing registers,
4779           (sameRegs): check both AOP_REG and AOP_CRY types,
4780           (aopOp): handle bit registers,
4781           (aopPut): optimization no self-assign,
4782           (saveRegisters): push reg->base (bits) only once for bit registers,
4783            and use pushReg,
4784           (unsaveRegisters): pop reg->base only once and use popReg,
4785           (assignResultValue): added parameter func and return in carry for bits,
4786           (genIpush): optimization no reload in A if not changed,
4787           (genSend): bit parameters in reentrant functions are passed in bit
4788            registers by first assigning to bits in B, then save registers and
4789            copy B to bits,
4790           (genCall): handle returning in Carry properly, save it in F0 if needed,
4791           (genPcall): updated assignResultValue call, this is not safe yet for bit
4792            returning function !!!
4793           (genFunction): don't generate equ's for bit registers and use pushReg,
4794           (genEndFunction): take care of bit returning functions and use popReg,
4795           (genRet): return bit in Carry,
4796           (genIfx): optimize bit registers and other directly addressable bits,
4797           (genReceive): updated assignResultValue call
4798         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
4799           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
4800            registers when using stack-auto
4801         * src/mcs51/ralloc.c (_G): added allBitregs,
4802           (regs8051): added the bit registers,
4803           (createStackSpil): use macro IS_BIT,
4804           (getRegBit): added to allocate a bit register, else spill,
4805           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
4806           (updateRegUsage): factored out to ease stepping while debugging,
4807           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
4808            also allocate bit registers,
4809           (fillGaps): handle bit registers,
4810           (findAllBitregs): added to create bit vector with all bit registers,
4811           (mcs51_allBitregs): returns this bit vector,
4812           (mcs51_assignRegisters): when using stack-auto use bit registers for
4813            passing parameters and creating local variables
4814         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
4815
4816 2005-08-22 Borut Razem <borut.razem AT siol.net>
4817
4818         * device/lib/Makefile.in: replaced find option -or with -o
4819           to make it run on solaris
4820
4821 2005-08-22 Raphael Neider <rneider AT web.de>
4822
4823         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
4824           fixes #1265442 (crash on Solaris)
4825
4826 2005-08-20 Borut Razem <borut.razem AT siol.net>
4827
4828         * configure, configure.in: added tests for libsocket and libnsl libraries,
4829           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
4830           from support/regression/Makefile.in
4831         * support/regression/Makefile.in: added
4832         * device/lib/pic16/Makefile.common.in: force make to use bash shell
4833         * sim/ucsim/libtool: regenerated on sparc-solaris
4834         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4835           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
4836           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
4837           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
4838           sparc-solaris, which doesn't use GNU ld linker
4839         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
4840         * as/Makefile: find on sparc-solaris does not support -maxdepth option
4841
4842 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
4843
4844         * src/mcs51/peeph.def: updated comments
4845
4846 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4847
4848         * device/lib/_gptrget.c,
4849         * device/lib/_gptrput.c: slightly shorter
4850         * doc/sdccman.lyx: incremented version
4851         * src/mcs51/peeph.def: moved peephole comments to the line of first
4852           change to better keep line correlation, reanimated 186.e
4853         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
4854
4855 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4856
4857         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
4858           David Saxton with quotes around file name.
4859
4860 2005-08-15 Borut Razem <borut.razem AT siol.net>
4861
4862         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
4863           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
4864           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
4865           make tests run on x86_64 platform
4866
4867 2005-08-13 Raphael Neider <rneider AT web.de>
4868
4869         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
4870           as it might be executed DURING a build (parallel make is wonderful)
4871
4872 2005-08-13 Raphael Neider <rneider AT web.de>
4873
4874         * device/lib/Makefile.in (port-specific-objects-pic16):
4875           revert to cp $(PORT)/bin/*.* $(PORTDIR)
4876         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
4877           dependency
4878         * device/lib/pic16/Makefile.rules: build subdirs before creating
4879           the library, removed builddir rule, create $(builddir) early in
4880           recurse rule, use empty recurse rule for leaf directories
4881         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
4882           mkdir errors (race condition), removed duplicate suffix "hex"
4883           from clean rules
4884         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
4885         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
4886           prevents mkdir -p from aborting on Alpha
4887
4888 2005-08-12 Raphael Neider <rneider AT web.de>
4889
4890         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
4891           db-statements in order to allow for arrays of pointers in code
4892           sections to be placed without interspersed 0-padding, fixes
4893           bug #1256215
4894         * (emitStatistics): fixed division by zero for pic18f1220
4895         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
4896           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
4897         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
4898         * (pic16_pCodeConstString): keep track of already emitted string
4899           literals to prevent "duplicate definitions of symbol _str_NR"
4900         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
4901           debug message
4902         * device/lib/Makefile.in: ignore failing PIC16 library builds
4903         * device/lib/pic16/Makefile: do not build if gputils are missing
4904         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
4905
4906 2005-08-10 Raphael Neider <rneider AT web.de>
4907
4908         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
4909           my last commit)
4910
4911 2005-08-10 Raphael Neider <rneider AT web.de>
4912
4913         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
4914           Rokas' patch to add the new fixed point type "__fixed16x16"
4915         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
4916           functions for __fixed16x16 arithmetics
4917         * device/lib/pic16: reimplemented the build system to support
4918           a separate build directory, better handling of libio (create
4919           the library in a separate subdir for each architecture) and
4920           easier configuration (centralized in Makefile.common)
4921
4922 2005-08-07 Raphael Neider <rneider AT web.de>
4923
4924         * src/pic16/gen.c (genrshTwo): fixed sign extension
4925         * src/pic16/device.c: added pic18f2320, 4220 and 4320
4926         * device/include/pic16/pic18f2220.h: changed some bit definitions,
4927           added T0CONbits
4928         * device/include/pic16/pic18f4220.h: NEW, header for
4929           pic18f4220 and pic18f4320
4930         * device/include/pic16/pic18fregs.h: added new devices,
4931           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
4932         * device/include/pic16/signal.h: resolved name clashes
4933           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
4934           to also allow testing for interrupt enable bits, added
4935           comments on how to use the macros
4936         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
4937         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
4938           register definitions for the devices
4939         * device/lib/pic16/pics.all: added new devices
4940         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
4941           allocated memory
4942         * device/lib/pic16/libc/stdlib/memfree: do not count
4943           the block header as free memory
4944         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
4945           simplified and added missing end-of-blocklist-marker
4946           (reported by Peter Onion, fixes #1252814)
4947         * (_mergeHeapBlock): fixed loop condition
4948         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
4949           len==0, restructured code
4950         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
4951           up a bit, reduced bitfield accesses, prevent endless loops
4952           in case of heap corruption
4953         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
4954           "unreferenced arguments/must return a value" warnings
4955         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
4956           replaced BAUDREG with SPBRG
4957         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
4958           device/lib/pic16/debug/gstack/gstack.c: replaced
4959           _naked, _asm, _endasm with __naked, __asm, __endasm
4960
4961 2005-08-05 Raphael Neider <rneider AT web.de>
4962
4963         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
4964           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
4965
4966 2005-08-05 Borut Razem <borut.razem AT siol.net>
4967
4968         * device/lib/Makefile.in: added missing ';'
4969         * configure: removed ^M characters
4970
4971 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4972
4973         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
4974           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
4975           License
4976
4977 2005-08-04 Borut Razem <borut.razem AT siol.net>
4978
4979         * configure.in: pic16 libraries build 2nd try - enable running
4980           configure in device/lib/pic16
4981         * configure: regenerated from configure.in
4982         * device/lib/Makefile.in: create $(PORT)/bin directory
4983
4984 2005-08-03 Raphael Neider <rneider AT web.de>
4985
4986         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
4987           to get/set values via pointers
4988         * (genUnpackBits,genPackBits): changed detection of
4989           ptr->bitfield vs. sym.bitfield, fixed access via generic
4990           pointers, removed dead (wrong) code for multibyte bitfields
4991         * (genNearPointerGet, genGenPointerGet): removed useless code,
4992           fixed bitfield detection, fixes #1250594
4993         * (genNearPointerSet): removed useless code
4994         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
4995           and introduced macro pic16_emitpcode that conditionally emits
4996           the origin of the following pCode (useful for debugging SDCC)
4997         * src/pic16/pcode.c: changed (and disabled) some debug outputs
4998         * (createDefmap): fixed handling of LFSR for --optimize-df
4999
5000 2005-08-02 Borut Razem <borut.razem AT siol.net>
5001
5002         * device/lib/Makefile.in: pic16 libraries build enabled since
5003           gputils-0.13.2 are now localy installed at sourceforge's compile farm
5004
5005 2005-08-02 Raphael Neider <rneider AT web.de>
5006
5007         * src/pic16/gen.c (genPackBits): removed deprecated warning
5008         * (genGenPointerSet): fixed bitfield detection
5009
5010 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5011
5012         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
5013
5014 2005-07-31 Raphael Neider <rneider AT web.de>
5015
5016         * device/lib/pic16/libdev/pic18f458.c,
5017           device/include/pic16/pic18f458.h: added missing T0CONbits
5018
5019 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5020
5021         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
5022
5023 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
5024
5025         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
5026
5027 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5028
5029         * device/include/mcs51/at89c51ed2.h: added.
5030
5031 2005-07-23 Raphael Neider <rneider AT web.de>
5032
5033         * src/pic/gen.h: added emitpcode macro for debugging
5034         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
5035           and replace by macro adding debug information on demand
5036         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
5037         * (gencjne): tried to fix; replaced with correct (slower) code
5038         * (gen{Unp,P}ackBits): fixed single bit access
5039         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
5040         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
5041           previous instruction
5042         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
5043           register has to be handled with care (forbidding movement
5044           of assignments/uses, removing assignments completely, ...)
5045         * (pCodeOptime2pCodes): make use of regIsSpecial
5046         * added lots of debugging output (commented out)
5047         * src/pic/rallloc.c (deassignLRs): prevent operand registers
5048           from being reused as result UNLESS it is known to work
5049
5050 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
5051
5052         * support/Util/dbuf.h: include <stddef.h> for size_t
5053         * .version: changed to version 2.5.2
5054
5055 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5056
5057         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
5058
5059 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5060
5061         * src/hc08/gen.c (genMinus): fixed bug #1241835,
5062           (genModOneByte): removed needless psha/pula
5063
5064 2005-07-22 Raphael Neider <rneider AT web.de>
5065
5066         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
5067           have PIC14 handled like PIC16, fixes broken pic14 linker calls
5068         * src/pic/gen.c (resolveIfx): do not "invent" labels
5069         * (genSkipc): changed to positive logic
5070         * (genSkipCond): removed as no longer needed
5071         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
5072           backport from PIC16
5073         * (genLeftShift): check operands are in different registers
5074         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
5075           INCF does not update CARRY...
5076         * src/pic/main.c: fixed _linkCmd
5077         * src/pic/pcode.c (unlinkpCode): added inactive code
5078         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
5079           alive (do not assign result and operand overlapping registers)
5080
5081 2005-07-22 Raphael Neider <rneider AT web.de>
5082
5083         * src/pic/device.c (dump_sfr): replaced register declaration with
5084           call to emitSymbolToFile() to avoid duplicate symbols
5085         * (assignRelocatableRegisters): do not declare external symbols
5086         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
5087           right (take size of type, not etype)
5088         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
5089         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
5090         * (packRegsForAccUse): disabled assignment of WREG as
5091           the result reg to prevent occurence of just fixed #1235003,
5092           fixes #1242954
5093         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
5094           symbols (avoids duplicate symbols in .asm file)
5095         * (pic14emitRegularMap): use emitSymbolToFile()
5096         * src/pic/gen.c (aopOp): fixed spillLocation handling
5097         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
5098         * (genDataPointerSet): removed unneccessary variables/output
5099
5100 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
5101
5102         * as/mcs51/lkarea.c: enlarged codemap for banked memory
5103         * device/lib/mcs51/crtbank.asm: added # to 0x0F
5104
5105 2005-07-21 Raphael Neider <rneider AT web.de>
5106
5107         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
5108           architecture cannot handle them efficiently, fixes bug #1235003
5109         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
5110           check for empty sets before using them (fixes bug #1232190)
5111
5112 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
5113
5114         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
5115           (lnksect2): generate warnings for memory overlap
5116         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
5117           constseg to set the name of these segments so you can instruct the linker
5118           to place them in banks
5119         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
5120         * src/SDCCglobl.h: added MODEL_HUGE to enum,
5121           added code_seg and const_seg to options
5122         * src/SDCCglue.c (emitMaps): use options.const_seg,
5123           (createInterruptVect): put interrupt vectors in segment HOME,
5124           (glue): put HOME before static segment and put the main glue in HOME,
5125           (glue): use options.code_seg
5126         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
5127         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
5128           these segments so you can instruct the linker to place them in banks
5129           (linkEdit): use code_loc for HOME segment which should be the first
5130           segment in code memory now
5131         * src/SDCCmem.c: fixed more stuff like bug 1238386
5132         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
5133           (changePointer): don't change function pointers to code pointers for
5134           banked functions,
5135           (compareType): added exceptional check for banked function pointers
5136         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
5137         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
5138           after static in code memory
5139         * src/mcs51/gen.c: added aopLiteralLong prototype,
5140           (aopForSym): use getSize for functions,
5141           (genCall): generate banked calls over one trampoline __sdcc_banked_call
5142           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
5143           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
5144           the segment,
5145           (genPcall): use call for literal function pointers and generate banked
5146           calls over the one trampoline so there's only one place for the user to
5147           modify according to his/hers hardware,
5148           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
5149           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
5150         * src/mcs51/main.c: added keyword banked,
5151           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
5152         * support/Util/SDCCerr.c,
5153         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
5154           needed for passing the bank and address to the trampoline
5155         * device/lib/mcs51/crtbank.asm: added for bankswitching
5156         * device/lib/mcs51/Makefile: added crtbank
5157
5158 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5159
5160         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
5161           for fields at offset 0 of a struct or union as reported
5162           on 2005-07-07 in the developer mailing list.
5163
5164 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
5165
5166         * src/SDCCmem.c: fixed bug 1238386
5167
5168 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5169
5170         * src/mcs51/peeph.def: added labelrefcounting for peepholes
5171           (patch #1144962), added peephole 300, enabled 259.x
5172         * doc/sdccman.lyx: removed screenshot and provided link instead
5173
5174 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5175
5176         * doc/sdccman.lyx: added section about debugging with ddd
5177         * doc/figures/ddd_example.eps: screenshot of debugging session
5178
5179 2005-07-04 Raphael Neider <rneider AT web.de>
5180
5181         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
5182           like CODE pointers, fixes #1115683
5183         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
5184           call, fixes bugs #1232211, #1228110,
5185           fixed wrong casts to pCodeFlow from pCodeInstructions
5186
5187 2005-07-04 Raphael Neider <rneider AT web.de>
5188
5189         * src/pic/gen.c (popGet): changed assert to allow for
5190           bit operands
5191         * (popGetAddr): changed signature to provide
5192           an additional index, patched all call sites
5193         * (genCmpEq): handle literal-like operands correctly
5194         * (genAddrOf): added sanity checks on __code/__data pointers
5195         * (genAssign): added handling of symbols from __code section
5196         * (gencjne): do not generate code for comparisons whose result
5197           is neither stored nor used, fixes bug #1171114
5198         * (AccLsh, AccRsh): operate on operand instead of WREG
5199         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
5200           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
5201           by known count
5202         * rewrote complete shift-by-literal logic, commented unused
5203           functions out
5204         * (genConstPointerGet): get multiple bytes (if result size > 1),
5205           fixed handling of non-immediate addresses
5206         * (genPointerGet): handle CODE pointers like CONST pointers
5207         * (genpic14Code): insert C-SRC lines as Cource-pCodes
5208         * ({aop,op}_isLitLike): NEW, single place to decide whether an
5209           operand is to be treated as a literal or not
5210         * (mov2w,genPcall,genCmpEq),
5211           src/pic/genarith.c: use aop_isLitLike() to decide between
5212           literal/register contents
5213         * (addSign): added missing offset
5214         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
5215           only emit comment in debug-mode,
5216           use {aop,op}_isLitLike throughout the file
5217         * src/pic/glue.c: fix initializers for pointers (work in progress)
5218         * src/pic/pcode.c (get_op): honor index on _const symbols
5219         * ({reset,dump}pCodeStatistics): NEW, estimate code size
5220         * (dumppBlock): added pCode size estimation
5221         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
5222           check for IS_SYMOP before OP_SYMBOL'ing
5223         * fixed indentation, compacted switch-statements
5224         * (allocReg): find free register and allocate it instead of
5225           allocating new registers all the time
5226         * (deassignLRs): prevent POINTER_GET's from being assigned the same
5227           registers as its operands (necessary only for multibyte GETs)
5228
5229 2005-07-01 Raphael Neider <rneider AT web.de>
5230
5231         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
5232           debugging .asm-output macros FENTRY + FEXIT
5233         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
5234           way... I wonder...
5235         * (emitpComment): NEW, printf to pCode
5236         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
5237           offset handling
5238         * (popGetAddr): NEW, variant of popGet to access an immediates
5239           high(er) bytes instead of the n'th byte of memory they reference,
5240           replaced popGet with popGetAddr where neccessary
5241         * (genDataPointerGet): reactivated and fixed implementation
5242         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
5243           accesses
5244         * (genDataPointerSet): fixed multibyte assignments
5245         * (genpic14Code): fixed --i-code-in-asm handling
5246         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
5247         * (genPlus): fixed index-out-of-bounds error
5248         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
5249         * src/pic/ralloc.c: added debugging output macro FENTRY2
5250         * (spillThis): fixed indentation, enbraced for-body for clarity
5251         * (rematStr): commented out as now unused
5252         * (regTypeNum): commented out special spill case (overwrites
5253           arbitrary values)
5254         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
5255
5256 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
5257
5258         * doc/sdccman.lyx: documented sfr16/sfr32,
5259           added example for using storage class with function pointers
5260         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
5261
5262 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
5263
5264         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
5265         * device/lib/_itoa.c,
5266         * device/lib/_ltoa.c: optimized codesize
5267         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
5268           but don't know how to suppress the double warning.
5269         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
5270         * support/Util/SDCCerr.c,
5271         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
5272
5273 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
5274
5275         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
5276           fixed old K&R prototypes
5277         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
5278         * device/lib/_gptrget.c,
5279         * device/lib/_gptrgetc.c,
5280         * device/lib/_gptrput.c: changed versions for new memory indicator values,
5281           also new versions for small generic pointers and banked generic pointers
5282         * src/port.h: added const_name
5283         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
5284         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
5285         * src/SDCCcse.c (findPrevIc): check all associative operators
5286         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
5287         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
5288         * src/SDCCmem.c: updated comments,
5289           set far-space to 0 for pdata, results in optimized code
5290         * src/SDCCmem.h: added macro CONST_NAME
5291         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
5292           moving the info into the highest bits, see also gptrget/gptrput
5293         * src/src.dsp: added sdcc.ico to project files
5294         * src/avr/gen.c (genCast): fixed bug 0x%d
5295         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
5296         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
5297           relation between ptr_type and DCL_TYPE,
5298           (genCast): fixed bug 0x%d
5299         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
5300           (CODE)" for const_name
5301         * src/hc08/gen.c (genCast): fixed bug 0x%d
5302         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
5303           (hc08_port): added "CONST (CODE)" for const_name
5304         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
5305           (aopForRemat, adjustArithmeticResult): disconnected direct relation
5306           between ptr_type and DCL_TYPE,
5307           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
5308           operand* and took AOP() inside function so sfr-ness can be checked,
5309           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
5310           new prototype,
5311           (genFunction, genEndFunction): optimized stack setup,
5312           (genMinus): optimized for literals with ending zeroes (in bytes),
5313           (genCast): fixed bug 0x%d
5314         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
5315           (mcs51_port): added "CONST (CODE)" for const_name
5316         * src/mcs51/peeph.def: made rule 226 more generic
5317         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
5318         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
5319         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
5320         * src/z80/main.c (z80_port): added NULL for const_name,
5321           (gbz80_port): added NULL for const_name
5322         * support/regression/tests/bug663539.c,
5323         * support/regression/tests/sfr16.c: new tests
5324
5325 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5326
5327         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
5328
5329 2005-06-24 Raphael Neider <rneider AT web.de>
5330
5331         * device/lib/pic16/libdev/pic18f[68][567]20.c:
5332           corrected typos...
5333         * device/include/pic16/signal.h: added USBIF
5334           and SIG_USB
5335
5336 2005-06-24 Raphael Neider <rneider AT web.de>
5337
5338         * device/lib/pic16/libdev/pic18f2455.c,
5339           device/include/pic16/pic18f2455.h: NEW
5340         * device/include/pic16/pic18fregs.h,
5341           device/lib/pic16/pics.all,
5342           src/pic16/device.c: added 18f2455
5343         * device/lib/pic16/libdev/pic18f[68][567]20.c,
5344           device/include/pic16/{pic18f[68][567].h,usart.h}:
5345           replaced MULTIPLE_USARTS define with more relaible
5346           compatibility sfrs (for USART access)
5347
5348 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
5349
5350         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
5351           and the output asm file line is printed on two lines.
5352
5353 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5354
5355         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
5356           BGT, BLE, BHI, and BLS instructions
5357         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
5358           genCmpEq): removed
5359         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
5360           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
5361           fixes bug #1216342
5362         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
5363
5364 2005-06-15 Raphael Neider <rneider AT web.de>
5365
5366         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
5367         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
5368         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
5369           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
5370           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
5371
5372 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5373
5374         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
5375           Marcel Telka in bug #1215704
5376
5377 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
5378
5379         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
5380           located in shared memory bank.
5381
5382 2005-05-31 Raphael Neider <rneider AT web.de>
5383
5384         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
5385           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
5386           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
5387
5388 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
5389
5390         * device/lib/_strncpy.c: fixed the fix
5391
5392 2005-05-26 Raphael Neider <rneider AT web.de>
5393
5394         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
5395           initializers with \0, bug #1208187
5396         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
5397           intializers with \0, bug #1208187
5398
5399 2005-05-26 Raphael Neider <rneider AT web.de>
5400
5401         * src/pic16/glue.c (pic16_printIvalChar): fixed string
5402           initializers with \0, bug #1208187
5403         * src/pic16/main.c (_process_pragma): added sanity checks
5404           for stack position and size, emit warnings when appropriate
5405
5406 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
5407
5408         * device/lib/_strncpy.c: fixed not filling with \0
5409
5410 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5411
5412         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
5413           createFunction),
5414         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
5415           compound_statement),
5416         * src/SDCCsymt.h,
5417         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
5418
5419 2005-05-24 Raphael Neider <rneider AT web.de>
5420
5421         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
5422
5423 2005-05-24 Raphael Neider <rneider AT web.de>
5424
5425         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
5426           TRISE definitions, closes bug #1162453
5427
5428 2005-05-22 Raphael Neider <rneider AT web.de>
5429
5430         * src/pic16/main.c (_process_pragma): check for missing
5431           arguments to pragmas code and udata
5432         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
5433           consistency fixes to match other headers (thanks to Jim Paris)
5434         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
5435
5436 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
5437
5438         * src/SDCCicode.c (isOperandEqual): fixed missing ;
5439
5440 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
5441
5442         * support/regression/tests/bug1198642.c: new test
5443         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
5444         * src/SDCCcse.c (findPrevIc): added comment, please have a look
5445         * support/scripts/resource.h,
5446         * support/scripts/resource.rc,
5447         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
5448         * support/scripts/sdcc.ico: added 32x32 icon
5449
5450 2005-05-18 Raphael Neider <rneider AT web.de>
5451
5452         * device/lib/pic16/libdev/pic18f*.c,
5453         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
5454           keywords to "__sfr" and "__at (X)"
5455         * device/include/pic16/pic18fregs.h: added pic18f4520
5456         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
5457           #1203088 (MPLAB compatibility)
5458
5459 2005-05-17 Raphael Neider <rneider AT web.de>
5460
5461         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
5462         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
5463         * device/lib/pic16/pics.all: added new devices
5464         * src/pic16/device.c: added support for pic18f4520
5465
5466 2005-05-16 Raphael Neider <rneider AT web.de>
5467         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
5468         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
5469         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
5470           convenience function for bit access
5471
5472 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5473
5474         * device/lib/printf_large.c: fixed bug 1193299
5475         * support/regression/tests/bug1057979.c: added test %3.3s
5476
5477 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5478
5479         * device/include/mcs51/8051.h,
5480         * device/include/mcs51/8052.h: made parseable with lint
5481         * device/include/mcs51/lint.h: added include file for (sp)lint
5482         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
5483         * doc/cdbfileformat.lyx,
5484         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
5485
5486 2005-05-14 Raphael Neider <rneider AT web.de>
5487
5488         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
5489         * device/lib/pic16/libc/stdlib/itoa.c (new)
5490         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
5491         * device/lib/pic16/libio/Makefile: exclude subdir according to
5492           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
5493         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
5494         * src/pic16/gen.c (genFunction): prevent annoying warning
5495         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
5496           nameclashes on BeOS
5497         * support/cpp2/cppmain.c (cpp_output_string): new
5498         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
5499           fixes bug 1116802
5500
5501 2005-05-13 Borut Razem <borut.razem AT siol.net>
5502
5503         * src/SDCCmain.c (linkEdit): fixed bug 1195202
5504
5505 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5506
5507         * .version: changed to version 2.5.1; back to bleeding edge development
5508
5509 2005-05-11 Borut Razem <borut.razem AT siol.net>
5510
5511         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
5512           generate PDF version 1.3 documents
5513
5514 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5515
5516         * .version: changed to version 2.5.0
5517
5518 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5519
5520         * doc/sdccman.lyx: updated weblinks, index and smaller updates
5521
5522 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5523
5524         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
5525         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
5526         well as many smaller updates.
5527         * .version: changed to version 2.5.0-pre1
5528
5529 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5530
5531         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
5532
5533 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
5534
5535         * support/regression/tests/bug1185672.c: added
5536         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
5537           bug 1185672
5538         * src/mcs51/gen.c (genCall): added comments, made it look safer
5539         * src/mcs51/gen.c (genEndFunction): simplified
5540
5541 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
5542
5543         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
5544
5545 2005-04-14 Borut Razem <borut.razem AT siol.net>
5546
5547         * fixed bug 1045046 - SIGSEGV with really simple code?:
5548           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
5549           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
5550
5551 2005-04-14 Borut Razem <borut.razem AT siol.net>
5552
5553         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
5554           src/pic16/device.h: temporarily disabled experimental #inline pragma
5555           for 2.5.0 release
5556
5557 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
5558
5559         * device/include/z80/stdio.h,
5560         * device/include/z80/string.h: removed these highly incomplete files so
5561           SDCC can use the default ones in device/include/
5562
5563 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5564
5565         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
5566         gcc warning.
5567         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
5568         fix sdcpp warnings.
5569
5570 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5571
5572         * device/include/malloc.h: removed redundant __reentrant prototypes
5573         * device/lib/_mullong.c: added working xstack variant in asm (C version
5574           doesn't pass regression tests)
5575         * device/lib/bpx.c: used __data and made bpx char for mcs51
5576         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
5577           (createFunction): fixed bug with xstackPtr
5578         * src/SDCCcse.c: corrected comments
5579         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
5580           (killDeadCode, eBBlockFromiCode): removed unused code
5581         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
5582           corrected comments
5583         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
5584           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
5585           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
5586           (genModOneByte): fixed warning in MSVC
5587         * src/mcs51/main.c (): added comments
5588         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
5589
5590 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
5591
5592         * src/SDCCmain.c (linkEdit): oops, changed one line too many
5593
5594 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
5595
5596         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
5597
5598 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
5599
5600         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
5601         characters arrays of larger size than the declared one.
5602
5603 2005-04-10 Borut Razem <borut.razem AT siol.net>
5604
5605         * src/pic/gen.c (genInline),
5606           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
5607           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
5608           (findNextInstruction), (findPrevInstruction),
5609           (findInstructionUsingLabel),
5610           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
5611         * src/pic/pcode.c (findLabel): added missing '\n'
5612         * src/src.dsp: added SDCCdwarf2.c to the project
5613
5614 2005-04-09 Borut Razem <borut.razem AT siol.net>
5615
5616         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
5617
5618 2005-04-08 Raphael Neider <rneider AT web.de>
5619
5620         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
5621           into the chain after a given one) and mergeDefmapSymbols (combine
5622           defmap entries for each symbol per pcode)
5623         * (createDefmap): have defmap entries merged in the end
5624         * (defmapReplaceSymRef): split defmap entries covering two accesses to
5625           a symbol before replacing one access type's symbol, merge symbols in
5626           the end (replacement symbol might already have an entry)
5627         * (assignValnums): keep reference to written WREG intact
5628
5629 2005-04-08 Raphael Neider <rneider AT web.de>
5630
5631         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
5632           Alpha)
5633
5634 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
5635
5636         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
5637         bytes
5638
5639 2005-04-07 Raphael Neider <rneider AT web.de>
5640
5641         * device/include/pic16/usart.h: added compatibility defines for
5642           devices with more than one USART
5643         * device/include/pic16/pic18f[68][567]20.h: activated above defines
5644
5645 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5646
5647         * device/lib/Makefile.in: updated for port specific include
5648
5649 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5650
5651         * support/regression/ports/mcs51/spec.mk: added mcs51 include
5652
5653 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5654
5655         * device/include/8051.h,
5656         * device/include/8052.h,
5657         * device/include/at89S8252.h,
5658         * device/include/at89c55.h,
5659         * device/include/at89x051.h,
5660         * device/include/at89x51.h,
5661         * device/include/at89x52.h,
5662         * device/include/mcs51reg.h,
5663         * device/include/reg51.h,
5664         * device/include/reg764.h,
5665         * device/include/regc515c.h,
5666         * device/include/sab80515.h: (re)moved these 12 files
5667         * device/include/mcs51/8051.h,
5668         * device/include/mcs51/8052.h,
5669         * device/include/mcs51/at89S8252.h,
5670         * device/include/mcs51/at89c55.h,
5671         * device/include/mcs51/at89x051.h,
5672         * device/include/mcs51/at89x51.h,
5673         * device/include/mcs51/at89x52.h,
5674         * device/include/mcs51/mcs51reg.h,
5675         * device/include/mcs51/reg51.h,
5676         * device/include/mcs51/reg764.h,
5677         * device/include/mcs51/regc515c.h,
5678         * device/include/mcs51/sab80515.h: and added them here
5679
5680 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5681
5682         * device/include/stdarg.h: changed SDCC specific keywords to double
5683           underlined form.
5684         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
5685           mcs51 and ds390.
5686         * device/include/hc08/mc68hc908gp32.h,
5687         * device/include/hc08/mc68hc908jb8.h,
5688         * device/include/hc08/mc68hc908jkjl.h,
5689         * device/include/hc08/mc68hc908qy.h: fixed comments
5690         * device/include/mcs51/README: updated
5691         * device/include/mcs51/c8051f120.h: added PINRSF
5692         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
5693         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
5694           amidst code. Also inline is not supported.
5695
5696 2005-04-06 Raphael Neider <rneider AT web.de>
5697
5698         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
5699         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
5700           callers stack/frame pointers
5701
5702 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5703
5704         * device/include/pic16/usart.h: added, missing in previous commit,
5705         * device/include/pic16/adc.h: fixed typo,
5706         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
5707         commit,
5708         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
5709         <p18fxxx.inc>
5710         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
5711         uninitialized because a bug appears with gplink
5712         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
5713         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
5714         complains for unrecognised option
5715
5716 2005-04-05 Raphael Neider <rneider AT web.de>
5717
5718         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
5719           structs as well (using memcpy)
5720         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
5721           on ISRs (GOTO has no label)
5722         * src/pic16/device.h: added OF_OPTIMIZE_DF
5723         * src/pic16/main.c: added compiler switch --optimize-df to enable the
5724           new data flow analysis/optimization
5725         * src/pic16/pcode.c: added (prototypes for and implementation of)
5726           dataflow analysis functions, fixed pCodeInstructions' inCond and
5727           outCond values, made RCALL a branch instruction
5728         * (pic16_unlinkpCode): keep C line if possible
5729         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
5730           C line moved if possible
5731         * (pic16_getRegFrompCodeOp): NEW, improved version of...
5732         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
5733           to use new pic16_getRegFrompCodeOp (works for more SFRs)
5734         * (pic16_BuildFlow): fixed skip instructions with label (did not start
5735           new flow)
5736         * (pic16_getJumptabpCode): NEW, needed in...
5737         * (LinkFlow): fixed handling of jumptables, calls and conditional
5738           branches
5739         * (pic16_InsertCommentAfter): NEW
5740         * (pic16_pCodeReplace): made verbose and flow preserving
5741         * (AnalyzeFlow): added call to data flow analysis
5742         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
5743         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
5744         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
5745
5746 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5747
5748         * src/SDCCast.c (decorateType): fixed bug #1105626
5749
5750 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
5751
5752         * device/include/asm/pic16/features.h,
5753         * pic18f*.h headers,
5754         * device/include/pic16/adc.h,
5755         * device/include/pic16/delay.h,
5756         * device/include/pic16/i2c.h,
5757         * device/include/pic16/malloc.h,
5758         * device/include/pic16/stdio.h,
5759         * device/include/pic16/stdlib.h,
5760         * device/include/pic16/string.h,
5761         * device/lib/pic16/libc/stdio/printf_tiny.c,
5762         * device/lib/pic16/libc/stdio/printf_small.c,
5763         * device/lib/pic16/libc/stdio/strmgpsim.c,
5764         * device/lib/pic16/libc/stdio/strmmssp.c,
5765         * device/lib/pic16/libc/stdio/strmusart.c,
5766         * device/lib/pic16/libc/stdio/vfprintf.c,
5767         * device/lib/pic16/libc/stdlib/ltoa.c,
5768         * device/lib/pic16/libc/stdlib/putchar.c,
5769         * device/lib/pic16/libc/stdlib/x_ftoa.c,
5770         * device/lib/pic16/libc/stdlib/memchrpgm.c,
5771         * device/lib/pic16/libc/stdlib/memchrram.c,
5772         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
5773         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
5774         * device/lib/pic16/libio/adc/adcbusy.c,
5775         * device/lib/pic16/libio/adc/adcread.c,
5776         * device/lib/pic16/libio/adc/adcsetch.c,
5777         * device/lib/pic16/libio/usart/ubaud.c,
5778         * device/lib/pic16/libio/usart/ubusy.c,
5779         * device/lib/pic16/libio/usart/udrdy.c,
5780         * device/lib/pic16/libio/usart/uopen.c,
5781         * device/lib/pic16/libio/usart/uputc.c,
5782         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
5783         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
5784         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
5785         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
5786         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
5787         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
5788         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
5789         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
5790         specific keywords to double underlined form,
5791         * device/lib/pic16/libc/Makefile.rules,
5792         * device/lib/pic16/libsdcc/Makefile.rules,
5793         * device/lib/pic16/libm/Makefile,
5794         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
5795         to compile with C standard set in Makefile.common
5796         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
5797         rand.c and crc.c in compilation process,
5798         * device/lib/pic16/libsdcc/int/divuint.c,
5799         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
5800         `c' from signed to unsigned,
5801         * device/lib/pic16/startup/crt0.c,
5802         * device/lib/pic16/startup/crt0i.c,
5803         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
5804         keywords to double underlined form, bug fixes in _do_cinit function
5805         which prevented the correct initialization of the .idata segment,
5806         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
5807         core to enter a infinite loop
5808         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
5809
5810 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5811
5812         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
5813
5814 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5815
5816         * device/include/Makefile.in: add support for hc08 subdirectory
5817         * device/include/hc08/: new subdirectory
5818         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
5819         Lucas Loizaga, thanks!
5820         * device/include/hc08/mc68hc908qy.h,
5821         * device/include/hc08/mc68hc908gp32.h,
5822         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
5823         their own directory. Changed internal macro names to use the compiler
5824         reserved namespace. Changed SDCC specific keywords to double
5825         underlined form.
5826         * device/include/math.h,
5827         * device/include/malloc.h,
5828         * device/include/stdarg.h,
5829         * device/include/stdbool.h
5830         * device/include/string.h,
5831         * device/include/tinibios.h,
5832         * device/include/ds400rom.h,
5833         * device/include/8051.h,
5834         * device/include/8052.h,
5835         * device/include/80c51xa.h,
5836         * device/include/at89c55.h,
5837         * device/include/at89S8252.h,
5838         * device/include/at89x51.h,
5839         * device/include/at89x52.h,
5840         * device/include/ds80c390.h,
5841         * device/include/reg764.h,
5842         * device/include/regc515c.h,
5843         * device/include/sab80515.h,
5844         * device/include/mcs51/c8051f000.h,
5845         * device/include/mcs51/c8051f018.h,
5846         * device/include/mcs51/c8051f020.h,
5847         * device/include/mcs51/c8051f040.h,
5848         * device/include/mcs51/c8051f060.h,
5849         * device/include/mcs51/c8051f120.h,
5850         * device/include/mcs51/c8051f300.h,
5851         * device/include/mcs51/c8051f310.h,
5852         * device/include/mcs51/c8051f320.h,
5853         * device/include/mcs51/c8051f330.h,
5854         * device/include/mcs51/c8051f350.h,
5855         * device/include/z180.h: Changed SDCC specific keywords to double
5856         underlined form.
5857
5858 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
5859
5860         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
5861         18F4455,
5862         * (pic16_assignConfigWordValue): disable testing of configuration
5863         register value with config mask,
5864         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
5865         function with port->fun_prefix,
5866         * (genFunction): when generating a naked interrupt function never
5867         create an absolute segment placed in interrupt vector address, place
5868         the actual interrupt function at IVA instead, when an interrupt
5869         function is generated with unspecified interrupt then do not create
5870         the absolute section,
5871         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
5872         code for generating a call to generic pointer get/put function with
5873         a call to function pic16_callGenericPointer(),
5874         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
5875         the call to the generic pointer get/put functions with prefixing the
5876         function name with port->fun_prefix,
5877         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
5878         * src/pic16/main.c (_process_pragma): prefix function with
5879         port->fun_prefix,
5880         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
5881         calling assembler, old 18Fxxxx macro is deprecated,
5882         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
5883         PC_ASMDIR in while condition,
5884         * (findInstruction): add PC_ASMDIR in while condition,
5885         * (buildCallTree): prefix main with port->fun_prefix,
5886         * (pic16_pCode2str): fixed bug that didn't emit the memory access
5887         identifier for variable with banked access in instructions BTFSS,
5888         BTFSC, BCF, BSF, BTG
5889         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
5890         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
5891         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
5892         perform optimization when enviroment variable NO_REG_OPT is set,
5893         * (insideLRBlock): NEW, return 1 if register is inside an
5894         INF_LOCALREGS block,
5895         * (RemoveRegFromLRBlock): remove a register that is completely
5896         eliminated by register optimization, but it is still left in local
5897         register store/restore in/from stack block,
5898         * (Remove2pcodes): after removing register, check to see if it
5899         should be removed from local register store/restore in/from stack
5900         block,
5901         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
5902         DUMMY_READ_VOLATILE,
5903
5904         * device/include/pic16/adc.h: minor prototype modifications and
5905         update,
5906         * device/include/pic16/malloc.h: added GPL notice various
5907         modifications,
5908         * device/include/pic16/stdint.h: NEW, standard header for ints
5909         * device/include/pic16/delay.h: NEW, header for delay functions,
5910         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
5911         delay1mtcy,
5912         * device/include/pic16/signal.h: NEW, header providing helper macros
5913         for implementing signal handlers,
5914         * device/include/pic16/stdio.h: added prototypes for functions,
5915         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
5916         prototypes for stdin and stdout, added macro PUTCHAR to
5917         automatically implement putchar function prototype,
5918         * device/include/pic16/usart.h: modified and updated USART library,
5919         * device/lib/pic16/libio/adc/,
5920         * device/lib/pic16/libio/i2c: some modifications to improve library
5921         performance,
5922         * device/lib/pic16/libc/stdio/: modifications for the new printf*
5923         family of functions,
5924         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
5925         family of functions and other sources,
5926         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
5927         of the PIC18Fxx[28] devices,
5928         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
5929         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
5930         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
5931         _do_cinit function, because the previous failed when local variables
5932         where not placed in the same memory bank,
5933         * device/lib/pic16/libsdcc/char/: various modifications to improve
5934         library performance,
5935         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
5936         information on the new functions of the c library and more...
5937
5938 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5939
5940         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
5941
5942 2005-03-26 Raphael Neider <rneider AT web.de>
5943
5944         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
5945           if condition == CARRY)
5946         * (genCmp): adapted to new genSkipc semantics
5947         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
5948           on rIfx (genCmp was broken)
5949
5950 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5951
5952         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
5953         * src/z80/main.c (_keywords[]),
5954         * src/SDCCglobal.h (struct options),
5955         * src/SDCC.y,
5956         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
5957         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
5958         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
5959         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
5960         always available in leading double underscore form. The C99 support is
5961         mostly missing, but it's a start.
5962         * support/regression/tests/bug-227710.c: fixed nonconforming use of
5963         reserved identifier "__data".
5964
5965 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5966
5967         * src/mcs51/peeph.def: fixed bug 1170013
5968
5969 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
5970
5971         * device/include/mcs51reg.h: fixed bug 842007
5972
5973 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5974
5975         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
5976         last time.
5977
5978 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5979
5980         * src/port.h (struct PORT),
5981         * src/avr/ralloc.c (avr_assignRegisters),
5982         * src/avr/main.c,
5983         * src/ds390/ralloc.c (ds390_assignRegisters),
5984         * src/ds390/main.c,
5985         * src/hc08/ralloc.c (hc08_assignRegisters),
5986         * src/hc08/main.c,
5987         * src/mcs51/ralloc.c (mcs51_assignRegisters),
5988         * src/mcs51/main.c,
5989         * src/pic/ralloc.c (pic14_assignRegisters),
5990         * src/pic/main.c,
5991         * src/pic16/ralloc.c (pic16_assignRegisters),
5992         * src/pic16/main.c,
5993         * src/xa51/ralloc.c (xa51_assignRegisters),
5994         * src/xa51/main.c,
5995         * src/z80/ralloc.c (z80_assignRegisters),
5996         * src/z80/ralloc.h,
5997         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
5998         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
5999         * src/SDCCcse.h,
6000         * src/SDCCdflow.c (computeDataFlow),
6001         * src/SDCCdflow.h,
6002         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
6003         * src/SDCCloop.h,
6004         * src/SDCCcflow.c (*),
6005         * src/SDCCcflow.h,
6006         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
6007         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
6008         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
6009         immedDom() returning wrong block; probably fixes bug #1160833)
6010
6011 2005-03-20 Borut Razem <borut.razem AT siol.net>
6012
6013         * support/scripts/inc2h.pl: WIN32 port
6014
6015 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
6016
6017         * device/lib/makefile.in: added abs.c and labs.c
6018
6019 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
6020
6021         * device/include/stdint.h: added
6022         * device/lib/abs.c: added
6023         * device/lib/labs.c: added
6024         * device/include/stdlib.h: added abs() and labs() prototypes
6025         * device/lib/libsdcc.lib: added abs and labs
6026         * device/include/float.h,
6027         * device/lib/_fsmul.c,
6028         * device/lib/printf_fast.c,
6029         * device/lib/printf_tiny.c: updated comments
6030
6031 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6032
6033         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
6034         bug #1164313
6035
6036 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6037
6038         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
6039         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
6040
6041 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
6042
6043         * device/lib/printf_large.c: removed inline assembly for portability and
6044           readability. Use printf_fast if speed or size are more important.
6045         * src/pic16/gen.c: removed conditions around use of DEBUGpc
6046         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
6047
6048 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
6049
6050         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
6051         prevent compiler warning
6052
6053 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
6054
6055         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
6056         moved to level 0 and declared as static. Also they are explicit
6057         placed in access bank. This was necessery because some times they
6058         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
6059         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
6060         optimizations. Currently only compare to unsigned char is implemented,
6061         * src/pic16/gen.c: added fReturnIdx array,
6062         * (struct resolvedIfx) is moved to gen.h and made public,
6063         * (struct _G): added sregsAlloc and sregsAllocSet fields,
6064         * (aopForSym): added an optimization to directly store in stack of
6065         the operand of a SEND iCode,
6066         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
6067         but as registers instead (AOP_REG) using the fReturnIdx array,
6068         * (pic16_freeAsmop): remove the freed register from the
6069         _G.sregsAlloc field,
6070         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
6071         a compare of 'WREG',
6072         * (pic16_popGetTempRegCond): changed function prototype, now
6073         function takes also a bitVector argument v which holds the current
6074         set of registers that are allocated for stack access by aopForSym,
6075         registers allocated in aopForSym for accessing stack symbols are not
6076         any more part of the functions usedRegs field,
6077         * (genCall): some times aopOp is called for a stack variable to be
6078         send, aopForSym might perform the push, if this is true make sure
6079         that genCall doesn't push the variable twice by testing _G.resDirect,
6080         * (genFunction): changed testing for unspecified interrupt number
6081         from 256 to INTNO_UNSPEC,
6082         * modified selection scheme of frame pointer generation. Previously
6083         if function did use local registers a frame pointer was generated,
6084         now a frame pointer is generated only if function has arguments
6085         (that need PLUSW2 register access), or has stack arguments, or the
6086         compiler is not instructed to omit the frame pointer,
6087         * (genEndFunction): before restoring local registers that were saved
6088         in the function preamble, also restore the registers that *might*
6089         have been allocated for stack access,
6090         * (genRet): removed some old comments,
6091         * (genCmp, the active (RN's) version): added a call to the
6092         pic16_genCmp_special function to perform the compare with a more
6093         robust and optimized way,
6094         * (genInline): a feature has been added in inline code generation,
6095         which allows a wildcard variable substitution when writing inline
6096         assembly. Code is incomplete and experimental therefore undocumented,
6097         * (genCast): changed order of aopOp for result and right to allow
6098         aopForSym to directly load the result if possible,
6099         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
6100         perform an optimized compare on some selected special occasions,
6101         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
6102         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
6103         generate an IVT any more,
6104         * src/pic16/main.c (pic16_optionsTable): added command line option
6105         --optimize-cmp,
6106         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
6107         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
6108         macros,
6109         * src/pic16/NOTES: Raphael Neider added in list of active developers
6110         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
6111         jumptable_end to prevent bug #,
6112         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
6113         inCond and outCond fields,
6114         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
6115         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
6116         turn off register spilling,
6117         * (packRegsForOneUse): synced with other ports' versions although it
6118         is not used currently,
6119         * (pic16_packRegisters): added an optimization while reading
6120         structure bitfields, some registers may be saved (malloc code is
6121         decreased by 80 bytes)
6122
6123 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
6124
6125         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
6126         left is a bitfield, if yes, then don't optimize assignment. Perhaps
6127         this can be optimized more?
6128
6129 2005-03-10 Raphael Neider <rneider AT web.de>
6130
6131         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
6132           genNearPointerGet): (hopefully) fixed access to bitfields via
6133           pointers (p->bitN = x; and x = p->bitN; failed)
6134
6135 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
6136
6137         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
6138
6139 2005-03-09 Raphael Neider <rneider AT web.de>
6140
6141         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
6142
6143 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
6144
6145         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
6146         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
6147           (regTypeNum): set REG_BIT type if necessary
6148         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
6149         * support/regression/tests/critical.c: check bug 1144613
6150
6151 2005-03-02 Raphael Neider <rneider AT web.de>
6152
6153         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
6154
6155 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6156
6157         * src/avr/ralloc.c (serialRegAssign),
6158         * src/ds390/ralloc.c (serialRegAssign),
6159         * src/hc08/ralloc.c (serialRegAssign),
6160         * src/mcs51/ralloc.c (serialRegAssign),
6161         * src/pic/ralloc.c (serialRegAssign),
6162         * src/pic16/ralloc.c (serialRegAssign),
6163         * src/xa51/ralloc.c (serialRegAssign),
6164         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
6165
6166 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
6167
6168         * src/SDCCast.c (decorateType): fixed bug 1124787
6169
6170 2005-02-20 Hubert Sack <sack AT digiplan.de>
6171         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6172
6173         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
6174         patch #1121755
6175
6176 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6177
6178         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
6179         to keep the correct label reference count when adding/removing references
6180         to labels. A peephole file using this is appended to patch #1144962.
6181
6182 2005-02-14 Raphael Neider <rneider AT web.de>
6183
6184         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
6185         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
6186         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
6187           retrievals of result operand's value on assignment
6188
6189 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
6190
6191         * device/include/pic16/string.h: modified prototype for memccpy()
6192         to memccpy(void *, void *, char, size_t)
6193         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
6194         check whether to omit frame pointer or not,
6195         * (genInline): convert all occurences of "\n" to LF in inline
6196         assembler blocks, this helps formatting the inline text,
6197         * (pic16_loadFSR0): modified prototype,
6198         * (genNearPointerGet, genNearPointerSet): reorganization of code,
6199         removed some 8051 legacy code,
6200         * (genPackBits): enabled handling bitfields exceeding one byte in size,
6201         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
6202         before allocating temporary registers in functions,
6203
6204 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
6205
6206         * support/regression/tests/bitvars.c: corrected the "fix"
6207
6208 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
6209
6210         * support/regression/tests/bitvars.c,
6211         * support/regression/tests/bitwise.c,
6212         * support/regression/tests/rotate.c: "fixed" problems on Alpha
6213
6214 2005-02-10 Raphael Neider <rneider AT web.de>
6215
6216         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
6217           different size for Alpha
6218         * src/pic16/gen.c (genCmpEq) : improved compare with 0
6219
6220 2005-02-09 Raphael Neider <rneider AT web.de>
6221
6222         * src/SDCC.lex(doPragma) : save and restore warning options as well
6223           (also added new stack plus clone- and copyAndFreeSDCCERRG())
6224         * have #pragma less_pedantic set the errorlevel to WARNING
6225           (fixes #1117001)
6226         * (cloneOptimize) : fixed wrong malloc's size
6227         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
6228           facilitate correct handling of #pragma (save|restore)
6229
6230 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
6231
6232         * src/mcs51/gen.c: removed non-standard C nameless struct/union
6233
6234 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
6235
6236         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
6237
6238 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
6239
6240         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
6241
6242 2005-02-02 Raphael Neider <rneider AT web.de>
6243
6244         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
6245         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
6246         * (pic16_storeForReturn): fixed to allow returning function pointers
6247         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
6248         * device/include/pic16/{stddef.h,stdbool.h}: added
6249
6250 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
6251
6252         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
6253
6254 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
6255
6256         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
6257         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
6258          appeared to be required
6259
6260 2005-01-31 Borut Razem <borut.razem AT siol.net>
6261
6262         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
6263           include/mcs51 and include/z80 directories to the package
6264
6265 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6266
6267         * src/hc08/gen.c (genFunction): fixed bug #1112752
6268
6269 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6270
6271         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
6272
6273 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6274
6275         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
6276
6277 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
6278
6279         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
6280
6281 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
6282
6283         * device/include/c8051fxxx.h: removed these 6 files
6284         * device/include/mcs51/c8051fxxx.h: added these 11 new files
6285
6286 2005-01-26 Raphael Neider <rneider AT web.de>
6287
6288         * src/pic16/gen.c (genAssign): fixed assignment from longs
6289           in codespace (were cut to three bytes)
6290         * (genDummyRead): implemented (except for CODESPACE...),
6291           fixed bug #1108575
6292         * src/pic16/glue.c (emitStatistics): beautified
6293         * device/lib/pic16/libm/Makefile: added include path
6294
6295 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6296
6297         * src/z80/gen.c (aopPut): fixed bug #1103902
6298
6299 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6300
6301         * device/lib/expf.c: fixed bug #1095792
6302
6303 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
6304
6305         * device/lib/pic16/libm: added Math library sources
6306
6307 2005-01-24 Raphael Neider <rneider AT web.de>
6308
6309         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
6310           to enable upcast to pCodeOpReg2 (there is no type tag to
6311           differenciate the two and pic16_popGet2p cast into PCOR2)
6312         * src/pic16/main.c (_process_pragma): fixed another malloc bug
6313           (sizeof(sectNames) changed to sizeof(sectName))
6314           Both patches fix segfaults under MinGW.
6315
6316 2005-01-23 Raphael Neider <rneider AT web.de>
6317
6318         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
6319           Safe_[mc]?alloc()'ed variables
6320         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
6321           of (byte sized) temporaries (assign them to WREG for now)
6322         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
6323           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
6324           this might fix SIGSEGVs on MinGW...
6325         * src/SDCCopt.c (killDeadCode): restored original behaviour
6326           (volatile operands might get thrown away though)
6327
6328 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
6329
6330         * src/pic16/gen.c: fixed bug #1106975,
6331         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
6332         pointer update, INTCON is saved, global interrupts are disabled and
6333         restored after updateing TOS.
6334         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
6335         * added function attribute 'shadowregs' to take advantage of shadow
6336         registers,
6337         * added function attribute 'wparam' as an alternative to the wparam
6338         pragma,
6339         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
6340         user declares a non-ISR function as 'shadowregs',
6341         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
6342
6343 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
6344
6345         * .version: bumped version number to 2.4.8
6346         * device/lib/pic16/pics.all: list of PIC18F devices supported by
6347         pic16 port,
6348         * device/lib/pic16/libio/i2c/: I2C module support library,
6349         * device/include/pic16/i2c.h: I2C support library header,
6350         * device/lib/pic16/libc/stdio/: standard IO support sources,
6351         * (printf_small.c): printf_small() source, supports float print,
6352         * (printf_tiny.c): printf_tiny() source, does not support floats,
6353         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
6354         enable global optimizations for entire library source, other
6355         Makefiles in the source tree are also modified to reflect this,
6356         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
6357         function,
6358         * doc/sdccman.lyx: updated to reflect new changes,
6359         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
6360         sym->onStack if-case,
6361         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
6362         sbit, idata, _idata, xdata, _xdata,
6363         * added pragma library, to link an external library, (see doc),
6364         * removed command line options, --pomit-config-words, --pomit-ivt,
6365         --pleave-reset-vector,
6366         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
6367         when calling assembler to reflect memory model used, also define
6368         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
6369         reflect stack model used,
6370         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
6371         on stack return NULL,
6372
6373 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6374
6375         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
6376           of the operands is volatile. Fixes #1020220
6377
6378 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
6379
6380         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
6381         * (OptimizeRegUsage): make sure that there is really no other flow where
6382           the first pCode is used
6383
6384 2005-01-22 Raphael Neider <rneider AT web.de>
6385
6386         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
6387           to fix #1106967 (pCode->seq are not set up correctly)
6388
6389 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6390
6391         * src/SDCCglue.c (glue): make sure code area is declared before the
6392         static initialization area.
6393
6394 2005-01-21 Raphael Neider <rneider AT web.de>
6395
6396         * device/lib/Makefile.in: fixed test for pic16 install dir
6397         * device/lib/pic16/*/Makefile*: modified compile flags to enable
6398           optimizations
6399         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
6400           added --optimize-goto compiler switch and pragma wparam documentation
6401         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
6402         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
6403           and PRODH closing bug #1071770 (peephole optimizer)
6404
6405 2005-01-19 Raphael Neider <rneider AT web.de>
6406
6407         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
6408           cmdLine buffers (used when calling sdcpp...) are large enough
6409           (MAX_PATH=256 truncates arguments leading to system halts when
6410           used in MinGW...)
6411         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
6412         * (genUminus): rewritten to for efficiency
6413         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
6414           used uninitialized in some cases)
6415         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
6416           copy the third byte from the int -- now assumes 0x80 (data memory)
6417         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
6418           operands (genAddLit expects the iCode's operands to swapped as
6419           well), fixed leftover bytes (crashed for short left operands)
6420         * (pic16_genMinusDec): performance improvements, removed false
6421           PIC14 emitSKPNCs
6422         * (pic16_genMinus): fixed to cope with differently sized operands
6423         * src/pic16/glue.c (pic16_glue): added new banksel optimization
6424           for --obanksel > 1
6425         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
6426         * src/pic16/graph.[ch]: implementation of directed graphs, used by
6427           new banksel optimization
6428         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
6429           analysis for temporary registers (segfaults...)
6430         * src/pic16/peeph.def: added rule
6431
6432 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
6433
6434         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
6435         which converts a float number to its ASCII representation
6436         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
6437         functions to convert the fractional and integer part of a float to ASCII,
6438         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
6439         realloc.c): added _MALLOC_SPEC to explicit place variables in data
6440         ram
6441         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
6442         _STATMEM macros,
6443         * device/include/pic16/adc.h: added GPL info,
6444         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
6445         a pCodeOp as tested operand,
6446         * (genNearPointerGet): optimized bit testing, does not use
6447         intermediate register for bit value, test directly instead with
6448         BTFSS, BTFSC, works only for single bits,
6449         * (genpic16Code): dump the name of the iCode in the asm,
6450         * src/pic16/ralloc.c (decodeOp): removed static declaration and
6451         renamed to pic16_decodeOp,
6452         * (serialRegAssign): do not allocate a temporary register for iCode
6453         sequences that test a single bit for 1/0
6454
6455 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
6456
6457         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
6458         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
6459         access stack and frame pointers. They are initially assigned to
6460         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
6461         accessing SFRs. Updated all occurences of modification of stack or
6462         frame pointer in gen.c and pcode.c,
6463         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
6464         assigning of a literal value to pointers,
6465         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
6466         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
6467         selected
6468
6469 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6470
6471         * doc/sdccman.lyx: update documentation about stack pragma, added
6472         some info for stack memory models
6473
6474 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6475
6476         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
6477
6478 2005-01-08 Raphael Neider <rneider AT web.de>
6479
6480         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
6481           udata sections to fix bug #1097823
6482
6483 2005-01-05 Raphael Neider <rneider AT web.de>
6484
6485         * src/pic16/gen.c (genGenericShift): added handling of differently
6486           sized left operand and result
6487
6488 2005-01-04 Raphael Neider <rneider AT web.de>
6489
6490         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
6491         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
6492           to hold the condition bit)
6493         * added new version of genCmp (old code available via #define)
6494         * added new version of genShiftLeft/genShiftRight in a generic
6495           way, now supports shifting by negative values
6496         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
6497           shiftCount (expected by genGenericShift)
6498         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
6499         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
6500           dump
6501         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
6502           is an invalid literal too...)
6503
6504 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
6505
6506         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
6507         from Raphael Neider,
6508         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
6509         for 8-bit literals. This fixes some literal operands which are sign
6510         extended to 16-bits ints when instruction needs only 8-bits.
6511
6512 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
6513
6514         * device/lib/logf.c: added mcs51 assembly version
6515         * device/lib/expf.c: added mcs51 assembly version
6516         * device/lib/_logexpf.c: new shared asm code for expf and logf
6517         * device/include/math.h: add defines for assembly math library
6518         * device/lib/Makefile.in: build new _logexpf.c
6519         * device/lib/libfloat.lib: use new _logexpf.c
6520
6521 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6522
6523         * src/pic/device.c
6524         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
6525           device types which have less than 0x7f registers.
6526
6527 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
6528
6529         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
6530
6531 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6532
6533         * device/lib/printf_fast.c: only build on supported arch.
6534         * device/lib/printf_tiny.c: only build on supported arch.
6535         * device/lib/printf_fast_f.c: only build if asm float lib
6536         * device/lib/_fsget1arg.c: only build if asm float lib
6537         * device/lib/_fsget2args.c: only build if asm float lib
6538         * device/lib/_fsnormalize.c: only build if asm float lib
6539         * device/lib/_fsreturnval.c: only build if asm float lib
6540         * device/lib/_fsrshift.c: only build if asm float lib
6541         * device/lib/_fsswapargs.c: only build if asm float lib
6542         * device/include/stdio.h: don't provide print_fast,
6543           print_fast_f, print_tiny prototypes if --xstack used
6544
6545 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
6546
6547         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
6548         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
6549           to the SOURCES
6550
6551 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
6552
6553         * device/lib/printf_fast_f.c: same as printf_fast, but
6554           with floating point enabled
6555         * device/lib/printf_fast.c: minor tweaks
6556         * device/include/stdio.h: add printf_fast_f
6557
6558 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6559
6560         * src/SDCCmain.c: make --float-reent default for mcs51
6561         * device/lib/_fsadd.c: added mcs51 assembly version
6562         * device/lib/_fssub.c: added mcs51 assembly version
6563         * device/lib/_fsmul.c: added mcs51 assembly version
6564         * device/lib/_fsdiv.c: added mcs51 assembly version
6565         * device/lib/_fseq.c: added mcs51 assembly version
6566         * device/lib/_fsneq.c: added mcs51 assembly version
6567         * device/lib/_fsgt.c: added mcs51 assembly version
6568         * device/lib/_fslt.c: added mcs51 assembly version
6569         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
6570         * device/lib/Makefile.in: add _fscmp to build
6571         * device/lib/libfloat.lib: add _fscmp to build
6572
6573 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
6574
6575         * device/lib/_fs2slong.c: added mcs51 assembly version
6576         * device/lib/_fs2sint.c: added mcs51 assembly version
6577         * device/lib/_fs2schar.c: added mcs51 assembly version
6578         * device/lib/_fs2ulong.c: added mcs51 assembly version
6579         * device/lib/_fs2uint.c: added mcs51 assembly version
6580         * device/lib/_fs2uchar.c: added mcs51 assembly version
6581         * device/lib/_slong2fs.c: added mcs51 assembly version
6582         * device/lib/_sint2fs.c: added mcs51 assembly version
6583         * device/lib/_schar2fs.c: added mcs51 assembly version
6584         * device/lib/_ulong2fs.c: added mcs51 assembly version
6585         * device/lib/_uint2fs.c: added mcs51 assembly version
6586         * device/lib/_uchar2fs.c: added mcs51 assembly version
6587         * device/include/float.h: added #define to select asm vs c
6588
6589 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
6590
6591         * device/lib/printf_fast.c: improvements to float output
6592         * device/include/float.h: add defines for assembly float library
6593         * device/lib/_fsget1arg.c: receive 1 float arg
6594         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
6595         * device/lib/_fsnormalize.c: normalize a float
6596         * device/lib/_fsreturnval.c: return float, various helper routines
6597         * device/lib/_fsrshift.c: right shift a float's mantissa
6598         * device/lib/_fsswapargs.c: swap 2 floats
6599         * device/lib/Makefile.in: build these 6 new files for mcs51
6600         * device/lib/libfloat.lib: add these 6 files to the library
6601
6602 2004-12-26 Borut Razem <borut.razem AT siol.net>
6603
6604         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
6605           built by gcc 3.4.2
6606
6607 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
6608
6609         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
6610           and fully reentrant and register bank neutral.
6611         * device/lib/printf_fast.c: added float (not enabled by default),
6612           added compact/slower integer (also not enabled by default),
6613           improved size/speed of fast integer code, other minor changes
6614         * device/include/stdio.h, device/lib/Makefile.in,
6615           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
6616
6617 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
6618
6619         * src/pic16/pcode.c: declaring variables other than at the start of a
6620           block is not supported in C by VC6.
6621
6622 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
6623
6624         * applied a previous patch from Raphael Neider that wasn't included
6625         in the previous commits, which fixes infinite loops within jumptable
6626         improvements,
6627         * made some fixes that previous patches introduced
6628
6629 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
6630
6631         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
6632         that fixes an issue with AOP_PCODE asmop's offset,
6633         * (pic16_popCopyReg): update instance field too,
6634         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
6635         function of pic port,
6636         * (genCmp, genAnd, genAssign),
6637         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
6638
6639 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
6640
6641         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
6642         variables initial values to idata section,
6643         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
6644         variables in some functions. This utilizes parmBytes field of iCode
6645         structure to hold the offset of the variable in stack. (might be
6646         able to use the stack field too?)
6647         * applied patch from Raphael Neider # ### , # ###
6648         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
6649         variable initial values in idata section,
6650         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
6651         for static variables with initial value
6652         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
6653         applied fix in while loop from Raphael Neider.
6654
6655 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
6656
6657         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
6658         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
6659         * src/ds390/ralloc.c (serialRegAssign): spill bits
6660         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
6661         * support/Util/SDCCerr.c,
6662         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
6663         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
6664         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
6665
6666 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
6667
6668         * device/include/sdcc-lib.h: inserted LGPL, added includes
6669           asm/ds390/features.h and asm/mcs51/features.h
6670         * device/include/asm/default/features.h,
6671         * device/include/asm/gbz80/features.h,
6672         * device/include/asm/z80/features.h: added empty _AUTOMEM
6673           and _STATMEM
6674         * device/include/asm/ds390/features.h,
6675         * device/include/asm/mcs51/features.h: added files with defines for
6676           _AUTOMEM and _STATMEM indicating automatic and static storage class
6677         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
6678         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
6679         * src/SDCCicode.c (geniCodeCast),
6680         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
6681         * src/SDCCloop.c (loopInduction): removed unused variable lr
6682         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
6683           to convertToFcall to include char modulo (RFE 1065037), added check
6684           if left operand is unsigned and use abs of literal value
6685         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
6686           as it doesn't work after conversion from peephole.def to peephole.rul
6687         * src/mcs51/gen.c (toBoolean): added check for size,
6688           (genModOneByte): optimized code for signed char modulo a literal
6689           power of 2 (thanks to Hubert Sack),
6690           (genRRC): removed unnecessary "clr c",
6691           (genRLC): replaced "add a,acc" with cheaper "rlc a"
6692         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
6693           jump optimization,
6694           swapped rules 256.c and 256.d,
6695           extended 256.d by using new multiple checks (thanks Erik),
6696           added rules 256.e and 256.f,
6697           updated rule 261.a and 261.b to new generated code
6698         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
6699
6700 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6701
6702         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
6703           induction related bugs, including first part of bug #1074377
6704
6705 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
6706
6707         * applied patch from bug-report #1076292,
6708         * applied patches for genAnd and Goto-optimizations for Raphael
6709         Neider,
6710         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
6711         dump a less iCode information,
6712         * src/pic16/device.h (pic16_options_t): added field debgen,
6713         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
6714         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
6715         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
6716         puclic,
6717         * (various functions): added macros FENTRY and FENTRY2 to functions,
6718         to emit function prologue,
6719         * (various functions): fixed indentation,
6720         * (genNearPointerGet): fixed loading of FSR0,
6721         * (genPackBits): applied patch from Raphael Neider to fix updating
6722         of FSR0 and touching only the modified bits,
6723         * src/pic16/genarith.c (various functions): added macros FENTRY to
6724         emit function prologue in comments,
6725         * src/pic16/pcode.h: added functions debugf2, debugf3,
6726         * src/pic16/ralloc.c: partial fix for packForPush caused
6727         segmentation fault,
6728
6729 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6730
6731         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
6732           <stsp AT users.sourceforge.net> with reversed byte order
6733         * support/regression/tests/rotate.c: added (ds390 skips some tests)
6734
6735 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6736
6737         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
6738           bug #1074377
6739         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
6740         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
6741
6742 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6743
6744         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
6745
6746 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6747
6748         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
6749           conditions,
6750           (setFromConditionArgs): friendly operand parser for peephole rules,
6751           (operandBaseName, operandsNotRelated): new peephole condition
6752           "operandsNotRelated" -- similar to "operandsNotSame", but takes
6753           architecture specific register naming into account, handles n-way
6754           comparisons, and supports quoted literals
6755         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
6756
6757 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6758
6759         * src/mcs51/peeph.def: fixed bug #1076940
6760
6761 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
6762
6763         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
6764
6765 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6766
6767         Adding support for replacing ljmps with sjmps in jumptables
6768         generated for switch statements. For now you need to set the
6769         environment variable SDCC_SJMP_JUMPTABLE to enable this.
6770         Now 4 algorithms for mcs51 jumptable generation are used:
6771         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
6772         addresses loaded pc-relative for up to 112 cases and stack-pushing
6773         target addresses loaded with offset from dptr for up to 256 cases.
6774
6775         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
6776         * src/mcs51/main.c: adapted constants for switch table generation
6777         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
6778
6779 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
6780
6781         * device/lib/printf_large.c (_print_format): fixed bug 1073386
6782         * support/regression/tests/bug1057979.c: added test for bug 1073386
6783
6784 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6785
6786         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
6787         compilers
6788
6789 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
6790
6791         * src/pic16/device.h,
6792         * src/pic16/genarith.c,
6793         * src/pic16/glue.c,
6794         * src/pic16/main.c,
6795         * src/pic16/pcode.c: applied patches #1068154 and #1070213
6796
6797 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
6798
6799         Large cummulative patch for pic16 port.
6800         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
6801         to call when a stack overflow occurs,
6802         * (malloc.h): added CVS Id tag,
6803         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
6804         variable,
6805         * added libc directory. The current version of LibC contains string
6806         functions, ctype functions and macros and some functions of the
6807         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
6808         be extensively tested in the future. Standard disclaimer here.
6809         Library is not automatically build yet. But one can build it by
6810         invoking 'make' inside the libc directory.
6811         * added ADC library under libio. Preliminary version yet.
6812
6813         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
6814         * src/pic16/gen.c (aopForRemat): asmop size is filled by
6815         aopForRemat() now and not by pic16_aopOp(),
6816         * (pic16_popGetTempReg): removed warning messgae when allocating
6817         temporary registers, its a buggy feature and will be removed,
6818         * (pic16_popGet): set register instance field in AOP_CRY,
6819         * (pic16_outBitC): fixed for results in size greater than 1,
6820         * (genUminusFloat): fixed for pic16, ported code from mcs51,
6821         * (pic16_storeForReturn): optimized return of 0,
6822         * (genCmp): experimental code for new genCmp which uses PIC18's
6823         special compare&skip instructions. Initial tests fail some times
6824         with variables grater than 1 byte in size, so new code is disabled,
6825         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
6826         a single bit,
6827         * (genCast): began a fix to optimize the casting of a bit to another
6828         bit, now assigning a bitfield to another bitfield will fail, sorry,
6829         * src/pic16/main.c: disabled the use of lr-support feature,
6830         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
6831         * added some function prototypes, added function _debugf prototype,
6832         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
6833         bits with offset (case PO_GPR_BIT),
6834         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
6835         command line,
6836         * (isBankInstruction): modified to return 0 for no banking instruction,
6837         and 1 for banking instruction,
6838         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
6839         caused stop processing pCodes after a inline assembly block,
6840         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
6841         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
6842         registers when it shouldn't,
6843         * src/pic16/ralloc.c (allocReg): add preliminary support for
6844         supporting a limited set of temporary registers,
6845
6846 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6847
6848         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
6849           genDataPointerSet): ensure assignments always copy in MSB to LSB
6850           order,
6851           (loadRegFromAop): recognize CLRH optimization,
6852           (genFunction): optimize RECEIVE iCodes in reentrant functions
6853
6854 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6855
6856         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
6857           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
6858           selected.
6859         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
6860         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
6861           contiguous with data
6862
6863 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6864
6865         * device/lib/_gptrget.c (_gptrget),
6866         * device/lib/_gptrgetc.c (_gptrgetc),
6867         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
6868           instead of sjmp to ret
6869         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
6870           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
6871
6872 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
6873
6874         * .version: bumped version to 2.4.7
6875         * device/lib/_gptrget.c (_gptrget): is now _naked
6876         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
6877         * device/lib/_gptrput.c (_gptrput): is now _naked
6878         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
6879           (createFunction): fixed xstack
6880         * src/SDCCglue.c (emitMaps): set allocation required for bit area
6881         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
6882           or bit either,
6883           (geniCodeCritical): store original interrupt state in an iTemp bit
6884           var unless stack-auto
6885         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
6886         * src/SDCCmain.c (setIncludePath): added include/target to search path
6887         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
6888         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
6889           prototype,
6890           (processFuncArgs): put bit vars in bit area
6891         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
6892           unsaveRBank): fixed xstack,
6893           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
6894           (genFunction, genEndFunction): fixed xstack,
6895           (genAssign): optimization don't walk backwards through mem
6896         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
6897         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
6898         * support/regression/Makefile: also make library (for stack-auto) when
6899           making "all" and added "test-mcs51-xstack-auto"
6900         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
6901         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
6902         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
6903         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
6904         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
6905           make-library by MAKE_LIBRARY
6906         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
6907           regression tests for xstack
6908         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
6909         * support/regression/tests/critical.c: test for critical on mcs51
6910
6911 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6912
6913         * support/regression/ports/ucz80/spec.mk: use include and lib files from
6914           built version of sdcc instead of installed version
6915
6916 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
6917
6918         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
6919         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
6920           vprintf.c now
6921         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
6922         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
6923           WARNING: remove device/lib/build/z80/printf.o by hand when
6924           updating from previous build!
6925         * device/lib/z80/printf.c: updated comment
6926         * support/regression/tests/bug1057979.c: test all ports now
6927         * support/regression/tests/bug1065458.c: file added
6928
6929 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6930
6931         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
6932           *_start and *_end symbols for static functions
6933
6934 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
6935
6936         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
6937           and search crt0.o in all library paths,
6938           (setIncludePath): proper handling of --nostdinc,
6939           (setLibPath): proper handling of --nostdlib
6940         * support/regression/Makefile,
6941         * support/regression/ports/ds390/spec.mk,
6942         * support/regression/ports/gbz80/spec.mk,
6943         * support/regression/ports/hc08/spec.mk,
6944         * support/regression/ports/mcs51/spec.mk,
6945         * support/regression/ports/mcs51-large/spec.mk,
6946         * support/regression/ports/mcs51-stack-auto/spec.mk,
6947         * support/regression/ports/z80/spec.mk: use include and lib files from
6948           built version of sdcc instead of installed version
6949         * doc/sdccman.lyx: fixed typo in --nostdinc
6950
6951 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
6952
6953         * src/pic/pcode.c,
6954         * src/pic/device.c,
6955         * src/pic/ralloc.c,
6956         * src/pic/gen.c : added support to generate code for struct bit fields.
6957
6958 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
6959
6960         * as/xa51/xa_version.h,
6961         * device/include/errno.h,
6962         * device/include/regc515c.h,
6963         * device/lib/_itoa.c,
6964         * device/lib/_ltoa.c,
6965         * device/lib/ser_ir_cts_rts.c,
6966         * sim/ucsim/xa.src/glob.cc,
6967         * sim/ucsim/xa.src/inst_gen.cc,
6968         * sim/ucsim/xa.src/xa_bit.cc,
6969         * sim/ucsim/xa.src/xa_sfr.cc,
6970         * sim/ucsim/z80.src/inst_dd.cc,
6971         * sim/ucsim/z80.src/inst_fdcb.cc,
6972         * support/scripts/keil2sdcc.pl,
6973         * src/pic16/pic16.dsp,
6974         * src/pic16/pic16a.dsp: corrected cvs line endings
6975         * device/lib/printf_large.c: fixed bug 1057979
6976         * src/pic16/gen.c: fixed non-C standard code
6977         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
6978         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
6979         * support/regression/ports/mcs51/support.c: reload T1 asap
6980         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
6981           pdata use and clear idata startup behaviour
6982         * support/regression/tests/bug1057979.c: added
6983
6984 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
6985
6986         * device/examples/ds390/ow390/ad26.h,
6987         * device/examples/ds390/ow390/cnt1d.h,
6988         * device/examples/ds390/ow390/crcutil.c,
6989         * device/examples/ds390/ow390/ownet.h,
6990         * device/examples/ds390/ow390/owsesu.c,
6991         * device/examples/ds390/ow390/swt12.h,
6992         * device/examples/ds390/ow390/swtoper.c,
6993         * device/examples/ds390/ow390/temp10.h,
6994         * device/examples/ds390/ow390/thermodl.c,
6995         * device/examples/ds390/tinitalk/tinitalk.dsp,
6996         * device/examples/ds390/tinitalk/tinitalk.dsw,
6997         * device/examples/mcs51/clock/hw.h,
6998         * device/examples/mcs51/simple2/go.bat,
6999         * device/examples/serialcomm/windows/serial.h,
7000         * device/examples/xa51/dummy.c,
7001         * device/examples/xa51/hello.c,
7002         * device/include/80c51xa.h,
7003         * device/include/at89x051.h: corrected cvs line endings
7004
7005 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
7006
7007         * src/pic16/main.c (options): added command line --gstack, to trace
7008         stack over/under flows,
7009         * added pragma 'wparam' to allow passing first byte of function
7010         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
7011         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
7012         call to __gstack_test function and sets up the symbol as extern,
7013         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
7014         * popaop): added call to pic16_testStackOverflow,
7015         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
7016         wparamList list,
7017         * (genCall, genPcall): now all parameters are passed via stack
7018         except in functions that are pass to wparam pragma in which WREG is
7019         used too,
7020         * (genPcall): REENTRANT flag is checked to see if variable prototype
7021         contains reentrant keyword, don't call a non-reentrant function, via
7022         a reentrant function pointer or vice versa, functions are never
7023         passed via WREG,
7024         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
7025         D.Winkler,
7026         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
7027         SIGSEGV when accessing a NULL register stucture,
7028         * (pic16_printGPointerType): modified to handle UPPER modifier for
7029         function initializers, changed prototype of function to simpler one,
7030         * (pic16_printIvalFuncPtr): check to see if function is already
7031         added in externs list,
7032         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
7033         optimized a move from W to SFR with a move to the same register
7034         later after a CALL,
7035         * device/lib/pic16/debug: NEW directory, contains debug features
7036         which are enabled when linking with libdebug.lib, currently command
7037         line option --gstack enables stack pointer tracing for over/under
7038         flow, corresponding sources are in debug/gstack
7039
7040 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
7041
7042         * doc/sdccman.lyx: updated SDCC version,
7043         * (PIC16 port): update list of command line options,
7044         * src/pic16/device.h (structure pic16_options_t): added field gstack
7045         to enable stack overflow tracing on push/pops,
7046         * src/pic16/device.c (statistics structure): added statistics
7047         structure,
7048         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
7049         pic16_dump_int_registers): increase statistics counters for each
7050         * variable which is encountered
7051         * (pic16_dump_usection): emit each .udata variable to its own udata
7052         section,
7053         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
7054         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
7055         parameters via stack, otherwise use old scheme,
7056         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
7057         assembler output file,
7058         * src/pic16/main.c: added command line options --gstack to enable
7059         push/pop tracing for stack overflow,
7060         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
7061         instructions): added size of each instruction,
7062         * (pic16_countInstruction): estimate size of instructions in
7063         the_pFile list, inline assembly blocks are not counted,
7064         * (pic16_FixRegisterBanking): trace previous register usage, when
7065         banksel optimizations is greater than 0, don't emit a redudant
7066         banksel directive,
7067
7068 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
7069
7070         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
7071         * src/pic16/ralloc.c : applied same fix for pic16.
7072         * src/pic/gen.c : tidied it up a little.
7073
7074 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7075
7076         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
7077         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
7078
7079 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7080
7081         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
7082
7083 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7084
7085         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
7086         non-reentrant function __modsint in the interrupt function (thus
7087         corrupting math operations during serial I/O)
7088         * device/lib/ser_ir.c: as above, changed buffersize
7089         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
7090         256.c,d for zeroing
7091         * doc/Makefile: added option -t for rsync
7092
7093 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7094
7095         * src/SDCCast.h (struct ast),
7096         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
7097
7098 2004-10-20 Borut Razem <borut.razem AT siol.net>
7099
7100         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
7101         package
7102
7103 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
7104
7105         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
7106         makefile targets,
7107         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
7108         support functions to replace long sequences of MOVFF's from access
7109         bank registers to stack and vice versa,
7110         * src/pic16/device.h: added new field opt_flags, where optimization
7111         flags can be set to enable certain features,
7112         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
7113         * pBlock, (genFunction, genEndFunction): surroung loop for
7114         saving/loading used registers in stack with PC_INFO pCodes,
7115         INF_LREGS. Code in between can then be optimized by pCode optimizer
7116         to support function calls,
7117         * (genDataPointerSet): fixed bug which loaded float fields in
7118         structures with corrupt data,
7119         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
7120         in a standard way debug info on stderr. Feature used for developing
7121         and debugging only,
7122         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
7123         obsolete chunks of code,
7124         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
7125         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
7126         * pic16/src/pcode.c (pic16_newpCodeInfo,
7127         * (pic16_newpCodeOpLocalRegs),
7128         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
7129         feature,
7130         * (pic16_pCodeConstString): printing of the initial value of a
7131         symbol as a comment is inhibited since parsing was already done by
7132         copyStr and output is corrupt,
7133         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
7134
7135 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7136
7137         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
7138
7139 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
7140
7141         * as/mcs51/lkarea.c: removed old K&R style,
7142           (lnksect): changed check on boundary error,
7143           (lnksect2): changed check on boundary error,
7144           (lnksect2): extend XSTK to end of page if size = 1
7145         * as/mcs51/lkmain.c: removed old K&R style,
7146           (Areas51): create l_IRAM symbol
7147         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
7148         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
7149           model-mcs51-stack-auto, added model-mcs51-xstack-auto
7150         * device/lib/_mullong.c: added version to be compiled with xstack
7151         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
7152         * device/lib/mcs51/crtxclear.asm: clear pdata as well
7153         * device/lib/mcs51/crtxstack.asm: fixed comment
7154         * src/SDCCglue.c: maxInterrupts defaults to 0,
7155           (emitMaps): added pdata,
7156           (createInterruptVect): (re)moved default,
7157           (glue): added pdata,
7158           (glue): moved __start__xstack to XSTK with default size 1
7159         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
7160           and options.float_rent when options.stackAuto is set,
7161           (linkEdit): only write XDATA_NAME if provided on command line
7162         * src/SDCCmem.h,
7163         * src/SDCCmem.c: added pdata
7164         * src/port.h: added pdata_name to PORT
7165         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
7166           (saveRegisters, unsaveRegisters): removed usage of B,
7167           (genMinus): fixed accumulator clash,
7168           (genJumpTab): added comment, this needs another look
7169         * src/mcs51/gen.c: added check for "B in use" paranoia,
7170           added pushB() and popB()
7171         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
7172           chance
7173         * src/avr/main.c,
7174         * src/ds390/main.c,
7175         * src/hc08/main.c,
7176         * src/mcs51/main.c,
7177         * src/pic/main.c,
7178         * src/pic16/main.c,
7179         * src/xa51/main.c,
7180         * src/z80/main.c: (reset_regparms) made void parameter explicit and
7181           added PSEG (PAG,XDATA) or NULL to port specifier
7182         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
7183         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
7184           (_mcs51_genInitStartup): removed __start__xstack equ,
7185           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
7186         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
7187         * src/z80/gen.c (_rleAppend): fixed warnings
7188         * support/regression/tests/zeropad.c: added pdata test
7189         * .version: bumped to 2.4.6
7190
7191 2004-10-17 Borut Razem <borut.razem AT siol.net>
7192
7193         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
7194         as a part of nightly build
7195
7196 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
7197
7198         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
7199         WREG holds the first byte function parameters,
7200         * (aopForSym): take special case for symbols which are in FARSPACE
7201         but in CODESPACE too,
7202         * (assignResultValue): modified to take into account _G.useWreg,
7203         * (genCall): don't use wreg for parameter passing when function is
7204         declared as reentrant, too, added optimization INCF to stack
7205         pointer when stack parameter count is 1,
7206         * (genFunction, genEndFunction): refurnished and fixed to not using
7207         wreg for passing parameters when function has varargs or is
7208         reentrant, fixed bug with symbol name compare for generating
7209         functions in absolute address,
7210         * (pic16_storeForReturn): refurnished,
7211         * (genCmp): began writing a new version of the function, not ready
7212         yet, therefore it is disabled,
7213         * (genAssign): do not read code memory when assigning a function to
7214         a pointer function,
7215         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
7216         array of characters, not pointer,
7217         * (pic16initialComments): in debug mode emit an .ident directive for
7218         the assembler,
7219         * (_process_pragma): emit a new warning type (internal to pic16)
7220         when setting stack to default length, emit a similar warning when
7221         placing a function at absolute address and address is not word aligned
7222         * (_pic16_parseOptions): added 'return TRUE' statement,
7223         * (_pic16_linkEdit): if compiling a source, then add the source's
7224         file object, first in the list of objects to link,
7225
7226 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
7227
7228         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
7229         * src/pic/main.c : removed VC warning.
7230         * src/pic/gen.c : changed comment.
7231
7232 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
7233
7234         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
7235         reference to a deprecated symbol _GPTRREG was causing failure to
7236         link. Thanks G. M. Gallant for the info.
7237
7238 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
7239
7240         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
7241         comments for Bugs item #954788.
7242
7243 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
7244
7245         * src/pic16/device.c (pic16_dump_gsection,
7246         * pic16_groupRegistersInSection): handle symbols declared to be in
7247         access bank differently,
7248         * src/pic16/gen.c (struct _G): added field resDirect,
7249         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
7250         send values read from stack directly to result and don't allocate
7251         temporary values,
7252         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
7253         same registers,
7254         * (pic16_sameRegsOfs): NEW,
7255         * (freeAsmop): if _G.resDirect is set then do not mark registers as
7256         free because they were not allocated from temporary pool,
7257         * pic16_popRegFromString): workaround to fix a problem with
7258         allocating variables twice or never,
7259         * (genGenPointerGet): using PRODL instead of FSR0H,
7260         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
7261         instead of FSR0H,
7262         * (genAssign): take advantage of the _G.resDirect flag,
7263         * (genCast): around line 11844, use mov2f instead of directly
7264         MOVFF'ing between operands to account for literal values,
7265         * src/pic16/genutils.c: some new debug functions for gpsim have been
7266         added,
7267         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
7268         float with integer part only,
7269         * src/pic16/main.c (_process_pragma): handle pragma udata access to
7270         place variables in access bank
7271         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
7272         updated sources to reflect recent changes in gen.c
7273
7274 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
7275
7276         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
7277         sources that searched for headers in installation path, now the
7278         device/include/pic16 is used,
7279         * src/pic16/glue.c (pic16glue),
7280         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
7281         .line directives if not in debug mode, this suppresses assembler's
7282         warnings for ignored directives
7283
7284 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
7285
7286         * src/port.h: made reset_regparms prototype void parameter explicit.
7287         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
7288         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
7289         * doc/sdccman.lyx: documented warning disabling and how to use
7290           printf_large to make it print floats.
7291         * device/include/stdbool.h: NEW
7292         * device/lib/_atof.c,
7293         * device/lib/_divuint.c,
7294         * device/lib/_divulong.c,
7295         * device/lib/expf.c,
7296         * device/lib/printf_large.c,
7297         * device/lib/sincosf.c,
7298         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
7299         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
7300           a completely reentrant lib.
7301
7302 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
7303
7304         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
7305         * device/include/pic16/stdio.h: fixed bug with colon
7306
7307 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
7308
7309         * device/include/pic16/stdio.h,
7310         * device/include/pic16/stdlib.h,
7311         * device/include/pic16/math.h: NEW
7312         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
7313         declared as _naked to reduce overhead
7314         * device/lib/Makefile.in (target port-specific-objects-pic16):
7315         changed * to *.* so to ignore the CVS directory,
7316         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
7317         stacked variables back in stack,
7318         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
7319         corruption
7320
7321 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
7322
7323         * .version: bumped version number to 2.4.5
7324         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
7325         * support/Util/SDCCerr.c (messages structure): added entry for
7326         W_POSSBUG2
7327
7328         Large cumulative patch for pic16 port and libraries.
7329         * device/include/pic16/sdcc-lib.h,
7330         * device/include/pic16/stdarg.h,
7331         * device/include/asm/pic16/features.h,
7332         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
7333         * device/include/pic16/float.h: changes reentrant keyword with
7334         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
7335         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
7336         updated target build-libraries to include objects from gptr,
7337         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
7338         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
7339         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
7340         all function headings,
7341         * src/SDCCmain.c: added global parameter userIncDirsSet,
7342         * (parseCmdLine): when option -I is encountered add directory to
7343         userIncDirsSet too,
7344         * src/version.awk: added space between control and long,
7345         * src/pic16/NOTES: added some notes for the port,
7346         * src/pic16/gen.c: added prototype for mov2fp function,
7347         * (fReturnpic16[]): properly named return value registers,
7348         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
7349         * (aopForSym): added code to handle symbols with onStack flag set,
7350         symbols onStack are allocated PTRSIZE bytes,
7351         * (aopFreeAsmop): handles special case where asmops are stack objects,
7352         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
7353         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
7354         added argument lock to trace flaws in allocating temporary registers
7355         when developing port,
7356         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
7357         * (pic16_popRegFromString): reenabled allocating a direct register
7358         from string,
7359         * (assignResultValue): various beautifications,
7360         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
7361         referenced function argument,
7362         * (genIpush): reenabled to allow stacked arguments, handles only
7363         ic->parmPush iCodes,
7364         * (genCall, genPcall): major changes to allow for variable argument
7365         functions, fixed a bug with falsely restoring stack pointer after
7366         returning from call,
7367         * (genFunction): pending code for critical function,
7368         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
7369         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
7370         * (genNearPointerGet): fixed bug with indirect reading, was always
7371         reading from INDF0
7372         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
7373         pointers,
7374         * (genAddrOf): rewrote code to take address of a stacked function parameter
7375         * (genCast): fixed casting to generic pointer type,
7376         * src/pic16/gen.h: added AOP_STA,
7377         * (struct asmop): added field stk,
7378         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
7379         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
7380         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
7381         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
7382         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
7383         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
7384         generic pointers,
7385         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
7386         and library paths,
7387         * (pic16_port structure): generic pointer size is set to 3,
7388         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
7389         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
7390         compiler warning,
7391         * src/pic16/ralloc.c (allocReg): prevent allocating register when
7392         operand is an iTemp,
7393
7394 2004-09-24 Martin Helmling <mh AT octo-soft.de>
7395
7396         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
7397         * debugger/mcs51/simi.c: addapt new syntax of s51
7398
7399 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
7400
7401         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
7402         * src/pic16/pcode.c: commented out some calls to free() in order to
7403         fix bug #989576,
7404
7405 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7406
7407         * src/SDCCicode.h,
7408         * src/SDCCicode.c (isiCodeInFunctionCall),
7409         * src/avr/ralloc.c (selectSpil),
7410         * src/pic/ralloc.c (selectSpil),
7411         * src/pic16/ralloc.c (selectSpil),
7412         * src/ds390/ralloc.c (selectSpil),
7413         * src/hc08/ralloc.c (selectSpil),
7414         * src/xa51/ralloc.c (selectSpil),
7415         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
7416         stack in the middle of a function call sequence (fixes bug #1020268)
7417         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
7418         costs associated with the minimum switch case.
7419
7420 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7421
7422         * src/SDCC.lex: fixed bug #1030549
7423
7424 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7425
7426         * src/SDCCcse.h (struct cseDef),
7427         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
7428         over a function call if the CSE is derived from a symbol whose
7429         address has been taken (fixes bug #1029883)
7430         * support/regression/tests/bug-1029883: a new regression test for
7431         this bug
7432
7433 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7434
7435         * src/hc08/gen.c (emitinline): fixed bug #1029778
7436         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
7437         to a cast object is no longer a syntax error ("fixes" bug #1030006,
7438         and starts toward RFE #905167)
7439
7440 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
7441
7442         * src/pic16/gen.c (mov2f): New function to move an operand to
7443         another without considering if it is a literal or a register,
7444         * (pic16_sameRegs): don't check if they are both AOP_REG,
7445         * (AccRsh): removed andmask=0 lines,
7446         * (genLeftShift): duplicated to be improved in future versions,
7447         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
7448         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
7449         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
7450         * (pic16initMnemonics): added initialization for POC_INFSNZW,
7451         * (insertBankSwitch): fixed inserting banksel directives algorithm
7452         for instructions that follow a skip instruction, this fixes a report
7453         for broken subtraction code generation,
7454         * src/pic16/ralloc.c (deassignLRs): do not free register if current
7455         iCode is a left op, just in case result and right share the same
7456         registers
7457
7458 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7459
7460         * src/hc08/main.c,
7461         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
7462         preservation of HX
7463         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
7464         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
7465         on 2004-09-12; it was buggy
7466
7467 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
7468
7469         * src/SDCCsymt.h: removed RESULT_CHECK
7470         * src/SDCCast.c,
7471         * src/SDCCglue.c,
7472         * src/SDCCval.c,
7473         * src/pic/glue.c,
7474         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
7475
7476 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
7477
7478         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
7479         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
7480         configuration values no more rejected by compiler, they are assigned
7481         to configuration registers with a warning message instead,
7482         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
7483         the for-loop so last conf register is emitted too,
7484         * (_pic16_initPaths): link library libsdcc.lib by default,
7485         * (_hasNativeMulFor): modified test for multiplication according to
7486         Raphael Neider's remarks. Integer multiplication is also done with
7487         support functions,
7488         * device/include/pic16/pic18fregs.h: corrected type error in while
7489         testing and including 18f6720 header file
7490
7491 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
7492
7493         * src/pic16/device.h (pic16_options): removed field use_crt,
7494         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
7495         until an optimization to handle single bits is added,
7496         * (pic16_loadFSR0): moved before genUnpackBits,
7497         * (genAnd): some white lines removed,
7498         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
7499         leave_reset flags in pic16_options when using crt modules,
7500
7501 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
7502
7503         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
7504           for bugs 898889 & 979599. Also used some safer print instructions.
7505
7506 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
7507
7508         * src/pic16/device.h (pic16_options_t): added field use_crt,
7509         crt_name, no_crt,
7510         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
7511         catch a probable future bug,
7512         * src/pic16/gen.c: aopIdx function commented out,
7513         * (genAssign): commented out old code which used aopIdx,
7514         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
7515         code, added if conditionals to take into account the --use-crt
7516         command line options,
7517         * src/pic16/main.c (pic16_optionsTable): added new command line
7518         options, --use-crt= and --no-crt,
7519         * (_pic16_linkEdit): now the proper crt object is added in the
7520         linker command line except than when --no-crt is specified,
7521         * src/pic16/pcode.c,
7522         * src/pic16/pcode.h: added some structures and functions for a new
7523         optimization scheme to compansate for instruction overhead between
7524         same iCodes, this scheme is currently under development and is not
7525         working in any way,
7526         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
7527         to && operator,
7528         * device/lib/pic16/startup/crt0i.c,
7529         * device/lib/pic16/startup/crt0iz.c: added global char variable
7530         __uflags to force the generation of an idata section
7531
7532 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
7533
7534         * doc/Makefile,
7535         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
7536         * doc/sdccman.lyx: updated sdcc version to 2.4.4
7537
7538 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7539
7540         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
7541         Frieder) and clarified the default code optimization mode
7542
7543 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7544
7545         * src/SDCC.lex (doPragma, process_pragma),
7546         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
7547         "opt_code_size", and "opt_code_balanced"
7548         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
7549         regrouped options by category, added support for category headers
7550         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
7551         and "--opt-code-size"
7552         * doc/sdccman.lyx: documented these new options and pragmas
7553         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
7554         preference into account
7555
7556 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7557
7558         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
7559           geniCodePreDec): Fixed bug 904237 by generating a warning
7560         * src/SDCCerr.h,
7561         * src/SDCCerr.c: added warning W_SIZEOF_VOID
7562
7563 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
7564
7565         * src/pic/device.c : When no max ram set validate full memory range.
7566         * src/pic/pcode.c,
7567         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
7568
7569 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
7570
7571         * device/lib/_gptrget.c,
7572         * device/lib/_gptrput.c: updated comment
7573         * device/lib/calloc.c,
7574         * device/lib/free.c,
7575         * device/lib/malloc.c,
7576         * device/lib/realloc.c: added LGPL, made them reentrant-safe
7577         * src/SDCCcse.c (cseBBlock),
7578         * src/SDCCicode.c (printOperand, geniCodeArray),
7579         * src/SDCCicode.h (struct operand): fixed bug 868103
7580         * support/regression/tests/bug-868103.c: added
7581         * src/SDCCast.c (searchLitOp),
7582         * src/SDCCcse.h (struct cseDef),
7583         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
7584         * src/SDCCicode.h (struct operand),
7585         * src/SDCCsymt.h (struct sym_link),
7586         * src/avr/gen.c (hasInc),
7587         * src/ds390/gen.c (hasInc),
7588         * src/hc08/gen.c (genPlusIncr, hasInc),
7589         * src/mcs51/gen.c (hasInc),
7590         * src/pic16/glue.c (pic16_printIvalChar),
7591         * src/pic16/ralloc.c (regWithIdx),
7592         * src/xa51/gen.c (hasInc) : removed warnings
7593         * src/SDCCast.c (createBlock): added comment ???
7594         * src/hc08/ralloc.c: updated comments
7595
7596 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7597
7598         * doc/sdccman.lyx: updated section on switch statements, added
7599         section about semaphore locking
7600         * doc/Makefile: added option -info for latex2html
7601         * device/lib/_gptrget.c,
7602         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
7603
7604 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7605
7606         * src/pic/device.h,
7607         * src/pic/device.c,
7608         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
7609          maxram is less than 0x100.
7610
7611 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
7612
7613         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
7614
7615 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7616
7617         * src/port.h,
7618         * src/mcs51/main.c,
7619         * src/ds390/main.c,
7620         * src/z80/main.c,
7621         * src/hc08/main.c,
7622         * src/pic/main.c,
7623         * src/pic16/main.c,
7624         * src/avr/main.c,
7625         * src/xa51/main.c
7626         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
7627         a jump table is the best form for a switch statement, including
7628         automatic insertion of missing cases to make the case range
7629         continuous. Developed in collaboration with Frieder Ferlemann.
7630
7631 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7632
7633         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
7634         accumulator result if it needs sign extension
7635
7636 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7637
7638         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
7639
7640 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7641
7642         * device/lib/gbz80/printf.c,
7643         * device/lib/z80/printf.c: removed define for NULL
7644
7645 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
7646
7647         * as/xa51/xa_link.c,
7648         * device/examples/ds390/ow390/ad26.c,
7649         * device/examples/ds390/ow390/cnt1d.c,
7650         * device/examples/ds390/ow390/counter.c,
7651         * device/examples/ds390/ow390/ds2480.h,
7652         * device/examples/ds390/ow390/ds2480ut.c,
7653         * device/examples/ds390/ow390/findtype.c,
7654         * device/examples/ds390/ow390/gethumd.c,
7655         * device/examples/ds390/ow390/owllu.c,
7656         * device/examples/ds390/ow390/ownetu.c,
7657         * device/examples/ds390/ow390/swt12.c,
7658         * device/examples/ds390/ow390/swtloop.c,
7659         * device/examples/ds390/ow390/temp.c,
7660         * device/examples/ds390/ow390/temp10.c,
7661         * device/examples/ds390/ow390/thermo21.c,
7662         * device/examples/ds390/ow390/tinilnk.c,
7663         * device/examples/ds390/ow390/tstfind.c,
7664         * device/examples/serialcomm/windows/serial.cpp,
7665         * device/examples/serialcomm/windows/test_serialcomm.cpp,
7666         * device/include/reg51.h: fixed line endings for cvs
7667
7668 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7669
7670         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
7671         packRegsForAccUse, packRegisters): new accumulator register
7672         packing algorithm
7673         * support/regression/ports/hc08/support.c (_putchar): suppress
7674         warning of unused variable
7675         * src/SDCCicode.c: added SWAP entry to codeTable
7676
7677 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
7678
7679         * device/lib/sprintf.c: forgot to add this file before previous commit
7680
7681 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
7682
7683         * src/pic16/gen.c (genPackBits): added operand right in function
7684         parameters, load result directly if p_type is POINTER (that is
7685         called by genNearPointerSet)
7686         * (genUnPackBits): added operand left in function parameters,
7687         * (genNearPointerGet, genNearPointerSet): prevent the loading of
7688         FSR0 if accessing bitfields,
7689
7690 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
7691
7692         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
7693           _print_format; updated printf, sprintf, vsprintf
7694         * device/include/asm/default/features.h: corrected comment/define
7695         * device/lib/Makefile.in: added sprintf.c
7696         * device/lib/libsdcc.lib: added sprintf module
7697         * device/lib/printf_large.c,
7698         * device/lib/vprintf.c,
7699         * device/lib/sprintf.c: totally refactored printf_large and vprintf
7700           into these 3 files
7701         * support/regression/Makefile: changed ALL_PORTS into a usefull default
7702         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
7703         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
7704           hc08 test
7705         * support/regression/tests/zeropad.c: define idata as data for hc08
7706
7707 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
7710         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
7711         labels are referenced at least once (even if a reference is not found)
7712         * src/hc08/gen.c (emitcode): set isComment flag for comments
7713         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
7714         loads), rules 6a..6b (optimize jumps to return)
7715
7716 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7717
7718         * device/lib/acosf.c (acosf),
7719         * device/lib/asinf.c (asinf),
7720         * device/lib/atanf.c (atanf),
7721         * device/lib/ceilf.c (ceilf),
7722         * device/lib/cosf.c (cosf),
7723         * device/lib/coshf.c (coshf),
7724         * device/lib/cotf.c (cotf),
7725         * device/lib/fabsf.c (fabsf),
7726         * device/lib/floorf.c (floorf),
7727         * device/lib/log10f.c (log10f),
7728         * device/lib/logf.c (logf),
7729         * device/lib/sinf.c (sinf),
7730         * device/lib/sinhf.c (sinhf),
7731         * device/lib/sqrtf.c (sqrtf),
7732         * device/lib/tanf.c (tanf),
7733         * device/lib/tanhf.c (tanhf),
7734         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
7735         replaced all instances of "reentrant" in the library functions
7736         defined in math.h with this macro.
7737         * support/regression/tests/float_trans.c: reenabled test for hc08
7738
7739 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
7740
7741         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
7742         erroneously deleted
7743
7744 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7745
7746         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
7747         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
7748         multi-byte volatile operands are used
7749         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
7750         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
7751         initialization to area GSINIT0 so that it would always precede
7752         any static initializers in GSINIT
7753         * support/regression/tests/zeropad.c: fixed idata define for hc08
7754         * support/regression/tests/bug-927659.c,
7755         * support/regression/tests/float_trans.c: disabled tests for hc08
7756         pending missing library routines
7757         * .version: increased version number to 2.4.4 - hc08 port now passes
7758         regression tests
7759
7760
7761 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
7762
7763         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
7764         * Makefile.common.in,
7765         * as/Makefile,
7766         * as/hc08/Makefile.in,
7767         * as/mcs51/Makefile.in,
7768         * as/z80/Makefile.in,
7769         * debugger/mcs51/Makefile.in,
7770         * device/include/Makefile.in,
7771         * device/lib/Makefile.in,
7772         * doc/Makefile,
7773         * link/Makefile,
7774         * link/z80/Makefile.in,
7775         * packihx/Makefile.in,
7776         * sim/ucsim/main_in.mk,
7777         * sim/ucsim/avr.src/Makefile.in,
7778         * sim/ucsim/doc/Makefile.in,
7779         * sim/ucsim/gui.src/serio.src/Makefile.in,
7780         * sim/ucsim/hc08.src/Makefile.in,
7781         * sim/ucsim/s51.src/Makefile.in,
7782         * sim/ucsim/xa.src/Makefile.in,
7783         * sim/ucsim/z80.src/Makefile.in,
7784         * src/Makefile.in,
7785         * support/cpp2/Makefile.in,
7786         * support/librarian/Makefile,
7787         * support/makebin/Makefile: added DESTDIR to the install path proposed
7788         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
7789         * doc/sdccman.lyx: added DESTDIR documentation
7790
7791 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
7792
7793         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
7794         instruction for interrupt handlers, use fast returns when returning
7795         from high priority interrupts
7796
7797 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7798
7799         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
7800         code generation
7801         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
7802         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
7803         bugs, ported much of Bernhard's code from mcs51
7804         * src/mcs51/gen.c (genSend),
7805         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
7806         than one when calling a reentrant function
7807         * device/lib/_mullong.c: defined an alternate struct layout for big
7808         endian ports (hc08)
7809
7810 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7811
7812         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
7813         test
7814
7815 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7816
7817         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
7818         are sane and complete before asking the port its prefered parameter
7819         passing method (fixes bug #1017633)
7820         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
7821         and _ret3
7822
7823 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7824
7825         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
7826         problem in bitfields >= 8 bits.
7827
7828 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7829
7830         * src/SDCCsymt.c: undid changes that were not meant to be committed
7831
7832 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7833
7834         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
7835
7836 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
7837
7838         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
7839           copied and wrong bit got inverted
7840
7841 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7842
7843         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
7844         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
7845         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
7846         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
7847         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
7848         assignments to bitfields at known addresses
7849         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
7850         reads from bitfields at known addresses
7851         * src/hc08/ralloc.c (packRegisters),
7852         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
7853         genhc08Code): optimize pointer get values used as conditionals
7854         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
7855         and branch
7856
7857 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7858
7859         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
7860         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
7861         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
7862         as conditionals
7863
7864 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7865
7866         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
7867
7868 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7869
7870         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
7871         related problems
7872
7873 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
7874
7875         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
7876
7877 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7878
7879         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
7880         mcs51 port
7881
7882 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
7883
7884         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
7885
7886 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7887
7888         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
7889         cases use more compact code.
7890
7891 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
7892
7893         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
7894
7895 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7896
7897         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
7898
7899 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7900
7901         * src/SDCCsymt.h,
7902         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
7903         parameter of changePointer() from symbol* to sym_link*
7904         * src/SDCCast.c (decorateType): call changePointer() for CAST op
7905         * src/SDCCsymt.c (compareType): void* type is castable to other
7906         pointers, but not necesarily an exact match.
7907         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
7908         is no longer blindly treated as an exact match.
7909         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
7910
7911 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
7912
7913         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
7914
7915 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
7916
7917         * src/pic/gen.c,
7918         * src/pic/pcode.c,
7919         * src/pic/ralloc.h,
7920         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
7921
7922 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
7923
7924         * src/pic/device.c,
7925         * src/pic/device.h,
7926         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
7927
7928 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7929
7930         * src/mcs51/gen.c (emitcode): fixed bug #992819
7931
7932 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
7933
7934         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
7935           there's no need to make it worse
7936
7937 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7938
7939         * src/mcs51/ralloc.c (deassignLR),
7940         * src/ds390/ralloc.c (deassignLR),
7941         * src/hc08/ralloc.c (deassignLR),
7942         * src/z80/ralloc.c (deassignLR),
7943         * src/pic/ralloc.c (deassignLR),
7944         * src/pic16/ralloc.c (deassignLR),
7945         * src/avr/ralloc.c (deassignLR),
7946         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
7947         rlivePoint): fixed another part of bug #971834
7948
7949 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7950
7951         * src/z80/main.c: enabled "critical" keyword
7952         * src/z80/mappings.i,
7953         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
7954         functions (fixes bug #979646)
7955         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
7956
7957 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7958
7959         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
7960           such as c:\mydir.
7961
7962 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
7963
7964         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
7965           doesn't disable too much optimizations
7966
7967 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7968
7969         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
7970
7971 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
7972
7973         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
7974
7975 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
7976
7977         * src/pic/gen.c tidied up tabs
7978         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
7979         * src/pic/main.c tidied up tabs
7980         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
7981         * src/pic/pcoderegs.c tidied up tabs
7982         * src/pic/ralloc.c tidied up tabs
7983
7984 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
7985
7986         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
7987         to S_FIXED for pic16 port and when symbol is not in level 0,
7988         allocate for S_REGISTER storage class and pic16 port, too,
7989         * src/pic16/device.h: prototype for checkSym,
7990         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
7991         * (pic16_assignConfigWordValue): test the value and the mask to
7992         validate that the value is suitable for the configuration word,
7993         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
7994         collect extern declared symbols, don't emit symbol twice, check
7995         first if symbol is in publics set first,
7996         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
7997         * added command line '--fstack' which enables an experimental
7998         feature for stack access, too buggy to be used yet...
7999         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
8000         * (pic16_allocDirReg): when register has storage class S_REGISTER
8001         allocate in pic16_dynAccessRegs,
8002         * device/include/pic16/pic18f????.h: modified configuration word
8003         naming convention, words started as CONFIG0H but should be CONFIG1H
8004
8005 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
8006
8007         * device/include/mcs51reg.h: fixed bug 970993
8008
8009 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
8010
8011         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
8012         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
8013         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
8014         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
8015         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
8016         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
8017           error/warning numbers,
8018           added function setWarningDisabled()
8019         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
8020         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
8021           _memcmp.c _memmove.c calloc.c realloc.c free.c
8022         * support/regression/tests/malloc.c: added tests for new functionality
8023         * support/regression/tests/zeropad.c: added tests for truncated initializers
8024           and initialized char arrays starting with '\x0'
8025         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
8026
8027 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
8028
8029         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
8030
8031 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8032
8033         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
8034         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
8035         peephole 177.e. Thanks to anonymous
8036
8037 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
8038
8039         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
8040         function isn't used in the source but referenced as a
8041         variable initializer then declare it as extern in .asm file
8042
8043 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
8044
8045         * .version: increased version number to 2.4.3
8046
8047         Adding version extension according to ChangeLog CVS revision
8048         * src/Makefile.in (target all): added dependency 'version.h'
8049         * (rule version.h): added rule to create version.h from ChangeLog,
8050         * (rule dep): added dependency version.h,
8051         * src/version.awk: AWK script to create version.h
8052         * src/SDCCdwarf2.c (dwWriteModule),
8053         * src/SDCCglue.c (initialComments),
8054         * src/SDCCmain.c (printVersionInfo): modified to write after
8055         version string the version extension number,
8056         * src/SDCCutil.c: included "version.h"
8057         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
8058         number,
8059         * src/SDCCutil.h: added prototype for getBuildNumber
8060
8061         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
8062         includeDirsSet, too,
8063         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
8064         const char [] is found in function prototype...
8065
8066         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
8067         moving to WREG with source is already in WREG,
8068         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
8069         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
8070         * (aopForSym): stack'ed symbols are partially supported, added
8071         if-clause to support symbols in FARSPACE,
8072         * (sameRegs): added test for AOP_ACC to see if registers are same,
8073         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
8074         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
8075         * (pic16_popRegFromString): will not allocate a new register if it
8076         doesn't find one by name, bug may have introduced...
8077         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
8078         * (genIpush): revived to use pic16 port's stack,
8079         * (genAddrOf): added incomplete case for stack'ed operand,
8080         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
8081         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
8082         can handle multibyte operands,
8083         * src/pic16/glue.c (pic16_printIval*): some debug info added,
8084         * (pic16initialComments): added message for MPLAB compatibility
8085         mode enabled,
8086         * src/pic16/main.h: prototype for pic16_mplab_comp,
8087         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
8088         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
8089         * (_pic16_linkEdit): NEW, handles link stage, transferred here
8090         because of increased complexity of procedure,
8091         * (_process_pragma): stack pragma changed to format 'stack pos len',
8092         emit symbol '_stack_end' to conform with gplink,
8093         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
8094         to search for register,
8095         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
8096         PO_GPR_REGISTER,
8097         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
8098         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
8099         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8100         case for PO_GPR_REGISTER,
8101         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
8102         dies, the new era is ahead !...
8103         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
8104         pic16_dynInternalRegs,
8105         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
8106         * (pic16_allocDirReg): minor optimizations and bug fixes,
8107         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
8108
8109         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
8110         load stack and frame pointer with address of 'stack_end' symbol
8111
8112 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
8113
8114         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
8115         without source code but only variable initializers
8116
8117 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
8118
8119         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
8120         external are not declared as extern to reduce overhead while linking
8121
8122 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
8123
8124         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
8125
8126 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
8127
8128         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
8129           Yee Keat for the patch
8130         * src/SDCCast.c (decorateType): fixed bug #979599
8131         * src/ds390/gen.h: removed local fReturnSizeDS390
8132         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
8133         * src/ds390/gen.c (genAnd, genOr, genXor),
8134         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
8135
8136 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
8137
8138         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
8139         add relFilesSet to $3, manipulate $2 to handle linking of object
8140         files without source files in command line,
8141         * device/include/pic16 (all headers): added ID location macros,
8142         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
8143         entries for ID location bytes,
8144         * (pic16_assignIdByteValue): NEW,
8145         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
8146         added field dumpcalltree to pic16_options_t,
8147         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
8148         is used instead of pic16_Gstack_base_addr, check if (ifx) before
8149         emitting rFalseIfx label after check_carry label,
8150         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
8151         pic16_emitDIRegs), NEW
8152         * (pic16glue): dump .calltree file when option --calltree found,
8153         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
8154         * (_pic16_genAssemblerPreamble): emit ID locations after
8155         configuration registers,
8156         * (pic16_linkCmd): modifications of the link command,
8157         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
8158         * (pic16_pCodeInitRegisters): don't init stack registers,
8159         * (pic16_findPrevInstruction): fixed bug,
8160         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
8161         bug with immediate registers,
8162         * (buildCallTree): traces stack push and pop,
8163         * (pct2): dump also stack usage for each function,
8164         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
8165         * (pic16_allocDirReg): various modifications,
8166         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
8167         fixed to 1,
8168
8169 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
8170
8171         * src/pic16/pcode.c: removed buggy double colon
8172
8173 2004-07-01 Borut Razem <borut.razem AT siol.net>
8174
8175         * support/scripts/sdcc.nsi: added include/pic16 to setup
8176
8177 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
8178
8179         * device/lib/Makefile.in: fixed bug in target objects-pic16,
8180         * device/lib/pic16/Makefile: prefixed with dash (-) command under
8181         target 'clean',
8182         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
8183         specific command line arguments. Also added sample lkr script
8184         for placing a variable at a specific memory bank.
8185         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
8186         at a specific memory bank,
8187         * (pic16_dump_isection): fixed bug which caused string literals to
8188         be omitted when dumping idata section,
8189         * (pic16_groupRegistersInSection): added code to handle registers
8190         in specific memory banks,
8191         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
8192         public, all references are renamed too,
8193         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
8194         AOP_DPTR2,
8195         * (pic16_storeForReturn): added case to handle when dest is WREG,
8196         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
8197         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
8198         pic16_rel_udata, check to see if that register is marked as being
8199         a member of a specific memory bank,
8200         * (pic16_printIvalCharPtr): added code to add string literals either
8201         to code or the idata sections,
8202         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
8203         also accept the 'udata' pragma,
8204         * src/pic16/main.h: new structure types sectName and sectSym
8205         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
8206         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
8207         * (pic16_findPrevInstruction): fixed, it returned nothing,
8208         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
8209         instruction combinations,
8210         * (pic16_FixRegisterBanking): heavily reorganised,
8211         * (pic16_AnalyzeBanking): if generating banksel directives is
8212         disabled, then don't call FixRegisterBanking at all,
8213         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
8214         completely removed,
8215         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
8216
8217 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
8218
8219         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
8220         Phuah Yee Keat <yk.phuah AT nestac.com>
8221
8222 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8223
8224         * src/pic16/glue.c (pic16createInterruptVect): function now emits
8225         correctly the IVT even if it is relocated to some other location
8226
8227 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
8228
8229         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
8230         * device/include/pic16/pic18f2220.h: NEW,
8231         * device/lib/pic16/libdev/pic18f2220.c: NEW,
8232         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
8233         * src/pic16/device.c (struct Pics16): added info for 18f2220,
8234         * src/pic16/device.h (struct pic16_options): added ivt_loc and
8235         nodefaultlibs, ivt_loc is the location of the interrupt vector
8236         table, and nodefaultlibs signs that default libraries should not be
8237         linked in link stage,
8238         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
8239         according to --ivt-loc argument,
8240         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
8241         when pragma stack is found,
8242
8243 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8244
8245         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
8246         256 (range check), 257 (do while), 258.a-f (bit banging
8247         f.e. on 3-wire SPI bus)
8248
8249 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8250
8251         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
8252         variables used exclusively within a loop
8253
8254 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
8255
8256         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
8257
8258 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * src/SDCClrange.c (computeClash): fixed bug #971834
8261
8262 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8263
8264         * src/mcs51/gen.c (genCmp): fixed bug #975903
8265         * src/hc08/gen.c (operandsEqu),
8266         * src/ds390/gen.c (operandsEqu),
8267         * src/z80/gen.c (operandsEqu),
8268         * src/pic/gen.c (operandsEqu),
8269         * src/pic16/gen.c (operandsEqu),
8270         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
8271         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
8272
8273 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8274
8275         * src/SDCCcse.c (cseBBlock): fixed bug #966963
8276
8277 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
8278
8279         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
8280         default case in switch statement,
8281         * glue.c (pic16_initPointer): expr is initialised via decoarteType
8282         to eliminate problem with initialisation of pointers, but problem
8283         still exists,
8284         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
8285         * (emitStaticSegment): removed various lines emitting debug info,
8286         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
8287         added processor registers for utilizing EEPROM,
8288         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
8289         configurable and set 8
8290
8291 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
8292
8293         * .version: increased version number to 2.4.2,
8294
8295         Cumulative patch for pic16 port
8296         * src/pic16/device.c: changed scheme to dump initial values for
8297         variables in idata segment, all print_idata* functions were removed,
8298         now the pic16_printIval* will be called,
8299         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
8300         * _pic16_printPointerType, pic16_printPointerType,
8301         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
8302         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
8303         NEW, similar to the respective functions in SDCCglue.c,
8304         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
8305         way, emitting hex bytes,
8306         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
8307
8308 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8309
8310         * src/avr/ralloc.c (serialRegAssign),
8311         * src/xa51/ralloc.c (serialRegAssign),
8312         * src/pic/ralloc.c (serialRegAssign),
8313         * src/pic16/ralloc.c (serialRegAssign),
8314         * src/hc08/ralloc.c (serialRegAssign),
8315         * src/z80/ralloc.c (serialRegAssign),
8316         * src/ds390/ralloc.c (serialRegAssign),
8317         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
8318
8319 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8320
8321         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
8322         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
8323
8324 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
8325
8326         Cumulative patch for pic16 port:
8327         * src/pic16/device.h (typedef PIC16_device) modified fields for
8328         defining microcontrollers,
8329         * src/pic16/device.c: added new info for all devices in Pics16 array,
8330         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
8331         to be optimised out by the pCode optimiser,
8332         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
8333         specially, bug reported by G.M. Gallant,
8334         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
8335         as force'd so that cannot be optimised out by pCode optimiser,
8336         * src/pic16/pcode.c,
8337         * src/pic16/pcodepeeph.c,
8338         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
8339         they are disabled by default, but can be enabled explicit with
8340         command argument --denable-peeps, for testing,
8341         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
8342         --pomit-ivt in COMPILE_FLAGS
8343
8344 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8345
8346         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
8347           compilation on MSVC
8348
8349 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
8350
8351         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
8352
8353 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8354
8355         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
8356         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
8357
8358 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
8359
8360         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
8361         would only assign 0x300001 register.
8362
8363 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
8364
8365         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
8366         in COMPILE_FLAGS. Thanks to G. Gallant for report.
8367
8368 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8369
8370         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
8371         for ds80c400
8372         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
8373         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
8374         added peephole 254 (left shift), 255 (jump table)
8375
8376 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
8377
8378         * device/lib/Makefile.in: removed comment line with model-pic16,
8379         * (target port-specific-objects-pic16): the libraries and objects
8380         are copied to the build directory form the device/lib/pic16/bin
8381         directory
8382
8383         Cumulative patch concerning pic16 port:
8384         * library directory has been re-organized,
8385         * added support for PIC18F1220,
8386         * added headers and library sources for chips 18f1220,18f6520,
8387         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
8388
8389         * configuration registers setting has changed, now each supported
8390         device has a complete description of the registers it uses,
8391         * all initialisations are moved to idata sections, these section
8392         can be absolute or relocatable,
8393         * fixed initialisation of codespace variables,
8394         * fixed warning about PCLATU and gpsim,
8395         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
8396         * (genAssign): use table reads when assigning from variables in codespace,
8397         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
8398         char/int variables placed in codespace,
8399         * (pic16_emitConfigRegs): NEW, emits a list with configuration
8400         registers set in .asm file, no need for --pomit-config-words anymore,
8401         * (pic16glue): some 8051 legacy segments are commented out
8402         (to be removed completely),
8403         * added support for alternative assembler and linker with --asm=
8404         and --link= command line arguments,
8405         * peepholes are disabled automatically in the port, no need to
8406         specify on command line,
8407         * port supports natively char/int/long multiplication, but converts
8408         all divisions to support functions,
8409         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
8410         to the file set in variable $2,
8411         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
8412         strings in ASCII format and not in hex,
8413         * ralloc.c (serialRegAssign): added a triplet of conditional calls
8414         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
8415         allocate proper register if iCodes aren't temporary,
8416
8417 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
8418
8419         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
8420
8421 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
8422
8423         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
8424         is commented out
8425
8426 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8427
8428         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
8429         computed address is reused
8430         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
8431         multi-byte bitfields
8432
8433 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8434
8435         * src/z80/gen.c: (genArrayInit): must check for pointers too
8436
8437 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
8438
8439         * support/regression/tests/zeropad.c: never meant to commit the
8440           nestedstruct test: removed, added check for GCC version
8441
8442 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
8443
8444         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
8445         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
8446         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
8447           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
8448           bugs 928906 and 954082 half-empty initializers
8449         * src/SDCCsymt.h,
8450         * src/SDCCsymt.c (getAllocSize): added for above fix
8451         * src/z80/gen.c (genArrayInit): fixed bug 741044
8452         * support/regression/tests/zeropad.c: added tests
8453
8454 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
8455
8456         * src/pic16/device.c (pic16_dump_section): corrected bug which
8457         caused some symbols of the libraries to be misplaced
8458
8459 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8460
8461         * src/pic16/glue.c,
8462         * src/pic16/ralloc.h,
8463         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
8464         to fix conflict with pic port
8465
8466 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
8467
8468         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
8469         externs configuration variables,
8470         * src/pic16/ralloc.h,
8471         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
8472         prototype in header, commented out some debug messages
8473
8474 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
8475
8476         * src/pic16/glue.c,
8477         * src/pic16/main.c,
8478         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
8479         for gpasm COFF object generation. Thanks to D. Hawkins for
8480         his patch info
8481
8482 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8483
8484         * src/ds390/main.c,
8485         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
8486         Brock for spotting this)
8487         * src/ds390/gen.c (genEndFunction),
8488         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
8489         interrupt handler and critical. Disable push/pop optimizations when
8490         peephole optimizations disabled.
8491
8492 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8493
8494         Updated pic16 library sources and headers.
8495         * device/lib/pic16/pic18f*/ ,
8496         * device/include/pic16/*.h: modified to handle structured SFR
8497         definitions
8498
8499 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
8500
8501         * src/port.h (PORT structure): added hook initPaths, now each
8502         port can declare its own default search paths,
8503         which can been seen with the --print-search-dirs option,
8504         see pic16 port for example,
8505         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
8506         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
8507         * (doPrintSearchDirs): NEW, replaces in a central manner the
8508         printing of search dirs which was split in set*Paths functions,
8509         * (main): added call to port->initPaths and doPrintSearchDirs,
8510         * src/avr/main.c,
8511         * src/ds390/main.c,
8512         * src/hc08/main.c,
8513         * src/izt/i186.c,
8514         * src/izt/tlcs900h.c,
8515         * src/mcs51/main.c,
8516         * src/pic/main.c,
8517         * src/pic16/main.c: modified port structures to reflect addition of
8518         initPaths hook,
8519
8520         * src/pic16/device.c (regCompare): registers are finally sorted by name,
8521         * (pic16_dump_section): for registers in same address reserve memory once,
8522         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
8523         to no_banksel,
8524         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
8525         result is greater in size than right or left,
8526         * (pic16_genUMult8X8_8): there are some cases where the result can
8527         be 16 bits size, so handle these,
8528         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
8529         * (pic16_outBitC): modified to emit pcodes,
8530         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
8531         or not,
8532         * (genDivOneByte): implemented algorithm to divide 8-bits,
8533         * (genCmp): uncommented goto, but issues still exist,
8534         * (genAnd): fixed a bug with variables >8bits,
8535         * (genPackBits): optimization added that uses BCF/BSF to change a
8536         single bit,
8537         * (genAssign): fixed bug when assigning floating point literals,
8538         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
8539         __sdcc_gsinit_startup label,
8540         * src/pic16/main.c (_pic16_init): removed search directory
8541         initialisations,
8542         * (_pic16_initPaths): NEW, used to initialise search directories,
8543         * (_hasNativeMulFor): support functions for all except char/int
8544         multiplication, and char division,
8545         * (PIC16_port struct): modified entry for native mul support,
8546         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
8547         no_banksel option,
8548         * (buildCallTree): call to register_usage is ifdef'ed out,
8549
8550 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8551
8552         * device/include/string.h: applied Stas Sergeev's patch to make this
8553         header file compatible with the preprocessor -Wundef option
8554         * src/SDCCmain.c (main): abort compilation if preprocessor reports
8555         failure (fixes bug #941458)
8556
8557 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8558
8559         * src/SDCCopt.c (killDeadCode): fixed bug #907733
8560         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
8561         that the variable, not the function, should be static
8562         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
8563         to be consistent with non-literal case
8564
8565 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8566
8567         * src/SDCCast.c (isConformingBody): fixed bug #949967
8568         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
8569         convilong): fixed bug #952086
8570
8571 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8572
8573         * src/SDCCmem.c (allocVariables): fixed bug #955321
8574
8575 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8576
8577         * src/hc08/main.c (_hc08_genAssemblerEnd),
8578         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
8579         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
8580         completely eliminated the use of a temporary file
8581         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
8582         when more than one file linked
8583         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
8584
8585 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8586
8587         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
8588         which fixes bug #543481
8589         * support/regression/tests/bug-751703.c: fixed comments left from a
8590         cut and paste error
8591         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
8592         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
8593         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
8594         scopes
8595         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
8596         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
8597         are now changed to underscores in moduleName
8598
8599 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8600
8601         * as/mcs51/lkmem.c: better fix for bug #954173
8602
8603 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
8604         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8605
8606         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
8607         * device/include/c8051f000.h,
8608         * device/include/c8051f120.h,
8609         * device/include/c8051f300.h,
8610         * device/include/c8051f310.h,
8611         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
8612         PWM16) and detab'ed
8613
8614 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8615
8616         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
8617         and mailing lists, doc'ed --no-peep-comments, removed reference
8618         to knoppix (newest version has no LyX/LaTeX), other minor changes
8619         * src/SDCCglue.c (glue): save 2 bytes stack space with
8620         option --main-return. The ljmp could probably be avoided too
8621
8622 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8623
8624         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
8625
8626 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8627
8628         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
8629         * src/SDCCopt.c (isLocalWithoutDef),
8630         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
8631         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
8632         (credit to Maarten Brock for patch #949363, on which this is based)
8633         * support/regression/tests/bug-751703.c: some test cases of extern used
8634         within inner scopes.
8635
8636 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8637
8638         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
8639         SPEC_STRUCT
8640         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
8641         struct definitions
8642         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
8643         dwWriteLabel): fix to create valid debugger symbols even when
8644         the module name has non-alphanumeric symbols in it
8645         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
8646         when a variable's allocation has been optimized away
8647
8648
8649 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8650
8651         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
8652         * src/hc08/main.c,
8653         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
8654         * src/mcs51/main.c,
8655         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
8656         * src/ds390/main.c,
8657         * src/z80/gen.c (z80_emitDebuggerSymbol),
8658         * src/z80/main.c,
8659         * src/pic/gen.c (pic14_emitDebuggerSymbol),
8660         * src/pic/main.c,
8661         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
8662         * src/pic16/main.c,
8663         * src/avr/gen.c (avr_emitDebuggerSymbol),
8664         * src/avr/main.c,
8665         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
8666         * src/xa51/main.c,
8667         * src/SDCCdebug.c (emitDebuggerSymbol),
8668         * src/SDCCdebug.h,
8669         * src/port.h: added a debugger struct to the port struct. Added a
8670         callback for defining debugger symbols
8671
8672         * src/SDCCast.c (createLabel),
8673         * src/SDCC.y (labeled_statement): mark all compiler generated labels
8674         with isitmp = 1
8675         * src/SDCCicode.h,
8676         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
8677         iCode back to the ast for the function
8678
8679         * src/hc08/ralloc.c (hc08_assignRegisters),
8680         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
8681         unneeded fields from the regs struct.
8682         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
8683         pushReg() & pullReg() functions instead of emitcode()
8684
8685         * src/hc08/gen.c (genLabel, genhc08Code),
8686         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
8687
8688         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
8689         debugger hooks
8690
8691         * src/hc08/gen.c (genEndFunction, genhc08Code),
8692         * src/hc08/gen.h,
8693         * src/mcs51/gen.c (genEndFunction, gen51Code),
8694         * src/mcs51/gen.h,
8695         * src/ds390/gen.c (genEndFunction, gen390Code),
8696         * src/ds390/gen.h,
8697         * src/z80/gen.c (genEndFunction, genZ80Code),
8698         * src/z80/gen.h,
8699         * src/z80/z80.h,
8700         * src/pic/gen.c (genEndFunction, genpic14Code),
8701         * src/pic/gen.h,
8702         * src/pic16/gen.c (genEndFunction, genpic16Code),
8703         * src/pic16/gen.h,
8704         * src/avr/gen.c (genEndFunction, genAVRCode),
8705         * src/avr/gen.h,
8706         * src/xa51/gen.c (genEndFunction, genXA51Code),
8707         * src/xa51/gen.h,
8708         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
8709         specific code to cdbFile.c and out of the backend code generators
8710
8711         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
8712         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
8713         starting address is now 0
8714
8715         * as/hc08/asm.h,
8716         * as/hc08/m08pst.c,
8717         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
8718         assembler directive for DWARF support
8719         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
8720
8721         * src/src.dsp,
8722         * src/Makefile.in,
8723         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
8724
8725 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8726
8727         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
8728         and inappropriate peephole optimization in jump tables
8729
8730 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8731
8732         * as/hc08/m08pst.c,
8733         * src/SDCCglue.c: sdccopt works for the hc08 port now
8734
8735 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
8736
8737         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
8738
8739 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8740
8741         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
8742
8743 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8744
8745         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
8746         rules
8747         * src/SDCCmain.c,
8748         * src/SDCCglobl.h,
8749         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
8750         comments from the peephole optimizer replacement rules
8751         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
8752         symbols
8753         * src/SDCCcse.c (updateSpillLocation),
8754         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
8755         equivalents
8756         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
8757         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
8758         objects far pointers
8759
8760 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8761
8762         * src/SDCCsymt.h: a missing part of my last change
8763         * src/pic/ralloc.c (regTypeNum),
8764         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
8765
8766 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8767
8768         * src/SDCCicode.h,
8769         * src/SDCCicode.c (aggrToPtrDclType),
8770         * src/SDCCptropt.h,
8771         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
8772         ptrPseudoSymConvert),
8773         * src/pic/ralloc.c (regTypeNum),
8774         * src/pic16/ralloc.c (regTypeNum),
8775         * src/hc08/ralloc.c (regTypeNum),
8776         * src/ds390/ralloc.c (regTypeNum),
8777         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
8778         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
8779
8780 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8781
8782         * link/z80/lkmain.c (afile),
8783         * as/hc08/lkmain.c (afile),
8784         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
8785         prevent a pointer problem when a filename has no directory and
8786         no extension specified.
8787
8788 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8789
8790         * link/z80/lkmain.c (afile): allow periods in directory names
8791         * link/z80/lkmain.c (afile),
8792         * as/mcs51/lkmain.c (afile),
8793         * as/hc08/lkmain.c (afile): allow linker script file to have an
8794         extension other than ".lnk"
8795         * link/z80/lklex.c (getfid),
8796         * link/z80/lkmain.c (parse),
8797         * as/mcs51/lklex.c (getfid),
8798         * as/mcs51/lkmain.c (parse),
8799         * as/hc08/lklex.c (getfid),
8800         * as/hc08/lkmain.c (parse): Support comments in the linker script
8801         file on lines by themselves and after filenames
8802
8803 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8804
8805         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
8806
8807 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8808
8809         * src/z80/peeph-z80.def: removed some peephole rules that don't
8810         work with multibyte arithmetic (fixed bug #937126)
8811         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
8812         to registers and not global variables
8813         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
8814         geniCodePreInc, geniCodePostDec, geniCodePreDec,
8815         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
8816         checking for assignments not internally generated (fixed bug #931895)
8817         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
8818         structure member (fixed bug #930072)
8819
8820 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8821
8822         * src/SDCCmain.c (linkEdit),
8823         * src/hc08/main.c (_hc08_parseOptions),
8824         * as/hc08/Makefile.in,
8825         * as/hc08/aslink.h,
8826         * as/hc08/asm.h,
8827         * as/hc08/m08pst.c,
8828         * as/hc08/lkrloc.c (relr, rele),
8829         * as/hc08/lkarea.c (lnkarea)
8830         * as/hc08/lkmain.c (afile, parse),
8831         * as/hc08/lkelf.c: support for ELF output
8832         * as/hc08/lks19.c (s19),
8833         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
8834
8835 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8836
8837         * as/mcs51/lkihx.c: Fixed bug #899105.
8838
8839 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8840
8841         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
8842         .dsp files from Unix to DOS.
8843
8844 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8845
8846         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
8847         function pointers; we have been compliant for several months now.
8848         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
8849         change that was accidently commented out
8850         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
8851         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
8852         bug #922319
8853
8854 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8855
8856         * src/hc08/gen.c: output of all of the internal debugging information
8857         is now controlled by the D() macro; it is disabled by default
8858
8859 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8860
8861         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
8862         harder to keep the same registers during a CAST iCode
8863         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
8864         long via int can be done in a single cast, if the signedness is
8865         correct.
8866         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
8867         putchar() in tinibios.c in ds390's library
8868
8869 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
8870
8871         * src/SDCCast.c (decorateType): fixed bug #898889,
8872         cast result of a literal complement too
8873         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
8874         fixed check for bitfields
8875
8876 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
8877
8878         * src/SDCCicode.c (geniCodeLogic): made it static,
8879         (geniCodeLogicAndOr): added in order to fix bug #905492,
8880         (ast2iCode): fixed bug #905492
8881         * support/regression/tests/bug-905492.c: added
8882         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
8883         (processParms): fixed bug #927659: don't copy parms, this will clear
8884         decorated flag
8885         * support/regression/tests/bug-927659.c: added
8886
8887 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
8888
8889         * src/SDCCast.c (addCast): don't cast float to char
8890         * device/lib/libsdcc.lib: added _memmove
8891
8892 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
8893
8894         * device/lib/large/Makefile: fixed parallel execution by
8895         replacing `make` by `$(MAKE)`
8896
8897 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8898
8899         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
8900         offsets (fixes bug #923936)
8901
8902 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
8903
8904         * device/lib/small/Makefile: fixed parallel execution by
8905         replacing `make` by `$(MAKE)`
8906
8907 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8908
8909         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
8910
8911 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
8912
8913         * src/pic/gen.c (genCpl): multi-byte complements were not working.
8914         * src/regression/Makefile: Regression test was not running.
8915
8916 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
8917
8918         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
8919         complement if possible
8920         * src/SDCCval.c (valComplement),
8921         * src/SDCCicode.c (operandOperation): fixed complement of literal
8922         * support/regression/tests/onebyte.c (testComplement): added
8923
8924 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
8925
8926         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
8927         return an optimized tree; actually replace actParm with the new tree
8928         * src/SDCCast.h: added some parantheses to remove side effects
8929         * support/regression/tests/bug-920866.c
8930
8931 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
8932         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
8933         Bit operands were not being handled properly in the pic14 port.
8934         (now src/regression/add.c passes again).
8935
8936 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8937
8938         * src/SDCC.y (labeled_statement): case and default no longer require
8939         a following statement (RFE #893037)
8940
8941 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8942
8943         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
8944         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
8945         disabled (fixes bug #916294)
8946         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
8947         "mov a,acc"; patch provided by Lenny Story
8948         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
8949
8950 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8951
8952         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
8953         functions
8954         * src/ds390/gen.c (genFunction, genEndFunction),
8955         * src/ds390/ralloc.c (ds390_assignRegisters),
8956         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
8957         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
8958         pushed if there are parameters passed on the stack. Also, a cleaner
8959         way to decide if r0/r1 should be pushed/popped. (Together they fix
8960         bug #918693)
8961
8962 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8963
8964         * doc/sdccman.lyx,
8965         * device/lib/mcs51/crtpagesfr.asm,
8966         * device/lib/mcs51/crtxinit.asm,
8967         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
8968         to avoid confusion with Si Lab's SFRPAGE register.
8969
8970 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8971
8972         * src/SDCCglue.c (emitMaps): allow public sfr variables
8973         * src/SDCCglue.c (initialComments): include compiler build date
8974         with compiler version and put the timestamp of the generated
8975         assembly file on a serperate line to be less confusing.
8976         * src/port.h: added genInitStartup hook
8977         * src/avr/main.c,
8978         * src/ds390/main.c,
8979         * src/hc08/main.c,
8980         * src/pic/main.c,
8981         * src/pic16/main.c,
8982         * src/xa51/main.c,
8983         * src/z80/main.c: genInitStartup initialize as NULL (default to
8984         historical behaviour)
8985         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
8986         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
8987         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
8988         library instead of hard coding it into the compiler.
8989         * support/regression/ports/mcs51-stack-auto/spec.mk,
8990         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
8991         * device/lib/mcs51/Makefile,
8992         * device/lib/small/Makefile,
8993         * device/lib/large/Makefile,
8994         * device/lib/mcs51/crtpagesfr.asm,
8995         * device/lib/mcs51/crtstart.asm,
8996         * device/lib/mcs51/crtxclear.asm,
8997         * device/lib/mcs51/crtxinit.asm,
8998         * device/lib/mcs51/crtclear.asm,
8999         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
9000         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
9001         and into user configurable files.
9002         * device/lib/clean.mk: clean mcs51 directory too
9003         * support/regression/tests/longlit.c: added static to T1 declaration
9004         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
9005         accesses in the initialization code
9006
9007 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9008
9009         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
9010         OSCTRIMVAL as noted in bug #916008
9011
9012 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9013
9014         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
9015         in loops with multiple exits (reported as incorrect registers
9016         used by Martin Helmling in Sdcc-user list)
9017
9018 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9019
9020         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
9021         made ds390 register extensions look less like error messages
9022
9023 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9024
9025         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
9026         reported by Adam Wozniak in Sdcc-user list
9027
9028 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
9029
9030         * src/SDCCast.c (decorateType): fixed with bug and promotion in
9031         arithmetic optimizations, added debug output
9032
9033 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
9034
9035         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
9036         * sdcc.spec: updated and split sdcc into 3 rpms
9037         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
9038         needed for literals of LEFT_OP and '+'
9039         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
9040         introduced RESULT_TYPE_NOPROM
9041         (geniCodeMultiply): fixed logic for decision if mul is optimized to
9042         left shift
9043         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
9044         limited promotion to int only for '*'
9045         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
9046
9047 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
9048
9049         * src/pic16/gen.c (genSkip),
9050         (genc16bit2lit), (gencjneshort): commented out
9051         (is_LitOp): new helper function, checks operand type
9052         (genCmpEq): rewritten
9053
9054 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
9055
9056         * support/regression/tests/bug-908454.c: added
9057
9058 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
9059
9060         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
9061         * src/SDCCicode.c (usualBinaryConversions): op needs int type
9062         (geniCodeCast): cosmetic, don't preserve bit storage class
9063         (geniCodeLeftShift): added promotion
9064         (geniCodeLogic): fixed regression
9065         * src/SDCCsymt.c (computeTypeOr): accept bits too
9066         (compareType): 2nd part of fix for bug #908454, needed for bitfields
9067
9068 2004-03-07  Borut Razem <borut.razem AT siol.net>
9069
9070         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
9071
9072 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
9073
9074         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
9075         version of pic16_genPackRegisters which does not check if ic is a
9076         CAST operator,
9077         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
9078         function cause string1.c regression test fails
9079
9080 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
9081
9082         * sim/ucsim/configure.in,
9083         * sim/ucsim/configure,
9084         * sim/ucsim/doc/Makefile.in: use docdir
9085         * src/SDCC.y: fixed sbit atrributes
9086         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
9087         * src/SDCCast.c (decorateType): |^& need special promotion handling
9088         * src/SDCCast.h,
9089         * src/SDCCsymt.h: moved definition of RESULT_TYPE
9090         * src/SDCCsymt.h (computeType),
9091         * src/SDCCicode.c: computeType() needs op
9092         * src/SDCCsymt.c (checkTypeSanity),
9093         * doc/sddman.lyx: "plain" bitfields are unsigned
9094         * src/SDCCsymt.c (computeTypeOr): added
9095         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
9096         |^& ops
9097         * src/SDCCval.c (val*): computeType() needs op
9098         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
9099         * support/regression/tests/onebyte.c: added tests for |^&
9100
9101 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
9102
9103         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
9104         for writing icode into asm output.
9105
9106 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
9107
9108         * src/pic16/device.c: added some debug lines enabled
9109         with macro DEBUG_CHECK,
9110         * src/pic16/genarith.c: more debug in genPlus,
9111         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
9112         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
9113         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
9114         * (aopForSym): onStack symbols are re-placed in data memspace,
9115         and onStack flag is cleared,
9116         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
9117         copy temporary pcodeop,
9118         * (genPcall): added warning for not updating PCLATU,
9119         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
9120         always true for pic16 port,
9121         * (genMultOneWord): NEW, supports integer multiplication,
9122         * (genMult): modified to call genMultOneWord,
9123         * (ifxForOp): added warning when return NULL,
9124         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
9125         flag is set before call to operandFromSymbol for implicit
9126         added structures,
9127         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
9128         options.intlong_rent are set by default,
9129         * (_hasNativeMulFor): modified to allow port generation of integer
9130         multiplication,
9131         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
9132         set regtype to REG_SFR for all registers, restricting seting the
9133         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
9134
9135 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9136
9137         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
9138         more than 500 times in the regression tests
9139
9140 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9141
9142         * support/Util/SDCCerr.h,
9143         * support/Util/SDCCerr.c,
9144         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9145         enumerator_list),
9146         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
9147         for symbol conflicts.
9148         * support/valdiags/tests/enum.c,
9149         * support/valdiags/tests/tentdecl.c,
9150         * support/valdiags/tests/struct.c: expect possible error messages
9151         referring to original symbol definitions.
9152         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
9153         * src/SDCCsymt.h,
9154         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
9155
9156 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
9157
9158         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
9159
9160 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
9161
9162         * src/pic16/ralloc.c (newReg): fixed bug #908929
9163
9164 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9165
9166         * src/ds390/gen.c: added missing #include "main.h"
9167
9168 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
9169
9170         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
9171         checking if symbol is already in set,
9172         * src/pic16/device.h: prototype for checkAddSym,
9173         * src/pic16/gen.c: (_G): added entry interruptvector,
9174         * (assignResultValue): removed some commented out lines,
9175         * (genFunction): check for ISR via sym->type, absolute section for
9176         interrupt code is created via a new pBlock, the goto instruction is
9177         placed now correctly at the interrupt vector position, changed all
9178         references from ivec to _G.interruptvector,
9179         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
9180         is the interrupt is a high priority one, same for return from ISR,
9181         * src/pic16/glue.c: changed all calls of addSetHead for publics and
9182         externs to calls of checkAddSym,
9183         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
9184         pic16_pcode_verbose flag is set,
9185         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
9186         * src/pic16/pcoderegs.c: message about how many registers are saved
9187         will only be emitted if pic16_pcode_verbose flag is set,
9188
9189 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9190
9191         * src/ds390/ralloc.h,
9192         * src/ds390/ralloc.c (ds390_regWithIdx),
9193         * src/ds390/gen.c (emitcode),
9194         * src/ds390/main.h,
9195         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
9196         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9197         ds390operandCompare, getRegsRead, getRegsWritten,
9198         initializeAsmLineNode): customized instruction size calculation for
9199         ds390, started basis for some register optimizations
9200         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
9201         corresponding assembly output
9202         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
9203         missing push/pop of r0/r1. Optimized push/pops
9204
9205 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9206
9207         * src/mcs51/main.c (instructionSize): fixed ACALL size
9208         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
9209
9210 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
9211
9212         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
9213         the sorting of rlist with NULL elements
9214         * (print_idataType, print_idata): NEW to create idata sections
9215         * src/pic16/device.h: idataSymSet new variable
9216         * src/pic16/gen.c (genFunction): fixed some bugs in string
9217         comparing, improved the absolute section creation for ISRs,
9218         added FSR0L/FSR0H in registers that are saved in an ISR,
9219         * (genInline): fixed the processing of inline snippets,
9220         now they undergo no process by the peephole optimizer
9221         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
9222         are placed in idataSymSet,
9223         * (pic16emitStaticSeg): extern symbols are added in externs,
9224         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
9225         switching when aboslute variables are placed in access bank memory
9226         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
9227         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
9228         commented out with #if,
9229         * (pic16_packRegisters): reintroduce the check for CAST because some
9230         symbols are not correctly handled,
9231         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
9232         pCodeInstruction instead of pCode,
9233         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
9234         pCodeAsmDir definition,
9235         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
9236         directive, then the argument directive is emitted without the leading
9237         tab, hack for inline labels which must be in the first column,
9238         * (compareLabel,pic16_findNextInstruction),
9239         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
9240         * (insertBankSwitch): modified for the new pCodeAsmDir,
9241
9242 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9243         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
9244
9245         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
9246         instance,
9247         * (pushSide): commented out with #if,
9248         * (assignResultValue): fixed some typos in saving
9249         registers,
9250         * (genPcall): FIXED and sync'ed with genCall,
9251         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
9252         * (genNearPointerGet): fixed to handle some more cases,
9253         implementation scheme via table reads,
9254         * (genConstPointerGet): modified to access code memory correct,
9255         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
9256         and improved to handle some cases
9257         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
9258         instead of "RETLW" for init data
9259         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
9260         not IN_DIRSPACE, work around to reduce bank switching when aboslute
9261         variables are placed in access bank memory (<0x80 and >=0xf80),
9262         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
9263         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
9264         TBLWT_POSTDEC,TBLWT_PREINC
9265         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
9266         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
9267         directives
9268         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
9269         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
9270         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
9271         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
9272
9273 2004-02-29  Borut Razem <borut.razem AT siol.net>
9274
9275         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
9276         support/Util/findme.h, support/Util/system.h: enhance binary relative
9277         search for lib and include by using findProgramPath()
9278
9279 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9280
9281         * src/SDCCpeeph.h,
9282         * src/SDCCpeeph.c (pcDistance),
9283         * src/port.h,
9284         * src/mcs51/ralloc.h,
9285         * src/mcs51/ralloc.c (mcs51_regWithIdx),
9286         * src/mcs51/main.h,
9287         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
9288         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
9289         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
9290         size calculation port specific, started basis for some register
9291         optimizations
9292         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
9293         missing push/pop of r0/r1. Optimized push/pops
9294         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
9295         * device/lib/_modsint.c (_modsint),
9296         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
9297         and stack version so regression tests pass
9298
9299 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
9300
9301         * src/Makefile.in (dep): include SLIBOBJS in dependency check
9302         * src/SDCCast.c (decorateType): catch another small optimization
9303         with '?' operator
9304         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
9305         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
9306         modified to finally use computeType() all over SDCC,
9307         see Feature Request #877103
9308         * src/SDCCval.h: cosmetic
9309         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
9310         valCompare(); regression tested in muldiv.c
9311         * support/regression/tests/muldiv.c (testMod): mod sign follows
9312         dividend only
9313
9314 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
9315
9316         * src/SDCCast.c (decorateType): fixed bug #902362
9317         * doc/INSTALL.txt: fixed install instructions for win32
9318
9319 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
9320
9321         * device/include/Makefile.in (install): fixed by replacing spaces
9322         by tabs
9323         * doc/README.txt,
9324         * doc/INSTALL.txt: updated for release
9325         * doc/sdccman.lyx: added warning for --xstack being buggy
9326
9327 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
9328
9329         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
9330         to eliminate build warnings.
9331         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
9332
9333 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
9334            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9335
9336         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
9337         removed -penable-stack, added comment for stack pragma, added
9338         warning for not initializing the stack/frame registers, removed
9339         comment at interrupts section
9340
9341         Stack is made permanent, there is no ability to disable stack usage.
9342         * src/pic16/device.h,
9343         * src/pic16/device.c: removed all references to USE_STACK macro,
9344         * src/pic16/device.c (pic16_dump_section): when no elements in
9345         rlist, free rlist before return,
9346         * (pic16_dump_int_registers): NEW, internal registers are a new set
9347         of general purpose registers reused by each function,
9348         * (checkAddReg): returns 1 if registers is added to set,
9349         * (pic16_groupRegistersInSection): when a registers is of type
9350         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
9351         * src/pic16/device.h: memRange and Assigned Memory are deleted,
9352         SRCASECMP macro is moved here from device.c
9353         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
9354         PO_PCLATU, PO_PRODL, PO_PRODH,
9355         * (pic16_pCodeOpType, genMinus,
9356         changed compares to "a" register, with AOP_ACC,
9357         * (pic16_genPlus): fixed some bugs and indented properly,
9358         * (pic16_addSign): changed size to size+offset in the MOVWF
9359         instruction,
9360         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
9361         multiply 8-bit operand by literal, result is 8-bit,
9362         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
9363         multiply 2 8-bit operand, result is 8-bit,
9364         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
9365         genUMult8X*_16,
9366         * src/pic16/gen.c: changed accUse to contain WREG only,
9367         * (pic16_emitcomment): renamed to pic16_emitpcomment,
9368         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
9369         true, do not use immediate addressing any more unless sym is a
9370         pointer in codespace,
9371         * (aopForRemat): do not use immediate addressing when symbol not in
9372         codespace and when symbol's address is requested,
9373         * (aopOp): for-loop in if(sym->accUse) is modified for the new
9374         accUse size (= 1),
9375         * (aopGet): added case for AOP_ACC and don't return "accumulator
9376         bug" but WREG instead,
9377         * (popGetTempReg): pushes contents of temporary register in stack,
9378         * (popReleaseTempReg): pops contents of temporary register from
9379         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
9380         * (pic16_popGet): separated case AOP_ACC to return register WREG
9381         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
9382         or PO_IMMEDIATE and initializes their instance/offset appropriately,
9383         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
9384         the use of immediate pointers to certain cases only.
9385
9386         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
9387         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
9388         * (assignResultValue, genCall, genRet): modified to use the new
9389         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
9390         genPcall is still broken,
9391         * (genFunction): added code to create 'A' type pBlocks when
9392         interrupt functions are generated, code not extensively tested yet,
9393         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
9394         * (genEndFunction): modified so ISRs pop stored registers from stack,
9395         * (genMultOneByte): cleanup,
9396         * (AccRsh): added flag andmask, to and result with appropriate mask,
9397         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
9398         * (genDataPointerGet): fixed and reenabled its use,
9399         * (genNearDataPointerGet): bugs fixed,
9400         * (genDataPointerSet): bugs fixed,
9401         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
9402         pic16_DumpSymbol, pic16_DumpOp,
9403         * src/pic16/genutils.h: function prototypes for the above functions,
9404         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
9405         pointers,
9406         * (pic16emitRegularMap): many many many improvements, but needs a
9407         major cleanup,
9408         * src/pic16/main.c: enable_stack in pic16_options is removed,
9409         * (_pic16_parseOptions): removed command line options -penable-stack,
9410         * (_process_pragma): emit stack symbol only when stack pragma is
9411         processed,
9412         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
9413         redirected to FSR0L/FSR0H pair,
9414         * (pic16_get_op, pic16_get_op2): modifications and improvements,
9415         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9416         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
9417         for immediates,
9418         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
9419         * (dumpPicOptype): NEW,
9420         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
9421         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
9422         with movff instruction,
9423         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
9424         added pic16_int_regs, some packRegsFor* functions are commented out,
9425         because produce errors,
9426         * src/pic16/NOTES: minor modifications
9427
9428 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9429
9430         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
9431         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
9432         --pack-iram.
9433         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
9434         * as/mcs51/lkaomf51.c: fixed bug #895763
9435
9436 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
9437
9438         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
9439
9440 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9441
9442         * doc/sdccman.lyx: added details about the HC08 storage classes and
9443         interrupts, fixed the register usage info for z80 & gbz80
9444
9445 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
9446
9447         * doc/sdccman.lyx: added more pic16 port documentation
9448         * device/include/pic16/: added header pic18fregs.h
9449
9450 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
9451
9452         * doc/sdccman.lyx: added Vangelis' contribution
9453
9454 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9455
9456         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
9457         extend to the next CALL or PCALL, not just to the next CALL.
9458
9459 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
9460
9461         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
9462
9463 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9464
9465         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
9466         bug #895752 and a better fix for bug #716790
9467
9468 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9469
9470         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
9471
9472 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9473
9474         * doc/sdccman.lyx: minor changes, minor changed
9475
9476 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
9477
9478         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
9479         which can't handle SDCC_NEWONEBYTEOPS,
9480         (geniCodeMultiply): removed conversion from mult to shift for pic14
9481         and pic16
9482
9483 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9484
9485         * src/hc08/gen.h,
9486         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
9487         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
9488         thus fixing bug #895406
9489
9490 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
9491
9492         * device/lib/_modsint.c,
9493         * device/lib/_modslong.c: sign follows divisor only
9494         * src/hc08/gen.c (genMultOneByte): if result size is 1,
9495         signs or signedness can be ignored
9496         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
9497         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
9498         added optimization for IFX,
9499         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
9500         arguments;
9501         reenabled optimization for IFX, which was removed on 2004-01-11
9502         * src/SDCCast.h: added return type IFX
9503         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
9504         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
9505         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
9506         SDCC_OLDONEBYTEOPS selects the old behaviour
9507         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
9508         changed again and commented promotion rule
9509         * src/SDCCval.c (valDiv): promotion no longer necessary
9510         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
9511         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
9512         rewritten
9513         * support/regression/tests/onebyte.c: added
9514
9515 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
9516
9517         * gen.c (genInline): reverted to old code for assemnling inline
9518         code because of bug reported James Chadd
9519
9520 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
9521
9522         * ralloc.h: missing declarations from previous patch,
9523         seems that patch for ralloc.h was never applied, fixed
9524
9525 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9526            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9527
9528         * pcode.c,
9529         * pcode.h,
9530         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
9531         indirect addressing. Marked FSR0 as deprecated
9532         * gen.c (pointerCode): commented out, not needed now
9533         (pic16_popGet2p): new MOVFF helper function
9534         (genGenPointerGet),
9535         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
9536         (shiftRLong): removed duplicate debugging info
9537
9538 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9539
9540         * src/ds390/gen.c (genNearPointerGet),
9541         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
9542         optimization with bits, but not bitfields.
9543         * src/ds390/ralloc.c (packRegisters),
9544         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
9545
9546 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
9547
9548         * src/SDCCcse.c (algebraicOpts): copy operands before modification
9549
9550 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9551
9552         * src/SDCCsymt.h,
9553         * src/SDCCicode.c (operandFromSymbol),
9554         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
9555         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
9556         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
9557         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
9558         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
9559         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
9560         bug #892038
9561         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
9562         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
9563         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
9564         * src/SDCCsymt.c (newSymbol),
9565         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
9566         enumerator_list),
9567         * src/SDCCval.h,
9568         * src/SDCCval.c (newiList): fixed bug #885705
9569
9570 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9571
9572         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
9573         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
9574
9575 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9576
9577         * device/include/c8051f120.h,
9578         * device/include/c8051f300.h,
9579         * device/include/c8051f310.h: added/updated header files for Silicon
9580         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9581         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
9582         in new section Submitting patches
9583
9584 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9585
9586         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
9587         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9588         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9589         genGenPointerSet),
9590         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
9591         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9592         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9593         genGenPointerSet),
9594         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
9595         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9596         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9597         genGenPointerSet),
9598         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
9599         genFarPointerGet, genCodePointerGet, genGenPointerGet,
9600         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
9601         genGenPointerSet): fixed bug #892400
9602         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
9603         to eliminate build warnings.
9604         * src/SDCCast.c (processParms),
9605         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
9606         fixed bug 751859
9607         * support/valdiag/valdiag.py: added GCC to the list of defines active
9608         when compiling with gcc
9609
9610 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9611
9612         * support/Util/SDCCerr.h,
9613         * support/Util/SDCCerr.c,
9614         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
9615         with an incomplete type (fixed bug #883734)
9616         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
9617
9618 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9619
9620         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
9621
9622 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9623
9624         * src/SDCCast.c (decorateType),
9625         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
9626         function pointer implementation
9627         * support/regression/tests/funptrs.c: added tests to verify both forms
9628         of function pointers work correctly. Added tests to verify parameters
9629         are passed in the correct order.
9630
9631 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
9632
9633         * device.c (regCompare): registers are sorted by ascending
9634         address and increasing size,
9635         * main.c (_pic16_finaliseOptions): removed the declaration
9636         of compiler macro MCU. Now a macro of the format pic18fxxxx
9637         will be defined from the command line
9638
9639 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
9640             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
9641
9642         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
9643         PCOP_RLCF was overwritten!
9644         * gen.c (genSkip): commented out calls to pic16_emitcode,
9645         * (genCmpEQ): fixed "long" compares, only high word did get compared,
9646         * (genlshTwo),
9647         * (genRRC): added debugging info,
9648         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
9649         overwritten while shifting,
9650         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
9651         overwritten while shifting,
9652         * (AccLsh),
9653         * (AccRsh),
9654         * (shiftLLeftOrResult),
9655         * (shiftRLeftOrResult),
9656         * (shiftRLong),
9657         * (shiftLLong): Implemented with pic16_emitpcode
9658         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
9659         * (genLeftShift): Fixed bug, operand for shift by variable always
9660         was "and"ed with 0x0f,
9661         * (genLeftShiftLiteral),
9662         * (genrshTwo),
9663         * (genRightShiftLiteral): added debugging info,
9664         * (genrshFour): added comment,
9665         * (genRightShift): determined signedness from operand "left"
9666         instead of "result"
9667
9668 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9669
9670         * src/SDCCicode.c (geniCodeParms),
9671         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
9672         function pointers, fixed function pointer bugs #861242 and #861896
9673
9674 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9675
9676         * device/include/c8051f000.h,
9677         * device/include/c8051f120.h,
9678         * device/include/c8051f300.h: added header files for Silicon
9679         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
9680
9681 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
9682
9683         * src/SDCCast.c (processParams): added new type flow and restructured
9684         (gatherAutoInit): added new type flow
9685         (addCast): cosmetic changes
9686         (getLeftResultType): added new type flow for array indices, patch
9687         provided by Stas, see FR #877103
9688         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
9689         array index patch by Stas
9690         * src/SDCCast.h: added prototype getResultTypeFromType()
9691         * src/SDCCval.h,
9692         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
9693         * src/pic/glue.c (pic14emitStaticSeg),
9694         * src/pic16/glue.c (pic16emitStaticSeg),
9695         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
9696         for initialization of symbols
9697         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
9698         * support/Util/SDCCerr.h:
9699         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
9700         * .version: bumped version number to 2.3.8
9701         * device/include/Makefile.in (install),
9702         * doc/Makefile (install): changed to 'rm `find ...`' construct to
9703         avoid warnings
9704
9705 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
9706
9707         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
9708         Slade Rich fixed an optimization bug
9709         * src/pic/pcodepeep.c,
9710         * src/pic/pcoderegs.c
9711         * doc/Makefile (install): added test for directory
9712
9713 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9714
9715         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
9716         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
9717         * src/pic/ralloc.c (getRegPtr, getRegGpr),
9718         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
9719         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
9720         * as/mcs51/asexpr.c (term),
9721         * as/hc08/asexpr.c (term): fixed bug #887146
9722
9723 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9724
9725         * src/z80/gen.c (genMult): handle single byte result product
9726         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
9727         DUMMY_READ_VOLATILE (fixed bug #886367)
9728
9729 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9730
9731         * support/regression/tests/libmullong.c: fixed logic, on little endian
9732         hosts we ended without a mullong_wrapper()
9733
9734 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9735
9736         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
9737         virus/worm forged address usage.
9738
9739 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
9740
9741         Fixed promotion, it should be done on AST level:
9742         * src/SDCCast.c (addCast): added promotion to int
9743         (decorateType): updated call to upCast()
9744         * src/SDCCicode.c (geniCodeLeftShift): removed call to
9745         usualUnaryConversions()
9746
9747 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
9748
9749         * support/regression/tests/literalop.c (mulWrapper): Added a
9750         wrapper to remove integer overflow warnings.
9751
9752         * support/regression/tests/float_trans.c: Made work on host.
9753
9754         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
9755         location of sz80.
9756
9757         * support/regression/generate-cases.py (main): Changed from inline
9758         to a main method.
9759
9760         * doc/Makefile (install): Changed to depth first to get rid of
9761         missing directory install warning.
9762
9763         * as/Makefile (install-doc): Made work on Mac.
9764
9765 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
9766
9767         * src/SDCCast.c: added an additional type flow in decorateType() of
9768         opposite direction, see feature request #860006; it's enabled at runtime
9769         by setting the environment variable SDCC_NEWTYPEFLOW
9770         * src/SDCCast.h: changed prototype of decorateType()
9771         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
9772         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
9773         'char' to 'int' can be omitted, if both operands are 'unsigned char';
9774         see feature request #877103
9775         * src/SDCCval.c: updated call of decorateType()
9776         (valBitwise): fixed bug #882876
9777         (valMinus): added promotion
9778         (valLogicAndOr): result is unsigned
9779         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
9780         * src/SDCCsymt.c (computeType),
9781         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
9782         must not cause an unsigned operation
9783         * src/pic/glue (pic14emitRegularMap),
9784         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
9785
9786 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
9787
9788         * src/pic/pcode.c (PCodeID): commented out left over debug code
9789
9790 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
9791
9792         * support/valdiag/tests/overflow.c: added shift tests
9793         * src/pic/device.c,
9794         * src/pic/gen.c,
9795         * src/pic/gen.h,
9796         * src/pic/glue.c,
9797         * src/pic/main.c,
9798         * src/pic/pcode.c,
9799         * src/pic/pcode.h,
9800         * src/pic/pcodepeep.c,
9801         * src/pic/pcoderegs.c,
9802         * src/pic/ralloc.c,
9803         * src/pic/ralloc.h: applied patch from Slade Rich;
9804         added support for multiple code pages and multiple RAM banks on the
9805         PIC 14 port. The ASM files now no longer simply assume all the
9806         code / RAM are in the same page / bank. This means the linker can
9807         safely allocate code/RAM of separate ASM files to different pages/banks.
9808         * doc/sdccman.lyx: added Slade's tips
9809         * src/mcs51/peeph.def: fixed bug #880768
9810
9811 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9812
9813         * src/hc08/ralloc.c (rematStr): fixed bug #879282
9814         * src/SDCCast.c (decorateType): fixed bug #880197
9815
9816 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
9817
9818         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
9819         getopt.h.
9820
9821         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
9822         strtof is not part of C89 and isn't included with Mac OS X.
9823
9824 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9825
9826         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
9827         shiftL2Left2Result): fixed bug #879326
9828         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
9829         (genMultOneByte): fixed bug in signed vs unsigned multiplication
9830         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
9831         address fetch for clr instruction
9832         * device/lib/hc08/_mulint.c: created optimized assembly version
9833         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
9834
9835 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
9836
9837         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
9838         proposed in FR #877103
9839
9840 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
9841
9842         * src/SDCCval.c (cheapestVal): added missing checks
9843         * src/SDCCicode.c (usualBinaryConversions): fixed condition
9844         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
9845
9846 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
9847
9848         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
9849         equal operands
9850
9851 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
9852
9853         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
9854         loaded with the linker search paths (-L arguments) and the libraries
9855         to be linked with the current source (-l arguments). Changes
9856         currently will affect only the pic16 port.
9857         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
9858         include path the port specific paths and port specific libraries,
9859         * gplink command now contains the $3 argument,
9860         * src/pic16/device.h,
9861         * src/pic16/device.c,: structure PIC_device is made public and
9862         renamed to PIC16_device, the same for variable Pics which is renamed
9863         to Pics16. Updated all references to them.
9864         * src/pic16/glue.c (pic16glue): corrected bug with code
9865         initialization which bypassed the variable initializations block.
9866
9867         * device/lib/pic16/Makefile.rules: removed --penable-stack from
9868         COMPILE_FLAGS and added the --nostdinc option
9869
9870 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9871
9872         * device/include/mc68hc908jb8.h: Register defs for another member
9873         of the hc08 family. Contributed by Bjorn Bringert - thanks!
9874
9875 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
9876
9877         Documenting changes from previous commits.
9878         * configure.in (version 1.56),
9879         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
9880         when generating output files to configure the pic16 library,
9881         but now I've commented it out, since gputils aren't installed in the
9882         SF compile farm, so library won't compile
9883
9884         * device/lib/Makefile.in (version 1.56): initially I've added in
9885         target 'all' the prerequestive 'model-pic16' so it compiled the
9886         pic16 library, but now I've commented it out for the same reasons
9887         above,
9888         * added targets 'model-pic16' and 'objects-pic16' to compile the
9889         library
9890         * added target 'port-specific-objects-pic16' to handle the
9891         generated libraries and copy them into the build/ directory
9892         * added target 'clean-intermediate-pic16' to clean intermediate
9893         files into pic16 directory
9894         * in target 'installdirs' added line to create directory pic16 in
9895         the installation path
9896
9897         * device/include/Makefile.in (version 1.11): in target 'install'
9898         added lines to copy all header files to installation path,
9899         * in target 'installdirs' added line create directory for pic16
9900         headers in the installation path
9901
9902 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
9903
9904         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
9905          a function call
9906
9907 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
9908
9909         * configure,
9910         * device/lib/configure.in,
9911         * device/lib/configure: fixed for autoconf 2.57
9912
9913 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9914
9915         * src/z80/main.c (_parseOptions): fixed the portmode= command line
9916         option so that it actually works. Made it specific to the z80, since
9917         the gbz80 doesn't have these kinds of I/O ports.
9918
9919 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9920
9921         * device/include/z180.h,
9922         * device/lib/_memcpy.c,
9923         * device/lib/_memmove.c,
9924         * device/lib/_mulint.c,
9925         * device/lib/ser_ir.c,
9926         * device/lib/ser_ir_cts_rts.c,
9927         * device/lib/_strcmp.c,
9928         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
9929         * src/z80/main.c (_process_pragma): add support for pragmas bank and
9930         portmode; added deprecation warning for bank= and protmode= forms.
9931         Also, guard against buffer overflow.
9932         * src/z80/gen.c (aopGet): generate better code for sfr banked read
9933
9934 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9935
9936         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
9937         changed interrupt vector table generation to only emit declared vectors.
9938         * device/include/Makefile.in: added missing backslash
9939         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
9940
9941 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9942
9943         Mainly changes to support compilation of the device libraries
9944         * src/pic16/device.c: stack is allocated via symbol and not
9945         via literal number. The symbol is placed in the corresponding
9946         position of the data ram
9947         * (pic16_dump_section): relocatable and absolute uninitialized
9948         data are now emitted in sorted order to reduce section naming,
9949         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
9950         weren't marked as being in the access bank,
9951
9952 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
9953
9954         Added portion of GNU PIC Library under the directory
9955         device/include/pic16 and device/lib/pic16. These files
9956         contain the declarations of SFRs for the PIC18Fxx2 devices.
9957         The directory is initialized via configure from toplevel.
9958
9959 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
9960
9961         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
9962         the spilllocations to be compared correctly
9963
9964 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9965
9966         * src/SDCCast.c (decorateType): fixed bug introduced today
9967
9968 2004-01-12  Borut Razem <borut.razem AT siol.net>
9969
9970         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
9971         doc/sdccman.lyx: upper case pragmas are deprecated
9972
9973 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
9974
9975         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
9976         in simpler and even better code
9977
9978 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
9979
9980         * src/SDCCicode.c (operandOperation): fixed bug #874819
9981         * src/SDCCast.c (decorateType): fixed
9982         char foo (unsigned long ul) { return ul > 0; }
9983
9984 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9985
9986         * doc/sdccman.lyx: Moved and added some sections, small changes
9987         all over. Telling LaTeX to be less strict with word spacing
9988         to better keep the right margin. Changed some notes about
9989         maintainance of the ports in section 3.2.1 - is it OK like this?
9990
9991 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
9992
9993         SDCC source changes:
9994         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
9995         convilong): modified to inform the pic16 port that builtin functions
9996         are external
9997
9998         PIC16 PORT specific changes:
9999         * src/pic16/device.c pic16_dump_equates() added,
10000         processor registers declared internally by the port are emitted in
10001         the translation as equates,
10002         * src/pic16/gen.c: inline code is passed unprocessed to the
10003         translation,
10004         * (pic16_popGetLit2): fnuction modified to take second operand as
10005         pCodeOp pointer and not as literal,
10006         * (popRegFromIdx): prefixed with pic16_,
10007         * (pic16_popCombine2): modified to receive already allocated pCode
10008         operands,
10009         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
10010         * (genFunction): initializes local stack frame and pushes on stack
10011         all the registers used by this function,
10012         * (genEndFunction): restores all registers from stack and restores
10013         stack frame,
10014         * src/pic16/glue.c (pic16emitRegularMap): various changes and
10015         improvements,
10016         * (pic16glue): changed the program startup sequence,
10017         * added new dbName code 'A' for functions placed in absolute section
10018         * src/pic16/main.c: added function attribute _naked,
10019         * added pragma 'code' to place a fnuction at an absolute address,
10020         * added command line arguments --debug-ralloc and --pcode-verbose,
10021         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
10022         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
10023         * (pic16_newpCodeOpLit2): modified to take the second operand as
10024         pCodeOp pointer,
10025         * (pic16_printpBlock): modified to emit each function in a separate
10026         section,
10027         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
10028         UPPER for immediate operands,
10029         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
10030         instruction,
10031         * src/pic16/peeph.def: all peepholes with movff are commented out,
10032         because there is a problem in the pcode peep optimizer,
10033         * src/pic16/ralloc.c: the register allocator can now reuse local
10034         function symbols for another function. This saves register usage.
10035         * src/pic16/ralloc.h: added flag isLocal in structure regs,
10036
10037         Added file src/pic16/NOTES with information about program writing on
10038         the current port version.
10039
10040 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10041
10042         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
10043         and peephole 252 (array access)
10044
10045 2004-01-09  Borut Razem <borut.razem AT siol.net>
10046
10047         * src/SDCCmain.c : fixed #872250: -l command line defined library
10048           files are scanned before standard library files
10049
10050 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10051
10052         * src/SDCCast.c (decorateType): fixed bug #874046
10053
10054 2004-01-09  Borut Razem <borut.razem AT siol.net>
10055
10056         * support/scripts/sdcc.nsi: remove previous installation
10057
10058 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10059
10060         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
10061         bytes for last interrupt vector (mcs51)
10062         * sdcc.spec: fixed typo
10063
10064 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10065
10066         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
10067         gen51Code): more efficient parameter receive for --model-large
10068         ("bug" #845294)
10069
10070 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10071
10072         * src/ds390/main.c,
10073         * src/z80/main.c: added missed needLinkerScript flags (more than
10074         one port structure defined in these file)
10075         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
10076         bug #795325
10077
10078 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
10079
10080         * src/SDCCmain.c: removed various references to DEFAULT_PORT
10081         * src/port.h: added flag needLinkerScript in port->linker
10082         structure to inform whether to create a .lnk file or not,
10083         * src/avr/main.c,
10084         * src/ds390/main.c,
10085         * src/hc08/main.c,
10086         * src/mcs51/main.c,
10087         * src/pic/main.c,
10088         * src/pic16/main.c,
10089         * src/xa51/main.c,
10090         * src/z80/main.c: changed appropriately to configure
10091         needLinkerScript flag
10092         * src/pic/gen.c,
10093         * src/pic16/gen.c (genAddrOf): fixed bug #863624
10094         * src/pic/glue.c: added variable udata_section_name to
10095         override default uninitialized data segment definition for
10096         devices only with SHAREBANK memory (reported from Erik Epetrich)
10097         * (pic14emitOverlay): modified to emit a commented overlay segment
10098         directive when no overlay data exist
10099         * (picglue): modified to emit uninitialized data segment
10100         according to udata_section_name
10101         * src/pic/main.c (_pic14_parseOptions): added command line
10102         options --udata-section-name=[name] to override default
10103         udata definition name
10104         * modified _linkCmd and _asmCmd to include compiler passed
10105         arguments via -W option
10106         * src/pic16/main.c: added $l in _asmCmd, changed extension for
10107         object file from '.rel' to '.o' in port->linker structure,
10108         changed size of fptr from 2 to 3 in port structure
10109
10110 2004-01-07  Borut Razem <borut.razem AT siol.net>
10111
10112         * support/scripts/sdcc.nsi: update PATH
10113         * support/scripts/sdcc.ico: craeted
10114
10115 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
10116
10117         * device/include/Makefile.in: fix install
10118         * doc/Makefile: fix install
10119
10120 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10121
10122         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
10123         in bug #860505
10124         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
10125         how the function variable allocation summary is displayed; also
10126         include information about variables allocated to the overlay
10127         segment
10128
10129 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10130
10131         * as/mcs51/lkmain.c: Help about -Y option
10132         * as/mcs51/lkarea.c: Fixed gcc warnings
10133
10134 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10135
10136         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
10137         fixed warning
10138         * support/valdiag/tests/overflow.c: added
10139         * src/SDCCast.c (decorateType),
10140         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
10141         LEFT_OP (left shift)
10142
10143 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10144
10145         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
10146         (default behaviour).
10147
10148 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10149
10150         A python script to validate compiler diagnostic messages. It can be
10151         used to verify that sdcc complains about bad c source code and
10152         gives a good location of the error.
10153         * support/valdiag/Makefile,
10154         * support/valdiag/valdiag.py,
10155         * support/valdiag/tests/*
10156
10157 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10158
10159         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
10160         * src/SDCCsymt.c (newEnumType),
10161         * src/SDCCsymt.h
10162         * support/Util/SDCCerr.c,
10163         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
10164         enum related bugs.
10165         * support/regression/tests/enum.c: added test for enum values that
10166         require at least 2 bytes of storage.
10167
10168 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10169
10170         * src/common.h: added ifndef/define/endif macros
10171         around the header file.
10172         Bug reported from Jesus Calvino-Fraga
10173
10174 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
10175
10176         * sdcc.spec: updated
10177         * device/include/Makefile.in: don't install CVS directories
10178         * device/lib/Makefile.in: added removal of CVS directories after install
10179         * doc/Makefile: fixed install, added local_icons
10180         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
10181         * src/mcs51/gen.c (genRightShift): fixed bug #870788
10182         * src/ds390/gen.c (genRightShift): fixed bug #870788
10183         * src/SDCCast.c (decorateType): fixed bug #870781
10184
10185 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
10186
10187         PIC16 port related changes:
10188         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
10189         added variable stackPos,
10190
10191         * gen.c: genCall, assignResultValue: added support for
10192         pushing/retrieving function parameters to/from stack,
10193         genFunction,genEndFunction: setup stack frame for the
10194         generated function,
10195         genAddrOf: will be changed according to bug 863624
10196
10197         * added files genutils.c and genutils.h which contain gen*
10198         debugged and optimised functions extracted from gen.c
10199
10200         * glue.c: added variable 'externs' which holds extern symbols,
10201         pic16emitRegularMap: is modified to properly handle relocatable
10202          symbols under the new scheme,
10203         pic16createInterruptVect: is modified
10204         pic16printPublics: is modified to emit 'global' assembler directives,
10205         added pic16_printExterns to print extern symbols,
10206         pic16glue: initializes stack/frame pointer in the beginning of
10207         the assembly output. Temporary hack, will be corrected later,
10208         because gplink yet does not support stack and SDCC does not
10209         yet support a type of crt0.o object to create the final binary.
10210
10211         * Removed many lines that contain 8051 legacy code.
10212         * The code is finally placed under a 'code' directive.
10213         * Added port specific options.
10214
10215         * _process_pragma: simplified since now we do not need *special*
10216         include file to define SFR registers. But a separate header
10217         will be needed. This will be developed later.
10218         * _pic16_parseOptions: added, parses port specific options:
10219         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
10220         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
10221         --preplace-udata-with=
10222
10223         * _pic16_setDefaultOptions: modified to initialize section names,
10224         but hack is temporarly out of order since it needs improvement.
10225         * _pic16_genAssemblerPreamble: configuration words are emitted by
10226         their address instead of their name. This part is incomplete and
10227         supports only the 18Fxx2 devices. Other devices will emit an error
10228         during assembly since they do not contain the same set of config
10229         registers
10230         * _pic16_genIVT: is modified,
10231
10232         * pcode.c: added definitions for some hardware registers that are needed
10233         for stack support
10234         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
10235         All PCI entries are updated. Now LFSR is supported.
10236         * Removed pic16_pciTRIS is mentioned by mdubuc in source
10237         * added pic16_newpCodeOpLit2 to support instructions with
10238         two literal arguments
10239         * pic16_pCode2str: corrected code that emits assembler instructions
10240         with two literal operands and those that have an access bit modifier
10241         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
10242         this fixes a bug which caused some labels to be lost, when an
10243         assembler directive was added, i.e. banksel,
10244         * pic16_FixRegisterBanking: improved logic that causes the insertion
10245         of bank switching,
10246         * InlineFunction: functions that are called once, are not any more
10247         inlined. This can be a port option in the future,
10248
10249         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
10250
10251         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
10252         hold the corresponding uninitialized symbols,
10253         * pic16_allocProcessorRegister: registers have explicit marked the
10254         accessBank field,
10255         * pic16_allocInternalRegister: registers are explicit marked as
10256         not used,
10257         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
10258         processing list, so bit registers were lost,
10259         *
10260
10261         * ralloc.h: added field 'accessBank' and original symbol operand
10262         in register definition,
10263         * removed the field isMapped from register definition,
10264
10265         ** Several functions have been removed from various sources:
10266         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
10267         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
10268         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
10269         pic16_assignRelocatableRegisters
10270
10271         ** others have been introduced:
10272         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
10273         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
10274
10275 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
10276
10277         * support/scripts/inc2h.pl: changed definition of BIT_AT
10278         to emit 'sbit at' instead of 'bit at'. This was a request.
10279
10280         PIC16 port related preliminary changes:
10281         * gen.c: prefixed function popRegFromString with
10282         pic16_ and all references to it corrected
10283         * pcode.c: all pic16_pc_* hardware registers prefixed
10284         with underscore (_),
10285         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
10286         * ralloc.c: newReg(): when register is REG_SFR then
10287         set address to rIdx,
10288         pic16_allocProcessorRegister(): marks register wasUsed=0
10289         pic16_writeUsedRegs(): added a call to assign processor
10290         registers via pic16_assignFixedRegisters
10291
10292 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10293
10294         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
10295         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
10296         variables in unused register banks.  Also the SSEG is placed
10297         wherever there is enough space for it, and IDATA can be anywhere
10298         in internal RAM.  For now compile using -Wl-Y[stack_size].
10299         The mem file is different for this option as well, since it
10300         makes no sense of talking about DSEG lenght.
10301
10302 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
10303
10304         * src/SDCClrange.c: fixed bug 869095 that caused segfault
10305         in certain cases, e.g. when ROM assignment, patch provided
10306         from Albert den Haan.
10307
10308 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
10309
10310         Many signedness and type propagation fixes:
10311         * src/SDCCicode.c: made geniCodeCast() static
10312         replaced SPEC_ by IS_ (cosmetic)
10313         (operandOperation): fixed div and mod operation
10314         (usualBinaryConversions): added support for promotion of char
10315         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
10316         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
10317         (geniCodeAdd): an array index will stay unsigned, even if promoted
10318         from char to int
10319         (geniCodeArray): ditto
10320         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
10321         * src/SDCCsymt.c (computeType): added more support for char;
10322         promotion of char is selectable by promoteCharToInt, fixed signedness
10323         for all cases
10324         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10325         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
10326         * src/SDCCval (val*): replaced signedness calculation by
10327         computeType()
10328         rearranged if-branches (cosmetic)
10329         (valShift): added warning W_SHIFT_CHANGED
10330         (valCompare): fixed problem with different types
10331         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
10332         * support/regression/tests/literalop.c: added many cases
10333         * support/regression/tests/ast_constant_folding.c: changed finally to
10334         'unsigned int'
10335         * .version: new year, new version: 2.3.7
10336         * src/SDCCmain.c (main): applied patch #866468
10337         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
10338         provided by Scott Bronson
10339         * doc/sdccman.lyx: updated documentation for sdcdb
10340         updated and added chapter tips
10341
10342 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10343
10344         * src/SDCCsymt.h: missing from yesterday's commits
10345
10346 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10347
10348         * src/SDCC.y (struct_or_union_specifier),
10349         * support/Util/SDCCerr.c,
10350         * support/Util/SDCCerr.h: verify that struct & union tags are used
10351         as declared.
10352
10353 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10354
10355         * src/SDCCglobl.h: missing from yesterday's commits
10356
10357 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10358
10359         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
10360         sft_attributes, struct_declaration, parameter_declaration,
10361         type_name, start_block, declaration_list),
10362         * src/SDCC.lex (check_type): support redefinition of typedef names
10363
10364 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10365
10366         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
10367         aligned xdata arrays. Erik helped me with the if clause.
10368
10369 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10370
10371         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
10372         warning
10373
10374 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10375
10376         * src/SDCCast.h,
10377         * src/SDCCast.c (newAst_),
10378         * src/SDCCicode.h,
10379         * src/SDCCicode.c (ast2iCode, newiCode),
10380         * src/SDCCglobl.h,
10381         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
10382         expr, statement, expression_statement, selection_statement,
10383         iteration_statement, expr_opt, jump_statement): foundation for tracking
10384         sequence points
10385         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
10386         point code too)
10387
10388 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10389
10390         * support/Util/SDCCerr.c,
10391         * src/SDCCast.h,
10392         * src/SDCCast.c (createCase, createDefault, decorateType),
10393         * src/SDCClabel.c (labelUnreach),
10394         * src/SDCC.y (labeled_statement, jump_statement): More improvements
10395         to error messages.
10396         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
10397         (with thanks to Stas Sergeev)
10398         * device/include/time.h,
10399         * device/lib/time.c (CheckTime): suppress unreachable code warning
10400
10401 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10402
10403         * src/SDCCast.c (createIvalCharPtr),
10404         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
10405         bug #753752)
10406         * support/regression/tests/nullstring.c: tests for these two bugs
10407
10408 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10409
10410         * support/Util/SDCCerr.h,
10411         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
10412         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
10413         about storage class and 'at' used inside struct or union
10414         * src/SDCCBBlock.c (iCodeFromeBBlock),
10415         * src/SDCCcse.c (ifxOptimize),
10416         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
10417         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
10418         printIval, emitStaticSeg, emitOverlay),
10419         * src/SDCClabel.c (deleteIfx),
10420         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
10421         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
10422         gatherAutoInit, processParms),
10423         * support/Util/SDCCerr.h,
10424         * support/Util/SDCCerr.c (werrorfl): Support for better error location
10425         reporting for post-parse errors.
10426
10427 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10428
10429         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
10430         implicit casts via union; they don't work on big endian systems
10431         (possible fix for bug #861138)
10432
10433 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10434
10435         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
10436         * src/mcs51/main.c: fixed the fix for bug #737001
10437
10438 2003-12-15  Borut Razem <borut.razem AT siol.net>
10439
10440         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
10441
10442 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10443
10444         * support/makebin/makebin.c: put output in binary mode
10445
10446 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10447
10448         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
10449         xdata and data memory on startup. Set the environment variable
10450         SDCC_NOGENRAMCLEAR to disable this.
10451         * src/mcs51/peephole.def,
10452         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
10453         (allows non-interrupt and interrupt code to safely compete for a resource
10454         without the non-interrupt code having to disable interrupts)
10455
10456 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10457
10458         * src/SDCCicode.c (geniCodeAdd),
10459         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
10460         with valFromType if type might be a pointer and host is big endian).
10461         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
10462         types, not just integer types.
10463         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
10464         multiply defined with mismatching "at" address.
10465
10466 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10467
10468         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
10469         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
10470         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
10471         with embedded nulls (fixed bug #753752)
10472
10473 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10474
10475         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
10476         Apparently this did not see much testing (endless loop)
10477
10478 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10479
10480         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
10481
10482 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10483
10484         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
10485         gracefully handle NULL memmap pointers
10486
10487 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10488
10489         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
10490         instead of deleting the iCode when an operand is volatile
10491         * src/z80/gen.c (genDummyRead),
10492         * src/mcs51/gen.c (genDummyRead),
10493         * src/ds390/gen.c (genDummyRead),
10494         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
10495         not just IC_RIGHT
10496         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
10497         * src/SDCC.y: fixed bug #850420
10498
10499 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10500
10501         Applied z80 i/o port patch from Peter Townson and fixed some operators
10502         to better handle operands in A register.
10503         * device/include/z180.h
10504         * src/SDCC.y
10505         * src/SDCCglue.c
10506         * src/z80/gen.c
10507         * src/z80/gen.h
10508         * src/z80/main.c
10509         * src/z80/peeph-z80.def
10510         * src/z80/peeph.def
10511         * src/z80/z80.h
10512
10513 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10514
10515         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
10516
10517 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10518
10519         * device/lib/hc08/_mullong.c: Removed extra #endif
10520
10521 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10522
10523         * sim/ucsim/hc08.src/inst.cc,
10524         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
10525         carries from x to h
10526         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
10527         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
10528         * device/include/stdarg.h: fixed varargs for hc08
10529         * device/lib/Makefile.in,
10530         * device/lib/hc08/Makefile,
10531         * device/lib/hc08/_mulint.c,
10532         * device/lib/hc08/_mullong.c: fixed some endian problems
10533
10534 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10535
10536         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
10537         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
10538         * device/lib/_gptrget.c,
10539         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
10540
10541 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10542
10543         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
10544         * src/SDCCast.c (astErrors): fixed bug #846007
10545         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
10546
10547 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10548
10549         * src/SDCCast.c (decorateType): disabled a transformation I added in
10550         revision 1.188 (access to fields of a structure at an absolute address);
10551         it breaks with bitfields, extern declarations, and gcse analysis.
10552         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
10553         could be assigned through a pointer, so don't complain.
10554         * src/SDCCast.c (astErrors),
10555         * src/SDCCast.h,
10556         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
10557
10558 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
10559
10560         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
10561         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
10562         output of __config directives, since gpasm now supports them
10563         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
10564         pre-processor macro, i.e. -DMCU=p18f452
10565         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
10566         and modified to handle 'cast' icode similarly to '=' icode
10567         * src/pic16/device.h (typedef struct PIC_device): added field
10568         'extMIface' to indicate that chip has external memory interface
10569         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
10570         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
10571         18F8720
10572
10573 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10574
10575         * src/SDCC.y (pointer): fixed bug #846006
10576         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
10577         * src/SDCCast.c (decorateType): fixed bug #846009
10578         * src/ds390/peeph.def,
10579         * src/ds390/gen.c (genAnd, genOr),
10580         * src/mcs51/peeph.def,
10581         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
10582
10583 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10584
10585         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
10586         * src/SDCCdflow.c
10587         * src/SDCCcse.c
10588         * src/SDCCcse.h
10589         * src/SDCCBBlock.h
10590         * src/SDCCBBlock.c
10591
10592 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
10593
10594         fixed bug #845089
10595         * src/SDCCbitv.h,
10596         * src/SDCCbitv.c: added function to free a bitvector
10597         * src/SDCClrange.h,
10598         * src/SDCClrange.c: added function to recompute the liveranges
10599         * src/avr/ralloc.c,
10600         * src/ds390/ralloc.c,
10601         * src/hc08/ralloc.c,
10602         * src/mcs51/ralloc.c,
10603         * src/pic/ralloc.c,
10604         * src/pic16/ralloc.c,
10605         * src/xa51/ralloc.c,
10606         * src/z80/ralloc.c: recompute the liveranges after register packing
10607
10608 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
10609
10610         * src/SDCCloop.c (newInduction): fixed bug #845630
10611
10612 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10613
10614         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
10615         inadvertantly left behind from my 2003-11-12 change
10616
10617 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10618
10619         Updated headers I neglected to commit yesterday.
10620         * src/SDCClrange.h,
10621         * src/SDCCicode.h
10622
10623 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10624
10625         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
10626         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
10627         * src/SDCCopt.c (eBBlockFromiCode),
10628         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
10629         the creation of the key hash table from the sequencing so it can be used
10630         earlier (for some GCSE bug fixes still pending)
10631
10632 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10633
10634         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
10635         * support/regression/tests/addsub.c: testing genPlus shortcut
10636
10637 2003-11-15  Borut Razem <borut.razem AT siol.net>
10638
10639         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
10640
10641 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10642
10643         * src/SDCCcse.c (cseBBlock): fixed bug #527779
10644         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
10645         ordering is immaterial.
10646         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
10647
10648 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10649
10650         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
10651         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
10652         (SIGSEV) of bug #840381
10653         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
10654         unlink new file before rename if new and old filenames are the same)
10655
10656 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10657
10658         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
10659         uninitialized variables) for the mcs51. Set environment variable
10660         SDCC_GENRAMCLEAR to test.
10661         xdata initialization slightly shorter
10662
10663 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10664
10665         * src/SDCCsymt.h,
10666         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
10667         #838241 & 780691 (basicly the same bug)
10668         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
10669         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
10670
10671 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
10672
10673         * src/SDCCmain.c (linkEdit): "fix" #834252
10674
10675 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10676
10677         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
10678         * src/SDCCast.h,
10679         * src/SDCC.y: fixed bug #819403
10680
10681 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10682
10683         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
10684         the reentrant attribute.
10685         * src/hc08/gen.c (genPackBits): added missing stack readjustment
10686         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
10687         simulation
10688         * src/SDCCast.c (decorateType): fixed bug with storage class not being
10689         updated during pointer dereference; f.e. ~(((char *)1)*) was being
10690         erroneously reduced to a literal.
10691         * src/hc08/ralloc.c (packRegisters, rematStr),
10692         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
10693         some cases
10694
10695 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10696
10697         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
10698         * doc/sdccman.lyx: changed from 'article' to 'book'
10699         * doc/Makefile: readded test_suite_spec and cdbfileformat
10700
10701 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
10702
10703         * device/include/stdlib.h: include malloc.h to comply with ANSI
10704         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
10705
10706 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10707
10708         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
10709         * doc/clean.mk: also remove *.out files
10710         * doc/sdccman.lyx: some additions, larger top/bottom margins
10711
10712 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10713
10714         * src/SDCC.y: fixed bug #837365
10715         * support/regression/tests/bitopcse.c
10716         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
10717         a symbol (might be valop instead)
10718         * device/lib/Makefile.in: added errno.c to HC08SOURCES
10719         * device/lib/clean.mk: added hc08 to the cleaning list
10720
10721 2003-11-04  Borut Razem <borut.razem AT siol.net>
10722
10723         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
10724           made 2003-11-04
10725         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10726           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
10727           malloc is declared in standard stdlib.h
10728
10729 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10730
10731         * device/lib/hc08/Makefile: need to clean .rel not .o files
10732         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
10733
10734 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10735
10736         * src/port.h,
10737         * src/hc08/main.c,
10738         * src/mcs51/main.c,
10739         * src/ds390/main.c,
10740         * src/z80/main.c,
10741         * src/avr/main.c,
10742         * src/pic/main.c,
10743         * src/pic16/main.c,
10744         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
10745         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
10746         tests (which uses the port's oclsExpense function)
10747         * src/SDCC.y,
10748         * src/SDCCast.c,
10749         * src/SDCCicode.c,
10750         * src/hc08/gen.c,
10751         * src/ds390/gen.c,
10752         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
10753
10754 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10755
10756         * src/SDCCcse.c (ifxOptimize),
10757         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
10758         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
10759         deleting the IFX iCode.
10760         * src/hc08/ralloc.c: reduced unneeded slocs
10761         * src/hc08/gen.c: fixed bug in asmopToBoolean
10762
10763 2003-11-04  Borut Razem <borut.razem AT siol.net>
10764
10765         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
10766           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
10767           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
10768           transferred to configure
10769
10770 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
10771
10772         Use headers defined in the C[++] standards:
10773         * sim/ucsim/gui.src/serio.src/fileio.cc
10774         * sim/ucsim/gui.src/serio.src/frontend.cc
10775         * sim/ucsim/gui.src/serio.src/main.cc
10776         * sim/ucsim/gui.src/serio.src/posix_signal.cc
10777         * support/Util/NewAlloc.c
10778         * as/hc08/lklibr.c
10779         * as/mcs51/lklibr.c
10780         * as/z80/aslist.c
10781         * as/z80/assym.c
10782
10783 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10784
10785         * Added MSVC projects for hc08 assembler and linker:
10786         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
10787         /as/hc08/link_hc08.dsp
10788
10789 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
10790
10791         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
10792
10793 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
10794
10795         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
10796
10797 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10798
10799         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
10800
10801 2003-10-31  Borut Razem <borut.razem AT siol.net>
10802
10803         * support/cpp2/cpplib.h,
10804           support/cpp2/cpplib.c,
10805           support/cpp2/cpplex.c,
10806           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
10807           to switch _asm block preprocessing on / off. Default is
10808           #pragma preproc_asm +
10809
10810 2003-10-31  Borut Razem <borut.razem AT siol.net>
10811
10812         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
10813           when outputting comment blocks (when executed with -C option) and
10814           _asm (SDCPP specific) blocks
10815
10816 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10817
10818         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
10819
10820 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
10821
10822         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
10823
10824 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
10825
10826         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
10827         * src/SDCCast.c (decorateType): fixed bug #832664
10828
10829 2003-10-31  Borut Razem <borut.razem AT siol.net>
10830
10831         * support/cpp2/cpplex.c: fixed for SDCPP:
10832           comments(when executed with -C option) and _asm blocks
10833           were included even if they where in skipped #if block.
10834           Applied solution from GCC cpp 3.3.2
10835
10836 2003-10-31  Borut Razem <borut.razem AT siol.net>
10837
10838         * src/SDCC.lex: sdcc now understands both formats:
10839           '# <line_number> <file_name>' and
10840           '#line <line_number> <file_name>'
10841         * support/cpp2/cppmain.c: sdcpp now generates the standard
10842           '# <line_number> <file_name>' instead of former
10843           '#line <line_number> <file_name>'
10844
10845 2003-10-30  Borut Razem <borut.razem AT siol.net>
10846
10847         * support/cpp2/cpphash.h,
10848         * support/cpp2/cpplib.h
10849         * support/cpp2/cpplex.c,
10850         * support/cpp2/cppmain.c,
10851         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
10852
10853 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10854
10855         Fixed a number of problems revealed by bug #827883.
10856         * src/SDCCloop.c (loopInvariants): Spill location of the
10857         result operand should be recomputed if extracted from
10858         a loop. Also, don't extract assignments of an iTemp
10859         from a literal.
10860         * src/SDCCast.c (isConformingBody): loop reversal should
10861         not occur if the control variable is involved with a
10862         relational operator.
10863
10864 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
10865
10866         * .version: bumped to 2.3.6 to reflect the big improvements
10867         made by Erik and Klaus. Thanks!
10868
10869 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
10870
10871         Replaced the livrange code.
10872         * src/SDCClrange.c: added new LR code
10873         * src/SDCCloop.c,
10874         * src/SDCCBBlock.h: removed remainig parts from old LR code
10875         * src/ds390/ralloc.c,
10876         * src/ds390/gen.c: minor fixes to make it work with new code
10877
10878 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10879
10880         * as/hc08/asm.h,
10881         * as/hc08/lkrloc.c,
10882         * src/hc08/gen.c,
10883         * src/hc08/ralloc.c: Fix various warnings related to the hc08
10884         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
10885         (tweaked fix for bug #818696)
10886
10887 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10888
10889         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
10890
10891 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10892
10893         * src/SDCCmain.c,
10894         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
10895         * src/mcs51/gen.c (gencjneshort),
10896         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
10897         more efficient (per Scott Bronson's suggestion)
10898
10899 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10900
10901         Extended the semantics of the critical keyword to include
10902         individual statements. See RFE #827755 and #799831
10903         * src/SDCC.y
10904         * src/SDCCicode.c
10905         * src/SDCCopt.c
10906         * src/SDCCast.c
10907         * support/Util/SDCCerr.c
10908         * support/Util/SDCCerr.h
10909         * src/mcs51/gen.c
10910         * src/ds390/gen.c
10911         * src/hc08/gen.c
10912
10913 2003-10-19  Borut Razem <borut.razem AT siol.net>
10914
10915         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
10916
10917 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10918
10919         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
10920         Fixed bug #818696
10921         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
10922         and predecrement operand is displayed
10923
10924 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10925
10926         * src/SDCCval.c (valMinus): fixed bug #826041
10927
10928 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10929
10930         Some hc08 related updates that I missed earlier
10931         * sim/ucsim/stypes.h
10932         * support/regression/ports/hc08/spec.mk
10933
10934 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10935
10936         New target "hc08" for the Motorola 68hc08 family of micros
10937
10938         * configure
10939         * configure.in
10940         * Makefile
10941         * src/hc08/*
10942         * src/SDCCmain.c
10943         * src/port.h
10944         * sim/ucsim/hc08.src/*
10945         * sim/ucsim/configure.in
10946         * src/ucsim/configure
10947         * sim/ucsim/packages_in.mk
10948         * as/hc08/*
10949         * as/Makefile
10950         * device/include/mc68hc908qy.h
10951         * device/lib/hc08/*
10952         * device/lib/Makefile.in
10953         * support/regression/ports/hc08/*
10954         * support/regression/Makefile
10955
10956 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10957
10958         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
10959         regression test
10960         * src/ds390/gen.c (genCast): fixed bug #821957
10961
10962 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
10963
10964         * device/lib/logf.c: "fixed" overlay bug
10965         * support/regression/ports/host/spec.mk: added m library
10966         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
10967         * support/regression/tests/float_trans: added (for Eric)
10968
10969 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
10970
10971         * src/mcs51/gen.c (genCpl): fixed bug
10972         http://sf.net/mailarchive/message.php?msg_id=6263915
10973
10974 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
10975
10976         * src/SDCCast.c (decorateType): added extended constant folding
10977         * src/SDCCsymt.c (computeType): cleanup
10978         * src/SDCCval.c (valShift): minor optimization
10979         * support/regression/tests/ast_constant_folding.c: added
10980
10981 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10982
10983         * src/SDCCmain.c: removed some unintended changes
10984
10985 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10986
10987         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
10988         * src/z80/gen.c: fixed part of bug #817589
10989         * src/SDCCsymt.c (checkFunction): fixed bug #817895
10990
10991 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
10992
10993         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
10994         * src/SDCCcflow.c
10995         * src/SDCCcse.c
10996         * src/SDCCdflow.c
10997         * src/SDCClabel.c
10998         * src/SDCClrange.c
10999         * src/SDCCmem.c
11000         * src/SDCCopt.c
11001         * src/SDCCpeeph.c
11002         * src/SDCCset.c
11003         * src/avr/ralloc.c
11004         * src/ds390/ralloc.c
11005         * src/izt/ralloc.c
11006         * src/mcs51/ralloc.c
11007         * src/pic/ralloc.c
11008         * src/pic16/ralloc.c
11009         * src/xa51/ralloc.c
11010         * src/z80/ralloc.c
11011         * src/z80/gen.c: removed unused label "release:"
11012
11013 2003-10-06  Borut Razem <borut.razem AT siol.net>
11014
11015         * src/SDCC.lex: removed definition of unused variables
11016           save_optimize and save_options
11017
11018 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
11019
11020         * clean.mk: removed '=' in "-maxdepth=1"
11021         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
11022         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
11023
11024 2003-10-06  Borut Razem <borut.razem AT siol.net>
11025
11026         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
11027           my_unput() replaced by unput()
11028
11029 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
11030
11031         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
11032         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
11033         type-punned pointer will break strict-aliasing rules"
11034         Old LR behaviour is again default; Klaus' LR can be choosen by
11035         defining the environment variable LRKLAUS
11036         * src/SDCCBBlock.h
11037         * src/SDCCloop.c
11038         * src/SDCClrange.c
11039         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
11040         * clean.mk: fixed removal of files in bin/CVS/
11041         * device/lib/clean.mk: fixed removal of directories small and large
11042         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
11043         * src/SDCCicode.c,
11044         * src/SDCCval.c: removed superflous test for pedantic
11045
11046 2003-10-05  Borut Razem <borut.razem AT siol.net>
11047
11048         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
11049           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
11050           message "unmatched #pragma SAVE and #pragma RESTORE"
11051
11052 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11053
11054         * doc/sdccman.lyx: various additions and updates (interrupts, inline
11055           assembly, critical functions, atomic, nojtbound)
11056
11057 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
11058
11059         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
11060         * src/SDCCBBlock.h
11061         * src/SDCCloop.c
11062         * src/SDCCloop.h
11063         * src/SDCClrange.c
11064
11065 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11066
11067         * src/z80/gen.h,
11068         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11069         * src/mcs51/gen.h
11070         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11071         * src/ds390/gen.h
11072         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
11073         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
11074         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
11075
11076 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11077
11078         * src/z80/gen.c (genRet): fixed bug #524753
11079         * src/z80/gen.c (genCast): fixed internal error on cast from
11080         pointer to long
11081         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
11082         fix for bug #477835 to the z80
11083         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
11084         for tracking iCodes in the peephole optimizer for z80
11085
11086 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11087
11088         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
11089         the other part of bug #814548
11090         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
11091
11092 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
11093
11094         * src/SDCCcse.c: fixed part of bug #814548
11095
11096 2003-09-28  Borut Razem <borut.razem AT siol.net>
11097
11098         * src/asm.c: rewrite of printILine() to use temporary file instead
11099           a pipe
11100         * src/xa51/main.c: commented out declaration of int rewinds
11101
11102 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11103
11104         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
11105
11106 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11107
11108         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
11109         * src/asm.c (printILine): Fixed bug #811015
11110
11111 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11112
11113         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
11114         freeing.
11115
11116 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11117
11118         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
11119         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
11120         to correctly handle general case of AOP_PAIRPTR
11121         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
11122
11123 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11124
11125         * src/mcs51/ralloc.c (fillGaps),
11126         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
11127         register positioning bug)
11128
11129 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
11130
11131         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
11132
11133 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11134
11135         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
11136         genCodePointerGet, genGenPointerGet, genFarPointerSet,
11137         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
11138         (ralloc doesn't intentionally do this now, but perhaps later)
11139         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
11140         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
11141         register positioning bugs (Fixed bug #762602 and #795325)
11142         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
11143         (Fixed bug #808779)
11144         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
11145         lines that --i-code-in-asm generates
11146
11147 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11148
11149         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
11150         trying to fclose a FILE* that was already closed.
11151
11152 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11153
11154         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
11155         of const struct should be treated as if const themselves)
11156
11157 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
11158
11159         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
11160
11161 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11162
11163         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
11164         Unix (/n) and DOS (/r/n) line terminations.
11165
11166 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11167
11168         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
11169         bug #613775
11170
11171 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11172
11173         * src/mcs51/gen.c (genFunction, genEndFunction),
11174         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
11175         and restore of EA so that stack offsets to parameters are
11176         correct when using both critical and reentrant/stack-auto.
11177         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
11178         size (can be triggered in error if sloc is shared between
11179         different sized objects)
11180         * device/include/float.h: fixed macros to explicitly use
11181         unsigned long where needed
11182
11183 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
11184
11185         Feature req. 799831: added code to allow nesting of critical functions
11186         * src/mcs51/gen.c (genFunction, genEndFunction)
11187         * src/ds390/gen.c (genFunction, genEndFunction)
11188
11189 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11190
11191         * src/SDCCsymt.c (sclsFromPtr),
11192         * src/SDCCsymt.h,
11193         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
11194         support for standard C idiom of memory mapped variables; for
11195         example, *((xdata int*)0x1234) = 1 is now internally equivalent
11196         to xdata int at 0x1234 tempvar = 1.
11197         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
11198         provided by Akiya ISHIDA
11199
11200 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
11201
11202         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
11203         * src/SDCCval.c (constVal): added reduction from int to char
11204         * src/SDCCval.c (valMult, valDiv): fixed sign handling
11205         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
11206         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
11207         to ignore the sign
11208         * support/regression/tests/shifts.c: fixed
11209
11210 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11211
11212         * src/z80/gen.c (genXor): Fixed bug #805445
11213
11214 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11215
11216         Fixed bug #621531 (const & volatile confusion in the type chain).
11217         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
11218         refer to the const or volatile state of the pointer itself.
11219
11220         * src/SDCCast.c
11221         * src/SDCCglue.c
11222         * src/SDCCicode.c
11223         * src/SDCCsymt.c
11224         * src/SDCCval.c
11225         * src/SDCC.y
11226         * src/SDCCsymt.h
11227         * src/pic/gen.c
11228         * src/pic/ralloc.c
11229         * src/pic16/gen.c
11230         * src/pic16/ralloc.c
11231         * support/regression/tests/const.c
11232
11233 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11234
11235         When checking for duplicated modules, use absolute paths
11236         instead of relative paths.  Files changed:
11237
11238         * as/mcs51/lklib.c
11239         * link/z80/lklib.c
11240
11241 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11242
11243         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
11244
11245 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11246
11247         * device/include/string.h: added size_t typedef, changed
11248         prototypes to use size_t, eliminated separate reentrant and
11249         non-reentrant declarations, added _memmove declaration
11250         * device/lib/_memcpy.c: changed to use size_t instead of int,
11251         changed /4 to >>2 to avoid division library call
11252         * device/lib/_memcmp.c,
11253         * device/lib/_memset.c,
11254         * device/lib/_strncat.c,
11255         * device/lib/_strncpy.c,
11256         * device/lib/_strncmp.c: changed to use size_t instead of int
11257         * device/lib/_memmove.c: new file (fixed bug #772294)
11258         * device/lib/Makefile.in: added _memmove.c
11259         * device/lib/z80/asm_strings.s: fixed bug #772290
11260         * support/regression/tests/bitfields.c: attempt to fix host assertion
11261         failure on amd64-unknown-linux2.2
11262
11263 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11264
11265         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
11266         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
11267         * as/z80/asmain.c (main): fixed bug #801766
11268
11269 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
11270
11271         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
11272         compilers
11273
11274 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11275
11276         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
11277         reported in bug #800609
11278
11279 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
11280
11281         * Top header beautifications in src/pic16 directory:
11282           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
11283           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
11284           pcoderegs.h, ralloc.c, ralloc.h
11285         * main.c: added top header and GPL license notice
11286         * pcode.c: fixed the if-conditional warning
11287
11288 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
11289
11290         * device/lib/_mullong.c: replaced int by short for gcc
11291
11292 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11293
11294         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
11295         and JUMPTABLE iCodes properly now (worked by accident before)
11296         * src/mcs51/gen.c (leftRightUseAcc),
11297         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
11298         iCode properly now. Use getSize instead of nRegs since a & b
11299         aren't part of the nRegs tally.
11300
11301 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
11302
11303         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
11304         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
11305           before instructions that use the _STATUS register
11306
11307 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
11308
11309         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
11310         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
11311         fetching of the pointer
11312         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
11313         copied from genNearPointerSet()
11314         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
11315         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
11316         If they pop r0/r1 they must be called in the opposite order than aopOp().
11317         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
11318         (resp. --stack-auto), prepared for --xstack
11319
11320 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11321
11322         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
11323
11324 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11325
11326         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
11327         these ports have their own __sdcc_external_start()
11328
11329 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
11330
11331         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11332         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
11333         type for bits was changed. It resulted in bit variables becoming
11334         global, which is not permitted in PIC 14 assembly output.
11335
11336 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11337
11338         * doc/sdccman.lyx: various additions and updates. Rearranged sections
11339
11340 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11341
11342         Z80 and MCS51 linkers complaint if a public symbol is defined
11343         in more than one library module:
11344
11345         * as/mcs51/lklib.c
11346         * link/z80/lklib.c
11347         * as/mcs51/Makefile.in
11348
11349 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11350
11351         A few small changes that speed up the peephole optimizer.
11352
11353         * src/SDCCpeeph.c
11354
11355 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11356
11357         Try to make the peephole optimizer smarter by maintaining
11358         an association between the assembly source code and the
11359         iCodes that originated them. Put this information to use
11360         with a new peephole rule condition "notVolatile" so that
11361         the rules can be aggressive yet still safe.
11362
11363         * src/SDCCpeeph.c
11364         * src/SDCCpeeph.h
11365         * src/mcs51/gen.c
11366         * src/mcs51/peeph.def
11367
11368 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11369
11370         Fixed bug #741761
11371
11372         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
11373         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
11374         if the left or right operand symbols have the accuse flag set.
11375
11376 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11377
11378         Changed the type of the result of the ! (NOT) operator to char;
11379         previously it returned the same type as the source. This allows
11380         us to eliminate all the genFloatNot functions (all of its target
11381         implementations were very buggy) since !float can use the same
11382         code as !long now.
11383
11384         * src/SDCCicode.c (ast2iCode): ! returns char
11385         * src/mcs51/gen.c (genNot, genNotFloat),
11386         * src/ds390/gen.c (genNot, genNotFloat),
11387         * src/z80/gen.c (genNot, genNotFloat),
11388         * src/pic/gen.c (genNot, genNotFloat),
11389         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
11390
11391 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
11392
11393         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
11394         1. Interrupt would not compile properly. Ensure PCLATH register is saved
11395            during interrupts. Ensure WSAVE is located at a shared bank address.
11396         2. Fixed page selection in some places
11397         3. Fixed BTFSS/C to where necessary use registers directly and not simply
11398            the registers name strings.
11399         4. Fixed "signed / unsigned compare" compiler warnings.
11400         5. The PIC port manages its own allocation of the general purpose
11401            registers, but makes no attempt to reuse them. As a result when
11402            compiling it soon runs out of general purpose registers. Some
11403            additional code was added to the files pcode.c and device.c to walk
11404            through the function call tree and rename the registers so that they
11405            get reused.
11406
11407         * src/pic/device.c
11408         * src/pic/gen.c
11409         * src/pic/glue.c
11410         * src/pic/pcode.c
11411         * src/pic/pcode.h
11412         * src/pic/ralloc.c
11413         * src/pic/ralloc.h
11414         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
11415         genPlus() & genMinus() when the result is the same as left or right
11416
11417 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11418
11419         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
11420
11421 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11422
11423         Made bitfield a distinct type from bit so that bitfields
11424         convert as per ANSI C and bits retain their traditional
11425         boolean style behaviour. Implemented bitfield support in
11426         the z80 port.
11427
11428         * src/SDCCsymt.h,
11429         * src/SDCCsymt.c,
11430         * src/SDCCast.c,
11431         * src/cdbFile.c,
11432         * src/mcs51/gen.c,
11433         * src/ds390/gen.c: bit v bitfield split
11434         * src/z80/gen.c: New support for bitfields
11435         * support/regression/tests/bitfields.c: reenabled z80,
11436         added more tests
11437
11438 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11439
11440         Rules 246.x, 247.x relate to bitfields, the others speed up
11441         access to xdata mapped I/O devices.
11442
11443         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
11444
11445 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11446
11447         Cleaned up genPackBits and genUnpackBits and added two helper
11448         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
11449         for literal assignments in genPackBits (thanks to Frieder for
11450         reminding me).
11451
11452         * src/mcs51/gen.c
11453         * src/ds390/gen.c
11454
11455 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11456
11457         Fixed bug #748310 (pointer to function type mishandled when the
11458         function name is omitted). Also fixed a SIGSEGV when a function
11459         attribute (reentrant, etc) is used on a non-function or on a
11460         function but misplaced before the parameter list.
11461
11462         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
11463         bug #748310
11464         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
11465         * support/Util/SDCCerr.h,
11466         * support/Util/SDCCerr.c: Added func attr misuse error msg
11467
11468 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11469
11470         Fixed bug #787649 by anonymous
11471         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
11472         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
11473
11474 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11475
11476         Fixed numerous bitfield problems.
11477
11478         * src/SDCC.y: More bitfield related error checking
11479         * src/SDCCsymt.h,
11480         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
11481         * support/Util/SDCCerr.h,
11482         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
11483         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11484         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
11485         * support/regression/tests/bitfields.c: tests added
11486
11487 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11488
11489         Made the constant following the "interrupt" keyword optional. If
11490         omitted, the function will not automatically be given an entry
11491         in the interrupt vector table (similar to #pragma NOIV, but
11492         less syntacticly kludgy). The interrupt number is also now
11493         range checked. Also fixed a bug in the high order bit example
11494         in the manual.
11495
11496         * src/SDCC.y
11497         * src/SDCCmem.c
11498         * src/SDCCglue.c
11499         * src/SDCCsymt.h
11500         * support/Util/SDCCerr.c
11501         * support/Util/SDCCerr.h
11502         * doc/sdccman.lyx
11503
11504 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
11505
11506         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
11507         * src/SDCCicode.c (operandOperation): rewritten some ops
11508         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
11509         * src/SDCCsymt.c (computeType): literals are handled the same way as any
11510         other type
11511         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
11512         be re-activated by defining REDUCE_LITERALS)
11513         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
11514         unsigned, but are signed by default
11515         * src/SDCCval.c (constVal): rearranged
11516         * src/SDCCval.c (valMod): preliminary fix
11517         * src/SDCCval.c (valCastLiteral): use TYPE_* types
11518         * support/regression/literalop.c: added, work in progress
11519
11520 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11521
11522         Generate warnings for useless declarations like "char data;"
11523         that don't do what new users expect.
11524
11525         * src/SDCC.y
11526         * support/Util/SDCCerr.h
11527         * support/Util/SDCCerr.c
11528
11529 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
11530
11531         * src/SDCCval.c (valMult): fix overflow detection of negative int
11532
11533 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11534
11535         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
11536
11537         Changes to support big endian targets:
11538
11539         * src/ports.h
11540         * src/SDCCglue.c
11541         * src/avr/main.c
11542         * src/ds390/main.c
11543         * src/izt/i186.c
11544         * src/mcs51/main.c
11545         * src/pic/main.c
11546         * src/pic16/main.c
11547         * src/xa51/main.c
11548         * src/z80/main.c
11549
11550 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
11551
11552         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
11553         * device/lib/time.c: fixed warning "integer overflow in expression"
11554
11555 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
11556
11557         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
11558         * src/SDCCval.c (constVal): changed default to signed; hex and octal
11559         constants are unsigned; added recognition of "u" flag for unsigned
11560         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
11561         * src/SDCCval.c (valDiv, valMod): fixed signdness
11562         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
11563         signedness of modulo, left and right shift
11564         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
11565         * support/Util/SDCCerr.h: added warning W_INT_OVL
11566         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
11567         * src/SDCCast.c (ast_print): improved output of constants
11568
11569 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11570
11571         Fixed some warnings when building with MSVC:
11572
11573         * as/mcs51/asdata.c
11574         * as/z80/asdata.c
11575         * as/mcs51/asm.h
11576         * as/z80/asm.h
11577         * link/z80/aslink.h
11578         * link/z80/lkdata.c
11579         * link/z80/lkeval.c
11580         * link/z80/lkgb.c
11581         * link/z80/lkihx.c
11582         * link/z80/lks19.c
11583         * link/z80/lksym.c
11584         * support/cpp2/cpplib.c
11585         * src/ds390/gen.c
11586         * src/mcs51/gen.c
11587
11588 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
11589
11590         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
11591
11592 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11593
11594         * support/librarian/clean.mk: Do not remove Makefile.
11595         * support/librarian/Makefile: added.
11596
11597 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11598
11599         Added librarian to MSVC build:
11600         * all.dsp
11601         * sdcc.dsw
11602         * support/librarian/librarian.dsp
11603
11604         'configure' not needed for librarian, removed:
11605         * support/librarian/configure
11606         * support/librarian/configure.in
11607         * support/librarian/config_in.h
11608         * support/librarian/Makefile.in
11609
11610         Hopefully these ones built the librarian and the rest of sdcc properly:
11611         * Makefile
11612         * Makefile.common.in
11613
11614         Messed up 'configure', so revert to previous version:
11615         * configure
11616         * configure.in
11617
11618 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
11619
11620         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
11621         there, while the mantissa of a double is "only" 53 bits wide.
11622
11623 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11624
11625         Adding sdcclib to the build.  MSVC project coming soon.
11626         Files added/changed:
11627
11628         * support/librarian/clean.mk
11629         * support/librarian/configure
11630         * support/librarian/configure.in
11631         * support/librarian/config_in.h
11632         * support/librarian/Makefile.bcc
11633         * support/librarian/Makefile.in
11634         * support/librarian/sdcclib.c
11635         * Makefile.bcc
11636         * Makefile
11637         * Makefile.common.in
11638         * configure
11639         * configure.in
11640
11641 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11642
11643         Linker now complaints if linked modules have conflicting options, for
11644         example, one compiled using --model-large and another one compiled with
11645         --model-small.  The following files were modified:
11646
11647         * as/mcs51/asdata.c
11648         * as/mcs51/aslink.h
11649         * as/mcs51/asm.h
11650         * as/mcs51/asmain.c
11651         * as/mcs51/asout.c
11652         * as/mcs51/i51pst.c
11653         * as/mcs51/lkdata.c
11654         * as/mcs51/lklibr.c
11655         * as/mcs51/lkmain.c
11656         * as/z80/asdata.c
11657         * as/z80/asm.h
11658         * as/z80/asmain.c
11659         * as/z80/asout.c
11660         * as/z80/z80pst.c
11661         * link/z80/aslink.h
11662         * link/z80/lkdata.c
11663         * link/z80/lklibr.c
11664         * link/z80/lkmain.c
11665         * src/SDCCglue.c
11666
11667 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11668
11669         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
11670         as/mcs51/lklibr.c: Generate a warning when a library is not found.
11671
11672 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
11673
11674         * src/z80/mappings.i: fix _mul[us][int,long] entries
11675
11676 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11677
11678         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
11679
11680 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11681
11682         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
11683         * support/regression/tests/bitopcse.c: added
11684         fixed warning:
11685         * src/avr/gen.c:
11686         * src/pic/gen.c:
11687         * src/pic16/gen.c:
11688         * src/z80/gen.c:
11689         * src/xa51/gen.c:
11690
11691 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11692
11693         added support for new library format to z80, gbz80 linkers:
11694         *link/z80/aslink.h
11695         *link/z80/lklex.c
11696         *link/z80/lklib.c
11697         *link/z80/lklist.c
11698
11699 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
11700
11701         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
11702         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
11703
11704 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
11705
11706         added DUMMY_READ_VOLATILE:
11707         * src/SDCC.y:
11708         * src/avr/gen.c:
11709         * src/xa51/gen.c:
11710         * src/z80/gen.c:
11711         * src/pic/gen.c:
11712         * src/pic16/gen.c:
11713         * src/mcs51/gen.c:
11714         * src/ds390/gen.c:
11715         * src/SDCCcse.c (algebraicOpts): many improvements
11716         * src/SDCCcse.h: removed algebraicOpts()
11717         * src/SDCCicode.c (picDummyRead): added
11718
11719 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11720
11721         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
11722         "Insufficient space in data memory".
11723
11724 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11725
11726         * src/mcs51/gen.c: fixed bug #771358
11727         * src/z80/gen.c: fixed bug #759087
11728
11729 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
11730
11731         * src/pic16/glue.c: minor cleanup by Vangelis
11732
11733 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11734
11735         * device/include/regc515c.h: fixed #758477
11736         * device/lib/_gptrget.c: saving some cycles in generic pointer get
11737         * device/lib/_gptrput.c: saved a few bytes
11738         * my tab spacing is 8, yours too?)
11739         * device/lib/_ser.c: process RX bytes earlier than TX bytes
11740         * device/lib/serial.c: process RX bytes earlier than TX bytes
11741         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
11742
11743 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11744
11745         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
11746
11747 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11748
11749     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
11750
11751 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
11752
11753         * device/lib/Makefile.in: bad fix, reverted to 1.43
11754
11755 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
11756
11757         * device/lib/Makefile.in: added missing z80 object files
11758
11759 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
11760
11761         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
11762         pic16 progress by Vangelis:
11763         * src/SDCCglobl.h:
11764         * src/SDCCmain.c:
11765         * src/pic/Makefile:
11766         * src/pic:
11767         * pic/Makefile:
11768         * pic16/device.c:
11769         * pic16/device.h:
11770         * pic16/gen.c:
11771         * pic16/gen.h:
11772         * pic16/genarith.c:
11773         * pic16/glue.c:
11774         * pic16/main.c:
11775         * pic16/pcode.c:
11776         * pic16/pcode.h:
11777         * pic16/pcodepeep.c:
11778         * pic16/peeph.def:
11779
11780 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11781
11782     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
11783
11784 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11785
11786     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
11787     added gbz80 build to MSVC project.
11788     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
11789     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
11790     from 8051 stuff and setup so it links using a .lnk file.
11791
11792 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11793
11794     * support/librarian/sdcclib.c: sdcc librarian.
11795     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
11796     with sdcclib.
11797
11798 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11799
11800     * as/mcs51/lkmain.c: properly handle extensions in function afile.
11801
11802 2003-07-02  Borut Razem <borut.razem AT siol.net>
11803
11804         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
11805         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
11806         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
11807         src/xa51/main.c, src/z80/main.c:
11808         virtualization of glue() function: each port has it's own glue function,
11809         which is accessed by do_glue function pointer in PORT.general structure
11810
11811 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
11812
11813         * DS800C400 fun, improved ROM interface and tinibios.
11814
11815 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
11816
11817         * More support for DS80C400. Now includes beginning of interface to ROM.
11818
11819 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
11820
11821         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
11822
11823 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11824
11825         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
11826
11827 2003-06-19  Borut Razem <borut.razem AT siol.net>
11828
11829         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
11830
11831 2003-06-19  Borut Razem <borut.razem AT siol.net>
11832
11833         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
11834         fixed Z80 port - crt0.o: cannot open.
11835
11836 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
11837
11838         * support/Util/MySystem.c (merge_command): revert bad fix
11839
11840 2003-06-18  Borut Razem <borut.razem AT siol.net>
11841
11842         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
11843
11844 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11845
11846         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11847         option --use-stdout sends errors to stdout instead of stderr.
11848
11849 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
11850
11851         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
11852
11853 2003-06-15  Borut Razem <borut.razem AT siol.net>
11854
11855         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
11856         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
11857         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
11858         fixed width array of pointers replaced with sets;
11859         multiple include and lib paths ared transferred to preprocessor and linker
11860         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
11861         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
11862         fixed width array of pointers
11863         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
11864         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
11865         fixupPath(), getPathDifference()
11866         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
11867         fixed width array of pointers
11868
11869 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
11870
11871         * src/pic16/ralloc.c: fix warnings
11872         * src/pic16/pcode.c: fix warning
11873
11874 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
11875
11876          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
11877         know all the details, but essentially this set of changes enable
11878         the pic16 port to generate movff instructions and generate assembler
11879         directives,
11880         * src/SDCCmain.c:
11881         * src/pic16/gen.c:
11882         * src/pic16/glue.c:
11883         * src/pic16/pcode.c:
11884         * src/pic16/device.c:
11885         * src/pic16/main.c:
11886         * src/pic16/pcode.h:
11887         * src/pic16/pcoderegs.c:
11888         * src/pic16/ralloc.c:
11889         * src/pic16/ralloc.h:
11890
11891 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11892
11893         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
11894         added option --vc, so sdcc errors and warnings are compatible with
11895         Microsoft Visual Studio.
11896
11897 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11898
11899         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
11900           device/lib/libfloat.lib: added atof function.
11901
11902 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
11903
11904         * doc/sdccman.lyx: updated to Lyx 1.3
11905         * doc/cdbfileformat.lyx: updated to Lyx 1.3
11906         * doc/test_suite_spec.lyx: updated to Lyx 1.3
11907         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
11908
11909 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
11910
11911         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
11912
11913 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11914
11915         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
11916           additions to the "related tools/documentation" section
11917
11918 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
11919
11920         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
11921
11922 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
11923
11924         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
11925         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
11926
11927 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
11928
11929         * doc/sdccman.lyx: fix double dash and other minor things
11930         * doc/Makefile: fix double dash
11931
11932 2003-05-28  Karl Bongers(patches from Martin Helmling)
11933         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
11934           condition and ignore commands.
11935
11936 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11937
11938         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
11939           is in parts still quite out of date, I did changes as far as I felt makes sense
11940           for a non-native english speaker.
11941           Please feel free to add to the manual or to correct my changes.
11942         * doc/Makefile: undid touching the date of intermediate tex files.
11943
11944 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11945
11946         * doc/sdccman.lyx: Manual has an index now
11947
11948 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
11949
11950         Finalize muluint/mulsint and mululong/mulslong merging:
11951         * device/lib/_mulint.c
11952         * device/lib/_mullong.c
11953         * device/lib/gbz80/mul.s
11954         * device/lib/gbz80/stubs.s
11955         * device/lib/z80/mul.s
11956         * device/lib/z80/stubs.s
11957         * src/SDCCsymt.c (initCSupport)
11958
11959 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11960
11961         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
11962         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
11963           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
11964           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
11965           instead of /Zm500.
11966
11967 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11968
11969         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
11970           the regression tests I'm not brave enough to enable 245.b, 245.c
11971         * doc/sdccman.lyx: added latex preamble for hyperref package.
11972           Using pdflatex this will give you a hyperlinked pdf file with
11973           bookmarks. (prepend '%' before /usepackage if this breaks something)
11974
11975 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11976
11977          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
11978
11979 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
11980
11981         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
11982
11983 2003-05-21    <johan AT balder>
11984
11985         * src/SDCCglue.c (printIval): fixed bug #739934
11986
11987 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
11988
11989         Applied patch from bug 737905 (renamed yylineo to mylineno):
11990         * src/altlex.c
11991         * src/SDCCast.c
11992         * src/SDCglobl.h
11993         * src/SDCC.lex
11994         * src/SDCCsymt.c
11995         * src/SDCCval.c
11996         * src/pic16/pcode.c: Cleaned warnings
11997         * src/pic16/pcodeflow.c: Cleaned warnings
11998         * src/pic16/pcoderegs.c: Cleaned warnings
11999
12000 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
12001
12002         * src/pic16/pcode.c: Cleaned warnings
12003         * src/pic16/pcodepeep.c: Cleaned warnings
12004         * src/pic16/ralloc.c: Cleaned warnings
12005
12006 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
12007
12008         * doc/sdccman.lyx: fixed bug 739745
12009         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
12010
12011 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
12012
12013         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
12014         it can be defined with CFLAGS when running configure
12015         * src/SDCCmain.c: fixed compiling + linking with object files
12016
12017 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
12018
12019         * configure.in: configure for pic16 port,
12020             added --disable-pic16-port
12021         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
12022         * src/SDCCmain.c: linkOptions is changed to set *,
12023             added if/endif conditional macros to remove options help
12024             messages from optionsTable when a port is not configured, added
12025             support for the PIc16 port in the ports table, when executing
12026             the compiler with no port specified on command line, a default
12027             port is selected with the new macro DEFAULT_PORT which is
12028             defined in port.h, in setDefaultOptions() linkOptions is removed
12029             from initialization assignment, since now it is a set,
12030             parseCmdLine uses setParseWithComma for linkOptions, in
12031             linkEdit() linkOptions are accessed with new function indexSet()
12032             which returns the i'th item of a set variable. See SDCCset.c, in
12033             linkEdit() when calling buildCmdLine(), added linkOptions as
12034             last argument. Now users can pass arguments to gplink via the
12035             -Wl option, main() uses pic16glue() to glue up pic16 programs
12036         * src/SDCCpeeph.c: various changes to support pic16
12037         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
12038             return the i'th item of the set
12039         * src/SDCCset.h: added function prototype for indexSet()
12040         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
12041         * src/clean.mk: added pic16 in CLEANALLPORTS variable
12042         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
12043             added macro DEFAULT_PORT
12044         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
12045         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
12046             generated
12047         * src/pic16/glue.c: commented out some error producing lines
12048         * src/pic16/main.c: __config directives are commented out to stop
12049             gpasm complaining and test the linkage with gplink, _linkCmd and
12050             _asmCmd changed to be more gplink and gpasm friendly
12051         * src/pic16/peeph.def: peep rule 3 is commented out, since it
12052             produced an error when parsed, peep rule 12 is added to utilize
12053             movff, but it is commented out since the pCode does not support
12054             yet a command with 2 address arguments
12055
12056 2003-05-18    <johan AT balder>
12057
12058         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12059         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
12060 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
12061
12062         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
12063   Added feature to script commands from file.
12064
12065 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
12066
12067         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
12068         * src/SDCCutil.c: include ctype.h for win32
12069
12070 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
12071
12072         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
12073
12074 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
12075
12076         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
12077   Fixed so you can set breakpoints prior to run, run does not stop
12078   on entry now.  Add tbreak.  Other enhancements and fixes for use
12079   with ddd.
12080
12081 2003-05-12  Borut Razem <borut.razem AT siol.net>
12082
12083         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
12084
12085 2003-05-11  Borut Razem <borut.razem AT siol.net>
12086
12087         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
12088         the path of bin directory, so that PATH is the only env. variable, which has to be set
12089         in case of standard installation.
12090         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
12091         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
12092         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
12093
12094 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12095
12096         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
12097         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
12098         temp files are in the port dir; clean the gen/test directory when
12099         generating new test.c
12100         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
12101         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
12102         * support/regression/tests/zeropad.c: added
12103
12104 2003-05-09    <johan AT balder>
12105
12106         * src/SDCCglue.c: fixed bug #597940
12107
12108 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
12109
12110         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12111   cache sfr, optimize next,step, fix off by one sourceline,
12112   support ddd list function.
12113         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
12114
12115 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
12116
12117         * support/regression/HTMLgen.py: added compare_s2f()
12118         * support/regression/Makefile: redo 1.27
12119         * support/regression/generate-cases.py: redo 1.5
12120
12121 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
12122
12123         * support/regression/tests/float.c: workaround 33 bit hex constant
12124         * support/regression/tests/simplefloat.c: fix division for host
12125
12126 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
12127
12128         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
12129         that tame's the PIC's over-aggressive optimizer.
12130
12131 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12132
12133          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
12134          support for MSVC.
12135
12136 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
12137
12138         Initial support for DS80C400. "Hello world" runs on TINIm400
12139         (with polled I/O).
12140
12141 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
12142
12143          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
12144          * Some notes on ddd usage added in debugger/README
12145          Martin Helmling adding more features and fixes for ddd GUI debugger.
12146          Code added for nexti, stepi, up, down, and other adjustments.
12147
12148 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
12149
12150         * src/pic/pCodepeep.c non-wildcard asmops are now handled
12151         * src/pic/peeph.def Added two rules to optimize carry manipulation
12152         * src/pic/* removed debug printfs
12153
12154 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
12155
12156         * debugger/mcs51/cmd.c: added header newalloc.h
12157
12158 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
12159
12160         * as/Makefile: new EXEEXT
12161         * as/z80/Makefile: remove trailing slash of BUILDIR
12162         * as/z80/clean.mk: new EXEEXT
12163         * Makefile.common.in: add to CFLAGS (and others), don't replace it
12164         * support/cpp2/Makefile.in: new EXEEXT
12165         * src/pic/glue.c (pic14emitRegularMap): fixed warning
12166
12167 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
12168
12169         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
12170         EXEEXT was introduced to fix all related problems with targets
12171         "clean", "install" and "uninstall"; a couple of further flaws
12172         especially with "clean" have been fixed too
12173         * as/mcs51/Makefile.in
12174         * as/mcs51/clean.mk
12175         * as/z80/Makefile
12176         * Makefile
12177         * clean.mk
12178         * debugger/mcs51/Makefile.in
12179         * debugger/mcs51/clean.mk
12180         * link/z80/Makefile
12181         * link/z80/Makefile.in
12182         * link/z80/clean.mk
12183         * link/Makefile
12184         * packihx/Makefile.in
12185         * packihx/clean.mk
12186         * sim/ucsim/Makefile
12187         * sim/ucsim/clean.mk
12188         * sim/ucsim/avr.src/Makefile.in
12189         * sim/ucsim/avr.src/clean.mk
12190         * sim/ucsim/s51.src/Makefile.in
12191         * sim/ucsim/s51.src/clean.mk
12192         * sim/ucsim/xa.src/Makefile.in
12193         * sim/ucsim/xa.src/clean.mk
12194         * sim/ucsim/z80.src/Makefile.in
12195         * sim/ucsim/z80.src/clean.mk
12196         * sim/ucsim/main_in.mk
12197         * sim/ucsim/packages_in.mk
12198         * sim/ucsim/gui.src/Makefile.in
12199         * sim/ucsim/gui.src/serio.src/Makefile.in
12200         * sim/ucsim/gui.src/serio.src/clean.mk
12201         * src/Makefile.in
12202         * src/clean.mk
12203         * support/cpp2/Makefile.in
12204         * support/cpp2/clean.mk
12205         * support/makebin/Makefile
12206         * support/makebin/clean.mk
12207         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
12208         * doc/sdccman.lyx: --program-suffix no longer needed
12209
12210 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
12211
12212          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
12213          Martin Helmling added support for ddd GUI debugger.
12214          Code added to display assembly, set variables, and other commands
12215          to interface to ddd.
12216
12217 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
12218
12219         * as/Makefile: fix target clean
12220         * as/clean.mk: fix target clean
12221         * as/z80/clean.mk: fix target clean
12222
12223 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
12224
12225         * Makefile.common.in: added  AT EXEEXT AT
12226         * configure.in: removed all mingw32 stuff
12227         * configure: rebuilt from configure.in
12228         * doc/sdccman.lyx: updated section "installation"
12229         * support/scripts/sdcc_mingw32: adapted to configure
12230         * support/scripts/sdcc_cygwin_mingw32: added
12231
12232 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
12233
12234         * src/pic Added object file support for the PIC port
12235         * src/pic Applied patch from Craig Franklin (this started the object file support)
12236         * src/regression Updated the PIC regression tests for object files
12237
12238 2003-04-20  Borut Razem <borut.razem AT siol.net>
12239
12240         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
12241           lklex.c: In function `getfid':
12242           lklex.c:203: warning: array subscript has type `char'
12243         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
12244           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
12245         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
12246           stack handling macros
12247
12248 2003-04-19  Borut Razem <borut.razem AT siol.net>
12249
12250         * "handling space characters in file path" task:
12251         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
12252         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
12253         * support/Util/MySystem.h: make it self-sufficient
12254         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
12255           src/z80/main.c, sdcc/as/mcs51/lklex.c:
12256           handling space characters in file path
12257         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
12258           (it will be used by assemblers, which have their own includes, e.g. gpasm)
12259         * support/Util/MySystem.c: handling space characters in executable's path
12260
12261 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
12262
12263         * as/z80/Makefile: fix permanent rebuild of z80
12264         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
12265         * support/regression/tests/bitfields.c: added Johan's bitfields.c
12266
12267 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
12268
12269         * src/SDCCopt.c: add special case optimization to replace modulo by
12270           a power of two with a bitwise AND.
12271
12272 2003-04-18    <johan AT balder>
12273
12274         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
12275
12276 2003-04-17    <johan AT balder>
12277
12278         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
12279         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
12280
12281 2003-04-13  Borut Razem <borut.razem AT siol.net>
12282
12283         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
12284         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
12285           fixed mingw problem in adl_NORMALIZE_PATH
12286
12287 2003-04-12  Borut Razem <borut.razem AT siol.net>
12288
12289         * fixed "#pragma SAVE/RESTORE can not be nested":
12290         * src/SDCC.lex: reworked pragma handling functions
12291         * sdcc/src/SDCCglobl.h: reworked stack handling macros
12292         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
12293
12294 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12295
12296         * src/SDCCutil.c (pathEquivalent): defined but not used
12297         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
12298         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
12299         * configure: rebuilt from configure.in
12300         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12301         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
12302         * device/include/Makefile.in: replace sdcc_datadir
12303         * device/lib/Makefile.in: replace sdcc_datadir
12304         * Makefile.common.in: add LDFLAGS from configure
12305         * packihx/Makefile.in: use LDFLAGS
12306         * src/Makefile.in: use LDFLAGS
12307         * support/cpp2/Makefile.in: add LDFLAGS from configure
12308         * support/makebin/Makefile: use LDFLAGS
12309         * .version: bumped version number to 2.3.5
12310
12311 2003-04-12  Borut Razem <borut.razem AT siol.net>
12312
12313         * completed "different paths" task:
12314         * src/SDCCmacro.c: fixed bug in handling quotes
12315         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
12316         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
12317
12318 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
12319
12320         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
12321
12322 2003-04-11 kevin Vigor <kevin AT vigor.nu>
12323
12324         * ds390/gen.c ds390/peeph.def: fix bug 706781
12325
12326 2003-04-11  Borut Razem <borut.razem AT siol.net>
12327
12328         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
12329
12330 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
12331
12332         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
12333         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
12334          set - this bit used to not be set...).
12335         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
12336           bad code in PIC Port
12337         * src/regression/and2.c added to test bug 609268
12338         * src/regression/Makefile added and2.c to regression test
12339
12340
12341 2003-04-08    <johan AT CP255758-A>
12342
12343         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
12344         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
12345         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
12346
12347 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
12348
12349         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
12350         fix bug #487815
12351         * support/cpp2/Makefile.in: fix bug #487815
12352         * configure: rebuilt from configure.in
12353         * Makefile.common.in: docdir changed, new path suffixes
12354         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12355         * sdcc_vc_in.h: reflect changes from sdccconf.h
12356         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
12357         * src/SDCCutil.h: remove BINDIR hack
12358         * doc/sdccman.lyx: update new path hierarchy
12359
12360 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12361
12362         * src/SDCCpeeph.c: added okToRemoveSLOC test
12363
12364 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12365
12366         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
12367
12368 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
12369
12370         * src/SDCCpeeph.c: added labelIsReturnOnly test
12371         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
12372
12373 2003-04-05    <johan AT balder>
12374
12375         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
12376         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
12377         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
12378         * src/SDCCast.c: fixed a warning
12379         * src/SDCCast.h: fixed a warning
12380         * src/SDCCicode.c (operandFromAst): fixed a warning
12381
12382 2003-04-04    <johan AT balder>
12383
12384         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
12385         * src/SDCCast.c (decorateType): fixed bug #715076
12386         * src/SDCC.y: fixed bug #702907
12387
12388 2003-04-03    <johan AT balder>
12389
12390         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
12391         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
12392         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
12393         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
12394         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
12395
12396 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
12397
12398         * _decdptr.c: fix return values
12399         * _gptrget.c: fix return values
12400         * _gptrgetc.c: fix return values
12401         * _gptrput.c: fix return values
12402         * _mulint.c: fix return values
12403         * as/z80/Makefile: fix 'make -j' problem
12404
12405 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
12406
12407         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
12408         * configure.in: big cleanup, updated to autoconf 2.5x
12409         * configure: rebuilt from configure.in
12410         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
12411         * sdcc_vc_in.h: reflect changes from sdccconf.h
12412         * doc/Makefile: fixed a flaw in "make install"
12413
12414 2003-04-02    <johan AT balder>
12415
12416         * src/ds390/gen.c (genCmp): no comments
12417         * src/mcs51/gen.c (genCmp): no comments
12418         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
12419         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
12420
12421 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
12422
12423         * support/regression/generate-cases.py: place generated file in given sub directory
12424         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
12425         * support/regression/Makefile: improvements for 'make -j';
12426         side effect: it's simpler and faster now
12427
12428 2003-03-31  Borut Razem <borut.razem AT siol.net>
12429
12430         * src/z80/main.c: link-{port} and as-{port} defined without path
12431         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
12432
12433 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
12434
12435         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
12436
12437 2003-03-30  Borut Razem <borut.razem AT siol.net>
12438
12439         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
12440           changed type of list parameter to set
12441         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
12442         * src/port.h: changed type of do_assemble() parameter to set
12443         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
12444           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
12445           definition of "cppoutfilename" macro with NULL value in preProcess()
12446         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
12447         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
12448         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
12449           replaced with set *binPathSet
12450         * shash_add() deallocates the item, if allready exsists, before adding the new one
12451         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
12452
12453 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
12454
12455         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
12456           a nested for loop bug in the PIC port
12457         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
12458           for loops
12459
12460 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
12461
12462         * support/Util/dbuf.h: remove C++ stuff to make it portable
12463
12464 2003-03-28  Borut Razem <borut.razem AT siol.net>
12465
12466         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
12467           literal strings in stringLiteral()
12468         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
12469         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
12470           to the project
12471
12472 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
12473
12474         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
12475
12476 2003-03-26    <johan AT balder>
12477
12478         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
12479         * src/ds390/gen.c (saveRegisters): catched symbol abuse
12480         * src/SDCCast.c (decorateType): fixed " -v < 3"
12481
12482 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
12483
12484         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
12485         Added Lenny Story's debug infrastructure changes:
12486         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
12487         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
12488         * src/cdbFile.c: added
12489         * src/SDCCdebug.c: added
12490         * src/SDCCdebug.h: added
12491         * src/SDCCast.c (createFunction)
12492         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
12493         * src/SDCCmain.c (parseCmdLine, main)
12494         * src/SDCCmem.c (redoStackOffsets)
12495         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
12496         * src/SDCCsymt.h
12497         * src/common.h
12498         * src/avr/gen.c (genAVRCode)
12499         * src/ds390/gen.c (gen390Code)
12500         * src/mcs51/gen.c (gen51Code)
12501         * src/pic/gen.c (genpic14Code)
12502         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
12503         * src/xa51/gen.c (genXA51Code)
12504         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
12505
12506 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12507
12508         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
12509         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
12510
12511 2003-03-22    <johan AT balder>
12512
12513         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
12514
12515 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
12516
12517         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
12518         * doc/cdbfileformat.lyx: added, written by Lenny Story
12519         * doc/Makefile: added cdbfileformat.lyx
12520         * doc/clean.mk: added cdbfileformat.lyx
12521
12522 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
12523
12524         * src/mcs51/peeph.def: fix bug #705773
12525
12526 2003-03-20    <johan AT balder>
12527
12528         An sfr/sbit can have an "at #" AND an initializer
12529         * src/SDCCsymt.c (checkSClass):
12530         * src/SDCCmem.c (allocGlobal):
12531         * src/SDCCmem.c (allocLocal):
12532         * src/SDCCast.c (createBlock):
12533
12534 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
12535
12536         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
12537
12538 2003-03-16    <johan AT balder>
12539
12540         Undid the hackup of const and volatile, the problem is much bigger
12541         * src/SDCC.y:1.65
12542         * src/SDCCast.c:1.171
12543         * src/SDCCglue.c:1.138
12544         * src/SDCCicode.c:1.146
12545         * src/SDCCsymt.c:1.150
12546         * src/SDCCval.c:1.65
12547
12548 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
12549
12550         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
12551         * src/ds390/gen.c (genAddrOf): fixed bug #704087
12552
12553 2003-03-13    <johan AT balder>
12554
12555         Hackup const and volatile modifiers in type chains a bit:
12556         * src/SDCC.y:1.63
12557         * src/SDCCast.c:1.169
12558         * src/SDCCglue.c:1.136
12559         * src/SDCCicode.c:1.143
12560         * src/SDCCsymt.c1.146
12561         * src/SDCCsymt.h1.59
12562         * src/SDCCval.c:1.63
12563
12564 2003-03-12    <johan AT balder>
12565
12566         * src/SDCCBBlock.h: more LRH debugging junk
12567         * src/SDCCcflow.h: more LRH debugging junk
12568         * src/SDCCloop.c: more LRH debugging junk
12569         * src/SDCC.y (struct_declaration): fixed bug #697590
12570         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
12571         * src/ds390/gen.c (aopForRemat): fixed bug #700031
12572         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
12573
12574 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12575         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
12576         test function names must now match exactly).
12577         * src/SDCCcse.c: added special case in findCheaperOp to allow
12578         extending a short integer. Makes less awful code for bug 700121 test case.
12579
12580 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12581
12582         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
12583         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
12584
12585 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12586
12587         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
12588         actually called (operandsNotEqual() was called for all
12589         operandsNotEqualX tests).
12590
12591 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
12592
12593         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
12594         with shorter literals. Fixes bug 700121.
12595
12596 2003-03-11    <johan AT balder>
12597
12598         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
12599
12600 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
12601
12602         * src/SDCCloop.c (mergeRegions): an evil beast is dead
12603         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
12604
12605 2003-03-10  Borut Razem <borut.razem AT siol.net>
12606
12607         * src/SDCCmain.c: pipe preprocessor's output
12608         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12609         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12610         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12611         which closes all pipes in pipeSet set
12612         * src/SDCCset.c: free deleted item in function deleteSetItem()
12613         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12614         moved from z80 to src subproject
12615         * .version: increased version number to 2.3.4
12616
12617 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
12618
12619         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
12620         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
12621         * support/regression/ports/xa51/spec.mk: fix typo
12622
12623 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
12624
12625         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
12626
12627 2003-03-09  Borut Razem <borut.razem AT siol.net>
12628
12629         * src/SDCCmain.c: pipe preprocessor's output
12630         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
12631         * sdcc_vc_in.h: define pclose as _pclose for WIN32
12632         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
12633         which closes all pipes in pipeSet set
12634         * src/SDCCset.c: free deleted item in function deleteSetItem()
12635         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
12636         moved from z80 to src subproject
12637
12638 2003-03-09  Borut Razem <borut.razem AT siol.net>
12639
12640         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
12641         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
12642         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
12643         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
12644         * src/SDCCglobl.h: unification of WIN32 native definitions
12645
12646 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12647
12648         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
12649
12650 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12651
12652         * src/configure.in:   check for endianess (even while cross-compiling)
12653         * src/configure:      check for endianess (even while cross-compiling)
12654         * src/configure_in.h: check for endianess (even while cross-compiling)
12655         * src/avr/gen.c:        remove old endianess stuff
12656         * src/mcs51/gen.c:      remove old endianess stuff
12657         * src/ds390/gen.c:      remove old endianess stuff
12658         * src/pic/gen.c:        remove old endianess stuff
12659         * src/pic/genarith.c:   remove old endianess stuff
12660         * src/pic/glue.c:       fix endianess check
12661         * src/pic16/gen.c:      remove old endianess stuff
12662         * src/pic16/genarith.c: remove old endianess stuff
12663         * src/pic16/glue.c:     fix endianess check
12664         * src/xa51/gen.c:       remove old endianess stuff
12665         * src/z80/gen.c:        fix endianess check
12666         * src/SDCCglue.c:       fix endianess check
12667         * src/ds390/peeph.def: fix bug 700036
12668
12669 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
12670
12671         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
12672         * src/configure: find appropriate data-types on host for SDCC's int and long
12673         * src/configure.in: find appropriate data-types on host for SDCC's int and long
12674         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
12675         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
12676
12677 2003-03-07    <johan AT balder>
12678
12679         Just a big NOOP:
12680                 some minor cleanups before the big shot
12681                 OP_DEFS and OP_USES now use Kevin's protection
12682                 new option --nolabelopt
12683
12684         * src/SDCCBBlock.c:
12685         * src/SDCCast.c,:
12686         * src/SDCCcflow.c:
12687         * src/SDCCcse.c:
12688         * src/SDCCicode.c:
12689         * src/SDCCicode.h:
12690         * src/SDCClabel.c:
12691         * src/SDCCloop.c:
12692         * src/SDCCmain.c:
12693         * src/ds390/ralloc.c:
12694         * src/mcs51/ralloc.c:
12695         * src/pic/ralloc.c:
12696         * src/xa51/ralloc.c:
12697         * src/z80/ralloc.c:
12698
12699 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
12700
12701         * src/pic/pcode.c (get_op): fix 64 bit warnings
12702         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
12703         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
12704         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
12705         * support/regression/tests/malloc.c: fix 64 bit warnings
12706
12707 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
12708
12709         * src/mcs51/gen.c (genMinus): fixed bug 696436
12710
12711 2003-03-02  Borut Razem <borut.razem AT siol.net>
12712
12713         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
12714
12715 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
12716
12717         * configure.in: test for mkstemp
12718         * sdccconf_in.h: add HAVE_MKSTEMP
12719
12720 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
12721
12722         * device/include/ctype.h: removed warning while using --stack-auto
12723         * device/include/malloc.h: removed warning while using --stack-auto
12724         * device/include/string.h: removed warning while using --stack-auto
12725
12726 2003-02-23  Borut Razem <borut.razem AT siol.net>
12727
12728         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
12729         because NDEBUG is defined (see man assert)
12730         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
12731
12732 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12733
12734         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
12735         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
12736
12737 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12738
12739         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
12740         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
12741
12742 2003-02-18    <johan AT balder>
12743
12744         * as/mcs51/asmain.c (asmbl): module can start with a digit
12745         * as/z80/asmain.c (asmbl): module can start with a digit
12746
12747 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
12748
12749         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
12750         * src/asm.c: fix pipe() for Mingw32
12751
12752 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
12753
12754         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
12755         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
12756         make -V work again; --c1mode reads now from stdin
12757         * doc/sdccman.lyx: added --c1mode
12758         * support/Util/SDCCerr.c: new messages for c1 mode
12759         * support/Util/SDCCerr.h: new messages for c1 mode
12760         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
12761
12762 2003-02-15    <johan AT balder>
12763
12764         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
12765
12766 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
12767
12768         * doc/sdccman.lyx: Environment variables, -o and other minor things
12769
12770 2003-02-14    <johan AT balder>
12771
12772         * src/xa51/main.c: before anyone really tries to use it :)
12773
12774         * Install doc's in share/sdcc/doc
12775         * removed some obsolete files
12776         * Do a proper make distclean and uninstall
12777         M Makefile.common.in
12778         R sdccbuild.sh
12779         M as/Makefile
12780         M device/include/Makefile.in
12781         M device/lib/Makefile.in
12782         M doc/sdccman.lyx
12783         M link/Makefile
12784         M sim/ucsim/doc/Makefile.in
12785         M src/clean.mk
12786         R src/avr/peeph.rul
12787         R src/xa51/peeph.rul
12788         M support/cpp2/Makefile.in
12789         M support/makebin/Makefile
12790
12791
12792 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
12793
12794         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
12795
12796 2003-02-10  Borut Razem <borut.razem AT siol.net>
12797
12798         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
12799         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
12800         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
12801         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
12802         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
12803         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
12804         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
12805         src/z80/Makefile.bcc: Borland Makefile cleanup
12806         * as/z80/Makefile.bcc: Added Borland Makefile
12807         * support/cpp2/borland.h: Removed
12808
12809 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
12810
12811         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
12812         * src/SDCC.lex: new pragma NOIV
12813         * src/SDCCglobl.h: new pragma NOIV
12814         * src/SDCCmem.c: new pragma NOIV
12815
12816 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12817
12818         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
12819
12820 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
12821
12822         * src/SDCCmain.c: signal handling is switched off by --debug
12823         * doc/Makefile: small fix for install; use clean.mk again
12824         * doc/clean.mk: clean *.pdf and *.html too
12825
12826 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
12827
12828         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
12829         * device/lib/printfl.c: fix a ds390 bug by making it portable
12830         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
12831         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
12832         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
12833         * debugger/mcs51/cmd.c: converted multi-line string literals
12834         * sim/ucsim/globals.cc: converted multi-line string literals
12835         * src/SDCCmain.c: introduced signal handler to remove temp files
12836         * doc/Makefile: small tweaks, implement clean
12837         * doc: removed generated files
12838
12839 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12840
12841         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
12842         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
12843         Address Record is not correctly generated for DS390."
12844
12845 2003-02-02  Borut Razem <borut.razem AT siol.net>
12846
12847         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
12848         * as/mcs51/asm.h: fixed compilation with Borland C
12849         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
12850         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
12851         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
12852         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
12853         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
12854         src/z80/Makefile.bcc: delete $(LIB) only if exist
12855         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
12856
12857 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
12858
12859         * device/include/malloc.h: introduced NULL
12860         * device/include/string.h: introduced NULL
12861         * device/include/stdlib.h: introduced NULL
12862         * device/lib/_memcpy.c: removed NULL
12863         * device/lib/_strcat.c: removed NULL
12864         * device/lib/_strchr.c: removed NULL
12865         * device/lib/_strcmp.c: removed NULL
12866         * device/lib/_strcpy.c: removed NULL
12867         * device/lib/_strcspn.c: removed NULL
12868         * device/lib/_strlen.c: removed NULL
12869         * device/lib/_strncat.c: removed NULL
12870         * device/lib/_strncmp.c: removed NULL
12871         * device/lib/_strncpy.c: removed NULL
12872         * device/lib/_strpbrk.c: removed NULL
12873         * device/lib/_strrchr.c: removed NULL
12874         * device/lib/_strspn.c: removed NULL
12875         * device/lib/_strstr.c: removed NULL
12876         * device/lib/_strtok.c: removed NULL
12877         * device/lib/malloc.c: removed NULL, include own header
12878
12879 2003-02-02    <johan AT balder>
12880
12881         * 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
12882         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
12883         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
12884         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
12885         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
12886         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
12887
12888 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12889
12890         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
12891         area 'DATA'"
12892
12893 2003-02-01    <johan AT balder>
12894
12895         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
12896
12897 2003-01-31    <johan AT CP255758-A>
12898
12899         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
12900
12901 2003-01-30    <johan AT balder>
12902
12903         * src/SDCCBBlock.c: automatic bug detection
12904         * src/SDCCicode.c: automatic bug detection
12905
12906 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12907
12908         * src/SDCCglobl.h:   now --xram-size 0 works
12909         * src/SDCCmain.c:    now --xram-size 0 works
12910
12911 2003-01-29    <johan AT balder>
12912
12913         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
12914
12915 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12916
12917         * as/mcs51/aslink.h: Added options --xram-size and --code-size
12918         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
12919         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
12920         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
12921         * src/SDCCglobl.h:   Added options --xram-size and --code-size
12922         * src/SDCCmain.c:    Added options --xram-size and --code-size
12923
12924 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
12925
12926         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
12927         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
12928
12929 2003-01-27    <johan AT balder>
12930
12931         * src/SDCC.y: fixed bug #613764
12932
12933 2003-01-26    <johan AT balder>
12934
12935         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
12936         * src/SDCCsymt.h: fixed bug #673374
12937         * src/SDCCglue.c: fixed bug #661910
12938         * src/SDCCast.c: fixed bug #458099 and 673374
12939
12940 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
12941
12942         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
12943         * as/mcs51/strcmpi.h: added
12944         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
12945         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
12946         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
12947         * as/mcs51/assym.c: strcmpi -> as_strcmpi
12948         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
12949         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
12950         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
12951         * as/mcs51/Makefile.aslink: new module strcmpi
12952         * as/mcs51/Makefile.asx8051: new module strcmpi
12953         * as/mcs51/Makefil.bcc: new module strcmpi
12954         * as/mcs51/Makefile.in: new module strcmpi
12955         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
12956
12957 2003-01-26    <johan AT balder>
12958
12959         * src/SDCCglue.c: reverted back to 1.124
12960         * src/SDCCast.c: reverted back to 1.156
12961         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
12962
12963 2003-01-25    <johan AT balder>
12964
12965         * src/SDCCglue.c: A better fix for bug #661910
12966         * src/SDCCast.c: A better fix for bug #661910
12967         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
12968
12969 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12970
12971         * src/Makefile.in: remove spawn.o
12972         * src/SDCCmain.c: remove spawn.h
12973         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
12974         * src/spawn.c: removed
12975         * src/spawn.h: removed
12976         * support/regression/ports/ds390/spec.mk: link with -r
12977
12978 2003-01-24    <johan AT CP255758-A>
12979
12980         * src/ds390/gen.c (aopOp): fixed bug #667458
12981         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
12982         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
12983         (createIvalCharPtr): an ival doesn't always have a storage class anymore
12984
12985 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
12986
12987         * src/mcs51/peeph.def: better assembler identation by Frieder
12988         * src/mcs51/gen.c: better assembler identation by Frieder
12989
12990 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
12991
12992         * as/z80/string.h: removed for gcc 3.2
12993         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
12994         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
12995
12996 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
12997
12998         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
12999         * src/SDCCpeeph.c (replaceRule): fix bug #663503
13000         * support/regression/Makefile: separate temp files for ports
13001         * support/regression/generate-cases.py: separate temp files for ports
13002         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13003         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
13004
13005 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
13006
13007         * moved tinitalk to device/examples/ds390
13008
13009 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
13010
13011         * as/mcs51/lkmem.c: rflag is for DS390
13012         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
13013         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
13014                          (linkEdit): move mem- and map-files the same way as ihx-files
13015         * src/z80/main.c (_setDefaultOptions): removed --generic
13016         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
13017         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
13018         * src/pic/glue.c (picglue): --c1mode works again
13019         * src/pic16/glue.c (pic16glue): --c1mode works again
13020         * src/asm.c (printCLine): fix #660034
13021
13022 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
13023
13024         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
13025         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
13026         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
13027         * as/mcs51/lkmem (summary): better fix for sp problem
13028         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
13029         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
13030         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
13031                                               remove --stack-after-data
13032
13033 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
13034
13035         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
13036         * src/SDCCutil.c (join): ugly bug: missing '\0'
13037         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
13038
13039 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13040
13041         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
13042         * src/port.h: typo
13043         * src/pic/main.c (_asmCmd): gpasm supports -o
13044         * src/z80/main.c: more general macros
13045         * device/lib/Makefile.in: remove intermediate files
13046
13047 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
13048
13049         * .version: Bumped version number to 2.3.3
13050         * src/SDCCBBlock.c: new option -o
13051         * src/SDCCglobl.h: new option -o
13052         * src/SDCCglue.c: new option -o
13053         * src/SDCCmain.c: new option -o
13054         * src/asm.c: new option -o
13055         * src/ds390/main.c: new option -o
13056         * src/pic/glue.c: new option -o
13057         * src/pic/pcode.c: new option -o
13058         * src/pic/ralloc.c: new option -o
13059         * src/pic16/glue.c: new option -o
13060         * src/pic16/pcode.c: new option -o
13061         * src/pic16/ralloc.c: new option -o
13062         * src/z80/main.c: new option -o
13063         * device/lib/Makefile.in: use -o
13064         * support/regression/ports/ds390/spec.mk: use -o
13065         * support/regression/ports/gbz80/spec.mk: use -o
13066         * support/regression/ports/mcs51/spec.mk: use -o
13067         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
13068         * support/regression/ports/z80/spec.mk: use -o
13069         * support/regression/ports/ucz80/spec.mk: use -o
13070         * support/regression/ports/xa51/spec.mk: use -o
13071         * support/regression/fwk/lib/timeout.c: fix usage string
13072
13073 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
13074         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
13075
13076 2003-01-07    <johan AT balder>
13077
13078         * src/SDCCast.c (decorateType): fixed bug #600035
13079
13080 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
13081         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
13082         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
13083         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
13084         * src/pic/pcode.c: outcommented unused variable to remove warnings
13085         * src/pic/ralloc.c: outcommented unused variable to remove warnings
13086
13087 2003-01-06    <karl AT turbobit.com>
13088         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
13089    regression tests.
13090
13091 2003-01-06    <johan AT balder>
13092
13093         * src/SDCCicode.c: fixed array add
13094
13095 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
13096         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
13097         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
13098
13099 2003-01-04    <johan AT balder>
13100
13101         * src/SDCCval.c (getNelements): fixed the initialized array of structures
13102
13103 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13104         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
13105
13106 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13107         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
13108         * support/regression/tests/bug-524697.c: fit mem usage into 8032
13109
13110 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
13111         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
13112
13113 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
13114         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
13115
13116 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
13117         * src/mcs51/main.c: removed {bindir}{sep} from aslink
13118
13119 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13120
13121     * in /sdcc/as/mcs51/ changed these files in order to create an
13122     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
13123     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
13124     following files to include the previous two files: aslink.dsp,
13125     Makefile.aslink, Makefile.bcc, and Makefile.in.
13126
13127     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
13128     .adb instead of .cdb
13129
13130 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13131
13132         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
13133         value from option --iram-size.
13134
13135 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13136
13137         * /sdcc/as/mcs51/lklist.c: added boundary check before using
13138         dram[] array.
13139
13140 2002-09-18    <wiml AT hhhh.org>
13141
13142         * SDCClrange.h: exposed setFromRange() and setToRange()
13143         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
13144           packRegsForAccUse() (bug 542397)
13145         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
13146           multiple times and emitting the fetch operations more than once
13147           added aopGetUsesAcc() function to allow binary operators to
13148           fetch their operands in the correct order; made genMinus() emit
13149           compact code for X = LITERAL - Y
13150
13151 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13152         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
13153         sprintf() in line 1267.
13154
13155 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13156         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
13157         like ports.
13158
13159 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13160         Changes to aslink (All the changes are marked with 'JCF'):
13161
13162         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
13163         summary().
13164
13165         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
13166         area BSEG.  Also moves, if possible, the DATA area down into the internal
13167         ram so more space is available.
13168
13169         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
13170         sflag.
13171
13172         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
13173         not bytes.  Function summary() which creates a memory usage summary
13174         file with extension .mem.  Reports of overlaping stack and small stack
13175         size.  If the space for the stack is less than 16 bytes aslink trows a
13176         warning.
13177
13178         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
13179         the 8051.  Option 'y' for memory summary output file.
13180
13181         Changes to sdcc (All the changes are marked with 'JCF'):
13182
13183         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
13184
13185         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
13186         overlaying area for it (uses RegBankUsed[4]).
13187
13188         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
13189         bank zero as used by default.  By default aslink locates the stack
13190         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
13191         the creation of the .mem file.  Delegates the allocation of data area
13192         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
13193         the begining of the stack area to aslink.
13194
13195         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
13196         glue() in SDCCglue.c creates an area for it.
13197
13198 2002-09-03  Borut Razem <borut.razem AT siol.net>
13199         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
13200         sdcc/src/pic/glue.c:
13201         introduced atexit() handler for teporay files removal in case of
13202         errors, assertions, ...
13203
13204 2002-08-29  Borut Razem <borut.razem AT siol.net>
13205         * sdcc/support/cpp2/auto-host_vc_in.h:
13206         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
13207         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
13208         Maybe there is a similar problem with BORLANDC? It should be checked!
13209
13210         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
13211         corrected improper use of assert: the assignment to clr variable was done inside the assert.
13212         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
13213         was not executed, and the compiler (cl) launched a warning:
13214         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
13215
13216 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
13217         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
13218
13219 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
13220         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
13221
13222         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13223           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
13224           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
13225           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13226           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
13227           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
13228           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
13229         - added Release configuration in VS projects
13230         - review of compiler an linker options
13231         - VC .exe files are generated in bin_vc directory, not to interfere
13232           with binaries generated from other projects (cygwin, mingw, bcc ...)
13233
13234         * sdcc/src/yacc.dsp: added
13235
13236         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
13237         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
13238         and insert the version number definitions from .version
13239
13240         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
13241
13242         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
13243         added - genarate auto-host.h using auto-host_vc_in.h as template
13244
13245         * sdcc/sdcc_vc.h,
13246         removed from CVS, generated automatically
13247
13248 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
13249         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
13250
13251 2002-08-11  Borut Razem <borut.razem AT siol.net>
13252         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
13253
13254 2002-08-10  Borut Razem <borut.razem AT siol.net>
13255         * src/SDCCmain.c (main):
13256         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
13257         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
13258         The consequence was that some temporary files were not removed.
13259
13260         * src/SDCCglue.c:
13261         unification of code in functions tempfilename() and tempfile():
13262         function tempnam() is defined in Visual Studio 6.0 and .NET
13263
13264         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
13265
13266         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
13267           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
13268         - removed compiler command line option /WX: Treats all warnings as errors
13269         - update a list of source files, included into the project
13270
13271         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
13272           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
13273         changed project type to Generic Project so that can be correcly converted to VS.NET project
13274
13275         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
13276
13277         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
13278
13279         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
13280
13281         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
13282         added return 0 statements after assert() to make compiler happy
13283
13284         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
13285         added newline in the def file to keep MSC compiler satisfied
13286
13287         * sdcc/src/z80/gen.c:
13288         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
13289           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
13290         - solved MSC error in function aopDump()
13291
13292         * sdcc_vc.h: define PREFIX as "\\sdcc"
13293
13294 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
13295         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
13296
13297 2002-06-22  Scott Dattalo <scott AT dattalo.com>
13298         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
13299         - Rewrote the register banking algorithm.
13300         - Added pCode live-range analysis to registers (for now, only non-used and
13301         singly-used registers optimized away)
13302
13303         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
13304
13305         * 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.
13306
13307 2002-05-10  Scott Dattalo <scott AT dattalo.com>
13308         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
13309
13310 2002-04-22  Michael Hope  <michaelh AT vroom>
13311
13312         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
13313
13314         * configure.in (DD_COPT): Added include support required for gbdk.
13315
13316         * .version: Bumped version number just to increase it.
13317
13318         * src/SDCCmain.c: Added -nostdinc to the default options.
13319
13320 2002-04-15  Michael Hope  <michaelh AT vroom>
13321
13322         * device/lib/z80/printf.c (sprintf): Added.
13323
13324         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
13325
13326         * src/z80/peeph.def: Added transpose redundent load rule.
13327
13328         * src/z80/main.c: Added force callee saves for jaune.
13329
13330         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
13331
13332         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
13333
13334 2002-03-28  Johan Knol  <johan AT balder>
13335
13336         * src/SDCCval.c: fixed bug #532436
13337
13338 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13339         * /src/port.h:
13340         Added "char *Processor" field to the port structure.
13341
13342         * /src/SDCCmain.c:
13343         Added -p option. Allows port dependent processor to be specified.
13344
13345         * all ports:
13346         Initialized the new field char *Processor field to NULL in all ports
13347
13348         * /src/pic/*:
13349         Compiler generated registers for interrupt context saving
13350         were not getting allocated.
13351
13352 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
13353
13354         * /src/SDCCast.c:
13355         Fixed left shift. Will promote the left side of a left shift
13356         if a) left shifting more than size of operand or b) when assigned
13357         to something size > size of left side
13358
13359 2002-03-14  Scott Dattalo <scott AT dattalo.com>
13360         * src/pic/*
13361         tons of changes. Register allocation has been
13362         rewritten. Added customization for the various PICs. Flow
13363         analysis is restructured. ...
13364
13365         * src/pic/device.h:
13366         Added
13367
13368         * src/pic/device.c:
13369         Added. device.c is a PIC port hack to accomodate variations
13370         in PIC devices.
13371
13372 2002-03-13  Michael Hope  <michaelh AT vroom>
13373
13374         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
13375
13376 2002-03-04  johanknol  <johanknol AT manik>
13377
13378         * /src/SDCCval.c: fixed
13379
13380         const unsigned char arr[][2] = { { 0, 1 } };
13381         t18.c:1: error: Initializer element is not constant
13382
13383 2002-03-04  bela  <bela AT manik>
13384
13385         * /device/include/mcs51reg.h:
13386         ds89c420 register definition update
13387
13388 2002-03-03    <johan AT FRIJA>
13389
13390         * support/Util/SDCCerr.c: did something, but don't no why anymore
13391
13392         * support/regression/tests/bug-524691.c: made it a little less shy
13393
13394         * src/SDCCast.c (decorateType): fixed bug #524697
13395
13396         * src/SDCCast.c: made some lineno improvements
13397
13398         * src/SDCCval.c (getNelements): changed warning to error
13399
13400         * src/SDCCglue.c (printIvalArray): changed warning to error
13401
13402         * src/SDCCicode.c: fixed a warning for mingw
13403
13404         * src/SDCCast.c (decorateType): fixed the << promotion for ops
13405
13406         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
13407
13408 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
13409
13410         * src/ds390/peeph.def:
13411         Added some more peephole rules
13412
13413         * src/ds390/gen.c: Various fixes & enhancements
13414
13415         * src/SDCClrange.c, src/SDCClrange.h:
13416         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
13417
13418         * src/ds390/ralloc.c:
13419         various fixes & enhancements (ds390) specific
13420
13421         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
13422         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
13423         from rallocs.
13424
13425         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
13426
13427 2002-03-02    <johan AT FRIJA>
13428
13429         * src/SDCCast.c (decorateType): fixed bug #524708
13430
13431         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
13432
13433         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
13434
13435 2002-03-01  Michael Hope  <michaelh AT vroom>
13436
13437         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
13438
13439         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
13440
13441 2002-03-01    <johan AT FRIJA>
13442
13443         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
13444
13445         * src/SDCCast.c (decorateType): fixed bug #524209
13446
13447         * src/SDCCval.c (valNot): fixed bug #524195
13448
13449 2002-02-26    <johan AT balder>
13450
13451         * src/xa51/gen.c: fixed a warning
13452
13453         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
13454
13455         * src/SDCCast.c (decorateType): fixed bug #522534
13456
13457 2002-02-23    <johan AT balder>
13458
13459         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
13460
13461 2002-02-22    <johan AT balder>
13462
13463         * src/SDCCast.c: fixed bug #514865
13464
13465         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
13466
13467 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
13468
13469         * sdcc/src/SDCCloop.c:
13470         Previous fix was not good. basic blocks that have "break" or "return" are
13471         not really partof a loop , but live ranges used in these blocks should
13472         be live thru the entire loop, so set partOfLoop but don't add them to
13473         loop region
13474
13475 2002-02-21    <johan AT FRIJA>
13476
13477         * src/SDCCcse.c: fixed bug #514308
13478
13479 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
13480
13481         * src/SDCCloop.c:
13482         Fixed BUG #519583. If a conditional block ended in a return/break
13483         statement inside a loop, it was not being considered part of the loop.
13484
13485         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
13486
13487 2002-02-10  Karl Bongers <karl AT turbobit.com>
13488
13489         * debugger/*:
13490         Fixed up SDCDB debugger somewhat.  Updated debugger/README
13491         with lots of comments and notes.
13492
13493         * device/examples/test2.c:
13494         Fix bug, "red" variable not being initialized(compiler complained).
13495
13496         * device/examples/Makefile, examples/test3.c:
13497         Add Makefile in device/examples folder, compiles test3.c
13498         for use as a multiple module SDCDB test case.
13499
13500         * sim/ucsim/cmd.src/cmdset.cc:
13501         Took out debug printfs in ucsim "next" command.
13502
13503         * sim/ucsim/xa.src:
13504         Karl and Johan start ucsim XA support.  Most dissassembly working,
13505         about 75% emulation done(plenty of work remaining).
13506
13507         * sim/ucsim/z80.src:
13508         Add Z80 support to ucsim, add test-ucz80 regression test,
13509         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
13510         Notice z80 compiler fails on examples/test3.c/crc code.
13511
13512 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
13513
13514         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
13515         Added support for --parms-in-bank1
13516
13517         * src/ds390/peeph.def:
13518         added a few more peephole optimzations
13519
13520         * src/ds390/main.c:
13521         1) added __builtin_inp & __builtin_outp used to read in data of given length
13522            from a memory mapped port
13523         2) added __builtin_memcmp
13524         3) added __builtin_swapw swap bytes of a short
13525
13526         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
13527         1) handle multiple send & receives from register bank1
13528         2) ralloc can now allocate DPTR1 to some liveRanges
13529
13530         * src/SDCCsymt.c, src/SDCCsymt.h:
13531         changes to handle multiple sends & receives
13532
13533         * src/SDCCptropt.h:
13534         added some pointer arithmetic optimization
13535
13536         * src/SDCCptropt.c:
13537         added some pointer arithmetic optimizations but not stable yet so not
13538         called from anywhere (will get this working shortly)
13539
13540         * src/SDCCopt.c: fixed for multiple sends & receives
13541
13542         * src/SDCCmain.c:
13543         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
13544         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
13545            set preprocessor defines (depending on options)
13546
13547         * src/SDCCicode.c, src/SDCCicode.h:
13548         changes made to handle multiple sends & receives
13549
13550         * src/SDCCglobl.h:
13551         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
13552
13553         * src/SDCCcse.c, src/SDCCcse.h:
13554         added function findbackward def (to be used in upcoming optimization)
13555
13556         * src/SDCCcflow.c, src/SDCCcflow.h:
13557         added function returnAtEnd - to determine if a basic block terminates with
13558         a RETURN iCode
13559
13560         * src/SDCCast.c, src/SDCCast.h:
13561         added option parms-in-bank1
13562
13563         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
13564         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
13565         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
13566         adjusted for --parms-in-bank1 option
13567
13568         * device/include/string.h:
13569         donot redefine "reentrant" keyword
13570
13571         * device/include/ds80c390.h: Added some more SFRs
13572
13573 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
13574
13575         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
13576
13577 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
13578
13579         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
13580
13581 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
13582
13583         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
13584
13585 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
13586
13587         * Added --xram-movc option
13588
13589 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
13590
13591         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
13592
13593 2002-01-11  Johan Knol
13594
13595         * Added math lib of Jesus Calvino-Fraga
13596
13597 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
13598
13599         * src/SDCCmain.c (processFile): fix processing of ../../src.c
13600         * support/regression/Makefile: new target test-mcs51-stack-auto
13601         * support/regression/ports/mcs51-stack-auto/spec.mk: added
13602
13603 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13604
13605         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
13606
13607 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
13608
13609         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
13610
13611 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
13612
13613         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
13614
13615         * src/SDCCglue.h: add definition for printIvalChar()
13616
13617 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13618
13619         * src/SDCCast.c: fix #498138 by Johan
13620
13621         * src/SDCCglue.c: fix #498138 by Johan
13622
13623 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
13624
13625         * support/regression/Makefile: fix clean
13626
13627         * support/regression/ports/ds390/support.c: fix transmission of last character
13628
13629 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
13630
13631         * /sdcc/src/ds390/gen.c:
13632         a) improved computing address of stack variable
13633         b) took out some #if 0 code
13634         c) improved parmBytes adjustment
13635         d) improved genPlusIncr & genMinusIncr
13636         e) genCmp could generate bad code (when left assigned to DPTR)
13637         f) Fixed bug in hasInc
13638
13639         * /sdcc/src/ds390/ralloc.c:
13640         a) packRegsForSupport could mess up live information (Fixed)
13641         b) packRegsDPTRuse could be incorrect for left & right shift
13642
13643         * /sdcc/src/mcs51/ralloc.c:
13644         packRegsForSupport could mess up the live information (Fixed)
13645
13646         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
13647
13648         * /sdcc/src/SDCCast.c:
13649         can reverse a loop even if function call is present as long
13650         as the loop control variable is local & is not passed as parameter
13651
13652 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13653
13654         * /sdcc/ChangeLog: *** empty log message ***
13655
13656         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
13657         More builtin function additions for TININative
13658
13659         * /sdcc/src/ds390/ralloc.c:
13660         Had broken the regression testsuite
13661
13662         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
13663
13664         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
13665         Added funcattr hasStackParms will be set for reentrant functions when there
13666         are paramteres on the stack, this helps in minimizing frame pointer generation
13667         typeFromStr can handle function pointers now
13668
13669         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
13670         *** empty log message ***
13671
13672 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13673
13674         * /src/ds390/gen.c, /src/ds390/main.c:
13675         More builtin function additions for TININative
13676
13677         * /src/ds390/ralloc.c:
13678         Had broken the regression testsuite
13679
13680         * /src/SDCCast.c: Fixed a bug in dumptree
13681
13682         * /src/SDCCsymt.c, /src/SDCCsymt.h:
13683         Added funcattr hasStackParms will be set for reentrant functions when there
13684         are paramteres on the stack, this helps in minimizing frame pointer generation
13685         typeFromStr can handle function pointers now
13686
13687         * /doc/builtins.txt, /doc/TININative.txt:
13688         *** empty log message ***
13689
13690
13691 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
13692
13693         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
13694         ALPHA version for -mTININative
13695
13696         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
13697         updated to reflect changes in the port structure
13698
13699         * /src/port.h:
13700         added function do_assemble (similar to do_link) if non-null this function
13701         will be called to do assembly (-mTININative) requires a multi command
13702         assembly
13703         added function genAssemblerEnd will be called to generate assembler Epilogue
13704
13705         * /src/SDCCsymt.c:
13706         added _JavaNative to debug info printing
13707
13708         * /src/SDCCmain.c: added option --tini-libid
13709         added port->do_assemble function (-mTININative) has a multi command assemble
13710
13711         * /src/SDCCglue.c: Disabled "constExpr" check
13712         added port->genAssemblerEnd function
13713
13714         * /src/SDCCglobl.h: Added option --tini-libid value
13715
13716         * /src/SDCCast.h:
13717         tookout optimizeCompare from the header (has no external references)
13718
13719         * /src/SDCCast.c: made one more function "static"
13720
13721 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
13722
13723         * src/z80/mappings.i: Added z80asm support.
13724
13725         * src/z80/main.c: Added z80asm support on --asm=z80asm
13726
13727         * src/z80/gen.c: Fixed asm portability issues.
13728
13729         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
13730
13731         * src/SDCCglue.c (printExterns): Added global/extern split.
13732
13733 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
13734
13735         * support/regression/Makefile: added test for mcs51 model large
13736
13737         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
13738
13739         * support/regression/ports/gbz80/spec.mk: added -mgbz80
13740
13741 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
13742
13743         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
13744
13745 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
13746
13747         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
13748
13749         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
13750
13751 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
13752
13753         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
13754
13755         * support/regression/tests/simplefloat.c: Port to mcs51.
13756
13757 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
13758         * support/regression/tests/bug-485362.c: Added.
13759
13760         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
13761
13762         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
13763
13764         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
13765
13766         * src/z80/gen.c (aopDump): Added a dump function.
13767
13768 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
13769         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
13770
13771         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
13772
13773         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
13774
13775         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
13776
13777         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
13778
13779         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
13780
13781         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
13782
13783         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
13784
13785         * support/regression/ports/ds390/support.c: Use tinibios.
13786
13787         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
13788
13789 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
13790
13791         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
13792         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
13793
13794         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
13795
13796         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
13797
13798 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
13799
13800         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
13801
13802         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
13803         (packRegsForIYUse): Created and optimised.
13804
13805 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13806
13807         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
13808 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
13809
13810         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
13811
13812         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
13813
13814         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
13815
13816 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13817
13818         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
13819
13820         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
13821
13822 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13823
13824         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
13825
13826         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
13827
13828         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
13829
13830 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
13831
13832         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
13833         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
13834         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
13835
13836         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
13837
13838         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
13839         (genNotFloat): Added.
13840         (genUminusFloat): Added.
13841
13842         * device/lib/z80/Makefile: Added floating pt stubs.
13843
13844         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
13845
13846         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
13847
13848         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
13849
13850 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
13851
13852         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
13853
13854         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
13855
13856         * sdcc/support/regression/Makefile: Add port ds390.
13857
13858         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
13859
13860         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
13861
13862         * sdcc/support/regression/ports/ds390/spec.mk: Added.
13863
13864         * sdcc/support/regression/ports/ds390/support.c: Added.
13865
13866         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
13867
13868         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
13869
13870         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
13871
13872 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13873
13874         * device/include/malloc.h: Added z80 and gbz80 support.
13875
13876         * device/lib/gbz80/heap.s: Added.
13877
13878         * device/lib/z80/heap.s: Added.
13879
13880         * device/lib/malloc.c: Added z80 and gbz80 support.
13881
13882         * support/regression/tests/malloc.c (testMalloc): Added.
13883
13884         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
13885
13886         * support/regression/tests/bug-478094.c: Added.
13887
13888         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
13889
13890 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
13891
13892         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
13893
13894         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
13895
13896         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
13897
13898         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
13899
13900         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
13901
13902 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
13903
13904         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
13905
13906 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
13907
13908         * support/regression/tests/bug-477927.c: Added.
13909
13910         * src/z80/peeph.def: Added minor rules.
13911
13912         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
13913
13914         * src/z80/peeph.def: Added jump optimisation modification.
13915
13916 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
13917
13918         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
13919
13920 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
13921
13922         * support/regression/tests/funptrs.c: Added.
13923
13924 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
13925
13926         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
13927
13928 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
13929
13930         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
13931
13932         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
13933
13934         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
13935         (movLeft2ResultLong): Created.
13936
13937         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
13938         (joinPushes): Added.  Joins two char pushes into a word push.
13939
13940 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
13941
13942         * support/cpp2/Makefile.in (install): Added creation of dest dir.
13943
13944         * support/makebin/Makefile (install): Added creation of dest dir.
13945
13946 2001-10-24 Karl Bongers <karl AT turbobit.com>
13947
13948         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
13949
13950 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
13951
13952         * src/z80/ralloc.c: Turned off faulty pack for one use.
13953
13954         * src/z80/peeph-gbz80.def: Removed redundent restart options.
13955
13956         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
13957
13958 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
13959
13960         * support/regression/Makefile: Improved clean
13961
13962         * support/regression/ports/gbz80/spec.mk: Added clean
13963
13964         * support/regression/ports/host/spec.mk: Added clean
13965
13966         * support/regression/ports/z80/spec.mk: Added clean
13967
13968         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
13969
13970         * support/regression/ports/mcs51/timeout.c: little improvements
13971
13972 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
13973
13974         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
13975
13976         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
13977
13978         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
13979
13980 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
13981
13982         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
13983
13984         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
13985
13986 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
13987         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
13988
13989         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
13990
13991         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
13992
13993         * src/mcs51/main.c (_linkCmd): Added bin path to command.
13994
13995         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
13996
13997         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
13998
13999         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
14000
14001         * support/regression/tests/longor.c: Added.
14002
14003 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
14004
14005         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
14006
14007         * as/mcs51/aslink.h: define PATH_MAX
14008
14009         * as/mcs51/asm.h: define PATH_MAX
14010
14011         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
14012
14013         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
14014
14015         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
14016
14017         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
14018
14019         * src/SDCCglobl.h: define PATH_MAX
14020
14021         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
14022
14023         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
14024
14025 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
14026
14027         * src/z80/gen.c (gencjneshort): Fixed
14028
14029         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
14030
14031 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
14032
14033         * support/regression/tests/bug-469671.c: Added.
14034
14035         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
14036
14037 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
14038
14039         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
14040
14041         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
14042
14043 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
14044
14045         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
14046
14047         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
14048
14049         * src/device/lib/_mullong.c : removed hint: nooverlay bug
14050
14051         * src/device/lib/_divuint.c : removed hint: nooverlay bug
14052
14053         * src/device/lib/_divulong.c: removed hint: nooverlay bug
14054
14055         * src/device/lib/_moduint.c : removed hint: nooverlay bug
14056
14057         * src/device/lib/_modulong.c: removed hint: nooverlay bug
14058
14059 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
14060
14061         * 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.
14062
14063         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
14064
14065         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
14066
14067 2001-10-07    <johan AT FRIJA>
14068
14069         * device/lib/gets.c (gets): fixed the return value.
14070
14071 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
14072         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
14073
14074         * 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.
14075
14076         * 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.
14077
14078         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
14079
14080         * src/pic/gen.c: Removed Safe_strdup.
14081
14082         * configure.in: Added option to enable libgc support.
14083
14084         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
14085         (bitVectUnion): Optimised.
14086         (bitVectIntersect): Optimised.
14087         (bitVectBitsInCommon): Optimised.
14088         (bitVectCplAnd): Optimised.
14089
14090         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
14091
14092 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14093
14094         * src/SDCCmain.c: distinguish between assembler debug and plain options
14095
14096         * src/avr/main.c:   remove standard assembler options
14097
14098         * src/ds390/main.c: remove standard assembler options
14099
14100         * src/mcs51/main.c: remove standard assembler options
14101
14102         * src/port.h: removed "PENDING" comment
14103
14104 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14105
14106         * src/device/lib/_mulint.c  : new, with assember functions
14107
14108         * src/device/lib/_mullong.c : new, with assember functions
14109
14110         * src/device/lib/_divuint.c : with assember functions
14111
14112         * src/device/lib/_divsint.c : with assember functions
14113
14114         * src/device/lib/_divulong.c: with assember functions
14115
14116         * src/device/lib/_divslong.c: with assember functions
14117
14118         * src/device/lib/_moduint.c : with assember functions
14119
14120         * src/device/lib/_modsint.c : with assember functions
14121
14122         * src/device/lib/_modulong.c: with assember functions
14123
14124         * src/device/lib/_modslong.c: with assember functions
14125
14126         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
14127
14128         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
14129
14130         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
14131                                       replaced _mululong.c and _mulslong.c by _mullong.c
14132
14133 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
14134
14135         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
14136
14137 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14138
14139         * src/SDCCglue.c: test, if win32api is available for MINGW
14140
14141 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
14142
14143         * src/SDCCsymt.c: no more _modifier in printTypeChain()
14144         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
14145         * support/regression/ports/gbz80/spec.mk: removed GENERIC
14146         * support/regression/ports/host/spec.mk: removed GENERIC
14147         * support/regression/ports/mcs51/spec.mk: removed GENERIC
14148         * support/regression/ports/z80/spec.mk: removed GENERIC
14149
14150 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
14151
14152         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
14153
14154         * support/regression/tests/bug-467035.c: Created.
14155
14156 2001-10-01    <johan AT FRIJA>
14157
14158         * src/SDCC.y: fixed bug #466586 part 1
14159
14160 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
14161
14162         * SDCCicode.c: z80 has no generic pointers
14163         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
14164
14165 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
14166
14167         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
14168
14169 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
14170
14171         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
14172
14173         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
14174
14175 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
14176
14177         * configure.in: Fixed up so that ucsim is only configured once.
14178
14179         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
14180
14181         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
14182         (getPathDifference): As above.
14183
14184         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
14185
14186         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
14187
14188 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
14189         * .version: Updated to 2.3.1
14190
14191         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
14192         Added copyright header.
14193
14194         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
14195         (assemble): Added support for macro based assembler commands.
14196         (linkEdit): Added support for macro based linker commands.
14197         (preProcess): Changed the pre-processor to use macros.
14198         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
14199         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
14200
14201         * device/lib/z80/crt0.s: Added module name for debugging.
14202
14203 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
14204
14205         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14206
14207         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
14208
14209         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
14210
14211         * src/Makefile.in: Added SDCCmacro and SDCCutil
14212
14213 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
14214
14215         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
14216
14217 2001-09-16    <johan AT FRIJA>
14218
14219         * 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.
14220
14221 2001-09-15    <johan AT FRIJA>
14222
14223         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
14224         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
14225
14226 2001-09-11    <johan AT FRIJA>
14227
14228         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
14229
14230 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
14231
14232         * support/regression/tests/bug-460444.c: Added test case.
14233
14234         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
14235         (genCast): Added justification for all of the asserts.
14236
14237 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
14238
14239         * support/regression/support.c: _xdata replaced by xdata
14240
14241         * support/regression/spec.mk: removed _generic
14242
14243 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
14244
14245         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
14246
14247         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
14248         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
14249
14250         * src/z80/peeph.def: Added a rule to optimise shift then compare.
14251
14252         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
14253
14254         * support/regression/tests/bug-460010.c: Added test case.
14255
14256         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
14257
14258 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
14259
14260         * support/regression/Makefile: inter-port-clean adjusted for mcs51
14261
14262         * support/regression/testfwk.c: removed workaround for bug #436344
14263
14264         * support/regression/tests/bp.c: use less memory with mcs51
14265
14266         * support/regression/tests/bug-441448.c: use less memory
14267
14268         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
14269
14270         * support/regression/collate-results.py: typo
14271
14272 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
14273
14274         * support/regression/tests/fetchoverlap.c: Added new test case.
14275
14276         * support/regression/tests/bp.c: Added new test case.
14277
14278         * support/regression/tests/bug-448984.c: Added new test case.
14279
14280         * support/regression/tests/pow2shifts.c: Added new test case.
14281
14282         * src/z80/gen.c: Turned off the noise it normally generates for the release.
14283         (genlshTwo): Fixed right shift for count > 8.
14284
14285         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
14286
14287 2001-09-08    <johan AT FRIJA>
14288
14289         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
14290
14291 2001-09-07    <johan AT FRIJA>
14292
14293         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
14294
14295         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
14296
14297 2001-09-06    <johan AT FRIJA>
14298
14299         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
14300         * bernhard noted me at this: "() equals to (void)" (1.38)
14301
14302 2001-09-05    <johan AT FRIJA>
14303
14304         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
14305
14306 2001-09-04    <johan AT FRIJA>
14307
14308         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
14309
14310
14311 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
14312
14313         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
14314
14315 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
14316
14317         * link/z80/aslink.h: Fixed path for PATH_MAX
14318
14319 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
14320
14321         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
14322
14323         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
14324
14325         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
14326
14327         * 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.
14328
14329 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
14330
14331         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
14332         (genCmp): Fixed up genCmp for the GB with longs.
14333
14334         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
14335
14336         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
14337
14338         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
14339
14340         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
14341
14342 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
14343
14344         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
14345
14346 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
14347
14348         * 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.
14349
14350         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
14351
14352 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
14353
14354         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
14355
14356         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
14357
14358 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
14359
14360   * sim/ucsim/configure:    little improvement of Cygwin-detection
14361   * sim/ucsim/configure.in: little improvement of Cygwin-detection
14362   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
14363   * support/regression/tests/bug-221100.c: small changes for mcs51
14364   * support/regression/tests/bug-221168.c: small changes for mcs51
14365   * support/regression/tests/bug-227710.c: small changes for mcs51
14366   * support/regression/tests/staticinit.c: small changes for mcs51
14367   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
14368   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14369   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
14370
14371 $Revision$