* src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
[fw/sdcc] / ChangeLog
1 2008-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * src/mcs51/gen.c (adjustArithmeticResult): fixed bug 1839299
4         * support/regression/tests/bug1839277.c: added related testBug1839299
5
6 2008-03-21 Maarten Brock <sourceforge.brock AT dse.nl>
7
8         * src/ds390/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign),
9         * src/mcs51/gen.c (opIsGptr, adjustArithmeticResult, genAddrOf, genAssign):
10           fixed bug 1839277
11         * src/mcs51/gen.c: throughout only output hex constants
12         * src/SDCCicode.c (getPtrType, geniCodeCast): fixed code size regression
13         * support/regression/tests/bug1839277.c: new, added
14
15 2008-03-21 Philipp Klaus Krause <pkk AT spth.de>
16
17         * src/z80/ralloc.c (callFuncByName):
18           Used // instead of /**/ to fix compilation warning about nested comments.
19
20 2008-03-20 Maarten Brock <sourceforge.brock AT dse.nl>
21
22         * src/SDCCsymt.c (comparePtrType): fixed bug 1921073
23         * support/regression/tests/bug1921073.c: new, added
24
25 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
26
27         * src/z80/SDCCpeeph.c.c (callFuncByName):
28           Commented function parameters.
29
30 2008-03-17 Philipp Klaus Krause <pkk AT spth.de>
31
32         * src/z80/ralloc.c (packRegsForAccUse2):
33           disabled a broken accumulator packing optimization (fixed #1292721).
34         * support/regression/tests/bug-1292721: Regression test for #1292721.
35
36 2008-03-16 Raphael Neider <rneider AT web.de>
37
38         * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
39           fixed code bloat regression using a variant of patch #1915618
40
41 2008-03-16 Borut Razem <borut.razem AT siol.net>
42
43         * support/scripts/sdcc.nsi: added section debugging macros, added SDCC
44           icon, changed startup menu for release distribution, code cleaning,
45           create url files instead links in startup menu
46
47 2008-03-16 Maarten Brock <sourceforge.brock AT dse.nl>
48
49         * src/SDCCcse.c (algebraicOpts): fixed bug 1579949
50         * support/regression/tests/bug1579949.c: new, added
51
52 2008-03-14 Paul Stoffregen <paul AT pjrc.com>
53
54         * device/lib/printf_fast.c: fixed bug 1255403
55
56 2008-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
57
58         * doc/sdccman.lyx: enhanced paragraph about bankswitching for mcs51
59         * src/cdbFile.c (cdbWriteBasicSymbol): fixed bug 1909409 for locals
60
61 2008-03-14 Borut Razem <borut.razem AT siol.net>
62
63         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated link-xx and aslink
64           command line options
65         * as/link/hc08/lkmain.c: converted tabs to spaces so that the usage
66           is correctly displayed
67         * as/link/z80/lkmain.c: usage line commented out
68
69 2008-03-13 Borut Razem <borut.razem AT siol.net>
70
71         * doc/sdccman.lyx: corrected to be able to convert to PDF,
72           updated the list pf supported pic14 devices
73
74 2008-03-12 Maarten Brock <sourceforge.brock AT dse.nl>
75
76         * doc/sdccman.lyx: added paragraph about bankswitching for mcs51
77
78 2008-03-12 Borut Razem <borut.razem AT siol.net>
79
80         * as/doc/asmlnk.doc, as/doc/asxhtm.html: updated command line options,
81           fixed documentation request #1718191
82         * as/hc80/asmain.c, as/mcs51/asmain.c: added option -c to usage
83         * doc/sdccman.lyx: added description of --no-std-crt0 gbz80
84           command line option
85
86 2008-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
87
88         * src/SDCCast.c (isConformingBody): fixed bug 1505811, thanks Robert Larice
89         * support/regression/tests/bug1505811.c: new, added
90
91 2008-03-09 Raphael Neider <rneider AT web.de>
92
93         * device/include/pic16/pic18f2620.h,
94         * device/include/pic16/pic18f4620.h,
95         * device/lib/pic16/libdev/pic18f2620.c,
96         * device/lib/pic16/libdev/pic18f4525.c,
97         * device/lib/pic16/libdev/pic18f4620.c: merged 18f2525/2620/4525/4620
98           family to consistently use pic18f4620.[ch], fixes #1832562
99
100 2008-03-09 Borut Razem <borut.razem AT siol.net>
101
102         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
103           changed sdcc version to 2.8.0
104         * knownbugs.html: regenerated
105         * support/scripts/gen_known_bugs.pl: added number of open bugs
106
107 2008-03-09 Raphael Neider <rneider AT web.de>
108
109         * src/pic16/gen.c (pic16_mov2w_volatile): NEW, read volatile operands,
110           (genOr): read volatile operand even if the result is known,
111           closes #1511838
112           (genOr,genXor): removed unused legacy code,
113           (genDummyRead): use pic16_mov2w_volatile()
114
115 2008-03-08 Borut Razem <borut.razem AT siol.net>
116
117         * src/SDCCglue.c: fixed bug #1864582: multiple definition of char
118           cons w. --model-large
119         * support/regression/staticinit.c: added regression test for bug
120           #1864582
121
122 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
123
124         * src/ds390/gen.c (pushSide, genPcall),
125         * src/hc08/gen.c (pushSide, genPcall): synchronized with mcs51
126         * src/mcs51/gen.c: cosmetic changes
127         * support/regression/fwk/include/testfwk.h: added macro reentrant
128         * support/regression/tests/bug1908493.c: new, added
129
130 2008-03-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
131
132         * src/SDCCdebug.c:, as/link/lkaomf51.c: Fixed bug 1909409: Pdata in OMF file
133
134 2008-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
135
136         * src/mcs51/gen.c (pushSide, genPcall): fixed bug 1908493
137         * src/SDCCmain.c (preProcess): removed -DSDCC_PARMS_IN_BANK1 because it is
138           already set in ds390/main.c and mcs51/main.c
139
140 2008-03-07 Raphael Neider <rneider AT web.de>
141
142         * src/regression/init0.c: new test for initialized arrays of function
143           pointers
144         * src/regression/Makefile: made a bit more flexible, added init0.c
145         * src/pic/glue.c (emitIvals): hacky fix for initializing from function
146           pointers, closes #1427663
147
148 2008-03-05 Borut Razem <borut.razem AT siol.net>
149
150         * dos/sdccman.lyx: docummented predefined macros SDCC_REVISION,
151           SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
152
153 2008-03-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
154
155         * support/librarian/sdcclib.c:Added feature request 1908061:
156           Synchronise sdcclib commands with ar.
157
158 2008-03-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
159
160         * src/SDCCmain.c: added predefined macros SDCC_REVISION (RFE #1907229),
161           and (depending on corresponding compiler option) SDCC_PARMS_IN_BANK1,
162           SDCC_FLOAT_REENT, SDCC_INT_LONG_REENT
163         * device/include/mcs51/compiler.h: removed umlauts, added double
164           underscore
165
166 2008-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
167
168         * src/SDCCptropt.c (ptrPseudoSymConvert): fixed bug 1536762
169         * support/regression/tests/bug1536762.c: new, added
170         * src/SDCCutil.c,
171         * src/SDCCutil.h: added getBuildDate()
172         * src/SDCCmain.c (printVersionInfo),
173         * src/SDCCglue.c (initialComments): use getBuildDate() instead of
174           __DATE__
175         * src/*/ralloc.c: removed IS_OP_RUONLY macro
176         * src/ds390/ralloc.c (packRegisters),
177         * src/mcs51/ralloc.c (packRegisters),
178         * src/z80/ralloc.c (packRegisters): applied fix for bug 1618050, thanks
179           Robert Larice
180         * support/regression/tests/bug1618050.c: new, added
181         * src/SDCCsymt.h: fixed typo in DECLSPEC2TXT
182         * support/regression/fwk/include/testfwk.h,
183         * support/regression/tests/bug1838000.c: moved _AUTOMEM and _STATMEM to
184           testfwk.h
185
186 2008-03-04 Raphael Neider <rneider AT web.de>
187
188         * src/pic/gen.c: removed unused prototypes, prevent internal errors
189           on accessing OP_SYM_TYPE(op)
190         * src/pic/gen.h: removed unused prototype of genMinusDec()
191         * src/pic/genarith.c (genMinus): cosmetic changes, rewritten to
192           fix #1876953 (invalid subtraction code), removed unused code
193
194 2008-03-03 Raphael Neider <rneider AT web.de>
195
196         * src/pic/gen.c,
197         * src/pic/gen.h,
198         * src/pic/genarith.c,
199         * src/pic/ralloc.c,
200         * src/pic/ralloc.h: removed AOP_R0, AOP_R1, AOP_DPTR, AOP_DPTR2,
201           AOP_ACC, and *_IDX and adjusted code, removed unused legacy code
202
203 2008-03-03 Raphael Neider <rneider AT web.de>
204
205         * src/pic/device.c (find_device): search user-specified paths first
206           for pic14devices.txt, fixes #1900827
207
208 2008-03-02 Borut Razem <borut.razem AT siol.net>
209
210         * support/scripts/sdcc.nsi: fixed bug in IsNT, LogicLib-isation of
211           AddToPath and RemoveFromPath
212
213 2008-03-01 Borut Razem <borut.razem AT siol.net>
214
215         * support/scripts/sdcc.nsi: reverted MULTIUSER page since it didn't
216           work correctly, added debugging support if -DSDCC.DEBUG command line
217           option is defined
218
219 2008-02-28 Borut Razem <borut.razem AT siol.net>
220
221         * doc/sdccman.lyx: cosmetic changes
222
223 2008-02-28 Maarten Brock <sourceforge.brock AT dse.nl>
224
225         * src/mcs51/ralloc.c (fillGaps): fixed bug 1839671
226         * doc/sdccman.lyx: fixed unmeant removal of spaces
227
228 2008-02-27 Borut Razem <borut.razem AT siol.net>
229
230         * support/scripts/sdcc.nsi: corrected installation directory for
231           current user installation mode
232         * doc/README.txt: added Philipp Klaus Krause to the developers list
233
234 2008-02-27 Maarten Brock <sourceforge.brock AT dse.nl>
235
236         * src/mcs51/gen.c (genUnpackBits): don't generate ifxJump, instead
237           return ifx condition
238           (genNearPointerGet, genPagedPointerGet, genFarPointerGet,
239           genCodePointerGet, genGenPointerGet): cleanup aop before generating
240             ifxJump to fix bug 1838000
241         * src/SDCCsymt.c (aggregateToPointer): fix problem for xstack
242         * support/regression/tests/bug1838000.c: new, added
243         * device/include/mcs51/cc1110.h: new, added, thanks to Pravin Angolkar
244
245 2008-02-26 Borut Razem <borut.razem AT siol.net>
246
247         * src/SDCCast.c, doc/sdccman.lyx: fixed RFE #1901171: inerger promotion
248           of casted varargs
249         * support/scripts/sdcc.nsi: added MULTIUSER page,
250           NSIS upgraded to version 2.35
251
252 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
253
254         * src/mcs51/ralloc.c (isSpiltOnStack): fixed bug 1565152
255         * support/regression/tests/bug1565152.c: new, added
256
257 2008-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
258
259         * src/mcs51/gen.c (genPagedPointerSet): fixed bug 1670148
260         * support/regression/ports/mcs51-xstack-auto/spec.mk: added expf.c
261         * support/regression/tests/bug1670148.c: new, added
262
263 2008-02-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
264
265         * device/include/mcs51/at89c51ed2.h: fixed bug 1901469.
266
267 2008-02-24 Borut Razem <borut.razem AT siol.net>
268
269         * src/SDCCast.c, src/SDCCast.h: fixed bug #1874922: explicit typecast
270           is ineffective for unsigned char parameter
271
272 2008-02-24 Maarten Brock <sourceforge.brock AT dse.nl>
273
274         * src/SDCCast.c (expandInlineFuncs): fixed bug 1875869
275         * src/SDCCglue.c (printIvalBitFields): fixed bug 1806631
276         * support/regression/tests/bitopcse.c: removed hc08 exception, see testfwk.h
277         * support/Util/MySystem.c (my_system): output errorcode when verbose
278
279 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
280
281         * src/z80/gen.c (genMult): Rewrote 8-bit multiplication by constant,
282           implements #1898231
283
284 2008-02-22 Philipp Klaus Krause <pkk AT spth.de>
285
286         * device/lib/z80/mul.s: Rewrote __muluchar_rrx_s, to improve 8-bit mult.,
287           implements #1896290
288
289 2008-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
290
291         * src/SDCCast.c (createIvalStruct): fixed bug 1466761
292
293 2008-02-21 Borut Razem <borut.razem AT siol.net>
294
295         * support/regression/Makefile.in,
296           support/regression/ports/ds390/spec.mk,
297           support/regression/ports/hc08/spec.mk,
298           support/regression/ports/mcs51-common/spec.mk,
299           support/regression/ports/pic14/spec.mk,
300           support/regression/ports/pic16/spec.mk,
301           support/regression/ports/ucz80/spec.mk,
302           support/regression/ports/xa51/spec.mk:
303           added CFLAGS when compiling timeout
304
305 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
306
307         * support/regression/tests/bugs-1596270-1736867.c: Regression test for
308           #1596270, #1736867
309
310 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
311
312         * src/SDCClrange.c (findPrevUse): fixed bug 1888147
313         * support/regression/tests/bug1888147.c: new, added
314
315 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
316
317         * src/z80/gen.c: fixed bugs #1596270, #1736867
318
319 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
320
321         * src/z80/gen.c: fixed bug in register pair loading when swapping register
322           contents, mostly fixes #1596270
323
324 2008-02-20 Philipp Klaus Krause <pkk AT spth.de>
325
326         * src/z80/peeph.def,
327         * src/z80/peeph-z80.def: moved peephole that breaks gbz80 to z80-specific
328           peepholes, fixes #1806565
329
330 2008-02-20 Maarten Brock <sourceforge.brock AT dse.nl>
331
332         * src/SDCCpeeph.c (operandBaseName): added check for @Ri
333         * src/mcs51/peeph.def (rule 177.c): added operandsNotRelated(%1 %3)
334           fixes bug 1739475, thanks Robert Larice
335           (rule 271): new, added
336
337 2008-02-18 Borut Razem <borut.razem AT siol.net>
338
339         * sim/ucsim/s51.src/Makefile.in: fixed error made in previous commit
340
341 2008-02-17 Maarten Brock <sourceforge.brock AT dse.nl>
342
343         * src/SDCCmain.c (linkEdit): emit -z when using --debug for z80
344
345 2008-02-17 Raphael Neider <rneider AT web.de>
346
347         * src/pic16/genarith.c,
348         * src/pic16/gen.c,
349         * src/pic16/gen.h,
350         * src/pic16/genutils.c: removed unused legacy code,
351           removed unused fields from struct asmop and struct _G
352
353 2008-02-17 Raphael Neider <rneider AT web.de>
354
355         * src/pic16/gen.c (AccRsh): cosmetic changes,
356           (shiftR1Left2ResultSigned,shiftR1Left2Result,shiftL1Left2Result,
357           genRightShiftLiteral): fixed to work with SFRs as result by
358           assigning only once to result,
359           removed a lot of unused/excluded code fragments
360
361 2008-02-17 Raphael Neider <rneider AT web.de>
362
363         * device/include/pic/pic16f88.h,
364         * device/include/pic/pic16f886.h,
365         * device/include/pic/pic16f887.h: added TRISA6 and TRISA7
366
367 2008-02-17 Borut Razem <borut.razem AT siol.net>
368
369         * src/z80/peeph.def: applied patch
370           #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
371         * src/z80/gen.c, src/z80/peeph.def: applied patch
372           #1893510: Improve logical left shift on Z80, thanks to Philipp Krause
373         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
374           sim/ucsim/s51.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
375           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
376           sim/ucsim/main_in.mk: renamed libutil.a to libucsimutil.a in order to
377           enable compilation on Mac OS X 10.5 (Leopard) and XCode v3.0
378
379 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
380
381         * as/link/mcs51/aslink.dsp: removed SDK define
382         * as/link/z80/clean.mk: brought in sync with other ports
383         * as/link/z80/lklibr.c (SdccLib, fndsym): handle the dflag here too
384         * as/hc08/Makefile.bcc,
385         * as/mcs51/Makefile.bcc,
386         * as/z80/Makefile.bcc: noice.c was moved to as/asxxsrc/
387         * src/z80/main.c (_setValues): use the now capitalized -Z,
388           (z80_port, gbz80_port): generate debug information when asked
389
390 2008-02-16 Borut Razem <borut.razem AT siol.net>
391
392         * as/z80/asmain.c, as/z80/asm.h, as/z80/asdata.c,
393           as/link/z80/lkmain.c, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
394           as/z80/Makefile.in. as/z80/Makefile.bcc:
395           applied patch #1893393: patch for as-z80 and link-z80 to generate
396           cdb, thanks to Armin Diehl
397         * as/*/asnoice.c, as/hc08/as_hc08.dsp, as/hc08/Makefile.in,
398           as/mcs51/asx8051.dsp, as/mcs51/Makefile.in:
399           asnoice.c moved to as/asxxsrc/asnoice.c
400         * src/z80/peeph-gbz80.def: applied patch
401           #1880235: Z80 return peephole, thanks to Philipp Krause
402
403 2008-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
404
405         * .version,
406         * doc/sdccman.lyx: bumped version to 2.7.5
407         * src/SDCCsymt.c (compareType, comparePtrType): fixed bug 1281583
408
409 2008-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
410
411         * device/include/pic16/stdlib.h,
412         * device/lib/pic16/libc/stdlib/ltoa.c,
413         * device/lib/pic16/libc/stdio/vfprintf.c: ascii strings are char*
414
415 2008-02-13 Borut Razem <borut.razem AT siol.net>
416
417         * src/SDCCmain.c, src/SDCCglue.c: fixed --c1mode
418         * src/pic16/glue.c, src/SDCCast.c, src/SDCCast.h, src/SDCCBBlock.c,
419           src/SDCCcse.c, src/SDCCglue.c, src/SDCCicode.c, src/SDCCloop.c,
420           src/SDCCopt.c,  src/SDCCval.c:
421           fixed bug #1890273: SDCC Warning 154 shows wrong filename
422
423 2008-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
424
425         * src/SDCCsymt.c (compareType): fixed bug 1309013
426
427 2008-02-09 Borut Razem <borut.razem AT siol.net>
428
429         * src/SDCCval.c, src/SDCCval.h:
430           code cleaning, added function constChrVal()
431         * src/SDCCglue.c, src/pic/glue.c, src/pic16/glue.c, src/SDCCast.c, src/SDCC.y:
432           call constChrVal() instead constVal()
433
434 2008-02-01 Maarten Brock <sourceforge.brock AT dse.nl>
435
436         * src/SDCCast.c (resolveSymbols): added reentrancy check for parameters
437           of function pointer
438         * src/SDCCerr.h,
439         * src/SDCCerr.c: changed warning W_NONRENT_ARGS to error E_NONRENT_ARGS
440         * support/regression/tests/absolute.c: added TestStruct TestVar (see also
441           bug 1859853)
442
443 2008-02-01 Raphael Neider <rneider AT web.de>
444
445         * device/include/pic/pic16f886.h,
446         * device/include/pic/pic16f887.h: added RA6 and RA7
447
448 2008-01-24 Raphael Neider <rneider AT web.de>
449
450         * device/include/pic/pic16f88.h: added RA6 and RA7
451         * device/lib/pic/libdev/disabled_pic16f886.c,
452         * device/lib/pic/libdev/disabled_pic16f887.c: renamed and enabled
453
454         * src/pic16/devices.inc,
455         * device/include/pic16/pic18f2423.h,
456         * device/include/pic16/pic18f2523.h,
457         * device/include/pic16/pic18fregs.h,
458         * device/lib/pic16/pics.all
459         * device/lib/pic16/libdev/pic18f2423.c,
460         * device/lib/pic16/libdev/pic18f2523.c: added 18f2423 and 18f2523
461         * device/lib/pic16/libio/i2c.ignore,
462         * device/lib/pic16/libio/usart.ignore,
463         * device/lib/pic16/libio/adc.ignore: ignore new devices
464
465 2008-01-23 Maarten Brock <sourceforge.brock AT dse.nl>
466
467         * src/SDCCast.c (createRMW): fixed bug 1582651
468
469 2008-01-20 Borut Razem <borut.razem AT siol.net>
470
471         * src/SDCCcse.c: partially fixed enhancement request
472           #1793872 - multiply by -1 not collapsed
473         * support/regression/tests/arithcsi.c: added regression test
474
475 2008-01-19 Maarten Brock <sourceforge.brock AT dse.nl>
476
477         * as/mcs51/asx8051.dsp: removed define SDK
478         * as/mcs51/i51mch.c (machine): fixed bug 1865114
479         * device/include/asm/ds390/features.h: fixed bug with ds390 & stack-auto
480         * as/link/lklex.c,
481         * as/link/mcs51/lkmain.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
482           cosmetic changes, brought more in sync, changed old K&R to ANSI
483
484 2008-01-13 Borut Razem <borut.razem AT siol.net>
485
486         * support/scripts/sdcc.nsi: added Uninstall/reinstall page, ...
487         * src/SDCCicode.c: fixed bug #1870216 - Error 122: dividing by zero
488
489 2007-12-30 Borut Razem <borut.razem AT siol.net>
490
491         * src/pic16/gen.c: fixed implementation of bitwise operations for
492           pic16 target
493         * support/regression/tests/bitwise.c: added test cases
494
495 2007-12-29 Borut Razem <borut.razem AT siol.net>
496
497         * src/SDCCasm.[ch]: renamed from asm[ch], use dbuf_getline(), ...
498         * src/src.dsp, src/Makefile.bcc, src/Makefile.in, src/common.h,
499           src/SDCCglue.c, src/xa51/main.c: asm.[ch] renamed to SDCCasm.[ch]
500         * support/Util/dbuf_string.[ch]: added function dbuf_getline()
501         * src/ds390/gen.c, src/hc08/gen.c, src/mcs51/gen.c, src/pic16/gen.c,
502           src/pic/gen.c, src/z80/gen.c, src/xa51/gen.c, src/pic16/ralloc.c,
503           src/pic16/pcode.[ch]: added const qualifier
504         * as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
505           as/mcs51/Makefile.bcc, as/mcs51/Makefile.in, as/mcs51/asx8051.dsp,
506           as/z80/Makefile.bcc, as/z80/Makefile.in, as/z80/as_gbz80.dsp,
507           as/z80/as_z80.dsp: added dbuf.[ch] and dbuf_string[ch] to project
508         * as/asxxsrc/aslex.c: use dbuf_getline()
509         * as/hc08/asdata.c, as/hc08/asexpr.c, as/hc08/asm.h, as/hc08/m08adr.c,
510           as/mcs51/asdata.c, as/mcs51/asexpr.c, as/mcs51/asm.h,
511           as/mcs51/i51adr.c, as/z80/asdata.c, as/z80/asexpr.c, as/z80/aslist.c,
512           as/z80/asm.h, as/z80/z80adr.c:
513           changed type of ib and ip to const char *
514
515 2007-12-28 Borut Razem <borut.razem AT siol.net>
516
517         * as/asxxsrc/aslex.c: moved from as/mcs51/aslex.c;
518           introduced (readlin) - long lines are turuncated
519         * as/hc08/as_hc08.dsp, as/mcs51/asx8051.dsp, as/z80/as_gbz80.dsp,
520           as/z80/as_z80.dsp, as/hc08/Makefile.in, as/mcs51/Makefile.in,
521           as/z80/Makefile.in: moved aslex.c to asxxsrc
522         * as/hc08/aslex.c, as/z80/aslex.c: deleted
523         * as/hc08/asmain.c, as/mcs51/asmain.c:
524           added missing initialization of a_addr field
525         * support/regression/tests/long_asm_line.c: added regtest for long
526           assembler line
527
528 2007-12-22 Borut Razem <borut.razem AT siol.net>
529
530         * src/SDCC.lex: fixed bug #1852894: # character hangs the compiler
531
532 2007-12-20 Maarten Brock <sourceforge.brock AT dse.nl>
533
534         * src/SDCCsymt.c (computeType): fixed bug, thanks Fan Weiguang
535
536 2007-12-16 Borut Razem <borut.razem AT siol.net>
537
538         * device/include/pic16/stdbool.h: removed, since already exists in
539          device/include/; this also fixes bitopcse.c regression test for pic16
540          target
541         * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED
542         * src/pic16/glue.c: fixed bug #1851855: generic static pointer
543           dereference doesn't work; covered by regression test bug1399290
544
545 2007-12-05 Borut Razem <borut.razem AT siol.net>
546
547         * doc/sdccman.lyx: fixed bug #1844509 - Correction to Manual 4.6.9
548           Adding new PIC16
549
550 2007-12-01 Borut Razem <borut.razem AT siol.net>
551
552         * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc:
553           corrected handling of the highest_valid_address
554
555 2007-11-17 Raphael Neider <rneider AT web.de>
556
557         * src/pic/main.c (_asmCmd): include debug arguments (-g as $3)
558         * src/pic/glue.c (picglue): emit .file if --debug is given
559
560 2007-11-17 Raphael Neider <rneider AT web.de>
561
562         * src/pic16/genarith.c (pic16_genPlus, pic16_genMinus): take special
563         care when left or right operand resides in result, fixes #1830220
564
565 2007-11-17 Borut Razem <borut.razem AT siol.net>
566
567         * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
568           #983491 - "Merge duplicate strings function is ineffective"
569         * support/regression/tests/bug-983491.c: regtest disabled
570         * as/asxxsrc: created
571           as/asxxsrc/assym.c, as/asxxsrc/strcmpi.c: moved
572           as/hc08/assym.c, as/mcs51/assym.c, as/strcmpi.c,
573           as/z80/assym.c, as/hc08/asstore.c, as/mcs51/asstore.c: deleted
574           as/hc08/Makefile.bcc, as/hc08/Makefile.in, as/hc08/as_hc08.dsp,
575           as/hc08/asm.h, as/link/hc08/Makefile.bcc, as/link/hc08/Makefile.in,
576           as/link/hc08/link_hc08.dsp, as/link/mcs51/Makefile.bcc,
577           as/link/mcs51/Makefile.in, as/link/mcs51/aslink.dsp,
578           as/link/z80/Makefile.in, as/link/z80/linkgbz80.dsp,
579           as/link/z80/linkz80.dsp, as/mcs51/Makefile.bcc, as/mcs51/Makefile.in,
580           as/mcs51/asm.h, as/mcs51/asx8051.dsp, as/z80/Makefile.bcc,
581           as/z80/Makefile.in, as/z80/as_gbz80.dsp, as/z80/as_z80.dsp,
582           as/z80/Makefile.as_hc08, as/mcs51/Makefile.asx8051: modified
583           created as/asxxsrc directory, assym.c and strcpi.c moved into it
584
585 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
586
587         * device/include/stdarg.h: added and removed some casts
588         * src/SDCCsymt.c (compareType): Fully check types between generic and
589           non-generic pointers, also accept ptr-ptr to void-ptr assignments
590
591 2007-11-13 Borut Razem <borut.razem AT siol.net>
592
593         * support/regression/tests/bug-1817005.c:
594           added regtest for bug #1817005 - as-z80 chokes on long labels
595
596 2007-11-12 Borut Razem <borut.razem AT siol.net>
597
598         * as\z80\asmain.c, as\z80\asm.h, as\z80\assym.c, as\z80\asdata.c,
599           as\z80\asout.c, as\z80\aslist.c:
600           fixed bug #1817005 - as-z80 chokes on long labels
601
602 2007-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
603
604         * as/hc08/asmain.c,
605         * as/z80/asmain.c: cosmetic changes
606         * as/hc08/alloc.h,
607         * as/mcs51/alloc.h,
608         * as/z80/alloc.h: removed
609         * as/hc08/assym.c,
610         * as/mcs51/assym.c: replaced alloc.h with stdlib.h
611         * as/link/aslink.h: added LKDIRSEP and, LKDIRSEPSTR
612         * as/link/hc08/Makefile.in,
613         * as/link/mcs51/Makefile.in,
614         * as/link/z80/Makefile.in: added -DUNIX to CFLAGS
615         * as/link/lklex.c,
616         * as/link/mcs51/lkarea.c,
617         * as/link/mcs51/lkmain.c: cosmetic changes
618         * as/link/hc08/lklibr.c,
619         * as/link/z80/lklibr.c,
620         * as/link/mcs51/lklibr.c: used LKDIRSEP, LKDIRSEPSTR and LKOBJEXT,
621           used cygwin_conv_to_full_posix_path,
622           added warnings, cosmetic changes, brought more in sync
623           changed old K&R into ANSI function declarations
624         * as/link/z80/lklibr.c (loadAdb): added
625         * as/link/z80/lkmain.c: removed -- option from usage text
626
627 2007-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
628
629         * src/mcs51/gen.c (outBitC): optimized for no result
630
631 2007-10-31 Borut Razem <borut.razem AT siol.net>
632
633         * src/SDCCsymt.c: fixed (hopeful properly) bug
634           #1805702 - order of extern matters
635         * support/regression/tests/bug-1805702.c: enabled regtest for bug
636           #1805702
637
638 2007-10-29 Borut Razem <borut.razem AT siol.net>
639
640         * src/SDCCsymt.c: reverted bad fixed of bug #1805702
641           - order of extern matters
642         * support/regression/tests/bug-1805702.c: disabled regtest for bug
643           #1805702
644
645 2007-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
646
647         * src/ds390/peeph.def: replaced 24bitModeAndPortDS390 by
648           24bitMode, portIsDS390
649         * src/mcs51/gen.c (genOr): optimized for RFE 1750727
650         * src/SDCCpeeph.c (flat24bitModeAndPortDS390): removed
651           (notVolatileVariable): also check sloc names,
652           (callFuncByName): moved ftab[] out of function and sorted it by use
653
654 2007-10-28 Maarten Brock <sourceforge.brock AT dse.nl>
655
656         * device/include/stdarg.h: fixed bug in va_start macro for --xstack
657         * src/hc08/gen.c (aopForRemat): aop->aopu.aop_immd.from_cast_remat not set,
658           aop->aopu.aop_immd.aop_immd2 not filled with (generic) pointer type
659         * src/SDCCicode.c (geniCodeCast): fixed bug 880197
660         * support/regression/tests/bug-880197.c: new, added
661
662 2007-10-28 Borut Razem <borut.razem AT siol.net>
663
664         * support/regression/Makefile.in,
665           support/regression/ports/mcs51-large/spec.mk,
666           support/regression/ports/mcs51-xstack-auto/spec.mk,
667           support/regression/ports/mcs51-stack-auto/spec.mk,
668           support/regression/ports/mcs51-medium/spec.mk,
669           support/regression/ports/mcs51-common/spec.mk,
670           support/regression/ports/mcs51-common/*,
671           support/regression/ports/mcs51-small/*:
672           mcs51 renamed to mcs51-common, created mcs51-small
673         * src/SDCCsymt.c: fixed bug #1805702 - order of extern matters
674         * support/regression/tests/bug-1805702.c: added regtest for bug
675           #1805702
676
677 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
678
679         * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
680           added new rules 265 - 270
681         * support/regression/tests/bug1721024.c:new, added
682         * support/regression/Makefile.in: renamed test-mcs51 to test-mcs51-small,
683           introduced new test-mcs51 to run all mcs51 tests
684
685 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
686
687         * support/regression/tests/bug1816470.c: new, added
688
689 2007-10-21 Maarten Brock <sourceforge.brock AT dse.nl>
690
691         * src/SDCCast.c (resultTypePropagate): do propagate for LEFT_OP, do not
692           propagate for *,+,- with float, fixed bug 1816470
693           (decorateType): cast to resultTypeProp instead of resultType
694
695 2007-10-19 Borut Razem <borut.razem AT siol.net>
696
697         * src/pic16/glue.c: fixed bug #983491 - "Merge duplicate strings
698           function is ineffective" for pic16 tareget
699         * support/scripts/listerr.c: corrected include path
700         * device/lib/_itoa.c: fixed bug #1806402 - _itoa and _uitoa leak to
701           adjacent memory
702
703 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
704
705         * support/regression/tests/using.c: new, added
706         * support/regression/tests/vaargs.c: fixed and enabled test
707
708 2007-10-18 Borut Razem <borut.razem AT siol.net>
709
710         * src/SDCCglue.c: fixed bug #983491 - Merge duplicate strings function
711           is ineffective
712         * support/regression/tests/bug-983491.c: added regtest for bug #983491
713
714 2007-10-18 Maarten Brock <sourceforge.brock AT dse.nl>
715
716         * doc/sdccman.lyx: documented option --Werror
717         * src/SDCCsymt.c (checkFunction): fixed bug 1815418 by setting
718           RegBankUsed[] earlier
719
720 2007-10-14 Maarten Brock <sourceforge.brock AT dse.nl>
721
722         * device/include/mcs51/p89lpc938.h: new, added, thanks Kyle Guinn
723         * src/pic/glue.c,
724         * src/SDCCval.c,
725         * src/SDCCast.c,
726         * src/SDCCast.h: replaced AST_LIT_VALUE with AST_FLOAT_VALUE and
727           AST_ULONG_VALUE
728         * src/SDCCast.c (decorateType): improved optimization of tri-op
729         * src/SDCCerr.c (vwerror, setWError),
730         * src/SDCCerr.h,
731         * src/SDCCmain.c (parseCmdLine): added option --Werror to treat all
732           warnings as errors, thanks Stas Sergeev for PATCH 1813211
733
734 2007-10-13 Maarten Brock <sourceforge.brock AT dse.nl>
735
736         * src/mcs51/gen.c (leftRightUseAcc): use macro IS_OP_ACCUSE
737         * src/SDCCast.c (decorateType): optimize bit=cond?1:0, RFE 1738430
738         * support/regression/tests/bug-223113.c,
739         * support/regression/tests/bug-426632.c,
740         * support/regression/tests/bug-468811.c,
741         * support/regression/tests/bug-477835.c,
742         * support/regression/tests/bug-478094.c,
743         * support/regression/tests/bug-499644.c,
744         * support/regression/tests/bug-524209.c,
745         * support/regression/tests/bug-524211.c,
746         * support/regression/tests/packcast.c,
747         * support/regression/tests/structidx.c: added empty tests
748         * support/regression/tests/bug-607243.c: enabled test
749
750 2007-10-06 Borut Razem <borut.razem AT siol.net>
751
752         * .version, doc/sdccman.lyx: bumped version to 2.7.4 to indicate the full
753            support of universal binaries on Mac OS X
754
755 2007-10-02 Borut Razem <borut.razem AT siol.net>
756
757         * src/SDCCval.h: unified double2ul macro for all platforms
758         * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
759         * support/regression/tests/bitwise.c: added regtest for bug #1777758
760
761 2007-09-30 Borut Razem <borut.razem AT siol.net>
762
763         * src/SDCCval.h: fixed bug #1739860 - sdcc does not work correctly on some
764           platforms
765         * sdcc_vc_in.h: enabled warnings
766         * src/hc08/gen.c: fixed MSVC warning C4146: unary minus operator applied to
767           unsigned type, result still unsigned
768         * src/mcs51/peep.c: fixed gcc warning: suggest parentheses around && within ||
769
770 2007-09-28 Raphael Neider <rneider AT web.de>
771
772         * src/pic/device.c (find_device): prevent buffer underflow error
773         * src/pic/pcoderegs.c (OptimizeRegUsage): avoid dereferencing
774           the just destroyed list entry
775
776 2007-09-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
777
778         * doc/sdccman.lyx: there's a dedicated wiki page for cmake and sdcc, thanks
779           Alexander Neundorf
780
781 2007-09-18 Borut Razem <borut.razem AT siol.net>
782
783         * src/SDCCval.c: fixed MSVC warning C4146: unary minus operator
784          applied to unsigned type, result still unsigned
785
786 2007-09-17 Borut Razem <borut.razem AT siol.net>
787
788         * src/SDCC.y, src/SDCCast.c, src/SDCCcse.c, src/SDCCglue.c,
789           src/SDCCicode.c, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCval.c,
790           src/SDCCval.h, src/hc08/gen.c, src/avr/gen.c, src/ds390/gen.c,
791           src/mcs51/gen.c, src/pic/gen.c, src/pic/genarith.c, src/pic/glue.c,
792           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/genarith.c,
793           src/pic16/genutils.c, src/pic16/glue.c, src/pic16/main.c,
794           src/z80/gen.c, src/z80/ralloc.c:
795           fixed bug #1739860 - sdcc does not work correctly on some platforms
796           (not finished)
797           introduced and used ulFromVal(), double2ul(), used strtod() instead sscanf()
798
799 2007-09-17 Raphael Neider <rneider AT web.de>
800
801         * src/pic16/device.c: reverted to previous version
802         * device/lib/pic16/Makefile.common.in: quieten gpasm via -Wa,-q
803
804 2007-09-16 Raphael Neider <rneider AT web.de>
805
806         * src/pic16/device.c (pic16_dump_usection): do not reserve 0 bytes,
807           as this raises a ton of gpasm warnings, just emit a second label
808         * src/pic16/devices.inc,
809         * device/lib/pic16/pics.all,
810         * device/lib/pic16/libdev/pic18f2585.c,
811         * device/lib/pic16/libdev/pic18f2680.c,
812         * device/lib/pic16/libdev/pic18f2682.c,
813         * device/lib/pic16/libdev/pic18f2685.c,
814         * device/lib/pic16/libdev/pic18f4585.c,
815         * device/lib/pic16/libdev/pic18f4680.c,
816         * device/lib/pic16/libdev/pic18f4682.c,
817         * device/lib/pic16/libdev/pic18f4685.c,
818         * device/include/pic16/pic18f2585.h,
819         * device/include/pic16/pic18f2680.h,
820         * device/include/pic16/pic18f2682.h,
821         * device/include/pic16/pic18f2685.h,
822         * device/include/pic16/pic18f4585.h,
823         * device/include/pic16/pic18f4680.h,
824         * device/include/pic16/pic18f4682.h,
825         * device/include/pic16/pic18f4685.h,
826         * device/include/pic16/pic18fregs.h: added 18f2585, 18f2680,
827           18f2682, 18f2685, 18f4585, 18f4680, 18f4682, 18f4685,
828           patch contributed by Anton Strobl, applied with changes
829
830 2007-09-16 Raphael Neider <rneider AT web.de>
831
832         * device/include/pic16/pic18f2431.h,
833         * device/include/pic16/pic18f25j10.h,
834         * device/include/pic16/pic18f4431.h,
835         * device/include/pic16/pic18f45j10.h: adopted common include style
836         * device/include/pic16/pic18f1320.h,
837         * device/include/pic16/pic18f2320.h,
838         * device/include/pic16/pic18f2525.h,
839         * device/include/pic16/pic18f4320.h,
840         * device/include/pic16/pic18f4525.h: NEW, just include proper .h file
841         * device/include/pic16/pic18fregs.h: prepared for automatic include
842           file selection by having DEVICE.h for every DEVICE
843         * device/lib/pic16/libdev/pic18f2320.c,
844         * device/lib/pic16/libdev/pic18f4320.c: just include proper .c file
845
846         * device/lib/pic16/configure.in,
847         * device/lib/pic16/configure: use rm -rf instead of rmdir
848         * device/lib/pic16/Makefile.in: use RMDIR to remove build directories
849         * device/lib/pic16/libc/stdlib/free.c: avoid warning on pointer cast
850
851 2007-09-09 Borut Razem <borut.razem AT siol.net>
852
853         * src/SDCCmain.c, src/SDCCutil.c: print newline after printVersionInfo(),
854           distingush between i386 and ppc Mac OS X versions
855
856 2007-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
857
858         * src/mcs51/gen.c (genReceive): fixed bug 1788177
859         * support/regression/tests/bug1788177.c: new, added
860
861 2007-09-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
862
863         * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code
864         * device/include/mcs51/lint.h added keyword __naked
865
866 2007-09-04 Maarten Brock <sourceforge.brock AT dse.nl>
867
868         * src/pic16/glue.c,
869         * src/pic/glue.c,
870         * src/SDCCmem.h: removed maxRegBank
871         * src/SDCCmem.c (allocVariables): removed maxRegBank and moved setting
872           RegBankUsed[] to checkFunction() in SDCCsymt.c to fix bug 1759839
873         * src/SDCCsymt.c (checkFunction): set RegBankUsed[] here
874         * src/mcs51/peep.c (isCallerSaveFunc, termScanAtFunc): changed function
875           name and behaviour to handle banked functions
876           (scan4op): and use it to fix bug 1786213
877
878 2007-09-03 Raphael Neider <rneider AT web.de>
879
880         * device/include/pic16/pic18f248.h,
881         * device/include/pic16/pic18f258.h,
882         * device/include/pic16/pic18f448.h,
883         * device/lib/pic16/libdev/pic18f248.c,
884         * device/lib/pic16/libdev/pic18f258.c,
885         * device/lib/pic16/libdev/pic18f448.c: fixed TRISEbits,
886           added T0CONbits, fixes #1786891
887
888 2007-08-29 Maarten Brock <sourceforge.brock AT dse.nl>
889
890         * src/ds390/gen.c (genFarPointerSet),
891         * src/hc08/ralloc.c (packRegisters),
892         * src/mcs51/ralloc.c (packRegisters),
893         * src/SDCCcse.c (cseBBlock): check if result is a symbol first to fix
894           bug 1750318
895         * src/SDCCicode.h: POINTER_SET can be true for literals too
896         * support/regression/tests/bug1750318.c: new, added
897
898 2007-08-23 Borut Razem <borut.razem AT siol.net>
899
900         * debugger/mcs51/sdcdb.c: fixed compilation with older readline
901           library versions without the completition functionality
902
903 2007-08-22 Raphael Neider <rneider AT web.de>
904
905         * device/include/pic16/pic18f1220.h,
906         * device/lib/pic16/libdev/pic18f1220.c: applied patch #1776191
907
908 2007-08-12 Borut Razem <borut.razem AT siol.net>
909
910         * debugger/mcs51/Makefile.in: support/Util/SDCCerr.[ch] moved to src
911
912 2007-08-11 Borut Razem <borut.razem AT siol.net>
913
914         * support/Util/SDCCerr.c, support/Util/SDCCerr.h, src/src.dsp,
915           src/Makefile.in, src/Makefile.bcc, support/scripts/listerr.c:
916           support/Util/SDCCerr.[ch] moved to src
917         * as/hc08/as_hc08.dsp, as/link/hc08/link_hc08.dsp,
918           as/link/z80/linkgbz80.dsp, as/link/z80/linkz80.dsp,
919           device/examples/ds390/tinitalk/tinitalk.dsp,
920           device/examples/serialcomm/windows/serialcomm.dsp,
921           support/librarian/librarian.dsp:
922           removed linking of unused odbc32.lib and odbccp32.lib
923         * support/scripts/winres.h:
924           added for compilation with Visual C++ 2005 Express Edition
925
926 2007-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
927
928         * device/include/mcs51/at89c51ed.h: Fixed typo in declarations of CKCON0
929           and CKCON1.
930
931 2007-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
932
933         * sdccconf_in.h: update the endian test so that SPARC Solaris
934           does not throw syntax errors
935
936 2007-08-06 Borut Razem <borut.razem AT siol.net>
937
938         * doc/sdccman.lyx: removed two index entries which prevented the
939           generation of sdcc doc archive
940
941 2007-08-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
942
943         * doc/sdccman.lyx: Same changes made 2007-07-28 but using lyx 1.4.4
944           instead of lyx 1.5.0.
945
946 2007-07-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
947
948         * device/include/hc08/mc68hc908apxx.h: new header contributed by
949           Lucas Loizaga, with minor modifications. Thanks!
950
951 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
952
953         * doc/sdccman.lyx: Documented --acall-ajmp and described new features
954           in sdcclib.
955
956 2007-07-28 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
957
958         * src/SDCCglobl.h, src/SDCCpeeph.c, src/SDCCglue.c, src/mcs51/main.c,
959           src/mcs51/peeph.def: Added option --acall-ajmp: replaces lcall/ljmp
960           with acall/ajmp.
961
962 2007-07-22 Borut Razem <borut.razem AT siol.net>
963
964         * configure.in, configure: re-introduced .version
965         * sdcc.spec, doc/INSTALL.txt: they are used only for releases;
966           the version reverted to 2.7.0
967
968 2007-07-18 Maarten Brock <sourceforge.brock AT dse.nl>
969
970         * configure.in,
971         * doc/sdccman.lyx: bumped version to 2.7.3
972         * device/include/mcs51/compiler.h: fixed elif->else
973         * src/mcs51/gen.c (genAnd, genOr): handle accuse for pure bit operands
974         * src/mcs51/ralloc.c (createStackSpil): fixed SCLS bug with sloc for sbit,
975           (operandUsesAcc, packRegsForAccUse): added parameter allowBitspace to
976            enable accuse for bit operands
977         * src/SDCCmain.c (printVersionInfo),
978         * src/SDCCutil.c (getBuildEnvironment): factored out creation of build
979           environment descriptor
980         * src/SDCCutil.h: added getBuildEnvironment
981         * src/SDCCglue.c (initialComments): use getBuildEnvironment
982         * support/regression/tests/bug1464657.c: enabled test test_Peephole251
983         * support/regression/tests/bug-408972.c: enabled test leftShiftLong
984         * support/regression/tests/bug1348008.c,
985         * support/regression/tests/bug1496419.c,
986         * support/regression/tests/bug1503067.c,
987         * support/regression/tests/preproc.c: added empty tests
988
989 2007-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
990
991         * support/regression/tests/bug1678803.c: new, added
992
993 2007-07-14 Maarten Brock <sourceforge.brock AT dse.nl>
994
995         * as/link/aslink.h,
996         * as/link/hc08/lkihx.c,
997         * as/link/hc08/lkrloc.c,
998         * as/link/mcs51/lkihx.c,
999         * as/link/mcs51/lkrloc.c: renamed ihxEntendedLinearAddress to
1000           ihxExtendedLinearAddress
1001         * as/link/mcs51/lkrloc.c (relr),
1002         * as/mcs51/asout.c (outr11, outr19): handle absolute destination for
1003           acall/ajmp, see bug 830513
1004
1005 2007-07-13 Maarten Brock <sourceforge.brock AT dse.nl>
1006
1007         * src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
1008           (cseBBlock): remember aggr2ptr has been used
1009         * src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
1010           (geniCodeAssign): fixed bug 868103
1011         * src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
1012           added operandSize prototype
1013         * src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
1014           (genDataPointerSet): use max of size of right and result,
1015           (gencjne): added parameter useCarry for optimization,
1016           (genCmpEq): use carry if appropriate,
1017           (genXor): check if operand already in carry
1018         * support/regression/tests/bug-868103.c: enabled test
1019
1020 2007-07-12 Raphael Neider <rneider AT web.de>
1021
1022         * src/pic16/gen.c (genNearPointerSet): fixed handling of literals
1023
1024 2007-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
1025
1026         * src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
1027           from Robert Larice, thanks
1028         * support/regression/tests/bitopcse.c,
1029         * support/regression/tests/bitvars.c,
1030         * support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
1031         * support/regression/tests/bug-927659.c: enabled test for z80
1032         * support/regression/tests/bug1738367.c: added extra tests by Frieder
1033         * support/regression/tests/bug1745717.c: new, added
1034         * support/regression/tests/literalop.c,
1035         * support/regression/tests/nullstring.c: removed storage definitions that
1036           are now in testfwk.h
1037
1038 2007-07-10 Maarten Brock <sourceforge.brock AT dse.nl>
1039
1040         * device/include/stdbool.h: do not define __bool_true_false_are_defined
1041           and bool for targets that do not fully support it.
1042         * support/regression/tests/bug1546986.c,
1043         * support/regression/tests/bug1723128.c,
1044         * support/regression/tests/bug1734654.c,
1045         * support/regression/tests/bug1738367.c,
1046         * support/regression/tests/constantRange.c: only use bool if allowed
1047
1048 2007-07-09 Maarten Brock <sourceforge.brock AT dse.nl>
1049
1050         * src/mcs51/peep.c (isCallerSaveFunc): fixed bug 1749275, thanks Robert
1051           Larice, also handle function pointers
1052         * support/regression/tests/bug1749275.c: new, added
1053
1054 2007-07-03 Borut Razem <borut.razem AT siol.net>
1055
1056         * src/mcs51/gen.c, src/avr/gen.c, src/pic/gen.c, src/z80/gen.c,
1057           src/pic16/gen.c, src/hc08/gen.c, src/ds390/gen.c: fixed RFE
1058           #1746528: SDCC should ignore ':' in inline assembler comments
1059         * device/include/typeof.h: fixed bug #1747142: typeof.h needs fixing
1060
1061 2007-07-02 Maarten Brock <sourceforge.brock AT dse.nl>
1062
1063         * device/include/mcs51/C8051F360.h: fixed bug #1746410, thanks Chris Jones
1064         * device/lib/mcs51/crtxclear.asm: do not set __XPAGE unconditionally
1065
1066 2007-06-29 Borut Razem <borut.razem AT siol.net>
1067
1068         * src/SDCCmain.c: fixed bug
1069           #1744746: SDCC #4867: broken option --xram-size
1070
1071 2007-06-28 Borut Razem <borut.razem AT siol.net>
1072
1073         * sim/ucsim/configure.in, sim/ucsim/configure, sim/ucsim/ddconfig_in.h:
1074           find out the endianess of host machine for ucsim
1075
1076 2007-06-27 Borut Razem <borut.razem AT siol.net>
1077
1078         * support/regression/generate-cases.py: corrected the file name
1079           in warning
1080         * configure.in, configure, sdccconf_in.h: find out the endianess of
1081           host machine
1082         * src/SDCC.y: fixed bug #1744146: Crash when compiling array of
1083           negative size
1084
1085 2007-06-27 Gudjon I. Gudjonsson <gudjon AT gudjon.org>
1086
1087         * device/include/mcs51/p89c66x.h: NXP header file, OK to change licence
1088
1089 2007-06-26 Borut Razem <borut.razem AT siol.net>
1090
1091         * support/regression/generate-cases.py: display warning if function
1092           list is empty; implemented more flexible rule for detection of
1093           testing functions, allowing return type 'void' in the same line as
1094           the function name in the function definition
1095         * support/regression/tests/bug-1654060.c: corrected test
1096         * support/librarian/sdcclib.c: fixed warning:
1097           format '%s' expects type 'char *', but argument 2 has type 'int'
1098
1099 2007-06-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1100
1101         * support/librarian/sdcclib.c: Added feature Requests [1510635]
1102           Multiple infiles for sdcclib.
1103
1104 2007-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1105
1106         * src/SDCCast.c (inlineFindMaxBlockno, createFunction): fixed
1107           bug 1731741
1108
1109 2007-06-18 Borut Razem <borut.razem AT siol.net>
1110
1111         * src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
1112           how to handle comments, so they have to be removed by the
1113           preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
1114         * src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
1115           src/pic16/main.c, src/pic/main.c, src/z80/main.c,
1116           support/Util/SDCCerr.c, support/Util/SDCCerr.h:
1117           table driven option hadling
1118
1119 2007-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1120
1121         * src/SDCCast.c (decorateType),
1122         * src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
1123           iCode to ast level to fix bug 1738367
1124         * support/regression/tests/bug1738367.c: new, added
1125
1126 2007-06-15 Raphael Neider <rneider AT web.de>
1127
1128         * src/pic16/devices.inc,
1129         * device/lib/pic16/pics.all,
1130         * device/include/pic16/pic18fregs.h,
1131         * device/include/pic16/pic18f[24][45]20.h,
1132         * device/lib/pic16/libdev/pic18f[24][45]20.c: added support for
1133           18f2420, 18f2520, and 18f4420 devices, updated 18f4520 definitions
1134         * device/lib/pic16/Makefile.in: faster cleanup
1135
1136 2007-06-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1137
1138         * src/mcs51/peeph.def: added 177.i (mov from a is slightly cheaper)
1139
1140 2007-06-13 Raphael Neider <rneider AT web.de>
1141
1142         * src/SDCCmain.c: prevent NULL pointer dereference, avoid warning
1143
1144 2007-06-12 Raphael Neider <rneider AT web.de>
1145
1146         * support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
1147           suppress bit defines if NO_BIT_DEFINES is #define'd
1148         * device/include/pic/pic*.h: recreated all headers to include
1149           conditional bit defines
1150         * device/include/pic/pic16f886.h,
1151         * device/include/pic/pic16f887.h: fixed based on newer .inc file
1152         * device/include/pic/recreate.sh: script to recreate the complete
1153           device library files based on the currently supported devices
1154
1155 2007-06-12 Borut Razem <borut.razem AT siol.net>
1156
1157         * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
1158           support/regression/Makefile.in, support/scripts/build.mak,
1159           support/scripts/Makefile.snapshot:
1160           use new svn URL scheme
1161         * doc/sdccman.lyx: SDCC Wiki moved to
1162           http://sdcc.wiki.sourceforge.net/
1163
1164 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1165
1166         * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
1167         * support/regression/tests/bug1734654.c: added
1168
1169 2007-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1170
1171         * src/SDCCast.c (decorateType): optimized '?' for equal operands
1172         * src/SDCCicode.c (geniCodeConditional): optimization for bit result
1173           with literal operands
1174
1175 2007-06-10 Borut Razem <borut.razem AT siol.net>
1176
1177         * as/link/z80/lklibr.c: fixed mingw build warning
1178           lklibr.c:575: warning: implicit declaration of function 'tolower'
1179         * src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
1180           src/z80/main.c: move target specific options from src/SDCCmain.c
1181           to src/<target>/main.c
1182
1183 2007-06-09 Borut Razem <borut.razem AT siol.net>
1184
1185         * src/z80/gen.c: fixed bug #1294691: nested ifs make compiler crash;
1186           removed unused swap_sense; removed outBitCLong, replaced with outBitC
1187         * support/regression/tests/bug-1294691.c: added
1188
1189 2007-06-09 Maarten Brock <sourceforge.brock AT dse.nl>
1190
1191         * src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
1192           can also be static, fixes bug 1733438
1193         * src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
1194           have absolute address too
1195           (computeType): added optimization for 'cond ? true : false'
1196         * support/regression/tests/absolute.c: added test for static absolute var
1197
1198 2007-06-08 Raphael Neider <rneider AT web.de>
1199
1200         * src/regression/Makefile: suppress parallel builds, allow easy
1201           switching between pic14/pic16 ports
1202         * src/regression/picregs.h: added pic14/16 header file switch
1203         * src/regression/{compare7.c,compare8.c,compare9.c,compare10.c,
1204           inline.c,nestfor.c,string1.c}: include "picregs.h"
1205
1206 2007-06-07 Borut Razem <borut.razem AT siol.net>
1207
1208         * sim/ucsim/*.[ch], sim/ucsim/configure, sim/ucsim/configure.in:
1209           permanent solution to suppress GCC 4.2.0 c++ warning:
1210           deprecated conversion from string constant to `char *'
1211           use 'const char *' where ever required
1212         * support/regression/generate-cases.py: implemented more flexible rule
1213           for detection of testing functions, allowing white-spaces surrounding
1214           the function name and the 'void' parameter.
1215         * support/regression/tests/constantRange.c,
1216           support/regression/tests/scott-compare3.c: fixed failing regression
1217           tests, uncovered by implementation of more flexible rule for detection
1218           of testing functions
1219
1220 2007-06-04 Maarten Brock <sourceforge.brock AT dse.nl>
1221
1222         * src/SDCCast.c(decorateType): better optimize '!!' and comparisons
1223
1224 2007-06-04 Borut Razem <borut.razem AT siol.net>
1225
1226         * configure.in, configure, config_vc.awk: sdcc version number is now
1227           stored in configure.in; removed .version
1228         * configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
1229           doc/INSTALL.txt: version bumped to 2.7.2
1230         * sim/ucsim/configure.in, sim/ucsim/configure:
1231           use "read" to read from .version
1232
1233 2007-06-03 Borut Razem <borut.razem AT siol.net>
1234
1235         * */Makefile.in: removed annoying warning:
1236           Makefile:xx: Makefile.dep: No such file or directory
1237
1238 2007-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1239
1240         * src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
1241           (genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
1242         * src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
1243         * src/SDCCast.c (resultTypePropagate): propagate for '!',
1244           (decorateType): also optimize comparisons with RESULT_TYPE_BIT,
1245           bugfix: only use newBoolLink for bit result type
1246         * src/SDCCicode.c (geniCodeLogic): added param tree,
1247           bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
1248           (geniCodeLogicAndOr): use IS_BIT,
1249           (geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
1250           (ast2iCode): added tree param to geniCodeLogic for comparisons
1251         * src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
1252         * support/regression/tests/bug1723128.c: added test NotZero
1253
1254 2007-06-01 Borut Razem <borut.razem AT siol.net>
1255
1256         * SDCPP synchronized with GCC CPP release version 4.2.0,
1257           currently the latest release:
1258         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
1259           support/cpp2/c-ppoutput.c, support/cpp2/cppdefault.c,
1260           support/cpp2/cppdefault.h, support/cpp2/except.h,
1261           support/cpp2/libcpp/directives.c, support/cpp2/libcpp/expr.c,
1262           support/cpp2/libcpp/files.c, support/cpp2/libcpp/include/cpplib.h,
1263           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
1264           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/macro.c,
1265           support/cpp2/libcpp/mkdeps.c, support/cpp2/libiberty/getpwd.c,
1266           support/cpp2/libiberty/hashtab.c, support/cpp2/optc-gen.awk,
1267           support/cpp2/opth-gen.awk, support/cpp2/opts.c,
1268           support/cpp2/opts.h, support/cpp2/output.h,
1269           support/cpp2/prefix.c, support/cpp2/sdcpp-opts.c,
1270           support/cpp2/sdcpp.dsp, support/cpp2/sdcpp.opt,
1271           support/cpp2/system.h, support/cpp2/version.c,
1272           support/cpp2/Makefile.in: modified
1273         * support/cpp2/opts-common.c: added
1274         * device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
1275         * device/lib/pic16/libdev/pic18f[24]5j10.c:
1276           search for included source file in local directory
1277         * sim/ucsim/configure, sim/ucsim/configure.in:
1278           temporary solution to suppress GCC 4.2.0 c++ warning:
1279           deprecated conversion from string constant to `char *'
1280
1281 2007-06-01 Raphael Neider <rneider AT web.de>
1282
1283         * device/lib/pic/libdev/pic12f683.c,
1284         * device/include/pic/pic12f683.h: added GPIO bits
1285
1286 2007-06-01 Raphael Neider <rneider AT web.de>
1287
1288         * doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
1289           quotation marks, clarified role of PIC14 vs. PIC16 ports
1290         * src/pic16/devices.inc,
1291         * device/include/pic16/pic18fregs.h,
1292         * device/include/pic16/pic18f[24][45]j10.h,
1293         * device/lib/pic16/pics.all,
1294         * device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
1295           18f24j10, 18f25j10, 18f44j10, and 18f45j10
1296         * device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
1297           for new devices as they are not yet supported by gputils
1298
1299 2007-05-31 Borut Razem <borut.razem AT siol.net>
1300
1301         * Small Device C Compiler 2.7.0 released
1302         * .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
1303           changed sdcc version to 2.7.1
1304         * support/scripts/sdcc.nsi: added How to create WIN32 release
1305           setup.exe package
1306
1307 2007-05-29 Maarten Brock <sourceforge.brock AT dse.nl>
1308
1309         * doc/sdccman.lyx: documented initialization and allocation of absolute
1310           variables, bit parameter passing, the need for function pointers to be
1311           reentrant and alpha quality support of inline and retrict
1312
1313 2007-05-26 Borut Razem <borut.razem AT siol.net>
1314
1315         * support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
1316           support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
1317         * docs/knownbugs.html: updated
1318
1319 2007-05-25 Maarten Brock <sourceforge.brock AT dse.nl>
1320
1321         * doc/sdccman.lyx: inserted footnotes about inline assembler labels,
1322           thanks Jan Waclawek
1323         * src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
1324           AOP_CRY and ruonly
1325           (gencjneshort): optimized when left is AOP_DIR
1326         * src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
1327           initializing unions in a struct/array
1328         * support/regression/fwk/include/testfwk.h: added defines for data, near
1329           and far for host and z80
1330         * support/regression/tests/bug1723128.c: new, added
1331
1332 2007-05-22 Borut Razem <borut.razem AT siol.net>
1333
1334         * doc/knownbugs.html: updated
1335
1336 2007-05-21 Raphael Neider <rneider AT web.de>
1337
1338         * src/pic16/glue.c (pic16_initPointer): avoid assertion, emit better
1339           error message instead
1340         * src/pic/pcoderegs.c (pCodeOptime2pCodes): keep register state intact
1341
1342 2007-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1343
1344         * src/mcs51/peeph.def (257.b): disabled to fix bug 1721024
1345
1346 2007-05-21 Raphael Neider <rneider AT web.de>
1347
1348         * src/pic/pcoderegs.c (pCodeOptime2pCodes): fixed bogus optimization,
1349           closes #1722392
1350         * src/regression/gpsim_assert.h,
1351         * src/regression/Makefile,
1352         * src/regression/pcodeopt.c: regression test for the above fix
1353
1354 2007-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1355
1356         * src/SDCCpeeph.c (labelIsUncondJump): ignore identical labels for
1357           jumps to self, fixed bug 1717281
1358
1359 2007-05-10 Borut Razem <borut.razem AT siol.net>
1360
1361         * support/scripts/gen_known_bugs.pl: cosmetic fix
1362         * doc/knownbugs.html: generated by gen_known_bugs.pl
1363
1364 2007-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1365
1366         * src/SDCCast.c (createFunction): also generate non-inlined version of
1367           function for functions declared as "static inline"
1368         * src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
1369           function can be inlined after non-inlined version generated.
1370
1371 2007-05-10 Borut Razem <borut.razem AT siol.net>
1372
1373         * support/scripts/gen_known_bugs.pl: added script
1374           which generates knownbugs.html
1375
1376 2007-05-09 Maarten Brock <sourceforge.brock AT dse.nl>
1377
1378         * doc/knownbugs.html: updated for release 2.7.0
1379
1380 2007-05-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1381
1382         * device/include/mcs51/uPSD33xx.h: Added patch by Jan Waclawek.
1383
1384 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1385
1386         * src/ds390/gen.c (emitcode): don't change properties of previous lines,
1387           (throughout): updated generating comments
1388         * src/mcs51/gen.c (emitcode): don't change properties of previous lines,
1389           (throughout): updated generating comments
1390         * src/SDCCpeeph.c (peepHole): continue searching at the first replaced
1391           rule instead of at the second, or it might skip lines when removing the
1392           complete match
1393         * support/regression/tests/bug1714204.c: changed test to foo
1394
1395 2007-05-08 Borut Razem <borut.razem AT siol.net>
1396
1397         * doc/sdccman.lyx: changed sdcc version to 2.7.0,
1398           thanks to SDCC Distributed Compile Farm members,
1399           added Z80 and GBZ80 command line options
1400         * .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
1401
1402 2007-05-08 Maarten Brock <sourceforge.brock AT dse.nl>
1403
1404         * device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
1405         * device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
1406         * support/regression/tests/longlit.c: modified to be tested at all and
1407           to pass the actual test
1408
1409 2007-05-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1410
1411         * device/include/mcs51/uPSD33xx.h: Added.
1412
1413 2007-05-07 Maarten Brock <sourceforge.brock AT dse.nl>
1414
1415         * device/lib/_gptrput.c,
1416         * device/lib/_gptrget.c: removed old code,
1417          (_gptrgetWord),
1418         * src/ds390/gen.c (genGenPointerGet): fixed bug 1714204
1419         * support/regression/tests/bug1714204.c: new, added
1420
1421 2007-05-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1422
1423         * support/regression/tests/regtrack.c: test was never executed
1424           because of the regression test being picky about white spaces.
1425         * device/lib/mcs51/crtclear.asm: added comment
1426
1427 2007-05-06 Raphael Neider <rneider AT web.de>
1428
1429         * device/lib/pic/Makefile.rules,
1430         * device/lib/pic16/Makefile.rules: make sure *.ignore file exists,
1431           made "&> /dev/null" redirection sh-safe ("> /dev/null 2>&1")
1432
1433 2007-05-06 Raphael Neider <rneider AT web.de>
1434
1435         * src/pic16/device.h,
1436         * src/pic16/main.h,
1437         * src/pic16/main.c (pic16_optionsTable,_pic16_parseOptions,
1438           _pic16_setDefaultOptions): removed/reordered command-line args
1439         * doc/sdccman.lyx: updated PIC14 and PIC16 documentation (supported
1440           devices, regrouped command line args, environment variables),
1441           clarified sone points, added sections on how to add devices to the
1442           PIC14/PIC16 ports
1443
1444 2007-05-06 Maarten Brock <sourceforge.brock AT dse.nl>
1445
1446         * src/z80/peeph.def: fixed bug in rule 2
1447
1448 2007-05-05 Maarten Brock <sourceforge.brock AT dse.nl>
1449
1450         * src/port.h: added TARGET_MCS51_LIKE
1451         * src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
1452           take advantage of it too
1453         * src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
1454           (shiftR2Left2Result): Optimized: don't check shifting by 0
1455         * src/z80/peeph-z80.def,
1456         * src/z80/peeph.def: whole set of new rules by Philipp Krause with some
1457           modifications, see patch 1700823
1458         * src/mcs51/peep.c (): fixed bug 1712928
1459         * support/regression/tests/bug1712928.c: new, added
1460
1461 2007-05-05 Borut Razem <borut.razem AT siol.net>
1462
1463         * device/lib/pic16/Makefile.common.in,
1464           device/lib/pic/Makefile.common.in, sim/ucsim/cmd.src/Makefile.in:
1465           removed bash dependencies
1466
1467 2007-05-01 Borut Razem <borut.razem AT siol.net>
1468
1469         * src/SDCCicode.c:
1470           fixed bug #1710507: --i-code-in-asm makes compile fail
1471           all iCode comments are now one liners
1472         * src/mcs51/gen.c: fixed memory leak
1473
1474 2007-05-01 Raphael Neider <rneider AT web.de>
1475
1476         * device/lib/pic/libdev/*.c
1477         * device/include/pic/*.h: regenerated all device libs from updated
1478           .inc files
1479         * support/scripts/inc2h.pl: documented usage, now uses strict to
1480           catch more bugs
1481
1482 2007-04-30 Borut Razem <borut.razem AT siol.net>
1483
1484         * doc/sdccman.lyx:
1485           fixed bug #1669175: Problem with space in output paths
1486           documented how to use paths with spaces for Windows users
1487
1488 2007-04-29 Borut Razem <borut.razem AT siol.net>
1489
1490         * Fixed svn:eol-style and svn:keywords properties
1491         * src/SDCCval.c: fixed bug
1492           #1592871: Segfault with "large" const arrays of characters
1493           replaced recursion with iteration
1494         * Removed svn:executable property from non-executable files
1495
1496 2007-04-29 Maarten Brock <sourceforge.brock AT dse.nl>
1497
1498         * src/mcs51/gen.c (genRet): fixed bug 1707003
1499
1500 2007-04-27 Raphael Neider <rneider AT web.de>
1501
1502         * src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
1503           createReachingDefinitions,assignValnums,pic16_destructDF,
1504           pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
1505           prevent NULL pointer dereferences
1506         * device/lib/pic/libdev/pic16f886.c,
1507         * device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
1508           prevent building them, gputils do not really support them yet
1509
1510 2007-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1511
1512         * device/lib/_ltoa.c: 36 bytes less __data mem. This really
1513           helps printf_small. 32 bytes more __idata mem.
1514
1515 2007-04-27 Raphael Neider <rneider AT web.de>
1516
1517         * src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
1518           return early when pb or pb->pcHead is NULL (patch #1708427)
1519         * src/regression/empty.c,
1520         * src/regression/Makefile: added test with empty functions
1521         * support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
1522
1523 2007-04-27 Borut Razem <borut.razem AT siol.net>
1524
1525         * src/SDCCast.c: fixed feature request
1526           #1547512: Redundant strings linked when using sizeof("abc")
1527
1528 2007-04-23 Borut Razem <borut.razem AT siol.net>
1529
1530         * doc/sdccman.lyx, src/SDCCmain.c:
1531           peep-hole comments are generated only if --fverbose-asm option is
1532           specified and --no-peep-comments is not, as proposed by Frieder.
1533         * support/regression/Makefile.in: compile regression tests with
1534           --fverbose-asm option so one can "grep" whether a new (or an old)
1535           peephole is (still) applied; requested by Frieder.
1536
1537 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1538
1539         * device/include/pic/pic16f886.h,
1540         * device/include/pic/pic16f887.h,
1541         * device/lib/pic/libdev/pic16f886.c,
1542         * device/lib/pic/libdev/pic16f887.c,
1543         * device/include/pic/pic14devices.txt,
1544         * device/lib/pic/libdev/devices.txt: Add 16f886 and 16f887.
1545
1546 2007-04-23 Kevin Buettner <kevin AT buettner.to>
1547
1548         * device/lib/pic/libsdcc/idata.c: PAGESEL _main before going there,
1549           fixes #1704666
1550
1551 2007-04-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1552
1553         * device/lib/_memset.c: assembler version for mcs51
1554
1555 2007-04-22 Borut Razem <borut.razem AT siol.net>
1556
1557         * support/scripts/listerr.c: program to create the list of errors and
1558           warnings list from - added
1559         * doc/sdccman.lyx: removed the note
1560           "For list of warnings and corresponding codes, see err_warn.txt"
1561         * src/SDCCsymt.c: fixed bug #1699804:
1562           Bug with some uses of sizeof(static local array) (MCS51)
1563         * support/regression/tests/bug-1699804.c: added
1564
1565 2007-04-20 Maarten Brock <sourceforge.brock AT dse.nl>
1566
1567         * as/mcs51/asmain.c (search_path_append, search_path_fopen): new, added,
1568           (main): added option -i,
1569           (asmbl, case S_INCL): use search_path_fopen,
1570           mostly from patch 1579668 by Peter Miller, thanks
1571         * src/z80/main.c: fixed typo --callee-saves-bc
1572         * device/include/mcs51/compiler.h: added sfrword for Tasking
1573
1574 2007-04-20 Borut Razem <borut.razem AT siol.net>
1575
1576         * src/z80/main.c: replaced reserved keyword asm with asmblr
1577
1578 2007-04-19 Borut Razem <borut.razem AT siol.net>
1579
1580         * src/port.h: use const pointers to strings
1581         * src/SDCCargs.h: declared getStringArg() and getIntArg()
1582         * src/pic16/main.c: include SDCCargs.h
1583         * src/SDCCglobl.h: code_seg and const_seg are not pointers to
1584           const char, since the strings are dynamically allocated
1585         * src/SDCCmain.c: options.code_seg and options.const_seg are
1586           dynamically allocated; check port specific command line options
1587           before the general ones
1588         * src/z80/main.c: fixed bug #1631895: codeseg/constseg #pragma fail
1589
1590 2007-04-18 Maarten Brock <sourceforge.brock AT dse.nl>
1591
1592         * device/include/ds400rom.h,
1593         * device/lib/ds390/lcd390.c,
1594         * device/lib/ds390/memcpyx.c,
1595         * device/lib/ds390/rtc390.c,
1596         * device/lib/ds400/ds400rom.c,
1597         * device/lib/ds400/memcpyx.c,
1598         * device/lib/hc08/_ret.c: more replacements of keywords with their
1599           double underscore equivalents
1600         * device/lib/ds390/Makefile.in,
1601         * device/lib/ds400/Makefile.in,
1602         * device/lib/gbz80/Makefile.in,
1603         * device/lib/hc08/Makefile.in,
1604         * device/lib/mcs51/Makefile.in,
1605         * device/lib/z80/Makefile.in: added --std-c89 to CFLAGS
1606
1607 2007-04-17 Borut Razem <borut.razem AT siol.net>
1608
1609         * doc/sdccman.lyx, src/SDCCmain.c, src/SDCCglobal.h, src/ds390/gen.c,
1610           src/hc08/gen.c, src/mcs51/gen.c, src/mcs51/rtrack.c:
1611           fixed #1493816: option --no-gen-comments: --no-gen-comments renamed
1612           to --fverbose-asm, to be gcc'ish
1613
1614 2007-04-17 Maarten Brock <sourceforge.brock AT dse.nl>
1615
1616         * src/mcs51/gen.c (aopOp): set size to 1 for ruonly, fixes bug 1699455
1617
1618 2007-04-17 Borut Razem <borut.razem AT siol.net>
1619
1620         * doc/sdccman.lyx: fixed #1701874: Mac OSX references in SDCC manual
1621         * device/lib/ds400/tinibios.c, device/lib/hc08/_divuint.c,
1622           device/lib/hc08/_divulong.c: replaced _asm and _endasm keywords
1623           with their double underscore equivalent
1624
1625 2007-04-14 Borut Razem <borut.razem AT siol.net>
1626
1627         * doc/sdccman.lyx: some additional "freeware" replaced with "free open
1628           source"
1629
1630 2007-04-13 Borut Razem <borut.razem AT siol.net>
1631
1632         * doc/sdccman.lyx: -pedantic-parse-number is not in conformance with
1633           C99 standard
1634         * device/examples/serialcomm/windows/serial.[ch],
1635           device/examples/serialcomm/windows/test_serialcomm.cpp:
1636           updated by Bela Torok
1637         * device/examples/serialcomm/windows/serialcomm.dsw,
1638           device/examples/serialcomm/windows/serialcomm.dsp: added
1639
1640 2007-04-13 Jan Waclawek <wek AT efton.sk>
1641
1642         * doc/sdccman.lyx: additions and changes at various places
1643           (submitted as #1697136).
1644           (svn commit by Frieder Ferlemann <Frieder.Ferlemann AT web.de>)
1645
1646 2007-04-10 Borut Razem <borut.razem AT siol.net>
1647
1648         * doc/cdbfileformat.lyx, doc/sdccman.lyx, doc/test_suite_spec.lyx:
1649           LyX file format changed to 245
1650         * doc/sdccman.lyx, doc/README.txt, sdc/SDCC.lex, src/SDCCglue.c:
1651           "FreeWare" replaced with "free open source"
1652
1653 2007-04-10 Maarten Brock <sourceforge.brock AT dse.nl>
1654
1655         * device/include/mcs51/C8051F120.h: added some defines for bits in RSTSRC
1656
1657 2007-04-08 Maarten Brock <sourceforge.brock AT dse.nl>
1658
1659         * device/include/pic16/pic18fregs.h,
1660         * device/lib/_bp.c,
1661         * device/lib/_decdptr.c,
1662         * device/lib/_divsint.c,
1663         * device/lib/_divslong.c,
1664         * device/lib/_divuint.c,
1665         * device/lib/_divulong.c,
1666         * device/lib/_fs2schar.c,
1667         * device/lib/_fs2sint.c,
1668         * device/lib/_fs2slong.c,
1669         * device/lib/_fs2uchar.c,
1670         * device/lib/_fs2uint.c,
1671         * device/lib/_fs2ulong.c,
1672         * device/lib/_fsadd.c,
1673         * device/lib/_fscmp.c,
1674         * device/lib/_fsdiv.c,
1675         * device/lib/_fseq.c,
1676         * device/lib/_fsget1arg.c,
1677         * device/lib/_fsget2args.c,
1678         * device/lib/_fsgt.c,
1679         * device/lib/_fslt.c,
1680         * device/lib/_fsmul.c,
1681         * device/lib/_fsneq.c,
1682         * device/lib/_fsnormalize.c,
1683         * device/lib/_fsreturnval.c,
1684         * device/lib/_fsrshift.c,
1685         * device/lib/_fssub.c,
1686         * device/lib/_fsswapargs.c,
1687         * device/lib/_gptrget.c,
1688         * device/lib/_gptrgetc.c,
1689         * device/lib/_gptrput.c,
1690         * device/lib/_logexpf.c,
1691         * device/lib/_modsint.c,
1692         * device/lib/_modslong.c,
1693         * device/lib/_moduint.c,
1694         * device/lib/_modulong.c,
1695         * device/lib/_mulint.c,
1696         * device/lib/_mullong.c,
1697         * device/lib/_schar2fs.c,
1698         * device/lib/_ser.c,
1699         * device/lib/_setjmp.c,
1700         * device/lib/_sint2fs.c,
1701         * device/lib/_slong2fs.c,
1702         * device/lib/_spx.c,
1703         * device/lib/_uchar2fs.c,
1704         * device/lib/_uint2fs.c,
1705         * device/lib/_ulong2fs.c,
1706         * device/lib/asincosf.c,
1707         * device/lib/atanf.c,
1708         * device/lib/calloc.c,
1709         * device/lib/ds390/tinibios.c,
1710         * device/lib/ds400/tinibios.c,
1711         * device/lib/expf.c,
1712         * device/lib/free.c,
1713         * device/lib/hc08/_mulint.c,
1714         * device/lib/logf.c,
1715         * device/lib/malloc.c,
1716         * device/lib/printf_fast.c,
1717         * device/lib/printf_tiny.c,
1718         * device/lib/printfl.c,
1719         * device/lib/realloc.c,
1720         * device/lib/ser_ir.c,
1721         * device/lib/serial.c,
1722         * support/regression/tests/libmullong.c: replaced all special keywords
1723           with their double underscore equivalent
1724         * support/regression/ports/mcs51-xstack-auto/spec.mk,
1725         * device/lib/Makefile.in: compile libs with --std-c99 instead of
1726           --std-sdcc99
1727         * src/mcs51/gen.c (outBitC): don't store if result is return-use-only,
1728           (genRet): if the bit-symbol is ruonly it already is in the carry
1729         * src/mcs51/ralloc.c (regTypeNum): make regType REG_CND for ruonly bit
1730         * src/SDCCast.c (createFunction): applied patch 887171 by Stas Sergeev
1731         * src/SDCCicode.c (ast2iCode): '!', GETHBIT, GETABIT: only set operand
1732           type UCHAR if dest is not bit
1733
1734 2007-04-03 Maarten Brock <sourceforge.brock AT dse.nl>
1735
1736         * device/include/math.h,
1737         * device/lib/cotf.c,
1738         * device/lib/expf.c,
1739         * device/lib/sincoshf.c: changed XMAX to C99 HUGE_VALF
1740
1741 2007-04-01 Borut Razem <borut.razem AT siol.net>
1742
1743         * src/SDCC.lex, src/SDCCmain.c, support/cpp2/sdcpp.c:
1744           fixed bug #1692042: input buffer overflow...scanner uses REJECT
1745         * support/cpp2/sdcpp.c: fixed recursion bug - internal_error() called
1746           gcc_unreachable() called internal_error()...
1747
1748 2007-03-30 Raphael Neider <rneider AT web.de>
1749
1750         * src/pic/ralloc.c (isData): suppress garbage debug output
1751
1752 2007-03-28 Borut Razem <borut.razem AT siol.net>
1753
1754         * doc/sdccman.lyx:
1755           "Nightly Snapshots" replaced with "Snapshot Builds", since the SDCC
1756           is developed, built and used worldwide, and the word "night" doesn't
1757           make any sense.
1758
1759 2007-03-28 Maarten Brock <sourceforge.brock AT dse.nl>
1760
1761         * device/include/mcs51/C8051F360.h: new, added
1762         * device/include/mcs51/C8051F520.h: fixed buggy sbit addresses SPI0CN
1763
1764 2007-03-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1765
1766         * src/SDCC.y (declaration_specifiers, function_specifier),
1767         * support/Util/SDCCerr.c,
1768         * support/Util/SDCCerr.h,
1769         * src/SDCCsymt.h,
1770         * src/SDCCsymt.c (mergeSpec, checkFunction): Parse and validate the
1771           inline keyword
1772         * src/SDCCmem.c (deallocParms),
1773         * src/SDCCast.c: support for function inlining, not quite complete
1774         * src/SDCCsymt.c (printTypeChain, printTypeChainRaw): display
1775           'restrict' qualifier
1776
1777 2007-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1778
1779         * src/mcs51/gen.c (saveRegisters, unsaveRegisters): free some bitVects,
1780           (saveRBank, unsaveRBank): don't save bits,
1781           (genFunction, genEndFunction): save bits exactly once, fix bug 1535242
1782         * support/regression/tests/bug1535242.c: new, added
1783         * device/include/assert.h: applied patch 1686533 to fix bug 1686528,
1784           thanks Alexey Shamrin <shamrin AT gmail.com>,
1785           made assert.h header ANSI compliant (added a check for NDEBUG macro,
1786           removed header guard)
1787         * .version,
1788         * sdcc.spec: bumped version to 2.6.5
1789         * src/SDCCmain.c(parseCmdLine): fixed bug 1677144
1790
1791 2007-03-22 Borut Razem <borut.razem AT siol.net>
1792
1793         * debugger/mcs51/cmd.c, debugger/mcs51/sdcdb.c:
1794           fixed bug #1653671: sdcdb integration into ddd is broken
1795
1796 2007-03-22 Raphael Neider <rneider AT web.de>
1797
1798         * src/pic/gen.c (popGetExternal): augmented to also create references
1799           to external variables (not only labels),
1800           (genCall): comment on plan to reduce PAGESEL overhead,
1801           (genFunction, genEndFunction): also save/restore FSR around interrupt
1802           handling code, removed lots of unused code
1803           (genDivOneByte): release acquired temp register
1804         * src/pic/glue.c (pic14createInterruptVect): adapt to new signature
1805           of popGetExternal
1806         * device/lib/pic/libsdcc/shadowregs.c: NEW, provide storage location
1807           for registers that need to be saved during interrupts (FSR, STATUS,
1808           PCLATH; W needs special handling), currently only FSR is used
1809
1810 2007-03-22 Raphael Neider <rneider AT web.de>
1811
1812         * device/include/pic/pic14devices.txt: 16f688 has only one config word
1813
1814 2007-03-19 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1815
1816         * /as/link/mcs51/aslink.dsp: Object extension for mcs51 is 'rel' not 'o'.
1817
1818 2007-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1819
1820         * src/mcs51/peeph.def (263.x): fixed bug for volatile variables
1821
1822 2007-03-14 Maarten Brock <sourceforge.brock AT dse.nl>
1823
1824         * as/link/aslink.h: added LKOBJEXT
1825         * as/link/hc08/link_hc08.dsp,
1826         * as/link/hc08/Makefile.bcc,
1827         * as/link/hc08/Makefile.in,
1828         * as/link/mcs51/aslink.dsp,
1829         * as/link/mcs51/Makefile.bcc,
1830         * as/link/mcs51/Makefile.in: moved lkamof51.c and lkdata.c
1831         * as/link/hc08/lkaomf51.c,      as/link/mcs51/lkaomf51.c,
1832         * as/link/lkaomf51.c: merged and moved
1833         * as/link/hc08/lkdata.c,        as/link/mcs51/lkdata.c,
1834         * as/link/z80/lkdata.c,
1835         * as/link/lkdata.c: merged and moved
1836         * as/link/hc08/lkmain.c,
1837         * as/link/mcs51/lkmain.c: cosmetic changes
1838         * as/link/z80/lkeval.c,         as/link/lkeval.c: merged
1839         * as/link/lklex.c: use LKOBJEXT
1840         * as/link/z80/lklist.c,         as/link/lklist.c: merged,
1841           ANSI-fied functions, removed bubble-sorts
1842         * as/link/z80/lksym.c           as/link/lksym.c: merged,
1843           ANSI-fied functions
1844         * as/link/z80/linkgbz80.dsp,
1845         * as/link/z80/linkz80.dsp,
1846         * as/link/z80/Makefile.in: added lkaomf51.c and lknoice.c,
1847           moved lkdata.c, lkeval.c, lkhead.c, lklex.x, lklist.c, lksym.c
1848         * as/link/z80/lkhead.c,
1849         * as/link/z80/lklex.c: deleted
1850         * as/link/z80/lklibr.c: moved LKOBJEXT to aslink.h
1851         * as/link/z80/lkmain.c: added copyfile()
1852
1853 2007-03-13 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1854
1855         * device/include/mcs51/P89LPC925.h: Added missing P1_6 and P1_7.
1856
1857 2007-03-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1858
1859         * device/lib/_strlen.c: assembler version for mcs51
1860
1861 2007-03-13 Raphael Neider <rneider AT web.de>
1862
1863         * device/include/pic16/pic18f2221.h,
1864         * device/include/pic16/pic18f2321.h,
1865         * device/include/pic16/pic18f2331.h,
1866         * device/include/pic16/pic18f4221.h,
1867         * device/include/pic16/pic18f4321.h,
1868         * device/include/pic16/pic18f4331.h: fixed config byte location names
1869         * support/scripts/inc2h-pic16.pl: removed debug output, emit
1870           consistently named config byte locations
1871
1872 2007-03-13 Borut Razem <borut.razem AT siol.net>
1873
1874         * src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1875           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/s51.src/Makefile.in,
1876           sim/ucsim/xa.src/Makefile.in, sim/ucsim/z80.src/Makefile.in,
1877           as/link/z80/Makefile.in, as/z80/Makefile.in:
1878           introduced LDFLAGS
1879
1880 2007-03-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1881
1882         * device/lib/printfl.c: 13 bytes less __data mem (12 more __idata)
1883         * device/lib/printf_large.c: pointer was converted to generic
1884         pointer for mcs51 models other than model-small (Maarten noticed)
1885
1886 2007-03-10 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1887
1888         * device/include/mcs51/ADuC84x.h: Added.
1889
1890 2007-03-10 Borut Razem <borut.razem AT siol.net>
1891
1892         * src/SDCC.lex, src/SDCCutil.[ch], src/SDCCval:
1893           fixed RFE #1624219: double backslashes in filenames;
1894           functions hexEscape(), octalEscape() and copyStr() moved from
1895           SDCCval.c to SDCCutil.c and made them glovbally available
1896
1897 2007-03-09 Borut Razem <borut.razem AT siol.net>
1898
1899         * src/SDCC.lex, src/SDCCast.c. src/SDCCglobl.c, src/SDCCsymt.c,
1900           src/SDCCval.c: fixed bugs #1676768: Wrong line number reported and
1901           1673361: Missaligned comments in output files
1902
1903 2007-03-09 Raphael Neider <rneider AT web.de>
1904
1905         * device/include/pic/pic14devices.txt: fixed confsiz of 16f91[3467]
1906
1907 2007-03-09 Raphael Neider <rneider AT web.de>
1908
1909         * src/pic/gen.c,
1910         * src/pic/glue.c,
1911         * src/pic/ralloc.c: suppress undesired debug output
1912         * src/SDCCmain.c (linkEdit): initialize c to quieten compiler
1913
1914 2007-03-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1915
1916         * device/lib/printf_large.c: 6 bytes less __data mem (6 more __idata)
1917
1918 2007-03-07 Borut Razem <borut.razem AT siol.net>
1919
1920         * device/lib/pic16/libdev/pic18f[24][34]31.c:
1921           search include files in the current directory
1922
1923 2007-03-04 Maarten Brock <sourceforge.brock AT dse.nl>
1924
1925         * src/SDCCglue.c (emitMaps, glue),
1926         * src/SDCCmem.c (initMem, allocDefault): added x_abs for initialized
1927           absolute xdata
1928         * support/regression/tests/absolute.c: added xdata test
1929
1930 2007-03-03 Maarten Brock <sourceforge.brock AT dse.nl>
1931
1932         * src/SDCCmain.c (parseCmdLine): only set options.xstack_loc for mcs51,
1933           added condition to macro, fixes bug 1666080
1934
1935 2007-03-02 Raphael Neider <rneider AT web.de>
1936
1937         * src/pic/gen.c (genGenPointerSet): removed bogus assertion
1938
1939 2007-02-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1940
1941         * device/lib/mcs51/crtxclear.asm: pdata segment of 256 byte would not
1942         be cleared. Unconditionally set __XPAGE
1943         * src/hc08/gen.c: --no-gen-comments (RFE #1493816) for hc08
1944
1945 2007-02-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1946
1947         * src/SDCCglobl.h,
1948         * src/SDCCmain.c,
1949         * src/mcs51/gen.c,
1950         * src/mcs51/rtrack.c,
1951         * src/ds390/gen.c,
1952         * doc/sdccman.lyx: added --no-gen-comments
1953         * src/mcs51/peeph.def: added 192.b, disabled 185
1954
1955 2007-02-25 Raphael Neider <rneider AT web.de>
1956
1957         * src/pic16/gen.c (genCast): fixed typo
1958         * device/lib/pic16/Makefile.subdir: only install existing files
1959         * device/lib/pic16/libdev/Makefile.in: build serially, avoid races
1960
1961 2007-02-25 Maarten Brock <sourceforge.brock AT dse.nl>
1962
1963         * device/lib/mcs51/crtcall.asm: new, added for indirect calls
1964         * device/lib/mcs51/crtclear.asm,
1965         * device/lib/mcs51/crtxclear.asm: renumbered labels
1966         * device/lib/mcs51/Makefile.in: added crtcall.asm
1967         * doc/sdccman.lyx: documented mcs51 crt* library startup code
1968         * src/mcs51/gen.c (movc): removed,
1969           (aopGet, genPlusBits): clear a after loading the carry (possibly from
1970             acc.x or psw.x),
1971           (toCarry, genSend, genRet): added function toCarry,
1972           (genPcall): use "lcall @a+dptr" for functions w/o parameters,
1973           (assignBit, genAssign, genCast): added function assignBit
1974         * src/mcs51/Makefile.bcc: added rtrack.c
1975         * src/mcs51/ralloc.h: made valueKnown a bitfield
1976         * src/mcs51/rtrack.c (getReg, rtrackUpdate): added getReg,
1977           fixed "jbc acc" and "cpl acc" bug, enhanced "cjne", "jnz" and "djnz",
1978           disabled InvalidateAllRx for lcall __gptrput, added "xch a,rn"
1979         * src/pic/pcode.c (FixRegisterBanking): fixed warning used uninitialized
1980         * src/z80/gen.c: added AOP_IS_PAIRPTR,
1981           (_pop): only pop valid pairs, see gencjneshort,
1982           (gencjneshort): return pair that still needs to be popped, restructured,
1983           (gencjne, genCmpEq): call _pop
1984
1985 2007-02-23 Raphael Neider <rneider AT web.de>
1986
1987         * device/include/pic/pic14devices.txt: 16f684 has only one config word
1988
1989 2007-02-22 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1990
1991         * device/include/mcs51/P89LPC925.h: Added.
1992
1993 2007-02-18 Raphael Neider <rneider AT web.de>
1994
1995         * src/pic/glue.c (emitInitVal): fixed #1659894 (SIGSEGV on arrays)
1996
1997 2007-02-17 Borut Razem <borut.razem AT siol.net>
1998
1999         * support/cpp2/directives.c, support/cpp2/version.c:
2000           synchronized with GCC CPP 4.1.2
2001
2002 2007-02-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2003
2004         * src/mcs51/rtrack.h,
2005         * src/mcs51/rtrack.c: added register tracking for the mcs51 port,
2006           by checking the strings passed by emitcode() to the assembler.
2007           Feel free to change. This in part addresses RFE #482179.
2008           Set environment variable SDCC_RTRACK to enable.
2009         * src/mcs51/gen.c: inserted hooks
2010         * src/mcs51/ralloc.h: added two members to struct regs
2011         * support/regression/tests/regtrack.c: added
2012
2013 2007-02-14 Borut Razem <borut.razem AT siol.net>
2014
2015         * src/SDCC.y: fixed bug #1291133: duplicate members across enum(s)
2016         * Makefile.in: applied patch from Makefile related part of
2017           #1469393: Compiler does not initialize static data
2018
2019 2007-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2020
2021         * src/SDCCicode.c (geniCodeAssign): return (itemp) right instead of left
2022           for better fix of bug 1273984, compiles pic16 rand.c
2023
2024 2007-02-12 Borut Razem <borut.razem AT siol.net>
2025
2026         * src/pic16/main.c: fixed pic16 standard library directory bug
2027
2028 2007-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2029
2030         * src/hc08/gen.c (genSwap): fix swap regression test
2031
2032 2007-02-10 Borut Razem <borut.razem AT siol.net>
2033
2034         * src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
2035           with same scope
2036         * support/regression/tests/bug-1654060.c: added regression test for
2037           #1654060
2038
2039 2007-02-09 Bernhard Held <bernhard AT bernhardheld.de>
2040
2041         * src/mcs51/gen.c (genRet): fixed RFE 1652561: added code for bit to
2042         bit moves in return statement
2043
2044 2007-02-09 Borut Razem <borut.razem AT siol.net>
2045
2046         * src/SDCC.y: fixed bug #1654060 typedef within function causes
2047           syntax error
2048
2049 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2050
2051         * src/mcs51/gen.c (aopPut): use direct name for pushing registers
2052         * src/SDCCmain.c (parseCmdLine): dbuf_s path must be initialised
2053
2054 2007-02-07 Raphael Neider <rneider AT web.de>
2055
2056         * src/pic16/devices.inc,
2057         * device/include/pic16/pic18fregs.h,
2058         * device/include/pic16/pic18f[24][34]31.h,
2059         * device/lib/pic16/libdev/pic18f[24][34]31.c,
2060         * device/lib/pic16/pics.all: added 18f[24][34]31 family
2061         * device/lib/pic16/libio/i2c.ignore: do not build i2c
2062
2063 2007-02-07 Maarten Brock <sourceforge.brock AT dse.nl>
2064
2065         * device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
2066           can this have lived here for so many years?
2067         * src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
2068           fixes bug 1273984, see also patch 1645121, thanks Gnther Jehle
2069         * support/regression/tests/bug1273984.c: new, added, thanks Gnther Jehle
2070
2071 2007-02-06 Bernhard Held <bernhard AT bernhardheld.de>
2072
2073         * src/SDCCBlock.c (addiCodeToeBBlock): fixed bug 1652207: GOTO icodes
2074         appended by loop induction must be at the very end of the eBBlock
2075
2076 2007-02-05 Kevin Vigor
2077
2078         * src/ds390/gen.c, src/ds390/main.c: Address bug 1469393.
2079
2080 2007-02-05 Borut Razem <borut.razem AT siol.net>
2081
2082         * support/regression/fwk/lib/timeout.c: native WIN32 port,
2083           implemented #1651830 Reg. tests: rewrite timeout.c to use WIN32 API
2084
2085 2007-02-03 Borut Razem <borut.razem AT siol.net>
2086
2087         * src/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
2088           applied patch #1646602 option to set default signedness of char to
2089           unsigned, added -funsigned-char command line option,
2090           thanks to Gunther Jehle
2091         * device/lib/Makefile.in: added the -f option to rm so it doesn't
2092           prompt for file deletion a few hundred times (especially the
2093           subversion files, which have ro permissions so it asks for
2094           confirmation), thanks to Simon McAuliffe;
2095           added {} + option to find in order to remove multiple files from a
2096           single rm commad
2097
2098 2007-02-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2099
2100         * device/include/mcs51/SST89x5xRDx.h: Added.
2101
2102 2007-02-02 Raphael Neider <rneider AT web.de>
2103
2104         * src/pic/glue.c (emitSymbolSet): check sym->etype before use
2105         * src/regression/Makefile: use --no-pcode-opt, ignore failing tests
2106
2107 2007-02-01 Raphael Neider <rneider AT web.de>
2108
2109         * src/pic/glue.c (picglue,emitSymbolSet,showAllMemmaps): emit the
2110           config words again
2111
2112 2007-01-31 Borut Razem <borut.razem AT siol.net>
2113
2114         * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf()
2115           if compiled with GCC. Thanks to Raphael Neider
2116
2117 2007-01-31 Raphael Neider <rneider AT web.de>
2118
2119         * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
2120             operand names, handles name and (name + n) for all n,
2121           (sameBank): restructured, also check bank allocation policy,
2122         * src/pic/glue.c (emitPseudoStack): fixed printf arguments,
2123           (pic14_operandsAllocatedInSameBank): check whether to operands
2124             will be allocated into the same bank (i.e., section) to reduce
2125             BANKSEL overhead, queried from pcode.c:sameBank,
2126           (pic14printLocals): reintroduced clustering registers into a single
2127             section: all compiler generated symbols will now reside in one
2128             bank (per file), reducing BANKSEL overhead and code size,
2129           (showAllMemmaps): use local dbuf where possible
2130
2131 2007-01-29 Raphael Neider <rneider AT web.de>
2132
2133         * src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
2134           (call_libraryfunc): retrieve/create symbol and mark as used,
2135           (genFunction): mark defined functions as non-extern and add again
2136            to code memmap for later output
2137         * src/pic/glue.c (emitPseudoStack): put into own subroutine,
2138           (pic14printLocals): reworked for new symbol emission,
2139           (emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
2140           showAllMemmaps): reworked symbol output using dbufs, added handling
2141             of string literals (still incomplete),
2142           (picglue): removed symbol emission, moved into showAllMemmaps,
2143           (emitSymbolSet): new workhorse for symbol output,
2144           (pic14emitMaps,pic14printPublics,pic14printExterns): commented out
2145
2146 2007-01-29 Borut Razem <borut.razem AT siol.net>
2147
2148         * src/SDCCmain.c, src/SDCCutil.c: dbuf_splitFile: file extension
2149           component contains the extension separator.
2150
2151 2007-01-28 Borut Razem <borut.razem AT siol.net>
2152
2153         * sim/ucsim/cmd.src/cmdutil.cc: NUL device is detected as CG_FILE type
2154           on WIN32
2155         * src/SDCCdwarf2.c, src/SDCCglobl.h, src/SDCCmain.c, src/SDCCutil.c,
2156           src/SDCCutil.h, src/avr/gen.c, src/ds390/gen.c, src/hc08/gen.c,
2157           src/mcs51/gen.c, src/pic/device.c, src/pic/gen.c, src/pic/pcode.c,
2158           src/pic/pcodepeep.c, src/pic/ralloc.c, src/pic16/device.h,
2159           src/pic16/gen.c, src/pic16/main.c, src/pic16/pcode.c,
2160           src/pic16/pcodepeep.c, src/pic16/ralloc.c, src/xa51/gen.c,
2161           src/z80/gen.c, support/Util/MySystem.c:
2162           accept slash and backslash as directory separator on WIN32 and
2163           Cygwin ports
2164
2165 2007-01-28 Raphael Neider <rneider AT web.de>
2166
2167         * src/pic16/devices.inc,
2168         * device/include/pic16/pic18f[24][23]21.h,
2169         * device/include/pic16/pic18fregs.h,
2170         * device/lib/pic16/libdev/pic18f[24][23]21.c,
2171         * device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
2172         * device/lib/pic16/libio/adc.ignore,
2173         * device/lib/pic16/libio/i2c.ignore,
2174         * device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
2175           family, as gputils do not yet support the devices
2176         * device/lib/pic16/Makefile.subdir: ignore errors on install
2177         * support/scripts/inc2h-pic16.pl: script to generate pic16 device
2178           headers and libraries from gputils .inc files
2179
2180 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2181
2182         * doc/sdccman.lyx: add printf_fast_f precision limitation note
2183
2184 2007-01-26 Paul Stoffregen <paul AT pjrc.com>
2185
2186         * doc/sdccman.lyx: add printf benchmarks
2187
2188 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2189
2190         * device/lib/printf_fast.c: fix %c, char promoted to int
2191         * device/lib/printf_tiny.c: fix %c, char promoted to int
2192
2193 2007-01-25 Paul Stoffregen <paul AT pjrc.com>
2194
2195         * device/lib/printf_fast.c: fix float overflow check, bug #1525093
2196
2197 2007-01-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2198
2199         * support/regression/tests/swap.c: 64 bit hosts failed
2200         * doc/sdccman.lyx: added preliminary mcs51 printf feature matrix
2201
2202 2007-01-25 Raphael Neider <rneider AT web.de>
2203
2204         * src/pic/pcode.c (sameBank,FixRegisterBanking): optimize banksels
2205           based on absolute register address, patch by Alex Blond
2206
2207 2007-01-22 Raphael Neider <rneider AT web.de>
2208
2209         * src/pic/glue.c (pic14emitRegularMap): mark initialized symbols as
2210           emitted, do not emit them again...
2211
2212 2007-01-22 Raphael Neider <rneider AT web.de>
2213
2214         * src/regression/bank1.c, src/regression/compare6.c,
2215           src/regression/add.c: cosmetic changes
2216         * src/pic/pcode.h: moved GPTRTAG_* here from gen.c
2217         * src/pic/gen.c: fixed global zero and one,
2218           (aopForSym): removed unued code,
2219           (aopGet): assert aop is defined, check and use `index' of
2220             pCodeImmd operands (fixes #1630908),
2221         * src/pic/pcode.c (get_op): added output of generic pointer tag,
2222           (register_reassign): prevent accidental register unification,
2223           (ReuseReg): cosmetic changes (also above)
2224         * src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
2225           pic14emitStaticSeg): do not emit initialized data,
2226           (printIval*): replaced with working versions,
2227           (pic14createInterruptVect,picglue): use idata for initialized data,
2228             now init data should work in all modules (not only main()),
2229         * device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
2230
2231 2007-01-21 Borut Razem <borut.razem AT siol.net>
2232
2233         * sim/ucsim/configure.in: introduced macro DD_COPT_NO_IGNORE,
2234           use -fPIC or -fpic if they are supported and not ignored
2235         * src/SDCCval.c: fixed bug introduced by me in rev. #4577
2236         * support/cpp2/libcpp/lex.c: fixed gcc 4.1.1 warnings
2237
2238 2007-01-20 Borut Razem <borut.razem AT siol.net>
2239
2240         * src/SDCC.lex, src/SDCCmain.c, sdc/SDCCglobl.h, doc/sdccman.lyx:
2241           implemented RFE #1470316: allow "$" in variable names
2242
2243 2007-01-20 Raphael Neider <rneider AT web.de>
2244
2245         * device/include/pic/pic14regs.h: reverted accidental wipe of the file
2246
2247 2007-01-20 Raphael Neider <rneider AT web.de>
2248
2249         * device/lib/pic/libdev/devices.txt: device list for mkall.sh
2250         * device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
2251         * device/lib/pic/libdev/pic14ports.txt: device PORT specifications
2252         * support/scripts/inc2h.pl: fixed major .inc parsing bugs,
2253           applied patch from Robert Tate (#1629249) to add PORTs and TRISs
2254         * device/lib/pic/libdev/pic*.c,
2255         * device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
2256         * device/lib/pic/libdev/Makefile.in: show progress
2257
2258 2007-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2259
2260         * doc/sdccman.lyx: updated "configure options" for autoconf 2.6
2261         * support/scripts/sdcc_cygwin_mingw32,
2262         * support/scripts/sdcc_mingw32,
2263         * support/scripts/build.mak: replaced --datadir by --datarootdir for
2264         conformance with autoconf 2.6
2265
2266 2007-01-19 Raphael Neider <rneider AT web.de>
2267
2268         * src/pic/device.c (register_map): fixed list construction
2269         * src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
2270           (genMod): removed case for genModbits,
2271           (genModbits): removed as now unused/unimplemented
2272         * src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
2273
2274 2007-01-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2275
2276         * support/regression/tests/swap.c: added in response to #1638622
2277         * doc/sdccman.lyx: synced version, minor changes
2278
2279 2007-01-18 Borut Razem <borut.razem AT siol.net>
2280
2281         * SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning,
2282           thanks to Gunther Jehle
2283         * src/asm.c: don't die if the file drfined in #line couldn't be opened
2284         * src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
2285           src/SDCCval.c: removed redundant definitions of currFname and mylineno;
2286           use filename in lineno instead.
2287         * SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
2288           print the file name in ast_print()
2289
2290 2007-01-18 Borut Razem <borut.razem AT siol.net>
2291
2292         * support/Util/dbuf_string.c: removed (PTR) cast since it is not
2293           defined in MSVC
2294         * src/SDCC.lex: stringLiteral() returns const char pointer,
2295           EOF detection in stringLiteral(), fixed asmbuf memory leak,
2296           fixed column counting
2297         * src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
2298           accept const char pointer as parameter
2299         * src/SDCCdwarf2.c: corrected buffer size
2300
2301 2007-01-17 Borut Razem <borut.razem AT siol.net>
2302
2303         * support/Util/dbuf_string.c: fixed for amd64
2304
2305 2007-01-15 Borut Razem <borut.razem AT siol.net>
2306
2307         * src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
2308           removed terminal symbol ELIPSIS, since it was never generated by the
2309           lexer and it was wrongly used in parameter_identifier_list rule
2310
2311 2007-01-15 Raphael Neider <rneider AT web.de>
2312
2313         * doc/sdccman.lyx: updated PIC14/16 command line args, updated PIC14
2314             code page and data banking description
2315         * src/pic/genarith.c,
2316         * src/pic/gen.h: removed bit arithmetic functions,
2317             updated exit(1) to exit(EXIT_FAILURE)
2318         * device/lib/pic16/libsdcc/stack/stack.S: default to 256 byte stack
2319         * device/include/pic16/pic18f2455.h,
2320         * device/lib/pic16/libdev/pic18f2455.c: added PORTD, LATD, LATE,
2321             TRISD and TRISE, fixed/added some bit names
2322         * device/lib/pic16/libdev/pic18f{2550,4550,4455}.c,
2323         * device/include/pic16/pic18f{2550,4550,4455}.h: simply include
2324             updated pic18f2455.{c,h} instead of duplicating them
2325
2326 2007-01-14 Borut Razem <borut.razem AT siol.net>
2327
2328         * as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
2329           Cannot debug files that contain spaces in the path name
2330           by converting spaces in asm file name to underscores
2331
2332 2007-01-13 Borut Razem <borut.razem AT siol.net>
2333
2334         * doc/sdccman.lyx: fixed format errors
2335
2336 2007-01-10 Borut Razem <borut.razem AT siol.net>
2337
2338         * src/SDCC.lex, src/SDCCmain.c: fixed bug #1631895:
2339           codeseg/constseg #pragma fail
2340         * suppoprt/cpp2/Makefile.bcc: reenable Borland C compilation
2341         * suppoprt/cpp2/configure.in, suppoprt/cpp2/libcpp/lex.c,
2342           suppoprt/cpp2/Makefile.in, suppoprt/cpp2/sdcpp-opts,
2343           suppoprt/cpp2/sdcpp.[ch]: house cleaning
2344
2345 2007-01-09 Borut Razem <borut.razem AT siol.net>
2346
2347         * get rid of diagnistic.[ch], pretty-print.[ch],
2348           c-pretty-print.[ch], ... used just for error, warning, ...
2349           message formatting
2350         * suppoprt/cpp2/pretty-print.[ch], suppoprt/cpp2/diagnostic.[ch],
2351           suppoprt/cpp2/diagnostic.def, suppoprt/cpp2/input.h,
2352           suppoprt/cpp2/pretty-print.[ch]:
2353           removed
2354         * suppoprt/cpp2/Makefile.in, suppoprt/cpp2/opts.c,
2355           suppoprt/cpp2/sdcpp-opts.c, suppoprt/cpp2/sdcpp.[ch],
2356           suppoprt/cpp2/sdcpp.dsp:
2357           changed
2358
2359 2007-01-08 Maarten Brock <sourceforge.brock AT dse.nl>
2360
2361         * device/lib/printf_large.c (output_float): removed recursion,
2362           use smaller buffer on stack for mcs51,
2363           fixed bug printing 1.96
2364         * support/regression/tests/snprintf.c: added test
2365
2366 2007-01-07 Borut Razem <borut.razem AT siol.net>
2367
2368         * use dynamic memory buffers instead temporary files
2369         * support/Util/dbuf_string.c, support/Util/dbuf_string.h:
2370           added
2371         * src/Makefile.in, src/SDCC.lex, src/SDCCast.c, src/SDCCast.h,
2372           src/SDCCcse.c, src/SDCCglobl.h, src/SDCCglue.c, src/SDCCglue.h,
2373           src/SDCCicode.c, src/SDCCicode.h, src/SDCCmain.c, src/SDCCmem.c,
2374           src/SDCCmem.h, src/SDCCpeeph.c, src/SDCCpeeph.h, src/SDCCsymt.c,
2375           src/SDCCsymt.h, src/SDCCutil.c, src/asm.c, src/asm.h, src/avr/gen.c,
2376           src/avr/main.c, src/ds390/gen.c, src/ds390/main.c, src/hc08/gen.c,
2377           src/hc08/main.c, src/izt/gen.c, src/mcs51/gen.c, src/mcs51/main.c,
2378           src/pic/device.c, src/pic/gen.c, src/pic/glue.c, src/pic/main.c,
2379           src/pic/ralloc.c, src/pic16/gen.c, src/pic16/glue.c,
2380           src/pic16/main.c, src/pic16/ralloc.c, src/port.h, src/src.dsp,
2381           src/xa51/gen.c, src/xa51/main.c, src/z80/gen.c, src/z80/main.c,
2382           support/Util/dbuf.c, support/Util/dbuf.h:
2383           modified
2384         * .version, sdcc.spec: bumped version to 2.6.4
2385
2386 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2387
2388         * src/port.h: added TARGET_Z80_LIKE macro
2389         * src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
2390           output PSEG location if --xram-loc or --xstack-loc was used
2391         * as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
2392
2393 2007-01-07 Maarten Brock <sourceforge.brock AT dse.nl>
2394
2395         * as/as_gbz80.dsp, as/z80/as_gbz80.dsp,
2396         * as/as_z80.dsp,   as/z80/as_z80.dsp,
2397         * as/asx8051.dsp,  as/mcs51/asx8051.dsp,
2398         * sdcc.dsw: moved project files into subdir
2399         * as/hc08/as_hc08.dsp,
2400         * as/hc08/Makefile.bcc,
2401         * as/hc08/Makefile.in,
2402         * as/mcs51/Makefile.bcc,
2403         * as/mcs51/Makefile.in,
2404         * as/z80/Makefile.bcc,
2405         * as/z80/Makefile.in,
2406         * as/link/mcs51/Makefile.bcc: use as/strcmpi.c
2407         * as/hc08/asm.h,
2408         * as/mcs51/asm.h,
2409         * as/z80/asm.h: added as_strcmpi() and as_strncmpi() prototypes
2410         * as/hc08/asmain.c,
2411         * as/hc08/assym.c,
2412         * as/mcs51/asmain.c,
2413         * as/mcs51/assym.c,
2414         * as/z80/assym.c: removed include "strcmpi.h"
2415         * as/hc08/strcmpi.c,
2416         * as/hc08/strcmpi.h,
2417         * as/mcs51/strcmpi.c,
2418         * as/mcs51/strcmpi.h,
2419         * support/Util/strcmpi.c,
2420         * support/Util/strcmpi.h: removed files
2421         * as/strcmpi.c: added as_strncmpi()
2422
2423 2007-01-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2424
2425         * sdcc.dsw: Added some dependencies on project config.dsp
2426
2427 2007-01-05 Maarten Brock <sourceforge.brock AT dse.nl>
2428
2429         * as/link/mcs51/lkarea.c (lnkarea2, lnksect2): replaced [di]seg_ap->a_addr
2430           with [di]ram_start to fix a regresion
2431
2432 2007-01-03 Bernhard Held <bernhard AT bernhardheld.de>
2433
2434         * configure.in: added missing mcs51 in status output
2435         * Makefile.in: add support/regression to SDCC_EXTRA to distclean this
2436         directory
2437         * debugger/mcs51/clean.mk (distclean): remove config.h
2438         * src/clean.mk (clean): remove SDCCy.c, SDCCy.h, SDCClex.c
2439         * support/cpp2/Makefile.in (clean): remove s-options, optionlist,
2440         options.h, s-options-h and options.c
2441         * support/cpp2/clean.mk: unused, removed
2442         * Makefile.common.in,
2443         * main_in.mk,
2444         * as/Makefile.in,
2445         * as/hc08/Makefile.in,
2446         * as/hc08/clean.mk,
2447         * as/mcs51/Makefile.in,
2448         * as/mcs51/clean.mk,
2449         * as/z80/clean.mk,
2450         * as/z80/conf.mk,
2451         * as/z80/Makefile.in,
2452         * as/z80/clean.mk,
2453         * as/link/Makefile.in,
2454         * as/link/hc08/Makefile.in,
2455         * as/link/hc08/clean.mk,
2456         * as/link/mcs51/Makefile.in,
2457         * as/link/mcs51/clean.mk,
2458         * as/link/z80/Makefile.in,
2459         * as/link/z80/clean.mk,
2460         * as/link/z80/conf.mk,
2461         * debugger/mcs51/Makefile.in,
2462         * debugger/mcs51/clean.mk,
2463         * device/include/Makefile.in,
2464         * device/lib/Makefile.in,
2465         * device/lib/mcs51/Makefile.in,
2466         * device/lib/pic/Makefile.in,
2467         * device/lib/pic/Makefile.common.in,
2468         * device/lib/pic/Makefile.subdir,
2469         * device/lib/pic/Makefile.rules,
2470         * device/lib/pic16/libio/Makefile.in,
2471         * device/lib/pic16/Makefile.subdir,
2472         * device/lib/pic16/libdev/Makefile.in,
2473         * device/lib/pic16/Makefile.rules,
2474         * device/lib/pic16/Makefile.common.in,
2475         * sim/ucsim/avr.src/Makefile.in,
2476         * sim/ucsim/main_in.mk,
2477         * sim/ucsim/cmd.src/Makefile.in,
2478         * sim/ucsim/doc/Makefile.in,
2479         * sim/ucsim/gui.src/Makefile.in,
2480         * sim/ucsim/gui.src/obsolete/portmon.src/Makefile.in,
2481         * sim/ucsim/gui.src/serio.src/Makefile.in,
2482         * sim/ucsim/hc08.src/Makefile.in,
2483         * sim/ucsim/libltdl/Makefile.in,
2484         * sim/ucsim/s51.src/Makefile.in,
2485         * sim/ucsim/sim.src/Makefile.in,
2486         * sim/ucsim/sim.src/conf.mk,
2487         * sim/ucsim/xa.src/Makefile.in,
2488         * sim/ucsim/z80.src/Makefile.in,
2489         * src/Makefile.in,
2490         * src/clean.mk,
2491         * src/port.mk,
2492         * support/cpp2/Makefile.in,
2493         * support/librarian/Makefile.in,
2494         * support/librarian/clean.mk,
2495         * support/makebin/Makefile.in,
2496         * support/makebin/clean.mk,
2497         * support/packihx/Makefile.in,
2498         * support/regression/Makefile.in,
2499         * support/regression/ports/ds390/spec.mk,
2500         * support/regression/ports/gbz80/spec.mk,
2501         * support/regression/ports/hc08/spec.mk,
2502         * support/regression/ports/mcs51/spec.mk,
2503         * support/regression/ports/mcs51-large/spec.mk,
2504         * support/regression/ports/mcs51-medium/spec.mk,
2505         * support/regression/ports/mcs51-xstack-auto/spec.mk,
2506         * support/regression/ports/pic14/spec.mk,
2507         * support/regression/ports/pic16/spec.mk,
2508         * support/regression/ports/mcs51-stack-auto/spec.mk,
2509         * support/regression/ports/ucz80/spec.mk,
2510         * support/regression/ports/xa51/spec.mk,
2511         * support/regression/ports/z80/spec.mk: fixed for autoconf 2.6x by
2512         adding a slash after $(top_builddir) and/or adding @datarootdir@
2513         * configure.in,
2514         * debugger/mcs51/configure.in,
2515         * device/lib/pic/configure.in,
2516         * device/lib/pic16/configure.in,
2517         * sim/ucsim/configure.in,
2518         * support/cpp2/configure.in,
2519         * support/packihx/configure.in: changed AC_PREREQ to 2.60
2520         * configure,
2521         * debugger/mcs51/configure,
2522         * device/lib/pic/configure,
2523         * device/lib/pic16/configure,
2524         * sim/ucsim/configure,
2525         * support/cpp2/configure,
2526         * support/packihx/configure: generated with autoconf 2.60
2527
2528 2007-01-02 Maarten Brock <sourceforge.brock AT dse.nl>
2529
2530         * as/link/hc08/lkihx.c (newArea),
2531         * as/link/hc08/lkrloc.c: renamed newArea() to ihxNewArea()
2532
2533 2007-01-02 Borut Razem <borut.razem AT siol.net>
2534
2535         * doc/sdccman.lyx: documented #pragma sdcc_hash
2536         * support/cpp2/sdcpp.c: allow_naked_hash (value of #pragma sdcc_hash)
2537           initialized to 0
2538         * support/cpp2/c-ppoutput.c: fixed warning: no newline at end of file
2539
2540 2007-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2541
2542         * src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in
2543         empty 'while'-loop to work correctly, see regression test 'while.c'
2544         * support/regression/tests/while.c: added
2545
2546 2007-01-01 Borut Razem <borut.razem AT siol.net>
2547
2548         * support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
2549           support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
2550           support/cpp2/libcpp/sdcpp.c:
2551           sdcpp specific pragma/directive/option handling moved to sdcpp.c
2552         * doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
2553         * support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
2554
2555 2006-12-31 Borut Razem <borut.razem AT siol.net>
2556
2557         * SDCPP synchronized with GCC CPP release version 4.1.1,
2558           currently the latest release:
2559         * support/cpp2/libcpp, support/cpp2/libcpp/include,
2560           support/cpp2/libcpp/include/cpp-id-data.h
2561           support/cpp2/libiberty/fopen_unlocked.c
2562           support/cpp2/libiberty/md5.c
2563           support/cpp2/md5.h
2564           support/cpp2/opt-functions.awk
2565           support/cpp2/opt-gather.awk
2566           support/cpp2/optc-gen.awk
2567           support/cpp2/opth-gen.awk:
2568           added
2569         * support/cpp2/Makefile.in, support/cpp2/auto-host_vc_in.h,
2570           support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2571           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2572           support/cpp2/c-pretty-print.h, support/cpp2/cppdefault.c,
2573           support/cpp2/cppdefault.h, support/cpp2/diagnostic.c,
2574           support/cpp2/diagnostic.h, support/cpp2/except.h,
2575           support/cpp2/hwint.h, support/cpp2/input.h,
2576           support/cpp2/intl.h, support/cpp2/move-if-change,
2577           support/cpp2/opts.c, support/cpp2/opts.h,
2578           support/cpp2/output.h, support/cpp2/prefix.c,
2579           support/cpp2/prefix.h, support/cpp2/pretty-print.c,
2580           support/cpp2/pretty-print.h, support/cpp2/sdcpp-opts.c,
2581           support/cpp2/sdcpp.c, support/cpp2/sdcpp.dsp,
2582           support/cpp2/sdcpp.h, support/cpp2/sdcpp.opt,
2583           support/cpp2/sdcppa.dsp, support/cpp2/symcat.h,
2584           support/cpp2/version.c:
2585           modified
2586         * support/cpp2/libcpp/charset.c, support/cpp2/libcpp/directives.c,
2587           support/cpp2/libcpp/errors.c, support/cpp2/libcpp/expr.c,
2588           support/cpp2/libcpp/files.c, support/cpp2/libcpp/identifiers.c,
2589           support/cpp2/libcpp/include/cpplib.h, support/cpp2/libcpp/include/line-map.h,
2590           support/cpp2/libcpp/include/mkdeps.h, support/cpp2/libcpp/include/symtab.h,
2591           support/cpp2/libcpp/init.c, support/cpp2/libcpp/internal.h,
2592           support/cpp2/libcpp/lex.c, support/cpp2/libcpp/line-map.c,
2593           support/cpp2/libcpp/macro.c, support/cpp2/libcpp/mkdeps.c,
2594           support/cpp2/libcpp/symtab.c, support/cpp2/libcpp/system.h,
2595           support/cpp2/libcpp/traditional.c, support/cpp2/libcpp/ucnid.h,
2596           support/cpp2/libiberty/hashtab.c, support/cpp2/libiberty/hashtab.h:
2597           moved
2598         * support/cpp2/cppcharset.c, support/cpp2/cpperror.c,
2599           support/cpp2/cppexp.c, support/cpp2/cppfiles.c,
2600           support/cpp2/cpphash.c, support/cpp2/cpphash.h,
2601           support/cpp2/cppinit.c, support/cpp2/cpplex.c,
2602           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
2603           support/cpp2/cppmacro.c, support/cpp2/cpptrad.c,
2604           support/cpp2/cppucnid.h, support/cpp2/hashtab.c,
2605           support/cpp2/hashtab.h, support/cpp2/hashtable.c,
2606           support/cpp2/hashtable.h, support/cpp2/line-map.c,
2607           support/cpp2/line-map.h, support/cpp2/mkdeps.c,
2608           support/cpp2/mkdeps.h, support/cpp2/options_vc_in.c,
2609           support/cpp2/options_vc_in.h, support/cpp2/opts.sh,
2610           support/cpp2/system.h:
2611           deleted / moved
2612
2613 2006-12-31 Borut Razem <borut.razem AT siol.net>
2614
2615         * configure.in, configure: fixed bug #1538756: configure dies if bison
2616           and flex are not installed, 2nd try
2617
2618 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2619
2620         * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
2621         400.x for better code in RFE 899102
2622
2623 2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
2624
2625         * src/SDCCpeeph.c (deadMove),
2626         * src/port.h,
2627         * src/mcs51/peep.h: renamed 'op' by 'reg'
2628         * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
2629         (scan4op): small change for removeDeadMove(), added support for
2630         'callee saves' and/or PACLL function calls,
2631         (removeDeadMove): added, removes superflous 'mov r%1,%2',
2632         (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
2633         left in new dispatcher mcs51DeadMove()
2634         (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
2635         removeDeadMove()
2636         * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
2637
2638 2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2639
2640         * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
2641           support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
2642
2643 2006-12-30 Borut Razem <borut.razem AT siol.net>
2644
2645         * support/cpp2/spacs.h: deleted from svn
2646         * configure.in, configure: fixed bug #1538756: configure dies if bison
2647           and flex are not installed
2648
2649 2006-12-29 Maarten Brock <sourceforge.brock AT dse.nl>
2650
2651         * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
2652           with this z80 passes printf float test when enabled
2653         * support/regression/tests/bug1057979.c: typo disabled ds390 float test
2654
2655 2006-12-28 Borut Razem <borut.razem AT siol.net>
2656
2657         * support/cpp2/config.in, support/cpp2/configure.in,
2658           support/cpp2/configure, support/cpp2/Makefile.in:
2659           fix for the solaris build
2660
2661 2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2662
2663         * src/SDCC.y (type_specifier2, pointer),
2664         * src/SDCCsymt.h,
2665         * src/SDCCsymt.c (mergeSpec, checkSClass),
2666         * support/Util/SDCCerr.c,
2667         * support/Util/SDCCerr.h: Parse and validate the restrict keyword
2668         * support/valdiag/valdiag.py: Allow test cases to specify
2669           required language standard
2670         * support/valdiag/tests/restrict.c: New file to test restrict keyword
2671         * support/valdiag/tests/tentdecl.c: Supress empty source file error
2672
2673 2006-12-27 Borut Razem <borut.razem AT siol.net>
2674
2675         * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
2676         * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
2677           mbchar removed
2678         * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
2679           fixed for borland C
2680         * support/cpp2/libiberty/Makefile.bcc: updated
2681         * src/pic16/main.c: fixed #pragma udata handling
2682         * src/mcs51/mcs51.dsp: added peep.[ch] to the project
2683
2684 2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
2685
2686         * src/SDCCpeeph.c: made labelHashEntry global,
2687         made pcDistance, FBYNAME static,
2688         (pcDistance): made static, use isComment and isLabel,
2689         (deadMove): added,
2690         (getLabelRef): added, extracted from labelRefCount(),
2691         (labelRefCount): use new getLabelRef(),
2692         (callFuncByName): made static, added deadMove,
2693         use isComment and isLabel,
2694         (newPeepRule): made static, set isLabel,
2695         (isLabelDefinition): added parameter isPeepRule to allow '%' in
2696         labels from peephole rules,
2697         (buildLabelRefCountHash): speed up by running isLabelDefinition() only
2698         when isComment or isLabel is set
2699         * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
2700         added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
2701         to make them global
2702         * src/mcs51/peep.h: added
2703         * src/mcs51/peep.c: added, implements mcs51DeadMove()
2704         * src/port.h: added peep->deadMove to port structure
2705         * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
2706         * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
2707         deadMove, finally removed no. 1 and 2
2708         * src/mcs51/gen.c,
2709         * src/pic/gen.c,
2710         * src/z80/gen.c,
2711         * src/z80/ralloc.c,
2712         * src/pic16/gen.c,
2713         * src/ds390/gen.c,
2714         * src/hc08/gen.c: mark lines with isComment or isLabel
2715         * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
2716         * .version,
2717         * sdcc.spec: bumped version to 2.6.3
2718
2719 2006-12-26 Borut Razem <borut.razem AT siol.net>
2720
2721         * support/cpp2/Makefile.in: added dependency on options.h
2722         * configure: regenerated
2723         * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
2724         * support/cpp2/Makefile.in: added vasprintf.c
2725
2726 2006-12-25 Borut Razem <borut.razem AT siol.net>
2727
2728         * SDCPP synchronized with GCC CPP release version 3.4.6,
2729           the latest release before 4.x:
2730         * support/cpp2/Makefile.in, support/cpp2/config.h,
2731           support/cpp2/configure, support/cpp2/configure.in,
2732           support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
2733           support/cpp2/cpperror.c, support/cpp2/cppexp.c,
2734           support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
2735           support/cpp2/cpphash.h, support/cpp2/cppinit.c,
2736           support/cpp2/cpplex.c, support/cpp2/cpplib.c,
2737           support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
2738           support/cpp2/cpptrad.c, support/cpp2/except.h,
2739           support/cpp2/hashtable.c, support/cpp2/hashtable.h,
2740           support/cpp2/hwint.h, support/cpp2/intl.h,
2741           support/cpp2/line-map.c, support/cpp2/line-map.h,
2742           support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
2743           support/cpp2/output.h, support/cpp2/prefix.c,
2744           support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
2745           support/cpp2/system.h, support/cpp2/version.c:
2746           modified
2747         * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
2748           support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
2749           support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
2750           support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
2751           support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
2752           support/cpp2/hashtab.c, support/cpp2/hashtab.h,
2753           support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
2754           support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
2755           support/cpp2/move-if-change, support/cpp2/opts.c,
2756           support/cpp2/opts.h, support/cpp2/opts.sh,
2757           support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
2758           support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
2759           support/cpp2/win32, support/cpp2/win32/dirent.c,
2760           support/cpp2/win32/dirent.h:
2761           added
2762         * support/cpp2/sdcpp.c: renamed from sdcppmain.c
2763         * support/cpp2/sdcpp.h: renamed from sdcc.h
2764         * sdcppinit.c: deleted
2765
2766 2006-12-23 Borut Razem <borut.razem AT siol.net>
2767
2768         * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
2769           support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
2770           preproc.c: an other try to fix bug #982435: introduced
2771           -pedantic-parse-number command line option and pedantic_parse_number
2772           pragma
2773
2774 2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
2775
2776         * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
2777            BSEG handling,
2778           (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
2779            corrected overlayed areax addresses, warn about memory overlaps
2780         * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
2781         * src/avr/main.c,
2782         * src/ds390/main.c,
2783         * src/hc08/main.c,
2784         * src/mcs51/main.c,
2785         * src/pic16/main.c,
2786         * src/pic/main.c,
2787         * src/xa51/main.c,
2788         * src/z80/main.c,
2789         * src/port.h: added xabs_name and iabs_name
2790         * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
2791           (glue, emitMaps): create and emit maps d_abs and i_abs
2792         * src/SDCCglue.h: cosmetic changes
2793         * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
2794         * src/SDCCmem.h,
2795         * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
2796           (allocDefault): put absolute, initialized globals in them
2797         * support/regression/tests/absolute.c: added absolute bdata test
2798         * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
2799
2800 2006-12-20 Borut Razem <borut.razem AT siol.net>
2801
2802         * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
2803         * support/regression/tests/preproc.c: renamed from bug-1351710.c,
2804           added regression test for bug #982435
2805
2806 2006-12-18 Borut Razem <borut.razem AT siol.net>
2807
2808         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
2809         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
2810           small cosmetic changes
2811         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
2812         * support/regression/tests/bug-1351710.c: added regression test
2813
2814 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2815
2816         * doc/sdccman.lyx: added the long missed iCode table
2817           "<where is figure II?>", added links to wiki
2818
2819 2006-12-17 Borut Razem <borut.razem AT siol.net>
2820
2821         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
2822           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
2823           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
2824           unified table driven pragma handling, pragma argument type checking
2825         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
2826           current one - version 1.1.3
2827         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
2828
2829 2006-12-13 Raphael Neider <rneider AT web.de>
2830
2831         * src/pic/device.h: removed AssignedMemory structure and macros
2832         * src/pic/device.c: removed global finalMapping (linker assigns
2833             memory locations),
2834           (register_map): add SFRs to remembered memRanges
2835           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
2836           assignFixedRegisters,assignRelocatableRegisters): removed,
2837           (setMaxRAM,validAddress): adapted accordingly,
2838           (pic14_hasSharebank,pic14_getSharedStack): only report and use
2839             reasonably sized sharebanks,
2840         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
2841           (allDefsOutOfRange): removed unused code,
2842         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
2843             handling
2844         * src/pic/pcode.c (register_reassign): removed recursion warning,
2845             fired far too often,
2846         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
2847             to use existing pic14_stringInSet() to avoid duplicate symbols,
2848             tidied up the code a bit,
2849           (pic14printLocals): added in symmetry to printExterns, replaces
2850             writeUsedRegs more or less,
2851           (picglue): call new pic14_printLocals(),
2852         * device/include/pic/pic*.h: removed #pragma memmap directives,
2853             information gathered from include/pic/pic14devices.txt
2854         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
2855
2856 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2857
2858         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
2859
2860 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2861
2862         * device/include/mcs51/cc2430.h: fixed missing ';'
2863
2864 2006-12-10 Raphael Neider <rneider AT web.de>
2865
2866         * device/lib/pic16/libc/stdio/vfprintf.c,
2867         * device/lib/pic16/libc/stdio/printf_small.c,
2868         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
2869           char arguments, as char varargs are cast to int by the caller,
2870           hopefully fixes #1604915 (other device libraries are still affected)
2871
2872 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2873
2874         * src/mcs51/ralloc.c (packRegsForAssign),
2875         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
2876
2877 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
2878
2879         * device/include/malloc.h: removed init_dynamic_memory
2880         * device/lib/malloc.c: made init_dynamic_memory static and automatically
2881           call it once from malloc. Also use _sdcc_heap[] from _heap.c
2882         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
2883         * device/lib/libsdcc.lib,
2884         * device/lib/Makefile.in,
2885         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
2886         * doc/sdccman.lyx: documented use of new _heap.c
2887         * support/regression/tests/malloc.c: removed init_dynamic_memory
2888         * src/cdbFile.c(spacesToUnderscores): new function,
2889           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
2890           1068030
2891         * device/include/tinibios.h: removed defines for putchar and getchar
2892         * device/lib/ds390/Makefile.in: added putchar.c
2893         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
2894
2895 2006-12-09 Borut Razem <borut.razem AT siol.net>
2896
2897         * support/cpp2/sdcc.h: prevent multiple inclusion
2898         * support/cpp2/options.h: deleted
2899
2900 2006-12-08 Borut Razem <borut.razem AT siol.net>
2901
2902         * support/cpp2/sdcc.h: removed x*alloc() macros
2903         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
2904         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
2905           support/cpp2/sdcpp.sdc: x*alloc files added to the project
2906         * support/cpp2/system.h: moved #include "sdcc.h"
2907         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
2908           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
2909           added
2910         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
2911           -funsigned-char options
2912         * support/cpp2/sdcppmain.c: fixed bug 1611411
2913
2914 2006-12-07 Borut Razem <borut.razem AT siol.net>
2915
2916         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
2917           directive
2918
2919 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2920
2921         * src/SDCCsymt.c (addDecl): fixed bug 1609244
2922         * src/SDCCmain.c (linkEdit): fixed bug 1609279
2923         * doc/sdccman.lyx,
2924         * .version: bumped to 2.6.2 because a) it's been a while
2925           b) the linker sources have moved c) the preprocessor is upgraded
2926
2927 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2928
2929         * support/regression/tests/snprintf.c: some checks
2930         * lib/src/printf_large.c: %bc: read char instead of int from stack
2931
2932 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
2933
2934         * device/include/mcs51/cc2430.h: inserted _XPAGE
2935
2936 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2937
2938         * device/include/mcs51/cc2430.h: added
2939
2940 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
2941
2942         * device/include/asm/default/features.h,
2943         * device/include/asm/ds390/features.h,
2944         * device/include/mcs51/at89s53.h,
2945         * device/include/ser.h,
2946         * device/include/ser_ir.h,
2947         * device/include/serial.h: changed keywords to double underscore variants,
2948           fixes bug 1590261 some more, thanks Steven Borley
2949
2950 2006-12-01 Raphael Neider <rneider AT web.de>
2951
2952         * src/pic/pcode.c (register_reassign): do not crash on recursive code
2953           but emit warning (recursion is not supported for pic14)
2954
2955 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2956
2957         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
2958         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
2959
2960 2006-11-30 Raphael Neider <rneider AT web.de>
2961
2962         * src/pic/device.c (dump_sfr): always emit symbols
2963         * src/pic/glue.c (pic14printPublics): fixed typo
2964
2965 2006-11-30 Raphael Neider <rneider AT web.de>
2966
2967         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
2968           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
2969           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
2970            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
2971            a sharebank, use a non-shared bank for the stack if none available
2972         * src/pic/device.h (struct memRange): added linked list next field,
2973           added prototypes for above functions
2974         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
2975           (typeRegWithIdx): accept fixed and unfixed stack registers
2976         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
2977           the stack, handle shared and banked stack (except for WSAVE),
2978           (insertBankSel): removed useless optimization (will never fire),
2979           (FixRegisterBanking): added optimization for devices with only one
2980           possibly aliased bank of memory, like 16f84
2981         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
2982           devices have no SHAREBANK in the linker script
2983         * device/include/pic/pic14devices.txt: documented memmap
2984         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
2985
2986 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2987
2988         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
2989           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
2990           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
2991           genhc08Code): switched most of the D (debug) macros to DD (detailed
2992           debug) macros to better control clutter in the generated .asm file.
2993         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
2994           genRightShift): fixed bug with non-constant bit shift stored to
2995           a volatile result (SF Open Discussion forum thread #1616749).
2996           Single byte case is not yet optimized.
2997
2998 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
2999
3000         * device/include/asm/mcs51/features.h,
3001         * device/include/malloc.h,
3002         * device/include/stdio.h: changed keywords to double underscore variants,
3003           fixes bug 1590261
3004
3005 2006-11-27 Borut Razem <borut.razem AT siol.net>
3006
3007         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3008           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
3009           support/cpp2/output.h, support/cpp2/cppinit.c,
3010           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
3011           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3012           support/cpp2/cppdefault.c, support/cpp2/system.h,
3013           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
3014           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
3015           support/cpp2/prefix.c, support/cpp2/except.h,
3016           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
3017           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
3018           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3019           support/cpp2/version.c, support/cpp2/cppmain.c,
3020           support/cpp2/version.h, support/cpp2/hashtable.c,
3021           support/cpp2/cpperror.c:
3022           synchronized with GCC CPP release version 3.3.6,
3023           the latest where cppmain.c still exists.
3024         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
3025           support/cpp2/sdcppinit.c: added
3026
3027 2006-11-27 Borut Razem <borut.razem AT siol.net>
3028
3029         * support/cpp2/cpplex.c:
3030           fixed _asm ... _endasm handling bug, introduce with GCC CPP
3031           synchronization
3032         * support/cpp2/cpplib.c: removed definitions of unused variables
3033
3034 2006-11-26 Borut Razem <borut.razem AT siol.net>
3035
3036         * support/cpp2/libiberty.h: commented out x*alloc() declarations
3037           since they are redefined by macros in support/cpp2/sdcc.h
3038         * support/cpp2/sdcc.h: x*alloc macro redefinition
3039
3040 2006-11-25 Borut Razem <borut.razem AT siol.net>
3041
3042         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
3043           support/cpp2/configure, support/cpp2/Makefile.in,
3044           support/cpp2/cppfiles.c, support/cpp2/output.h,
3045           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
3046           support/cpp2/config.h, support/cpp2/cpplib.h,
3047           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
3048           support/cpp2/cppdefault.c, support/cpp2/config.in,
3049           support/cpp2/system.h, support/cpp2/cpplex.c,
3050           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
3051           support/cpp2/cppdefault.h, support/cpp2/prefix.c
3052           support/cpp2/hwint.h, support/cpp2/mbchar.h,
3053           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
3054           support/cpp2/configure.in, support/cpp2/intl.h,
3055           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
3056           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
3057           support/cpp2/version.c, support/cpp2/cppmain.c,
3058           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
3059           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
3060           support/cpp2/cpperror.c,
3061           support/cpp2/libiberty/safe-ctype.c,
3062           support/cpp2/libiberty/safe-ctype.h,
3063           support/cpp2/libiberty/splay-tree.c,
3064           support/cpp2/libiberty/obstack.c,
3065           support/cpp2/libiberty/lbasename.c,
3066           support/cpp2/libiberty/splay-tree.h,
3067           support/cpp2/libiberty/obstack.h:
3068           synchronized with GCC CPP release version 3.2.3,
3069           the latest before integration of cpp into gcc
3070         * support/cpp2/except.h, support/cpp2/line-map.c,
3071           support/cpp2/line-map.h,
3072           support/cpp2/libiberty/hex.c,
3073           support/cpp2/libiberty/concat.c,
3074           support/cpp2/libiberty/filenames.h: added
3075         * support/cpp2/intl.c: deleted
3076
3077 2006-11-24 Borut Razem <borut.razem AT siol.net>
3078
3079         * src/SDCC.y: enabled compilation of empty source file
3080         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
3081           "ISO C forbids an empty source file"
3082         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
3083           if all the code is ifdefed out.
3084
3085 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3086
3087         * src/hc08/gen.c (genPcall): fix for bug #1601032
3088
3089 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3090
3091         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
3092         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
3093         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
3094         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
3095         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
3096         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
3097         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
3098         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
3099         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
3100         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
3101         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
3102         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
3103         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
3104         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
3105         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
3106           Renamed to all upper case as per the standard set by SiLabs
3107
3108 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
3109
3110         * device/include/mcs51/C8051F520.h: new, added
3111         * device/include/mcs51/compiler.h: added link about predefined macros
3112
3113 2006-11-23 Raphael Neider <rneider AT web.de>
3114
3115         * src/regression/Makefile: add -L path to fresh library
3116         * src/regression/simulate: emphasize FAILED output
3117         * src/regression/create_stc: output _failures from gpsim
3118         * src/regression/compare4.c,
3119         * src/regression/rotate6.c: fixed char literals,
3120           all compile, all run =8-D
3121
3122         * src/pic/pcode.h: added isPCASMDIR macro
3123         * src/pic/gen.c (genAnd): fixed bit offset
3124         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
3125           packBits): unified register numbering schemes,
3126           (newReg): do not insert stack registers into hash table,
3127           (initStack): unpinned pseudo stack, simplified,
3128           (typeRegWithIdx): fixed retrieval of stack registers,
3129         * src/pic/pcode.c (addpCodeComment,sameBank): added,
3130           (pCodeReplace): removed invalid assertion,
3131           (insertPCodeInstruction): fixed newly added labels,
3132           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
3133           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
3134           DumpFlow): removed unsed (broken?) code,
3135           (insertBankSel): prevent STATUS from being BANKSELed,
3136           (FixRegisterBanking): rewritten from scratch, implemented generic
3137             optimizations (suppress BANKSELs to same register and to registers
3138             present in all banks),
3139           (AnalyzeBanking): update flow after BANKSELection
3140
3141         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
3142             sharebank, let linker place it, mark STKxx symbols as emitted
3143
3144 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3145
3146         * src/regression/arrays.c,
3147         * src/regression/bank1.c,
3148         * src/regression/bool2.c,
3149         * src/regression/compare7.c,
3150         * src/regression/compare8.c,
3151         * src/regression/compare9.c,
3152         * src/regression/compare10.c,
3153         * src/regression/configword.c,
3154         * src/regression/for.c,
3155         * src/regression/mult1.c,
3156         * src/regression/pointer1.c,
3157         * src/regression/rotate6.c,
3158         * src/regression/string1.c,
3159         * src/regression/struct1.c,
3160         * src/regression/Makefile: make PIC14 regression tests run again
3161           (3 fail, 6 won't compile)
3162
3163 2006-11-21 Raphael Neider <rneider AT web.de>
3164
3165         * device/include/pic16/pic18f4550.h,
3166         * device/include/pic16/pic18f4455.h,
3167         * device/lib/pic16/libdev/pic18f4550.c,
3168         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
3169         * configure.in: removed superfluous closing bracket
3170
3171 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3172
3173         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
3174           always positive.
3175
3176 2006-11-21 Raphael Neider <rneider AT web.de>
3177
3178         * src/pic/device.{c,h}: added pic14_getPIC()
3179         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
3180           (genAnd): added PIC code for one case, fixes #1597044
3181         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
3182           SFRs that are present in all banks (e.g., STATUS)
3183
3184 2006-11-20 Raphael Neider <rneider AT web.de>
3185
3186         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
3187           INCFSZ/INCFSZW and declared them as changing Z bit,
3188           (insertPCodeInstruction): correctly invert the above instructions,
3189           fixes #1599333,
3190           (DoBankSelect): don't panic on po_immediates
3191
3192 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3193
3194         * as/link/aslink.h,
3195         * as/link/mcs51/lkihx.c (newArea),
3196         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
3197         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
3198
3199 2006-11-11 Raphael Neider <rneider AT web.de>
3200
3201         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
3202           bitfield symbols, fixes #1579535 (once more...).
3203
3204 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3205
3206         * support/regression/generate-cases.py,
3207         * support/regression/fwk/include/testfwk.h,
3208         * support/regression/fwk/lib/testfwk.c: used code pointers,
3209           (about 50kByte less code generated for mcs51)
3210
3211 2006-11-06 Borut Razem <borut.razem AT siol.net>
3212
3213         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3214           debugger/mcs51/configure: fixed failed check because the function
3215           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
3216           who submitted the patch for gpsim.
3217         * debugger/mcs51/configure.in: removed the result message
3218         * debugger/mcs51/Makefile.in: fixed the config.status warning
3219           "... seems to ignore the --datarootdir setting"
3220
3221 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
3222
3223         * device/include/mcs51/c8051f020.h,
3224         * device/include/mcs51/c8051f040.h,
3225         * device/include/mcs51/c8051f060.h,
3226         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
3227         * src/z80/gen.c (gencjneshort),
3228         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
3229
3230 2006-10-31 Borut Razem <borut.razem AT siol.net>
3231
3232         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3233           debugger/mcs51/configure: get readline version
3234
3235 2006-10-30 Borut Razem <borut.razem AT siol.net>
3236
3237         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
3238         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
3239           debugger/mcs51/configure: locate readline even when cross compiling
3240         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
3241
3242 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3243
3244         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
3245           serial port.
3246
3247 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3248
3249         * device/include/malloc.h,
3250         * device/lib/calloc.c,
3251         * device/lib/free.c,
3252         * device/lib/malloc.c,
3253         * device/lib/realloc.c: moved definition of struct into sources
3254         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
3255
3256 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
3257
3258         * as/asx8051.dsp: corrected output directories
3259         * as/link/hc08: new directory for hc08 linker
3260         * as/hc08/aslink.h,             as/link/aslink.h,
3261         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
3262         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
3263         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
3264         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
3265         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
3266         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
3267         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
3268         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
3269         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
3270         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
3271         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
3272         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
3273         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
3274         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
3275         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
3276         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
3277         * as/link/hc08/conf.mk,
3278         * configure,
3279         * configure.in,
3280         * Makefile.in,
3281         * sdcc.dsw: moved hc08 linker to as/link/hc08
3282         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
3283         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
3284         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
3285         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
3286         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
3287         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
3288         * as/link/mcs51/aslink.dsp,
3289         * as/link/mcs51/Makefile.in: factored out the common files
3290         * as/hc08/lkstore.c: deleted, use the one already in as/link/
3291         * as/clean.mk: extra cleaning common files
3292         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
3293         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
3294         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
3295
3296 2006-10-29 Raphael Neider <rneider AT web.de>
3297
3298         * src/pic/ralloc.c (newReg): create aliases for registers with
3299           multiple names to fix #1579535 and #1584001,
3300           (regWithIdx,dirregWithName): resolve aliases on lookup
3301         * src/pic/pcode.c (DoBankSelect): die with error message on failing
3302           bankselect
3303         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
3304           to prevent build errors on small devices
3305
3306 2006-10-28 Raphael Neider <rneider AT web.de>
3307
3308         * src/pic/gen.c (genFunction,genCall): drop "same code page"
3309           assumption within interrupt handlers, fixes #1584940
3310         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
3311           "emitted" to avoid emitting them again in udata
3312
3313 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3314
3315         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3316         Removed.
3317
3318 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3319
3320         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
3321         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
3322         on/off CR to CRLF conversion.
3323
3324 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3325
3326         * doc/sdccman.lyx: updated IRQ section
3327
3328 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3329
3330         * device/lib/serial_io.c: removed
3331         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
3332         replacements for serial_io.c
3333
3334 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
3335
3336         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
3337
3338 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3339
3340         * device/lib/serial_io.c: Default putchar() and getchar() for
3341           mcs51 uses serial port.
3342
3343 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
3344
3345         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
3346
3347 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3348
3349         * support/regression/ports/mcs51/support.c: smaller
3350         _sdcc_external_startup()
3351         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
3352
3353 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
3354
3355         * device/lib/gbz80/crt0.s,
3356         * device/lib/gbz80/crt0_rle.s,
3357         * device/lib/gbz80/div.s,
3358         * device/lib/gbz80/fstubs.s,
3359         * device/lib/gbz80/heap.s,
3360         * device/lib/gbz80/mul.s,
3361         * device/lib/gbz80/putchar.s,
3362         * device/lib/gbz80/stubs.s,
3363         * device/lib/z80/crt0.s,
3364         * device/lib/z80/crt0_rle.s,
3365         * device/lib/z80/div.s,
3366         * device/lib/z80/fstubs.s,
3367         * device/lib/z80/heap.s,
3368         * device/lib/z80/mul.s,
3369         * device/lib/z80/putchar.s,
3370         * device/lib/z80/stubs.s: reverted, I was mistaken
3371
3372 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3373
3374         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
3375         * support/regression/ports/mcs51/support.c: removed race
3376         condition on TI in _putchar allowing to use serial port mode 0
3377
3378 2006-10-20 Borut Razem <borut.razem AT siol.net>
3379
3380         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
3381
3382 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3383
3384         * device/lib/gbz80/crt0.s,
3385         * device/lib/gbz80/crt0_rle.s,
3386         * device/lib/gbz80/div.s,
3387         * device/lib/gbz80/fstubs.s,
3388         * device/lib/gbz80/heap.s,
3389         * device/lib/gbz80/mul.s,
3390         * device/lib/gbz80/putchar.s,
3391         * device/lib/gbz80/stubs.s,
3392         * device/lib/z80/crt0.s,
3393         * device/lib/z80/crt0_rle.s,
3394         * device/lib/z80/div.s,
3395         * device/lib/z80/fstubs.s,
3396         * device/lib/z80/heap.s,
3397         * device/lib/z80/mul.s,
3398         * device/lib/z80/putchar.s,
3399         * device/lib/z80/stubs.s: removed all leading underscores from area names
3400
3401 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
3402
3403         * support/regression/ports/mcs51/support.c: use highest baudrate so the
3404           regression tests are not waiting in the simulator for simulated
3405           transmission of debug output
3406
3407 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3408
3409         * device/lib/printf_large.c: slightly smaller
3410         * doc/sdccman.lyx: do not use spaces within html links
3411
3412 2006-10-16 Borut Razem <borut.razem AT siol.net>
3413
3414         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
3415           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
3416           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
3417           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
3418           debugger/mcs51/configure:
3419           [ 1185668 ] add gnu readline support to sdcdb - enabled
3420
3421 2006-10-16 Raphael Neider <rneider AT web.de>
3422
3423         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
3424           fixes #1577882, removes close to all banking optimizations
3425
3426 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
3427
3428         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
3429           variables in code memory
3430         * support/regression/tests/absolute.c: added test for this
3431
3432 2006-10-15 Raphael Neider <rneider AT web.de>
3433
3434         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
3435           devices,
3436           (BankSelect): emit BANKSEL before touching linker-placed regs,
3437           fixes #1570934
3438
3439 2006-10-10 Raphael Neider <rneider AT web.de>
3440
3441         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
3442         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
3443         * src/pic/main.c (_pic14_parseOptions),
3444         * src/pic/main.h: mostly reverted to previous state, now use results
3445             from SDCCmain.c's argument parsing
3446
3447 2006-10-10 Borut Razem <borut.razem AT siol.net>
3448
3449         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
3450           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
3451           [ 1185668 ] add gnu readline support to sdcdb -
3452           prepared for READLINE, not enabled yet,
3453           thanks to <tal.bav AT gmail.com>
3454
3455 2006-10-10 Raphael Neider <rneider AT web.de>
3456
3457         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
3458         * src/pic16/devices.inc,
3459         * device/include/pic16 (pic18f[24]620.h),
3460         * device/include/pic18fregs.h,
3461         * device/lib/pic16/pics.all,
3462         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
3463             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
3464             Gary Plumbridge and Anton Strobl
3465
3466 2006-10-10 Raphael Neider <rneider AT web.de>
3467
3468         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
3469           --stack-siz=NUM options to configure the argument passing stack
3470         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
3471         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
3472           (pic14_getSharebankSize): obey --stack-siz=NUM,
3473           (pic14_getSharebankAddress): obey --stack-loc=NUM
3474
3475 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3476
3477         * doc/sdccman.lyx: added to the manual
3478         * doc/figures/ddd_example.png: added (neither pdflatex nor
3479         most browsers seem to like the .eps file)
3480
3481 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
3482
3483         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
3484         to /tmp and /var/tmp acc. LSB
3485         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
3486         RESULT_TYPE_IFX
3487         * support/regression/tests/onebyte.c: added test
3488
3489 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3490
3491         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
3492
3493 2006-10-05 Borut Razem <borut.razem AT siol.net>
3494
3495         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
3496           thanks to dfulab:
3497           - sdcc.dsw: changed property eol-style to CRLF
3498           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
3499
3500 2006-10-04 Raphael Neider <rneider AT web.de>
3501
3502         * device/include/pic/{pic16f84.h,pic16f84a.h},
3503         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
3504           from patch #1522504, thanks to Robas Teodor
3505
3506 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
3507
3508         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
3509           fixes bug 1566015
3510
3511 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
3512
3513         * src/pic16/glue.c (pic16emitMaps),
3514         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
3515         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
3516         * device/lib/pic16/libc/string/memcpypgm2ram.c,
3517         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
3518           Philipp Krause
3519         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
3520         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
3521
3522 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3523
3524         * support/librarian/sdcclib.c: Added option -l.
3525         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
3526           usage totals.
3527         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
3528           using Windows command prompt.
3529
3530 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3531
3532         * device/lib/libsdcc.lib: added module rand
3533         * src/ds390/ralloc.c (rematStr),
3534         * src/hc08/ralloc.c (rematStr),
3535         * src/mcs51/ralloc.c (rematStr),
3536         * src/z80/ralloc.c (rematStr): made output more consistent
3537         * src/mcs51/gen.c: cosmetic changes
3538
3539 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
3540
3541         * src/port.h: added mem.cabs_name to PORT
3542         * src/ds390/main.c,
3543         * src/hc08/main.c,
3544         * src/mcs51/main.c,
3545         * src/pic16/main.c,
3546         * src/pic/main.c,
3547         * src/xa51/main.c,
3548         * src/z80/main.c: added cabs_name initializers
3549         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
3550           constants
3551           (emitMaps): emit absolutes in code memory into cabs_name
3552         * src/SDCCmem.c,
3553         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
3554         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
3555         * support/regression/fwk/include/testfwk.h: added define for at
3556         * support/regression/tests/absolute.c: added, new
3557
3558 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
3559
3560         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
3561           optimizations, see also patch 887161 by Stas Sergeev
3562         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
3563           to be necessary anymore,
3564           (102, 103, 104, 127): renamed all occurances of bp to _bp
3565
3566 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
3567
3568         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
3569           thanks Weston T. Schmidt for patch 1555221
3570         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
3571         * src/SDCCicode.c(geniCodeMultiply): small optimization
3572
3573 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3574
3575         * device/include/stdlib.h: added rand prototypes
3576         * device/lib/rand.c: new, added
3577         * device/lib/Makefile.in: added rand.c
3578         * src/z80/peeph.def,
3579         * src/z80/peeph-gbz80.def,
3580         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
3581
3582 2006-09-20 Raphael Neider <rneider AT web.de>
3583
3584         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
3585
3586 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
3587
3588         * as/link/aslink.h: cosmetic changes
3589         * as/link/mcs51/Makefile.in,
3590         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
3591
3592 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
3593
3594         * as/link/aslink.h,
3595         * as/link/mcs51/aslink.h,
3596         * as/link/z80/aslink.h: merged and moved to as/link/
3597         * as/link/lkstore.c,
3598         * as/link/mcs51/lkstore.c: moved to as/link/
3599         * as/link/clean.mk: remove *.o
3600         * as/link/mcs51/alloc.h: deleted
3601         * as/link/mcs51/lkarea.c: added lnksect prototype
3602         * as/link/mcs51/lkdata.c,
3603         * as/link/mcs51/lklex.c,
3604         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
3605         * as/link/mcs51/lkmem.c,
3606         * as/link/mcs51/lknoice.c: removed include strcmpi.h
3607         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
3608         * as/link/mcs51/aslink.dsp,
3609         * as/link/mcs51/Makefile.aslink,
3610         * as/link/mcs51/Makefile.bcc,
3611         * as/link/mcs51/Makefile.in: updated for moved files
3612         * as/link/z80/lkarea.c,
3613         * as/link/z80/lkhead.c,
3614         * as/link/z80/lklex.c,
3615         * as/link/z80/lklibr.c,
3616         * as/link/z80/lklist.c,
3617         * as/link/z80/lkmain.c,
3618         * as/link/z80/lkrloc.c,
3619         * as/link/z80/lksym.c: synced with mcs51
3620         * as/link/z80/lkdata.c,
3621         * as/link/z80/lkeval.c,
3622         * as/link/z80/lkihx.c,
3623         * as/link/z80/lks19.c: cosmetic changes
3624         * as/link/z80/Makefile.in,
3625         * as/link/z80/linkgbz80.dsp,
3626         * as/link/z80/linkz80.dsp: updated for moved files
3627
3628 2006-09-16 Borut Razem <borut.razem AT siol.net>
3629
3630         * debugger/mcs51/sdcdb.c: partially fixed
3631           [ 1203664 ] sdcdb fails to open files w. two "." periods
3632         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
3633           debugger/mcs51/symtab.h: fixed indenting
3634         * configure.in, configure: up to date with latest Maarten's changes
3635
3636 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
3637
3638         as/link/mcs51
3639         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
3640         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
3641         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
3642         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
3643         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
3644         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
3645         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
3646         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
3647         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
3648         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
3649         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
3650         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
3651         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
3652         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
3653         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
3654         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
3655         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
3656         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
3657         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
3658         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
3659         as/link/mcs51/alloc.h,
3660         as/link/mcs51/clean.mk,
3661         as/link/mcs51/conf.mk,
3662         as/link/mcs51/Makefile.bcc,
3663         as/link/mcs51/Makefile.in,
3664         as/link/mcs51/readme.390,
3665         as/link/mcs51/strcmpi.c,
3666         as/link/mcs51/strcmpi.h,
3667         as/mcs51/clean.mk,
3668         as/mcs51/Makefile.bcc,
3669         as/mcs51/Makefile.in,
3670         configure,
3671         Makefile.in,
3672         sdcc.dsw: moved mcs51 linker to as/link/mcs51
3673
3674 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
3675
3676         * as/link,
3677         * as/link/Makefile.in,
3678         * as/link/z80/linkgbz80.dsp,
3679         * as/link/z80/linkz80.dsp,
3680         * configure,
3681         * link,
3682         * link/clean.mk,
3683         * link/Makefile.in,
3684         * link/README,
3685         * link/z80,
3686         * link/z80/aslink.h,
3687         * link/z80/clean.mk,
3688         * link/z80/conf.mk,
3689         * link/z80/linkgbz80.dsp,
3690         * link/z80/linkz80.dsp,
3691         * link/z80/lkarea.c,
3692         * link/z80/lkdata.c,
3693         * link/z80/lkeval.c,
3694         * link/z80/lkgb.c,
3695         * link/z80/lkgg.c,
3696         * link/z80/lkhead.c,
3697         * link/z80/lkihx.c,
3698         * link/z80/lklex.c,
3699         * link/z80/lklibr.c,
3700         * link/z80/lklist.c,
3701         * link/z80/lkmain.c,
3702         * link/z80/lkrloc.c,
3703         * link/z80/lks19.c,
3704         * link/z80/lksym.c,
3705         * link/z80/Makefile.in,
3706         * Makefile.in,
3707         * sdcc.dsw: moved link/ to as/link/
3708
3709 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
3710
3711         * as/mcs51/i51mch.c (machine): fixed warning
3712
3713 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3714
3715         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
3716
3717 2006-09-09 Borut Razem <borut.razem AT siol.net>
3718
3719         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
3720           sdcdb WIN32 native port
3721         * src/clean.mk: fixed
3722
3723 2006-09-08 Borut Razem <borut.razem AT siol.net>
3724
3725         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
3726
3727 2006-09-08 Raphael Neider <rneider AT web.de>
3728
3729         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
3730         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
3731             to gplink to disable processor mismatch warning and to allow
3732             the use of devices with only aliased (shared) memory banks,
3733           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
3734
3735 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3736
3737         * doc/sdccman.lyx: Some re-formating plus example on using
3738           #pragma preproc_asm +/-
3739
3740 2006-09-07 Borut Razem <borut.razem AT siol.net>
3741
3742         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
3743           section
3744
3745 2006-09-06 Borut Razem <borut.razem AT siol.net>
3746
3747         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
3748           line at sdcc.nsi:153
3749         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
3750
3751 2006-09-05 Borut Razem <borut.razem AT siol.net>
3752
3753         * configure.in, configure: support for winsock2
3754         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
3755           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
3756           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
3757           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
3758           debugger/mcs51/symtab.h: sdcdb WIN32 native port
3759
3760 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
3761
3762         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
3763           and OP_DEFS
3764         * support/regression/tests/bug1551947.c: new, added
3765         * src/SDCCsymt.h: strings are char* not byte*
3766
3767 2006-09-05 Raphael Neider <rneider AT web.de>
3768
3769         * device/lib/pic16/libdev/pic18f4550.c,
3770           device/include/pic16/pic18f4550.h: added PORTD/TRISD
3771             declarations/definitions from patch #1520949
3772
3773 2006-09-05 Raphael Neider <rneider AT web.de>
3774
3775         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
3776           byte-aligned bitfields, fixes #1539278
3777
3778 2006-09-05 Raphael Neider <rneider AT web.de>
3779
3780         * src/pic/gen.c (genReceive): skip unreferenced arguments,
3781           fixes #1544120
3782
3783 2006-09-04 Borut Razem <borut.razem AT siol.net>
3784
3785         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
3786         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
3787           -mno-cygwin is a part of the compiler name
3788         * support/scripts/sdcc_mingw32: don't disable ucsim
3789
3790 2006-09-03 Borut Razem <borut.razem AT siol.net>
3791
3792         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
3793         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
3794
3795 2006-09-03 Raphael Neider <rneider AT web.de>
3796
3797         * src/pic/ralloc.c,
3798         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
3799           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
3800           fixes #1550049
3801
3802 2006-09-01 Borut Razem <borut.razem AT siol.net>
3803
3804         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
3805           to make ppc-osx happy
3806
3807 2006-08-31 Borut Razem <borut.razem AT siol.net>
3808
3809         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
3810         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3811         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
3812         * support/regression/ports/ds390/spec.mk,
3813           support/regression/ports/mcs51/spec.mk,
3814           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
3815           To run regression tests in mingw environment:
3816           make DEV_NULL=NUL CC=gcc
3817
3818 2006-08-30 Borut Razem <borut.razem AT siol.net>
3819
3820         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
3821           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
3822           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
3823           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
3824           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
3825           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
3826           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
3827           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
3828           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
3829           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
3830           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
3831           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
3832           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3833           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
3834           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
3835           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
3836           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
3837           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
3838           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
3839           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
3840           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
3841           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
3842           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
3843           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
3844           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
3845           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
3846           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
3847           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
3848           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
3849           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
3850           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
3851           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
3852           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
3853           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
3854           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
3855           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
3856           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3857           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
3858           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
3859           ucsim WIN32 native port
3860
3861 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3862
3863         * doc/sdccman.lyx: added note on dynamic memory heap initialization
3864
3865 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3866
3867         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3868         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
3869
3870 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
3871
3872         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
3873         * support/regression/tests/bug1546986.c: new, added
3874         * as/mcs51/.cvsignore,
3875         * debugger/mcs51/.cvsignore,
3876         * src/.cvsignore: deleted
3877
3878 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3879
3880         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
3881           definitions)
3882
3883 2006-08-20 Borut Razem <borut.razem AT siol.net>
3884
3885         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
3886           removed cl_listen_console::match(), cl_console::match(),
3887           restructured cl_commander::proc_input()
3888
3889 2006-08-16 Borut Razem <borut.razem AT siol.net>
3890
3891         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
3892           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
3893           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
3894
3895 2006-08-14 Borut Razem <borut.razem AT siol.net>
3896
3897         * support/regression/Makefile.in,
3898           support/regression/ports/pic14/gpsim.cmd,
3899           support/regression/ports/pic14/spec.mk,
3900           support/regression/ports/pic14/support.c:
3901           added pic14 regression test
3902
3903 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
3904
3905         * as/doc/asxhtm.html: documented changed ABS behaviour
3906         * as/doc/README: fixed some typos
3907
3908 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
3909
3910         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
3911           not defined on host
3912
3913 2006-08-12 Borut Razem <borut.razem AT siol.net>
3914
3915         * support/regression/fwk/include/testfwk.h,
3916           support/regression/fwk/lib/testfwk.c,
3917           support/regression/generate-cases.py,
3918           support/regression/Makefile.in:
3919           regression test framework does not depend on function pointers and
3920           variable arguments
3921
3922 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3923
3924         * device/include/stddef.h: c temporary hack to fix bug 1518273
3925
3926 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3927
3928         * device/include/mcs51/cc2510fx.h: added
3929         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
3930           to projects.
3931
3932 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
3933
3934         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
3935         * as/z80/Makefile.in: added strcmpi.c
3936         * as/z80/z80adr.c: added upper case registers and lower case conditionals
3937         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
3938
3939 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
3940
3941         * device/lib/gbz80/asm_strings.s,
3942         * device/lib/gbz80/crt0_rle.s,
3943         * device/lib/gbz80/div.s,
3944         * device/lib/gbz80/mul.s,
3945         * device/lib/gbz80/shift.s,
3946         * device/lib/z80/asm_strings.s,
3947         * device/lib/z80/crt0_rle.s,
3948         * device/lib/z80/div.s,
3949         * device/lib/z80/mul.s,
3950         * device/lib/z80/shift.s: changed to all lower case menmonics except the
3951           flags which are all upper case
3952
3953 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3954
3955         * as/z80/asm.h: made CASE_SENSITIVE 1
3956         * link/z80/aslink.h: made CASE_SENSITIVE 1
3957         * src/z80/gen.c (throughout): made all conditionals upper case
3958         * support/regression/tests/bug1503067.c: new
3959
3960 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
3961
3962         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
3963           (shiftIntoPair): added case 2 for PAIR_IY,
3964           (setupToPreserveCarry): replaced parameters with iCode and check if
3965            PAIR_DE is in use to fix bug 1399290,
3966           (genPlus, genMinus): updated call to setupToPreserveCarry
3967         * support/regression/tests/bug1399290.c: new
3968
3969 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
3970
3971         * device/lib/Makefile.in (Z80SOURCES): enabled float support
3972         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
3973         * src/ds390/gen.c (shiftRLong),
3974         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
3975         * src/mcs51/gen.c (sameReg): changed to sameByte,
3976           (xch_a_aopGet): new,
3977           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
3978            shiftRLong): fixed bug 1533966
3979         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
3980           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
3981         * support/regression/Makefile.in: disabled z80, enabled ucz80
3982         * support/regression/tests/float_trans.c: enabled test for z80 and host
3983         * support/regression/tests/shifts2.c: new, for testing bug 1533966
3984
3985 2006-08-01 Borut Razem <borut.razem AT siol.net>
3986
3987         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
3988           comparison is always false due to limited range of data type
3989           on PPC64 machine (openpower-linux1) where "char = unsigned char"
3990
3991 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
3992
3993         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
3994         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
3995         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
3996         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
3997
3998 2006-07-31 Borut Razem <borut.razem AT siol.net>
3999
4000         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
4001           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
4002           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
4003           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
4004           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
4005           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
4006           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
4007           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
4008           enable ucsim mingw compilation. Serial port is disabled,
4009           since it uses termios.h API, which is not available on native
4010           WIN32
4011
4012 2006-07-31 Borut Razem <borut.razem AT siol.net>
4013
4014         * Small Device C Compiler 2.6.0 released
4015         * support/scripts/sdcc.nsi: added FULL_DOC option
4016         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
4017
4018 2006-07-28 Borut Razem <borut.razem AT siol.net>
4019
4020         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
4021         * doc/INSTALL.txt: updated
4022
4023 2006-07-27 Borut Razem <borut.razem AT siol.net>
4024
4025         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
4026           device/lib/pic/libdev/Makefile.in: fixed bug
4027           [ 1438354 ] pic libsdcc: distclean doesn't work
4028         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
4029           device/lib/pic16/libio/Makefile.in: fixed bug
4030           [ 1438344 ] pic16 lib: clean doesn't work properly
4031         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
4032
4033 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
4034
4035         * device/lib/pic/libsdcc/fsdiv.c,
4036         * device/lib/pic/libsdcc/fsmul.c,
4037         * device/lib/pic16/libsdcc/float/fsdiv.c,
4038         * device/lib/pic16/libsdcc/float/fsmul.c,
4039         * device/lib/_fsdiv.c,
4040         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
4041         * support/regression/tests/bug1520966.c: added
4042         * doc/knownbugs.html: removed [ 1520966 ] from the list
4043
4044 2006-07-25 Borut Razem <borut.razem AT siol.net>
4045
4046         * configure.in, configure, sdccconf_in.h: fixed bug
4047           [ 1519095 ] regression test onebyte.c fails on ppc64 host
4048         * doc/knownbugs.html: removed [ 1519095 ] from the list
4049
4050 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
4051
4052         * doc/knownbugs.html: added, contains list of known bugs at release
4053         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
4054
4055 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
4056
4057         * device/include/mcs51/compiler.h: added SFRX for xdata based special
4058           function registers and corrected defaults with additional warning
4059         * device/lib/malloc.c: cosmetic changes
4060         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
4061         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
4062           (fillGaps): and used it
4063
4064 2006-07-20 Raphael Neider <rneider AT web.de>
4065
4066         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
4067           output unless SDCCPICDEBUG is set
4068         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
4069           output if SILENT is set
4070
4071 2006-07-11 Borut Razem <borut.razem AT siol.net>
4072
4073         * doc/README.txt: updated
4074
4075 2006-07-10 Borut Razem <borut.razem AT siol.net>
4076
4077         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
4078           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
4079           in WIN32 installation
4080         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
4081           release candidate 1
4082
4083 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
4084
4085         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
4086         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
4087
4088 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
4089
4090         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
4091
4092 2006-07-06 Borut Razem <borut.razem AT siol.net>
4093
4094         * support/regression/tests/bitfields.c:
4095           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
4096         * support/regression/tests/constantRange.c:
4097           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
4098
4099 2006-07-04 Borut Razem <borut.razem AT siol.net>
4100
4101         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
4102           src/port.mk,
4103           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4104           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4105           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4106           reverted changes from 2006-07-03
4107         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
4108         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
4109           added CPPFLAGS, used by the host port
4110
4111 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
4112
4113         * support/regression/valdiag/tests/switch.c,
4114         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
4115         * support/regression/tests/libmullong.c: fixed for host
4116         * support/regression/ports/host/spec.mk: disable all warnings for host,
4117         SDCC runs with --less-pedantic too
4118
4119 2006-07-03 Borut Razem <borut.razem AT siol.net>
4120
4121         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
4122           defined CPPFLAGS
4123         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
4124         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
4125           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
4126           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
4127           include ../port.mk
4128         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
4129           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
4130           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
4131           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
4132
4133 2006-07-02 Raphael Neider <rneider AT web.de>
4134
4135         * src/pic16/devices.inc,
4136         * device/include/pic16/pic18fregs.h,
4137         * device/include/pic16/pic18f4550.h,
4138         * device/lib/pic16/pics.all,
4139         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
4140
4141 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
4142
4143         * as/hc08/lkaomf51.c (OutputName),
4144         * as/mcs51/lkaomf51.c (OutputName),
4145         * as/z80/asmain.c (asmbl),
4146         * src/ds390/main.c (asmLineNodeFromLineNode),
4147         * src/hc08/ralloc.c (hc08_assignRegisters),
4148         * src/mcs51/main.c (asmLineNodeFromLineNode),
4149         * src/xa51/ralloc.c (checkRegMask),
4150         * src/xa51/gen.c (emitcode),
4151         * src/z80/gen.c (_emit2),
4152         * src/SDCCast.c (searchLitOp),
4153         * src/SDCCglobl.h,
4154         * support/packihx/packihx.c,
4155         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
4156         * src/ds390/gen.c (aopPutUsesAcc),
4157         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
4158         * support/regression/tests/libmullong.c (mullong_wrapper),
4159         * src/SDCCsymt.c (powof2),
4160         * src/SDCCast.c,
4161         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
4162         * src/SDCCsymt.h: added TYPE_TARGET_*
4163         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
4164         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
4165         SDCCast because 1) header problems 2) this is the right place
4166         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
4167         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
4168         prototype
4169
4170 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4171
4172         * src/SDCCicode.h: removed buggy semicolon in unused macro
4173         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
4174         search for previous definiton of auto symbols too,
4175         (findPrevUse): fixed logic of emitWarnings
4176
4177 2006-06-26 Raphael Neider <rneider AT web.de>
4178
4179         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
4180           PCLATH and PCLATU on interrupts, potentially fixes #1505141
4181
4182 2006-06-25 Raphael Neider <rneider AT web.de>
4183
4184         * device/lib/pic/libm: NEW, added math library functions
4185         * device/lib/pic/libsdcc: NEW; added float support functions
4186         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
4187         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
4188           NEW, added math related headers
4189         * device/include/asm/pic/features.h: NEW
4190         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
4191           (popGet): allow larger offsets for AOP_PCODE,
4192           (genDataPointerSet): handle literals explicitly, more debug output,
4193           (genAssign): fixed for float using aopLiteral ;-)
4194         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
4195           GOTO initialisation routine
4196         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
4197           flag on registers, fixes #1469043 (local variables do not work)
4198         * src/pic/main.c (_pic14_do_link),
4199         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
4200           available
4201
4202 2006-06-25 Borut Razem <borut.razem AT siol.net>
4203
4204         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
4205           characters printed (not including the trailing '\0' used to end
4206           output to strings). Problem detected in regression test bug-927659.c.
4207           NOTE: printf() family functions should return int instead
4208           unsigned int!
4209         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
4210           specifier are printed as themselves
4211         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
4212           support flags, width and precision specifiers
4213
4214 2006-06-24 Borut Razem <borut.razem AT siol.net>
4215
4216         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
4217           to the list of sdcc tagrets not supporting bit type
4218         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
4219           testfor pic16 due to bug:
4220           [ 1511794 ] pic16: regression test bug-895992.c fails
4221
4222 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
4223
4224         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
4225         * src/SDCCglue.c (initPointer), fixed bug 1496419
4226         * support/regression/tests/bug1496419.c: new, added
4227
4228 2006-06-22 Borut Razem <borut.razem AT siol.net>
4229
4230         * support/regression/ports/pic16/support.c: use gpsim usart module from
4231           libgpsim_modules library
4232
4233 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4234
4235         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
4236         IP0H to IPH0.
4237
4238 2006-06-19 Raphael Neider <rneider AT web.de>
4239
4240         * src/pic/glue.h,src/pic16/glue.h: added prototypes
4241         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
4242           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
4243           (pic14printExterns,pic14printPublics,pic16printPublics,
4244           pic16_printExterns): use new functions to emit symbols
4245           (picglue,pic16glue): emit publics before emitting externs
4246         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
4247           locally defined functions to avoid bug #1443651
4248         * support/regression/tests/bug-716242.c: removed pic16 workaround
4249         * support/regression/ports/pic16/spec.mk: ignore errors during build
4250
4251 2006-06-19 Raphael Neider <rneider AT web.de>
4252
4253         * src/pic/glue.h: added pic14aopLiteral prototype
4254         * src/pic/glue.c (pic14aopLiteral): return unsigned int
4255         * src/pic/gen.c: removed stdint.h dependency
4256           (aopGet): use Safe_strdup()
4257           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
4258           (genDataPointerSet): use pic14aopLiteral()
4259         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
4260           for pic16; thanks to Bernhard and Maarten
4261
4262 2006-06-18 Borut Razem <borut.razem AT siol.net>
4263
4264         * support/regression/tests/structflexarray.c: flexible array members
4265           not supported by gcc < 3
4266         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
4267           GUI tool by default
4268         * src/pic/gen.c: don't include [p]strdin.h on solaris
4269         * support/Util/pstdint.h: addad svn attributes
4270         * support/regression/tests/constantRange.c,
4271           support/regression/tests/rotate.c: include inttypes.h instead
4272           stdint.h on solaris, addad svn attributes
4273
4274 2006-06-18 Raphael Neider <rneider AT web.de>
4275
4276         * src/SDCCsymt.c (initCSupport): change return type of divschar to
4277           int for PIC16
4278         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
4279           (pic16_genMinusBits): simplified sign-extension
4280           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
4281             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
4282             adjusted to correctly handle mixed-signed operands, disabled
4283             now unused multiplciation routines
4284         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
4285           (assignResultValue): added argument denoting the size of the result
4286             as returned by the function (fixes upcasts in assigning from
4287             function calls: char foo(); int i = foo();)
4288           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
4289             function result to assignResultValue
4290           (genMult): disabled inlined multiplication code
4291           (genDiv): augmented to also handle the modulus operator, fixed to
4292             handle mixed-signed operands correctly
4293           (genMod): simply call genDiv, disabled unused code
4294           (genAssign): fixed missing (sign-)extension on result
4295         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
4296             valid char operands, allow signed operands for native code, added
4297             division and modulo operator handling
4298         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
4299
4300         As a consequence, onebyte.c (if split into two files) and muldiv.c
4301         pass regression tests.
4302
4303 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4304
4305         * doc/Makefile.in: two runs of makeindex seem needed to get
4306         correct page references in the index of sdccman.pdf
4307         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
4308
4309 2006-06-17 Borut Razem <borut.razem AT siol.net>
4310
4311         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
4312
4313 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4314
4315         * doc/sdccman.lyx: updated, added (porting source code, debugging),
4316         mentioned ec2drv and paulmon
4317
4318 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
4319
4320         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
4321           consecutive abs areas
4322           (find_empty_space, allocate_space): added map to handle codemap or
4323            xdatamap,
4324           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
4325            absolute idata and xdata
4326         * as/mcs51/lkmem.c (summary2): updated legend
4327
4328 2006-06-16 Raphael Neider <rneider AT web.de>
4329
4330         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
4331
4332 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
4333
4334         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
4335           1208515
4336         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
4337
4338 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
4339
4340         * src/port.h (struct PORT): added field gp_tags, to hold the tag
4341         value of generic pointers,
4342         * src/avr/main.c,
4343           src/ds390/main.c,
4344           src/hc08/main.c,
4345           src/izt/i186.c,
4346           src/izt/tlcs900h.c,
4347           src/mcs51/main.c,
4348           src/pic/main.c,
4349           src/pic16/main.c,
4350           src/xa51/main.c,
4351           src/z80/main.c: PORT structure, added elements for gp_tags field,
4352         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
4353         fields in the PORT structure of each port,
4354         * src/SDCCast.c (decorateType): allow processing of generic pointers
4355         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
4356         S_FIXED symbols
4357
4358 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
4359
4360         * link/z80/lkgb.c,
4361         * link/z80/lkgg.c,
4362         * src/pic16/gen.c,
4363         * src/pic16/main.c,
4364         * src/pic16/pcode.c,
4365         * src/pic/main.c,
4366         * src/pic/pcoderegs.c,
4367         * src/SDCCicode.c,
4368         * src/SDCCmain.c,
4369         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
4370           bug 1504689 on minGW
4371
4372 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4373
4374         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
4375
4376 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
4377
4378         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
4379
4380 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
4381
4382         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
4383           for optimization
4384
4385 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
4386
4387         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
4388         to a char variable. Fixed bug #1504211
4389         * device/include/pic16/adc.h,
4390         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
4391         and fixed bug #1364390
4392
4393 2006-06-10 Borut Razem <borut.razem AT siol.net>
4394
4395         * CVSROOT: removed the CVS left-over
4396
4397 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4398
4399         * as/hc08/asmain.c (asexit),
4400         * as/hc08/lkmain.c (lkexit),
4401         * as/mcs51/asmain.c (asexit),
4402         * as/mcs51/lkmain.c (lkexit),
4403         * src/SDCCglue.c (DEFSETFUNC),
4404         * src/SDCCmain.c (linkEdit, assemble),
4405         * support/librarian/sdcclib.c (AddRel),
4406           replaced unlink() by standard C remove()
4407         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
4408         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
4409           gatherImplicitVariables): new, added to fix bug 608752,
4410           (createFunction): added gatherImplicitVariables()
4411         * src/SDCCast.h: added createRMW prototype
4412         * src/SDCCsymt.h (struct symbol): added infertype
4413         * support/regression/tests/bug608752.c: new, added
4414
4415 2006-06-10 Raphael Neider <rneider AT web.de>
4416
4417         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
4418           multibyte dummy reads (fixes #1503234)
4419
4420 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
4421
4422         * device/include/mcs51/compiler.h: new, added header file to enable
4423           creating common sfr definition header files for different compilers
4424
4425 2006-06-05 Raphael Neider <rneider AT web.de>
4426
4427         * src/pic16/{pcode.h,genarith.c}:
4428           introduced pCodeOp combining any two pCodeOps (previously only
4429           two register operands could be combined), removed pcop2 from
4430           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
4431         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
4432         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
4433           rewritten to use new PO_TWO_OPS
4434         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
4435         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
4436           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
4437           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
4438           (pic16_get_op): embraced return arg to allow #define return(x),
4439             added new case for combined opcodes
4440           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
4441           (pic16_pCode2str,pic16_getRegFrompCodeOp,
4442            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
4443
4444 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
4445
4446         * src/SDCCval.c (checkConstantRange): added
4447         * src/SDCCval.h: added checkConstantRange
4448         * support/Util/SDCCerr.c,
4449         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
4450         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
4451         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
4452         * src/SDCCast.c (decorateType): added checkConstantRange,
4453         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
4454         can be emitted with the correct always true/false warning,
4455         added optimization for double '!';
4456         result of decorateType() must be assigned back to the tree, because
4457         decorateType() can change the tree
4458         * src/SDCCicode.c (geniCodeLogic),
4459         (geniCodeAssign): replaced new checkConstantRange, added warnings,
4460         (checkConstantRange): removed, it was only a fragment which never
4461         emitted a warning
4462         * src/SDCCsymt.c (computeType): fixed promotion for
4463         "-1 < (unsigned bit) b"
4464         * src/pic/ralloc.c (packRegsForAssign),
4465         * src/pic16/ralloc.c (packRegsForAssign),
4466         * src/hc08/ralloc.c (packRegsForAssign),
4467         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
4468         from mcs51
4469         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
4470         * support/regression/tests/constantRange.c: added
4471         * support/valdiag/tests/constantRange.c: added
4472         * support/valdiag/valdiag.py: added -DPORT_HOST=1
4473
4474 2006-06-02 Borut Razem <borut.razem AT siol.net>
4475
4476         * support/regression/ports/pic16/support.c: increase stack size
4477           to 255 bytes
4478         * support/regression/Makefile.in: sort tests by name so that the
4479           resutlts can be compared on different machines / platforms
4480
4481 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4482
4483         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
4484         * src/ds390/gen.c (emitLabel): new, added,
4485           (genDjnz): fixed stack overflow bug,
4486           (throughout): cosmetic changes to sync with mcs51/gen.c,
4487           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
4488         * src/mcs51/gen.c (genEndFunction): small optimization,
4489           (throughout): cosmetic changes to sync with ds390/gen.c
4490
4491 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4492
4493         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
4494           (_print_format): fixed printing pointers
4495         * src/mcs51/gen.c (emitLabel, movb): new, added,
4496           (genAssign): small optimization,
4497           (genDjnz): fixed stack overflow bug,
4498           (throughout): replaced sprintf with SNPRINTF,
4499           replaced mcs51_regWithIdx with REG_WITH_INDEX,
4500           replaced emitcode("mov", "b,...") with MOVB(...),
4501           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
4502           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4503         * src/mcs51/peeph.def: added rules 140 and 264
4504         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
4505           so they may get optimized into registers
4506
4507 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
4508
4509         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
4510           immediately when encountered,
4511           (printUsage): always use stderr even on windows
4512
4513 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
4514
4515         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
4516         (processParms): fixed bug #1247551
4517         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
4518         parseCmdLine, main): print '--version' to stdout,
4519         print 'help' to stdout if --help is given,
4520         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
4521         arguments are given; fixed --help
4522
4523 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
4524
4525         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
4526         * support/regression/tests/bug-1493710.c: added
4527
4528 2006-05-27 Borut Razem <borut.razem AT siol.net>
4529
4530         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
4531           static instead auto
4532         * support/regression/ports/pic16/support.c: increase stack size
4533           from default 64 bytes to 128 bytes
4534         * support/regression/tests/staticinit.c,
4535           support/regression/tests/float.c: regression tests fully enabled
4536           for pic16 port by putting the initialized data arrays into the code
4537           section
4538         * support/regression/ports/pic16/spec.mk: don't link default libraries.
4539           This was changed by mistake in the previous version.
4540
4541 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
4542
4543         * src/pic16/gen.c (genFunction, genEndFunction): some
4544         beautifications, fixed bug with falsely restoring FSR2 in large
4545         stack model, thanks to Beau E. Cox for reporting the bug
4546
4547 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4548
4549         * debugger/mcs51/break.c,
4550         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
4551           use %p to print pointers, made address variables unsigned
4552         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
4553         * debugger/mcs51/symtab.c (parseSymbol): must return something
4554         * src/mcs51/gen.c (aopForSym): small optimization,
4555            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
4556           (freeAsmop): added missing break,
4557           (aopPut): removed parameter bvolatile, determine it inside the function,
4558           (saveRegisters, unsaveRegisters): small optimization,
4559           (genIpush): removed pointless check,
4560           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
4561           replaced sprintf with SNPRINTF,
4562           replaced strcpy with strncpyz,
4563           updated aopPut calls,
4564           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
4565         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
4566
4567 2006-05-24 Borut Razem <borut.razem AT siol.net>
4568
4569         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
4570           modification of test for the pic16 port, put the array to the code
4571           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
4572
4573 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
4574
4575         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
4576         * support/Util/pstdint.h: added
4577
4578 2006-05-22 Borut Razem <borut.razem AT siol.net>
4579
4580         * src/regression/Makefile: removed bool2.c test, added -q linker option
4581         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
4582           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
4583           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
4584           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
4585           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
4586           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
4587           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
4588           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
4589           define SUPPORT_BIT_TYPES 0, removed unused bit variables
4590
4591 2006-05-22 Raphael Neider <rneider AT web.de>
4592
4593         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
4594           bug #1492360 (problematic due to generic pointers, see code)
4595
4596 2006-05-22 Borut Razem <borut.razem AT siol.net>
4597
4598         * support/regression/ports/pic16/specs.mk: removed stack size linker
4599           directive
4600         * support/regression/tests/array.c,
4601           support/regression/tests/bitopcse.c,
4602           support/regression/tests/bug-908454.c,
4603           support/regression/tests/malloc.c: modified for pic16 regression test
4604         * support/regression/tests/bitfields.c:
4605           pic16 - excluded bitfileds of size > 8
4606         * support/regression/tests/bp.c: pic16 - reduced data size
4607         * support/regression/tests/bug-221100.c: pic16 - reduced data size
4608         * support/regression/tests/bug-460010.c:
4609           pic16 - used the absolute address the fits in memory
4610         * support/regression/tests/bug-716242.c:
4611           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
4612         * support/regression/tests/float.c:
4613           pic16 - excluded - data size too big
4614         * support/regression/tests/onebyte.c:
4615           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
4616         * support/regression/tests/shifts.c:
4617           pic16 - function names probably have to differ in first X characters
4618           (gpasm limitation?)
4619         * support/regression/tests/staticinit.c:
4620           pic16 - excluded some tests due error: no target memory available for
4621           section ".idata"
4622
4623 2006-05-22 Borut Razem <borut.razem AT siol.net>
4624
4625         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4626           second try. Thanks Stas Sergeev once more.
4627
4628 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4629
4630         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
4631           (genLeftShift, genRightShift): fixed bug 1491627
4632         * src/hc08/peeph.def (rules 7, 8.x): added
4633         * support/regression/tests/shifts.c (ShiftLeftByParam,
4634           ShiftRightByParam, testShiftByParam): added to test variable shifting
4635
4636 2006-05-20 Raphael Neider <rneider AT web.de>
4637
4638         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
4639         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
4640           (allocReg): add only new registers to dynAllocRegs,
4641           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
4642             #1489055, #1445850, and probably #1483693
4643
4644 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
4645
4646         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
4647         bug in for-loop that didn't emit the last of CONFIG and ID registers
4648
4649 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
4650
4651         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
4652           with offset
4653         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
4654           1489016, 1434401 and 1490124
4655         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
4656           1489016, 1434401 and 1490124
4657
4658 2006-05-17 Borut Razem <borut.razem AT siol.net>
4659
4660         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
4661           thanks Stas Sergeev
4662
4663 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4664
4665         * device/include/mcs51/P89c51RD2.h,
4666         * device/include/mcs51/P89LPC901.h,
4667         * device/include/mcs51/P89LPC922.h,
4668         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
4669
4670 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4671
4672         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
4673         to fix missing stack pragma in compiled binary object file,
4674
4675 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
4676
4677         * support/packihx/configure.in,
4678         * support/packihx/configure: removed warning, autoconf >= 2.5x can
4679         determine sizeof basic types even while cross compiling
4680
4681 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
4682
4683         * src/avr/gen.c (aopop),
4684         * src/ds390/gen.c (aopOp),
4685         * src/hc08/gen.c (aopOp),
4686         * src/mcs51/gen.c (aopop),
4687         * src/pic16/gen.c (pic16_aopOp),
4688         * src/pic/gen.c (aopOp),
4689         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
4690         if size of operand is smaller than spill location
4691
4692 2006-05-12 Borut Razem <borut.razem AT siol.net>
4693
4694         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
4695           have to have CR/LF line endings even if they are checked out on *nix
4696           or on WIN32 in cygwin binmode
4697
4698 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
4699
4700         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
4701         * device/include/ds80c390.h: added sfr16 definitions
4702         * src/ds390/gen.c,
4703         * src/ds390/gen.h,
4704         * src/ds390/main.c,
4705         * src/ds390/ralloc.c,
4706         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
4707           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
4708           bit returning functions
4709         * support/regression/tests/sfr16.c: enabled test on ds390
4710
4711 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4712
4713         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
4714         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
4715
4716 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
4717
4718         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
4719         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
4720           (cl_address_space constructor): removed expensive initialization,
4721           (cl_address_space::get_cell): extended for late initialization,
4722           (cl_address_space::*): use late initialization,
4723           (cl_address_decoder::activate): removed expensive initialization,
4724           This reduced regression test running time by 25%
4725
4726 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
4727
4728         * packihx/,
4729         * configure.in,
4730         * configure,
4731         * sdcc.dsw,
4732         * Makefile.bcc,
4733         * Makefile.in,
4734         * support/packihx/Makefile.in,
4735         * support/packihx/clean.mk,
4736         * support/packihx/Makefile.bcc,
4737         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
4738
4739 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4740
4741         * src/SDCCval.c (valNot): fix for regression test failure
4742           of not.c on big endian hosts
4743
4744 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4745
4746         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
4747
4748 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4749
4750         * device/lib/mcs51/Makefile.in: changed string comparison operator
4751           to = for POSIX compliance; == is bash extension
4752
4753 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
4754
4755         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
4756           kosmonaut_pirx
4757
4758 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
4759
4760         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
4761         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
4762         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
4763         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
4764         bug report #1478657,
4765
4766 2006-05-05 Borut Razem <borut.razem AT siol.net>
4767
4768         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
4769           making the html
4770
4771 2006-05-02 Borut Razem <borut.razem AT siol.net>
4772
4773         * doc/Makefile.in: removed *.ind dependency since there is no rule to
4774           create *.ind, which made make to fail if invoked with -j 2
4775
4776 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
4777
4778         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
4779           Hubert Sack for patch 1479782
4780
4781 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
4782
4783         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
4784
4785 2006-05-01 Raphael Neider <rneider AT web.de>
4786
4787         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
4788           (create_pic): store only prefix-free device name,
4789           (init_pic): check for device names with "16" prefix,
4790           (list_valid_pics),
4791         * src/pic/device.h (struct PIC_device),
4792         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
4793             stored device name,
4794         * device/include/pic/pic12f{635,675,629,683}.h,
4795         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
4796         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
4797         * device/include/pic/pic16f505.h,
4798         * device/lib/pic/libdev/pic16f505.c: removed
4799         * device/include/pic/pic14devices.txt: added support for pic12f
4800             devices, removed unsupported non 16-bit devices
4801             [above changes provided by patch from Zik Saleeba]
4802         * src/pic/*, src/pic16/*, device/include/pic16/*,
4803           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
4804
4805 2006-05-01 Borut Razem <borut.razem AT siol.net>
4806
4807         * configure.in, configure, doc/Makefile.in:
4808           sync with nightly build makefile - latex, dvipdf and dvips
4809           not needed any more
4810
4811 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
4812
4813         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
4814         in the library source
4815
4816 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
4817
4818         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
4819
4820 2006-04-28 Raphael Neider <rneider AT web.de>
4821
4822         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
4823         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
4824           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
4825         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
4826
4827 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
4828
4829         * device/lib/pic/libdev/Makefile.in,
4830         * device/lib/hc08/Makefile.in,
4831         * device/lib/gbz80/Makefile.in,
4832         * device/lib/z80/Makefile.in,
4833         * device/lib/ds390/Makefile.in,
4834         * device/lib/ds400/Makefile.in: added srcdir to include search path,
4835         thanks to Borut for the bug report
4836         * configure.in,
4837         * configure: always create doc/Makefile independent from --enable-doc
4838         * Makefile.in: always install from directory doc independent from
4839         --enable-doc
4840         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
4841         removed
4842         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
4843         * doc/Makefile.in: install *.txt if present
4844         * device/include/Makefile.in (install): added installation of pic/*.inc
4845         and pic/*.txt files again, they were erroneously removed
4846
4847 2006-04-28 Raphael Neider <rneider AT web.de>
4848
4849         * src/pic/{gen.c,main.h,pcode.c},
4850         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
4851             concerning signedness with casts
4852
4853 2006-04-28 Raphael Neider <rneider AT web.de>
4854
4855         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
4856             definition of an interrupt handler,
4857         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
4858             interrupt handler stuff from picglue() to separate routine,
4859           (picglue): enabled definition of intr handlers in files w/o main()
4860
4861 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4862
4863         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
4864           compilation with MSVC 2005 Express Edition (VC8)
4865
4866 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
4867
4868         * device/lib/Makefile: fixed build of gbz80 lib
4869
4870 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4871
4872         * support/regression/tests/bug-460010.c,
4873         * support/regression/tests/bug-524691.c,
4874         * support/regression/tests/bug-716242.c: removed conditional defines
4875           that are already in testfwk.h
4876
4877 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4878
4879         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
4880           (AccAXRsh1): added, shift right by 1,
4881           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
4882            AccAXLrl1
4883         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
4884
4885 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
4886
4887         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
4888         remove cast to same type
4889         * src/SDCCast.c (decorateType): fix for RFE 1475742,
4890         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
4891         * as/z80/Makefile,
4892         * link/z80/Makefile: removed, they have moved to
4893         Makefile.in files
4894         * configure,
4895         * configure.in: replaced duplicate message about ucsim by missing sdcpp
4896         * install-sh: fix bug #1204398 by setting umask 0022
4897         * device/lib/Makefile: separate build of z80 and gbz80 lib
4898
4899 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
4900
4901         Enabled VPATH feature: changed nearly all Makefiles (149 files).
4902         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
4903
4904         One basic decision: e.g. src/clean.mk includes further files. In order
4905         to make this work there are two solutions:
4906         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
4907           run configure on them. This way they can use
4908           'include $(srcdir)/port-clean.mk'
4909         - always include clean.mk by the Makefile at the same level. To avoid
4910           that `make clean` tries to include and build Makefile.dep the
4911           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
4912           implemented, because now even `make uninstall` doesn't create
4913           Makefile.in. clean.mk could be eliminated by pasting it in
4914           Makefile.in.
4915
4916         * debugger/mcs51/Makefile.in: build own objects from library sources
4917         (SLIB, SDCC) in current directory
4918
4919         * configure, configure.in: renamed --disable-device-lib-build in
4920         --disable-device-lib; added --enable-doc, the required tools are
4921         searched by configure; added result message; the toolchain for the
4922         belonging ports are now only built, if the port is enabled.
4923
4924         * support/regression/*: all output is written in directory gen, because
4925         the fwk and ports directories don't livet in the build tree using vpath
4926
4927         * doc/sdccman.lyx: renamed --disable-device-lib-build to
4928         --disable-device-lib, added --enable-doc, added section VPATH
4929
4930         * sim/ucsim/configure.in,
4931         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
4932         z80 are enabled by default
4933
4934 2006-04-24 Raphael Neider <rneider AT web.de>
4935
4936         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
4937             to config word, "pic14_"-prefixed some extern functions
4938           (pic14_emitConfigWord): emit __config directive(s) if assignment to
4939             config word has been found
4940         * src/pic/device.h: added prototypes
4941         * src/pic/pcode.c: added "pic14_"-prefix where needed
4942         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
4943             fixup
4944         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
4945             words,
4946           (pic14emitRegularMap): ignore config words,
4947           (pic14createInterruptVect): moved generating __config directives away
4948           (picglue): have __config directives emitted
4949
4950 2006-04-24 Borut Razem <borut.razem AT siol.net>
4951
4952         * doc/Makefile: sync with nightly build makefile
4953
4954 2006-04-24 Raphael Neider <rneider AT web.de>
4955
4956         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
4957             registers that have not been assigned proper liveranges,
4958             fixes #1469504 and #1474602,
4959           (pCodeRegOptimizeRegUsage): fixed typo in comment
4960
4961 2006-04-24 Borut Razem <borut.razem AT siol.net>
4962
4963         * device/examples/main8051.c: deleted - it was removed from CVS
4964           24.mar.2000 and after that modified 18.feb.2001, so it reappered
4965           after the transition to Subversion
4966         * src/SDCCalloc.h: deleted - it was removed  from CVS
4967           3.feb.2001 and after that modified 18.feb.2001, so it reappered
4968           after the transition to Subversion
4969         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
4970           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
4971           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
4972           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
4973
4974 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
4975
4976         * as/asx8051.dsp: added mcs51/strcmpi.h
4977         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
4978         * as/hc08/aslink.h: updated lnksect prototype
4979         * as/hc08/asm.h,
4980         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
4981         * as/hc08/asmain.c,
4982         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
4983           (newdot): handle A_ABS
4984         * as/hc08/asout.c,
4985         * as/mcs51/asout.c (outarea): output address
4986         * as/hc08/lkaomf51.c,
4987         * as/mcs51/lkaomf51.c: disabled unused array UsageType
4988         * as/hc08/m08pst.c,
4989         * as/mcs51/i51pst.c,
4990         * as/z80/z80pst.c: "ABS" is not A_OVR
4991         * as/hc08/lkarea.c (newarea): read a_addr,
4992           (lnkarea): added codemap array, sort absolute areas to the front,
4993            combine all GSINITx/GSFINAL,
4994           (find_empty_space, allocate_space): new functions,
4995           (lnksect): return next address, handle absolute sections
4996         * as/mcs51/lkarea.c (newarea): read a_addr,
4997           lnksect2 prototype changed,
4998           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
4999           (find_empty_space, allocate_space): new, factored out of lnksect2,
5000           (lnksect2): return next address, handle absolute sections
5001         * as/hc08/lkhead.c,
5002         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
5003         * as/hc08/lklibr.c (addfile, fndsym),
5004         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
5005           index out of range and detect both '\' and '/'
5006         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
5007         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
5008           regression tests (ds390 cannot return bool yet)
5009         * doc/sdccman.lyx: changed version number, document changed --no-peep,
5010           document critical interrupts on z80, document changed SDCC define
5011         * src/asm.c (_asxxxx_mapping): fixed .org directive,
5012           (_a390_mapping): added .org directive
5013         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
5014           (genMultOneByte): fixed warnings
5015         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
5016           ones
5017         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
5018         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
5019           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
5020         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
5021         * src/pic16/main.c: removed newReg prototype
5022         * src/pic16/pcode.c,
5023         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
5024           warnings
5025         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
5026           ones
5027         * src/pic16/ralloc.c
5028         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
5029           to fix warnings
5030         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
5031           from short to PIC_OPTYPE
5032         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
5033         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
5034           optype from short to PIC_OPTYPE
5035         * src/port.h: made int_size unsigned to fix warnings
5036         * src/SDCC.y: fixed warning on MSVC
5037         * src/SDCCicode.c (getArraySizePtr): return unsigned int
5038         * src/SDCCopt.c (convertToFcall): fixed warnings
5039         * src/SDCCsymt.h: removed double prototype for genSymName
5040         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
5041           offset int to fix warnings
5042
5043 2006-04-22 Borut Razem <borut.razem AT siol.net>
5044
5045         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5046           references to CVS replaced with Subversion
5047
5048 2006-04-21 Borut Razem <borut.razem AT siol.net>
5049
5050         * doc/sdccman.lyx, */Makefile, */Makefile.in:
5051           references to CVS replaced with Subversion
5052
5053 2006-04-19 Borut Razem <borut.razem AT siol.net>
5054
5055         * src/version.awk: adapted for svn
5056         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
5057           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
5058           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
5059           /binutils-avr/etc/*.vi, *.jin: removed all properties
5060           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
5061
5062 2006-04-19 Borut Razem <borut.razem AT siol.net>
5063
5064         * CVS to Subversion migration completed
5065
5066 2006-04-18 Borut Razem <borut.razem AT siol.net>
5067
5068         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
5069           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
5070
5071 2006-04-17 Borut Razem <borut.razem AT siol.net>
5072
5073         * device/include/Makefile.in: added pic/*.inc to the installation
5074
5075 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
5076
5077         * support/regression/collate-results.py: fixed output in case of
5078         a valdiag error
5079         * support/regression/generate-cases.py: fixed splitting of pathnames
5080         with dots
5081         * as/hc08/lklibr.c (addfile),
5082         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
5083
5084 2006-04-11 Raphael Neider <rneider AT web.de>
5085
5086         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
5087         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
5088         * src/pic16/pcode.c (assignValnums): fixed #1460578
5089
5090 2006-04-11 Raphael Neider <rneider AT web.de>
5091
5092         * device/lib/pic/libdev/*.c,
5093         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
5094           fixes #1468739, enables compilation in --std-c99 mode
5095         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
5096
5097 2006-04-11 Raphael Neider <rneider AT web.de>
5098
5099         * src/pic/device.c (find_device): removed debug output
5100           (list_valid_pics): enabled verbose listing of supported devices
5101         * device/include/stdbool.h: define bool as char for pic14/16 as well
5102
5103 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5104
5105         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
5106
5107 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
5108
5109         * .version: bumped version to 2.5.6
5110         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
5111
5112 2006-04-06 Raphael Neider <rneider AT web.de>
5113
5114         * .version: bumped version to 2.5.6 (pic14 ABI changed)
5115         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
5116         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
5117           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
5118             pic14_constructAbsMap
5119           (pic14printPublics): declare absolute global symbols as global
5120           (pic14createInterruptVect),
5121         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
5122           (newReg): assume new registers unused, use correct name in
5123             hashtable (reg->name instead of name), more debugLog output
5124         * src/pic/device.h (PIC_device): added fields for verbose output
5125         * src/pic/device.c: moved device definition to pic14devices.txt,
5126             added routines for runtime parsing of pic14devices.txt,
5127             added support for second config word
5128         * src/pic/main.c (_process_pragma): removed #pragma maxram,
5129           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
5130           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
5131           (_pic14_parseOptions): moved pCodeInitRegisters here
5132           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
5133         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
5134           (pCodeInitRegisters): rewrapped comments, perpared new approach to
5135             handling the pseudo stack
5136         * device/lib/Makefile.in: ignore failures in objects-pic16,
5137         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
5138         * device/lib/pic/NEWS: document new dependency on picXXX.lib
5139         * device/lib/pic/Makefile.subdir,
5140         * device/lib/pic16/Makefile.subdir: improved clean rules
5141         * device/lib/pic/libdev/: NEW, pic14 device libraries
5142         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
5143         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
5144         * device/include/Makefile.in: create subdir and install pic14 headers
5145         * device/include/pic/p16f_common.inc: removed unused declarations
5146         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
5147             PICs from inc2h.pl v1.6,
5148             replaced BIT_AT macros with struct declarations
5149         * device/include/pic/pic14devices.txt: definition of supported devices,
5150             all above improvements contributed by Zik Saleeba, thanks
5151         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
5152         * support/scripts/sdcc.nsi: also install pic14 device libraries and
5153             headers
5154
5155 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5156
5157         * device/include/mcs51/c8051f410.h: added interrupt numbers,
5158         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
5159           thanks to Charles Olds
5160
5161 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5162
5163         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
5164
5165 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
5166
5167         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
5168         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
5169         * support/regression/bug1464657.c: added, new test
5170
5171 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5172
5173         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
5174           version number
5175
5176 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5177
5178         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
5179           --no-peep and --peep-file <file> are used don't use default rules but
5180           do use the <file>
5181
5182 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
5183
5184         * src/mcs51/gen.c (genCall): fixed bug 1457608
5185
5186 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5187
5188         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
5189         changes seem to cause (trigger?) problems with the build system.
5190
5191 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
5192
5193         * src/SDCCpeeph.c (operandsLiteral): new, added,
5194           (callFuncByName): inserted operandsLiteral
5195         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
5196
5197 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5198
5199         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
5200         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
5201
5202 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
5203
5204         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
5205           implemented patch 1120823 Thanks to Willy De la Court (normal
5206           interrupts need an interrupt number now if they are made critical),
5207           and enabled nesting of critical functions though not for gbz80
5208           (genCritical, genEndCritical): added functions
5209           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
5210         * src/z80/mappings.i: added "ei" to all mappings
5211
5212 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5213
5214         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
5215         submitted by the Debian SDCC maintainer Aurelien Jarno:
5216         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
5217         archive with gcc 4.1 on mips and wrote the patch"
5218
5219 2006-03-16 Raphael Neider <rneider AT web.de>
5220
5221         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
5222           the left operand is shorter than the result (c* = lit-c* + int),
5223           fixes bug #1450796
5224         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
5225           OP_SYMBOL
5226
5227 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
5228
5229         * src/.version: increased version number to 2.5.5
5230         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
5231         linking is done manually in pic16 port's _linkEdit,
5232         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
5233         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
5234         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
5235         allocate asmop as AOP_ACC,
5236         (aopForRemat): added parameter 'bool result' in function declaration,
5237         (pic16_aopGet): return AOP_ACC when accessing WREG,
5238         (pic16_popGetTempReg): minor modification,
5239         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
5240         'pic16_allocWithIdx',
5241         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
5242         calling function in absolute addresses,
5243         (genAssign): take into account AOP_ACC asmop,
5244         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
5245         * src/pic16/pcoderegs.c: some debug functions and lines added,
5246         * src/pic16/ralloc.c (decodeRegType): added but commented out,
5247         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
5248         register too,
5249         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
5250         call to allocReg, not by manually allocating a new one,
5251         (pic16_assignRegisters): now before going through the register
5252         allocating functions mark all registers as free. This eliminates some
5253         side effects resulting from peephole parser done earlier in the backbone
5254
5255 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
5256
5257         * src/SDCCicode.c (geniCodeLogic),
5258         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
5259
5260 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
5261
5262         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
5263           (genSend): bugfix, do not allocate and free twice,
5264           (shiftRLong): handle partially overlapping aops
5265         * support/regression/tests/bitopcse.c: fixed warning redefined idata
5266
5267 2006-03-08 Borut Razem <borut.razem AT siol.net>
5268
5269         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
5270           for pic16
5271
5272 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
5273
5274         * support/regression/tests/bug1409955.c: new, added
5275         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
5276         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
5277           (aopForSym, aopOp): increment asmop.allocated if reused,
5278           (freeAsmop): decrement asmop.allocated and check for zero instead of
5279           using asmop.freed,
5280           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
5281           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
5282            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
5283            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
5284            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
5285            genSignedRightShift, genRightShift, genDataPointerGet,
5286            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
5287            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
5288             in reverse order from allocation,
5289           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
5290             added swappedLR to keep track
5291         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
5292           pdata & code for GCC, z80, gbz80 & hc08
5293         * support/regression/tests/zeropad.c: moved defines to testfwk.h
5294
5295 2006-03-08 Raphael Neider <rneider AT web.de>
5296
5297         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
5298
5299 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
5300
5301         * device/include/mcs51/c8051f410.h: new SiLabs mcu
5302         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
5303         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
5304
5305 2006-03-06 Borut Razem <borut.razem AT siol.net>
5306
5307         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
5308           made the linker quiet
5309
5310 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
5311
5312         * src/pic16/gen.c (genPcall): fixed bug #1443644
5313         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
5314         which dumps before the function entry point a data byte which represents
5315         the number of the local variables used by the specified function, added
5316         'xinst' for initial support for Extended Instruction Support,
5317         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
5318         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
5319         port->fun_prefix anymore (may change later),
5320         (genFunction, genEndFunction): do not store/restore local registers for
5321         _main (this should take care the --main-return command line option in
5322         the future),
5323         (genOr): removed some legacy pic-port instructions,
5324         * src/pic16/genarith.c (genAddLit): re-enabled old code because
5325         performing operations with SFR's causes data to be written more than
5326         once to each SFR. Perhaps SFRs should be handled in special cases...
5327         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
5328         pcode.h
5329         * src/pic16/main.c (_process_pragma): stack bound checking did not take
5330         into account for stack starting position,
5331         (struct OPTIONS pic16_optionsTable): added command line argument
5332         --extended or -y for Extended Instruction Support,
5333         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
5334         (deassignLRs): *** perhaps the most important change, old 'for' code
5335         (commented out for reference), didn't account for some registers which
5336         were left marked 'not free' after a pointer operation. The change
5337         reduces register usage a lot in some cases
5338
5339 2006-03-04 Borut Razem <borut.razem AT siol.net>
5340
5341         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
5342           _clean
5343         * support/regression/tests/bug-524697.c: decreased array size for
5344           mcs51 to fit into the internal RAM
5345         * support/regression/Makefile.in: a little bit more verbose
5346
5347 2006-03-03 Borut Razem <borut.razem AT siol.net>
5348
5349         * support/regression/fwk/lib/testfwk.c,
5350           support/regression/fwk/include/testfwk.h: introduced function
5351           _prints(), nonrecursive _printn(), call _initEmu() from main()
5352         * support/regression/ports/gbz80/support.asm,
5353           support/regression/ports/ucz80/support.asm,
5354           support/regression/ports/z80/support.asm,
5355           support/regression/ports/ds390/support.c,
5356           support/regression/ports/hc08/support.c,
5357           support/regression/ports/host/support.c,
5358           support/regression/ports/mcs51/support.c,
5359           support/regression/ports/xa51/support.c: added empty _initEmu()
5360           function
5361         * support/regression/ports/pic16/gpsim.cmd,
5362           support/regression/ports/pic16/spec.mk,
5363           support/regression/ports/pic16/support.c,
5364           support/regression/Makefile.in: added pic16 regression test
5365
5366 2006-03-01 Raphael Neider <rneider AT web.de>
5367
5368         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
5369           genConstPointerGet): use safe way of generating MOVFF to cover
5370             literals as well as registers, fixes bug #1440527
5371         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
5372             dereference
5373           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
5374             more correctly, fixes bug #1232186
5375           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
5376         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
5377             gplink guess the correct processor in more cases, applied patch
5378             from Till Riedel attached to and fixing bug #1436552
5379
5380 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5381
5382         * support/regression/tests/array.c: added, contains check for #1434401
5383         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
5384
5385 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
5386
5387         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
5388         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
5389         * device/include/mcs51/c8051f326.h,
5390         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
5391         * device/include/mcs51/c8051f000.h,
5392         * device/include/mcs51/c8051f018.h,
5393         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
5394           PCON_IDLE,PCON_STOP and added sfr16 definitions
5395
5396 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5397
5398         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
5399           genGetWord): fixed bug 1409955
5400
5401 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
5402
5403         * device/include/hc08/mc68hc908gp32.h,
5404         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
5405
5406 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
5407
5408         * src/SDCCast.c (constExprValue): return NULL if not a value
5409         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
5410         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
5411         * support/regression/tests/bitfields.c: enabled signed bitfield for all
5412
5413 2006-02-13 Borut Razem <borut.razem AT siol.net>
5414
5415         * src/regression/ptrarg.c: added, fails due to bug #1430967
5416         * src/regression/Makefile: ptrarg.c added, ...
5417
5418 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
5419
5420         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
5421         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
5422
5423 2006-02-11 Borut Razem <borut.razem AT siol.net>
5424
5425         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
5426           print "Processor: xxx" message to stdout only if --verbose
5427
5428 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5429
5430         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
5431         * support/regression/tests/bug1426356.c: added
5432         * support/regression/tests/bitfields.c: removed 2 tests
5433
5434 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5435
5436         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
5437         * device/include/mcs51/c8051f330.h,
5438         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
5439           PCON_IDLE,PCON_STOP and added sfr16 definitions
5440         * device/lib/_divsint.c,
5441         * device/lib/_divuint.c,
5442         * device/lib/_divulong.c,
5443         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
5444           register bank bug for small stackauto
5445
5446 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5447
5448         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
5449
5450 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
5451
5452         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
5453         * all.dsp: corrected several bin paths
5454         * device/include/mcs51/c8051f120.h,
5455         * device/include/mcs51/c8051f300.h,
5456         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
5457           to PCON_IDLE,PCON_STOP
5458         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
5459         * device/lib/printf_large.c (output_float): fixed bug 1388703
5460         * support/regression/tests/bug1057979.c: added test for bug 1388703
5461
5462 2006-02-08 Raphael Neider <rneider AT web.de>
5463
5464         * src/pic/pcode.c (pciTRIS): fixed typo,
5465           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
5466           (LinkFlow): fixed handling of flows that end in a call,
5467           (ReuseReg): perform safety check earlier
5468         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
5469             to work with flows at the beginning of a pBlock,
5470             fixes #1426557 (Symbol not previously defined),
5471           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
5472             usage information
5473           (RemoveUnusedRegisters): update register usage info
5474         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
5475             created, reuse existing ones instead
5476         * src/pic/gen.c (genPcall): fixed #1424719
5477
5478 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
5479
5480         * link/z80/lkmain.c,
5481         * link/z80/lklex.c,
5482         * link/z80/lkdata.c,
5483         * link/z80/aslink.h: fixed build on current cygwin:
5484         replaced getline() by lk_getline()
5485
5486 2006-02-01 Borut Razem <borut.razem AT siol.net>
5487
5488         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
5489           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
5490           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
5491           src/regression/bool1.c, src/regression/bool2.c,
5492           src/regression/bool3.c, src/regression/call1.c,
5493           src/regression/compare.c, src/regression/compare10.c,
5494           src/regression/compare2.c, src/regression/compare3.c,
5495           src/regression/compare4.c, src/regression/compare5.c,
5496           src/regression/compare6.c, src/regression/compare7.c,
5497           src/regression/compare8.c, src/regression/compare9.c,
5498           src/regression/configword.c, src/regression/for.c,
5499           src/regression/inline.c, src/regression/mult1.c,
5500           src/regression/nestfor.c, src/regression/or1.c,
5501           src/regression/pointer1.c, src/regression/ptrfunc.c,
5502           src/regression/rotate1.c, src/regression/rotate2.c,
5503           src/regression/rotate3.c, src/regression/rotate4.c,
5504           src/regression/rotate5.c, src/regression/rotate6.c,
5505           src/regression/rotate7.c, src/regression/string1.c,
5506           src/regression/struct1.c, src/regression/sub.c,
5507           src/regression/sub2.c, src/regression/switch1.c,
5508           src/regression/while.c, src/regression/xor.c,
5509           src/regression/create_stc, src/regression/simulate,
5510           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
5511           regression tests
5512         * src/regression/gpsim_assert.h: added
5513
5514 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
5515
5516         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
5517         ((void (code *) (void)) 0) ();
5518         * as/hc08/aslex.c,
5519         * as/hc08/aslink.h,
5520         * as/hc08/asm.h,
5521         * as/hc08/asmain.c,
5522         * as/hc08/lkdata.c,
5523         * as/hc08/lklex.c,
5524         * as/hc08/lkmain.c,
5525         * as/mcs51/aslex.c,
5526         * as/mcs51/aslink.h,
5527         * as/mcs51/asm.h,
5528         * as/mcs51/asmain.c,
5529         * as/mcs51/lkdata.c,
5530         * as/mcs51/lklex.c,
5531         * as/mcs51/lkmain.c,
5532         * as/z80/aslex.c,
5533         * as/z80/asm.h,
5534         * as/z80/asmain.c: fixed build on current cygwin:
5535         replaced getline() by as_getline()
5536
5537 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5538
5539         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
5540         declarator in the symbol chain
5541         * src/SDCCsymt.h,
5542         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
5543         parameter list for function pointers
5544         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
5545         * support/regression/tests/bug-716242.c: added
5546
5547 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5548
5549         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
5550         offset if possible
5551         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
5552
5553 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5554
5555         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
5556         inifinitely recurseable, added static
5557         * support/regression/tests/bug-1408066.c: added
5558
5559 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
5560
5561         * src/SDCCicode.h,
5562         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
5563         renamed, added possibility to create "postLoopLbl"-labels
5564         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
5565         newiTempLoopHeaderLabel
5566         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
5567         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
5568         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
5569         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
5570         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
5571         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
5572         (basicInduction): fixed bug #136564, made static,
5573         (loopInduction): changed parameter of basicInduction, made static,
5574         (addPostLoopBlock): added
5575         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
5576         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
5577         findLoopEndSeq
5578         * support/regression/tests/bug-136564.c: added
5579         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
5580         --std-sdcc99 to LIBSDCCFLAGS
5581
5582 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
5583
5584         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
5585         while loop
5586         * support/regression/tests/bug-1406131.c: added
5587
5588 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
5589
5590         * src/SDCCast.c (decorateType): fix promotion of unary minus
5591         * src/SDCCsymt.c (computeType): beautified
5592         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
5593         (valUnaryPM, valComplement): fix sign and promotion,
5594         (valNot): ANSI: result type is int (SDCC: unsigned char)
5595         * support/regression/tests/uminus.c: speedup by removing superflous
5596         test case 'int'
5597         * support/regression/tests/onebyte.c: added promotion and signedness
5598         tests for unary minus
5599         * support/regressions/tests/bug-477927.c: disable warning about
5600         uninitialized variables
5601         * support/regression/tests/not.c: added
5602
5603 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
5604
5605         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
5606         * src/mcs51/gen.c (gen51Code): show final register usage after
5607         fillGaps in asm with --i-code-in-asm
5608         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
5609         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
5610         incUsed, rliveClear, adjustIChain): made static,
5611         (setFromRange): excluded because it's unused,
5612         (findPrevUseSym, markWholeLoop): added,
5613         (findPrevUse): rewritten; fixes bug 895992; now a complete search
5614         through all branches of predecessors enables sdcc to emit the warning
5615         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
5616         (rlivePoint): made static, added parameter emitWarnings which is only
5617         true during the first run out of two,
5618         (findRecursiveSucc, findRecursivePred): removed,
5619         (computeLiveRanges): made static, added parameter emitWarnings,
5620         (dumpIcRlive): added for debugging only
5621         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
5622         removed prototype of setFromRange()
5623         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
5624         in call of computeLiveRanges()
5625         * support/regression/tests/bug-895992.c: added
5626         * support/regression/tests/bug-971834.c: added
5627         * support/valdiag/tests/bug-895992.c: added
5628         * support/valdiag/tests/bug-971834.c: added
5629
5630 2005-12-18 Raphael Neider <rneider AT web.de>
5631
5632         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
5633           (genUnpackBits): improved code for direct operands,
5634           (genPackBits): improved code for literal assignment to bitfields
5635             and for direct destination operands (no FSR indirection),
5636             prevented redundant AND, fixes #1362800,
5637           (AccLsh): added parameter to disable masking of the result
5638         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
5639           skip instructions with side-effects (like incfsz),
5640           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
5641         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
5642         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
5643           fixes #1375263
5644
5645 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
5646
5647         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
5648         volatile variables as spill location
5649
5650 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
5651
5652         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
5653         replacing literals
5654         * support/regression/tests/bug-1376320.c: added
5655
5656 2005-12-08 Raphael Neider <rneider AT web.de>
5657
5658         * src/pic/device.c: renamed is_shared to pic14_is_shared
5659         * src/pic/gen.c (genIfx): re-enabled handling of sbits
5660         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
5661           (is_valid_identifier): added for above workaround
5662
5663 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
5664
5665         * device/lib/Makefile.in: fixed to enable port-specific-objects
5666         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
5667           char, thanks Hubert Sack
5668         * doc/sdccman.lyx: documented --xstack-loc,
5669           elaborated a bit more on interrupts and pitfalls,
5670           removed "setjmp/longjmp unsupported",
5671           documented some unsupported C99 features
5672         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
5673         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
5674           if, thanks Hubert Sack
5675         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
5676         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
5677           make make_library
5678         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
5679           regression tests can report resource usage (rfe 700441)
5680         * support/regression/collate-results.py: report resource usage
5681         * support/regression/ports/ds390/spec.mk,
5682         * support/regression/ports/hc08/spec.mk,
5683         * support/regression/ports/mcs51/spec.mk,
5684         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
5685         * support/regression/ports/ds390/uCsim.cmd,
5686         * support/regression/ports/hc08/uCsim.cmd,
5687         * support/regression/ports/mcs51/uCsim.cmd,
5688         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
5689         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
5690           library, use the default one
5691         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
5692           building the library
5693
5694 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
5695
5696         * config.dsp: added dependency on .version and configure_vc.awk
5697         * device/include/setjmp.h: updated for --stack-auto and --xstack
5698         * device/include/mcs51/at89c51snd1c.h: corrected line endings
5699         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
5700         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
5701         * device/lib/libsdcc.lib: added _setjmp
5702         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
5703           (decorateType): fixed bug 1372851,
5704           (optimizeGetHbit): fixed warning
5705         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
5706           array initialisation
5707         * support/regression/tests/bug1057979.c: added test for bug 1358192
5708         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
5709
5710 2005-12-03 Borut Razem <borut.razem AT siol.net>
5711
5712         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
5713           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
5714
5715 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5716
5717         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
5718         createIval): implement symbol independant "flexible array member",
5719         (createIvalCharPtr): implemented flexible array initialisation with a
5720         string
5721         * src/SDCCsymt.c (copyStruct): removed,
5722         (getSize): fixed misleading comment,
5723         (getAllocSize): removed, the additional allocation size is now in
5724         sym->flexArrayLength,
5725         (checkStructFlexArray): new, syntax checks for flexible array members,
5726         (compStructSize): added syntax checks for "flexible array members"
5727         (copyStruct): removed,
5728         (copyLinkChain): removed inefficient fix for bug 770487
5729         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
5730         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
5731         symbol->flexArrayLength
5732         * src/SDCCerr.c,
5733         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
5734         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
5735         * support/regression/tests/structflexarray.c: added
5736         * support/valdiag/tests/structflexiblearray.c: added
5737
5738 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
5739
5740         * src/SDCCast.c (decorateType): fixed bug 1368489
5741         * support/Util/SDCCerr.c,
5742         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
5743
5744 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5745
5746         * device/include/mcs51/at89c51snd1c.h: added file submitted by
5747           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
5748
5749 2005-11-27 Borut Razem <borut.razem AT siol.net>
5750
5751         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
5752           support/cpp2/mkdeps.h: added command line option
5753           -obj-ext=<extension> to SDCPP to define object file externion, used
5754           for generation of make dependencies (-M)
5755         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
5756
5757 2005-11-26 Borut Razem <borut.razem AT siol.net>
5758
5759         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
5760           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
5761           added pic and pic16 libraries
5762
5763 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5764
5765         * device/include/float.h: Corrected typo in prototype of __fsgt
5766
5767 2005-11-25 Borut Razem <borut.razem AT siol.net>
5768
5769         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
5770           added creation of model-mcs51-stack-auto libraries
5771
5772 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
5773
5774         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
5775         and fields-list too
5776         * src/SDCCast.c (createIvalArray): removed obsolete comment
5777
5778 2005-11-24 Borut Razem <borut.razem AT siol.net>
5779
5780         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
5781           added missing device/lib/mcs51/crt*.asm sources
5782
5783 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
5784
5785         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
5786
5787 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
5788
5789         * device/lib/_fs2schar.c,
5790         * device/lib/_fs2sint.c,
5791         * device/lib/_fs2slong.c: optimized inline asm
5792
5793 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5794
5795         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5796           Better handling of floats between -1.0 and 0.0.
5797
5798 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5799
5800         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
5801           (the missing "if"s prohibited removal of redundant labels)
5802
5803 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5804
5805         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
5806           Properly convert floats between -1.0 and 0.0 to long, int, and char
5807           types (max integer value of negative floats tends to zero).
5808         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5809           Removed changes made so to work properly with floats between
5810           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
5811           and _fs2char.c
5812
5813 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5814
5815         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
5816         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
5817         (genCast) cosmetic change
5818         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
5819         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
5820         from mcs51
5821         * support/regression/tests/bitfields (testSignedBitfields): added
5822
5823 2005-11-18 Borut Razem <borut.razem AT siol.net>
5824
5825         * sdcc/device/lib/Makefile.in: remove all unnecessary files
5826         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
5827           introduced SILENT option to make building of pic16 libraries less
5828
5829 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5830
5831         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
5832           Now they work properly with floats between -1.0 and 0.0
5833         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
5834
5835 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5836
5837         * src/SDCCicode.c (printOperand): added missing else
5838
5839 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
5840
5841         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
5842         reformatted for better readability
5843         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
5844         signed bitfields
5845
5846 2005-11-17 Borut Razem <borut.razem AT siol.net>
5847
5848         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
5849           introduced SILENT option to make building of pic16 libraries less
5850           verbose - used for nightly snapshot build
5851         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
5852           available on Win32 platforms.
5853         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
5854           medium, large, pic and pic16
5855
5856 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5857
5858         * device/lib/printf_large.c: Temporary patch for bug 1358192:
5859           printf("%f"...) sets fraction to zero.
5860
5861 2005-11-16 Raphael Neider <rneider AT web.de>
5862
5863         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
5864           fixes #1357221
5865         * src/pic/gen.c (genIfx): implemented for CARRY bit
5866         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
5867           to generic pointers, fixes #1357332,
5868           (pic16_movLit2f): NEW,
5869           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
5870
5871 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5872
5873         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
5874
5875 2005-11-11 Raphael Neider <rneider AT web.de>
5876
5877         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
5878         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
5879           compute pointer's type from operand,
5880           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
5881           improved single bit reads, fixes bug #1353379
5882
5883 2005-11-09 Borut Razem <borut.razem AT siol.net>
5884
5885         * support/scripts/sdcc.nsi: added lib/pic to the package
5886
5887 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
5888
5889         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
5890
5891 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5892
5893         * support/regression/tests/bug1348008.c: added
5894         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
5895         * support/regression/tests/bug1337835.c: updated comment
5896
5897 2005-11-06 Borut Razem <borut.razem AT siol.net>
5898
5899         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5900           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5901           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5902           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5903           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
5904           dynamic construction of cl_error_class and derivates - 2.nd try
5905
5906 2005-11-05 Borut Razem <borut.razem AT siol.net>
5907
5908         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
5909           bug, which caused Bus Errors on sparc solaris
5910
5911 2005-11-04 Borut Razem <borut.razem AT siol.net>
5912
5913         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
5914           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
5915           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
5916           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
5917           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
5918           and derivates to resolve the initialization problem on OSX
5919
5920 2005-11-02 Borut Razem <borut.razem AT siol.net>
5921
5922         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5923           corrected typo - #include <winsock2.h>
5924
5925 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
5926
5927         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
5928           (_asxxxx_mapping): added org directive for future enhancements
5929
5930 2005-11-01 Borut Razem <borut.razem AT siol.net>
5931
5932         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
5933           enabled sockets on WIN32
5934         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
5935
5936 2005-10-31 Borut Razem <borut.razem AT siol.net>
5937
5938         * support/regression/generate-cases.py: escape backslashes in {testcase}:
5939           WIN32 backslash path delimiters should be escaped when used in C strings
5940         * support/regression/tests/bitfields.c: exclude failing assertions for
5941           __CYGWIN32__ and __MINGW32__ hosts
5942
5943 2005-10-30 Borut Razem <borut.razem AT siol.net>
5944
5945         * src/SDCCutil.c: corrected double comparison typo
5946
5947 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
5948
5949         * device/lib/medium/Makefile: added for new memory model medium
5950         * device/include/asm/mcs51/features.h: updated for medium/pdata
5951         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
5952           added Multiply & Accumulate sbit's and MAC0_PAGE define
5953         * device/include/mcs51/c8051f300.h: added sfr16 definitions
5954         * device/include/mcs51/c8051f310.h: added sfr16 definitions
5955         * device/lib/_mullong.c: update for medium model
5956         * device/lib/incl.mk: added medium model
5957         * doc/sdccman.lyx: documented medium model
5958         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
5959         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
5960         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
5961         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
5962           (allocParms): set SCLS and OCLS to pdata for medium model
5963         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
5964           for pdata,
5965           (powof2): return <0 if not power of 2
5966         * src/avr/gen.c (genBitWise): use updated powof2
5967         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
5968           (shiftR2Left2Result): small optimization in setup, save acc when storing,
5969           (shiftLLeftOrResult): use B if necessary
5970         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
5971         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
5972         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
5973         * support/regression/Makefile.in: added test-mcs51-medium
5974         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
5975
5976 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
5977
5978         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
5979         specifier unsigned
5980         * device/lib/time.c (mktime): fixed bug 1334315
5981
5982 2005-10-28 Raphael Neider <rneider AT web.de>
5983
5984         * device/include/pic/p16f_common.inc: added common declarations
5985         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
5986
5987 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
5988
5989         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
5990           (aopPutUsesAcc): added to predict accumulator use,
5991           (assignResultValue): save acc if necessary,
5992           (genMinusDec): store result if indirectly addressed,
5993           (genDivOneByte):  save acc if necessary,
5994           (movLeft2Result): bugfix if left already in acc,
5995           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
5996             attention to accumulator use (esp. pdata),
5997           (genReceive): receive pdata correctly
5998         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
5999         * src/SDCCicode.h: added isOperandInPagedSpace prototype
6000
6001 2005-10-27 Raphael Neider <rneider AT web.de>
6002
6003         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
6004
6005 2005-10-27 Raphael Neider <rneider AT web.de>
6006
6007         * .version: changed version to 2.5.4
6008         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
6009         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
6010           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
6011             arithmetics support routines
6012         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
6013         * device/lib/Makefile.in: also create installdir for pic
6014
6015         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
6016           pic14 port as well
6017         * src/pic/device.c (dump_sfr): rewritten to delegate register
6018           placement to the linker (use `extern sym' rather than sym EQU addr),
6019           (validAddress): fixed to check last specified address
6020         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
6021           (popGetLit): truncate literal value to 8 bit,
6022           (popGet): moved assert to more appropriate place
6023           (popGetExternal): create pCode operand from and mark the according
6024             symbol as being `extern'
6025           (popGetAddr): added sanity check on immediate's offset, provide
6026             GPOINTER tag on demand
6027           (aopPut): fixed for immediates,
6028           (mov2w_op): move operand's address or contents to WREG (depending on
6029             operand type), safer variant of mov2w,
6030           (movwf,call_libraryfunc): NEW, handy abbreviations,
6031           (get_argument_pcop,get_return_val_pcop,pass_argument,
6032           get_returnvalue): interface for accessing function parameters and
6033             return values,
6034           (assignResultValuei,genRet): use new parameter/return value interface
6035           (pic14_getDataSize): back to old version handling generic pointers,
6036           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
6037             provided implementation and/or fixed old one,
6038           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
6039             calls, removed legacy 8051 reference code
6040           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
6041           (loadSignToC): NEW, move the operands sign bit to CARRY,
6042           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
6043             genRightShiftSigned, accepts negative shift counts,
6044           (setup_fsr): load FSR and adjust IRP (indirect memory access),
6045           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
6046             generic pointers, __data pointers and __code pointers,
6047           (genUnpackBits,genPackBits): rewritten to work with generic pointers
6048             and signed bitfields, limit bitfields to 8 bit,
6049           (genDataPointerGet): fixed number of bytes read,
6050           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
6051           (genPointerGet,genPointerSet): fixed handling of __code pointers,
6052             pointers to constant data are no longer assumed to point to __code
6053             space, removed invalid pointer types,
6054           (bitpatternFromVal): retrieve the PICs representation of an integer
6055             or float literal,
6056           (genDataPointerSet): fixed assigning to po_immediate operands,
6057           (genGenPointerSet): implemented as library call,
6058           (genIfx): fixed incorrect condition,
6059           (genAddrOf): limit generic pointers' addresses to 2 bytes,
6060             provide GPOINTER tag according to destination's storage class,
6061           (genCast): added code to handle casting to generic pointers, added
6062             sign-/zero extension of the result
6063           (aop_isLitLike,op_isLitLike): fixed handling of immediates
6064         * src/pic/gen.h: added macros to access IRP bit in STATUS register
6065         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
6066           extend the result
6067         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
6068           address/register resides in the shared banks
6069           (emitSymbolToFile): improved to handle global and `pinned' symbols,
6070             put all variables into separate sections (have the linker arrange
6071             them)
6072           (picglue): put init code and interrupt handlers in separate sections
6073         * src/pic/main.c: added port specific options table, modified to PORT
6074           structure to make GPOINTERs 3 byte, added pic14_options
6075           (_pic14_do_link): private linking routine (update paths to libraries,
6076             add libsdcc.lib by default)
6077         * src/pic/main.h: declare pic14_options
6078         * src/pic/pcode.c: fixed instructions i/o relations,
6079           (RegCond): reverted to correct version,
6080           (newpCodeOpLit): truncate literals to 8 bit,
6081           (genericPrint): added debug output,
6082           (getRegFromInstruction): fixed for various operand types, simplified
6083           (BuildFlow): fixed broken handling of isntructions with labels
6084           (LinkFlow): start at last instruction in flow (skip trailing comments),
6085             pass the flow on to the next instruction after CALL
6086           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
6087           (insertPCodeInstruction): fixed inserting after a skip instruction,
6088           (DoBankSelect): fixed for labeled instructions
6089           (OptimizepBlock): honor --nopeep switch
6090           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
6091         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
6092         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
6093           (pCodeOptime2pCodes): allow disabling this optimization via
6094             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
6095             but is still buggy), started implementation of a dataflow based
6096             pCode optimization (CSE + dead code elimination)
6097           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
6098         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
6099           names are independant of the stack location and therefore portable across
6100           devices
6101
6102 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
6103
6104         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
6105           (selectSpil): fixed bug 1337835 by not spilling bit variables
6106         * support/regression/tests/bug1337835.c: added test for this bug
6107         * src/mcs51/peeph.def: restart after rule 3.c,
6108           addded rules 263.x to optimize loading constants
6109
6110 2005-10-26 Raphael Neider <rneider AT web.de>
6111
6112         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
6113         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
6114           (genAssign): emit warning when casting literals to generic pointer
6115             type, also applies when taking the address of a fixed variable,
6116           (genCast): improved casting to generic pointers
6117         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
6118           extern variables, added verbose error message
6119         * device/include/pic16/{string.h,errno.h}: added #pragma library c
6120
6121 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
6122
6123         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
6124         carry must be complemented too
6125         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
6126         could be emitted by genMinus
6127         * src/SDCCval.c (constVal): fixed bug 1305065
6128
6129 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
6130
6131         * src/SDCCast.c (addCast): added promotion for bit variables
6132         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
6133         promotion casts + optimisation
6134         (optimizeGetWord): fix warning 'i' might be used uninitialized
6135         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
6136         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
6137
6138 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
6139
6140         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
6141         all chars are promoted to int; promotion should be handled in SDCCast.c
6142
6143 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6144
6145         * device/lib/_strcmp.c: Fixed bug 1326457
6146
6147 2005-10-11 Raphael Neider <rneider AT web.de>
6148
6149         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
6150         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
6151
6152 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6153
6154         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
6155         * support/regression/tests/sfr16.c: added test for the sfr32 bug
6156
6157 2005-10-04 Raphael Neider <rneider AT web.de>
6158
6159         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
6160           device/lib/pic16/pics.all: added pic18f1320
6161         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
6162
6163 2005-09-30 Raphael Neider <rneider AT web.de>
6164
6165         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
6166         * src/pic16/devices.inc: NEW, provides device descriptions
6167         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
6168
6169 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
6170
6171         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
6172           GETHBIT
6173
6174 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
6175
6176         * doc/sdccman.lyx: updated Highest Order Bit documentation,
6177           documented Any Order Bit, Higher Order Byte and Higher Order Word
6178         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
6179         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
6180           (optimizeGetAbit): new, to get any bit, not only the high bit,
6181           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
6182           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
6183           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
6184           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
6185             RIGHT_OP: also try GETBYTE, GETWORD optimization,
6186             GETABIT, GETBYTE, GETWORD: decorate them,
6187           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
6188           (ast_print): added GETABIT, GETBYTE, GETWORD
6189         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
6190         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
6191           (geniCodeBinary): new generic binary icode,
6192           (ast2iCode): added GETABIT, GETBYTE, GETWORD
6193         * src/port.h: updated comment for PORT.hasExtBitOp
6194         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
6195           (genGetByte): new, to get a single byte,
6196           (genGetWord): new, to get a word from a long,
6197           (gen51Code): added GETABIT, GETBYTE, GETWORD
6198         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
6199
6200 2005-09-23 Raphael Neider <rneider AT web.de>
6201
6202         * configure.in, configure: have device/lib/pic configured
6203         * device/lib/Makefile.in: added model-pic14
6204         * device/lib/clean.mk: added pic/ to clean rule
6205         * device/lib/pic: added rudimentary pic14 library providing support
6206           functions for multiplication/division/generic pointer access
6207         * src/SDCCopt.c (convilong): mark support functions as extern
6208           for pic14 port as well
6209         * src/pic/gen.c (genMult): added assertions,
6210           (genpic14Code): emit warning on unhandled iCodes
6211         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
6212         * src/pic/pcode.c (pCodeOpCopy),
6213         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
6214           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
6215           SFR_REGISTER}), made safe for future extensions
6216         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
6217           instructions even if preceeded by SKIP instructions (also remove
6218           them); removed unused code
6219         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
6220           prevents leaving parts of the structure uninitialized after copying
6221
6222 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
6223
6224         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
6225           ago by me
6226         * support/regression/tests/addsub.c: added test for the bug
6227
6228 2005-09-21 Raphael Neider <rneider AT web.de>
6229
6230         * device/include/pic16/pic18f1220.h,
6231           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
6232         * device/lib/pic16/Makefile.rules: added missing opening paren
6233         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
6234           are provided in genutils.c,
6235           (genUminusFloat,genUminus,genCmpEq): added asserts on different
6236           operand/result sizes,
6237           (genCmp): assert on NULL pointers first, then check deref'ed values
6238         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
6239           result size
6240
6241 2005-09-18 Raphael Neider <rneider AT web.de>
6242
6243         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
6244           as these are now unused,
6245           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
6246         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
6247           local, avoids uninitialized pointer dereference on r->name
6248         * src/pic16/ralloc.c (newReg): fixed indentation
6249
6250 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
6251
6252         * src/SDCCval.c (constVal): fixed bug 730366
6253         * support/Util/SDCCerr.c,
6254         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
6255
6256 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
6257
6258         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
6259
6260 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
6261
6262         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
6263
6264 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6265
6266         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
6267           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6268         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
6269           (hex2dec): made hex_digit unsigned char, removed ascii dependance
6270         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
6271         * packihx/packihx.c (hexDigit): made c unsigned char
6272         * as/mcs51/lklibr.c (fndsym),
6273         * link/z80/lkgb.c (gb),
6274         * link/z80/lklibr.c (fndsym),
6275         * link/z80/lkrloc.c (relr),
6276         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
6277         * src/SDCC.lex (checkCurrFile, process_pragma),
6278         * src/SDCCglue.c (spacesToUnderscores),
6279         * src/SDCCmain.c (setParseWithComma, processFile),
6280         * src/asm.c (tvsprintf, printCLine),
6281         * src/avr/gen.c (emitcode, aopPut),
6282         * src/ds390/gen.c (emitcode),
6283         * src/hc08/gen.c (emitcode, emitinline),
6284         * src/mcs51/gen.c (emitcode, genInline),
6285         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6286           tokenizeLineNode),
6287         * src/pic/ralloc.c (debugLog),
6288         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
6289           tokenizeLineNode),
6290         * src/pic16/ralloc.c (debugLog),
6291         * src/z80/main.c (_process_pragma):
6292            made all ctype.h function calls safe
6293         * src/SDCCopt.c: include math.h for fabs
6294         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
6295           and used them throughout the code to make ctype.h function calls safe
6296         * src/ds390/main.c (asmLineNodeFromLineNode),
6297         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
6298         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
6299            unsigned char*
6300         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
6301           (newpCodeAsmDir): made ctype.h function calls safe
6302         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
6303           pic16_emitcode):  made lbp unsigned char*
6304         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
6305           (pic16_newpCodeAsmDir): made ctype.h function calls safe
6306         * src/xa51/gen.c (emitcode),
6307         * src/z80/gen.c (_emit2): made lbp unsigned char*
6308         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
6309            char*
6310
6311 2005-09-05 Raphael Neider <rneider AT web.de>
6312
6313         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
6314           access bank splitpoint
6315
6316 2005-09-05 Raphael Neider <rneider AT web.de>
6317
6318         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
6319
6320 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
6321
6322         * .version: changed to version 2.5.3
6323         * doc/sdccman.lyx: changed version to 2.5.3,
6324           documented --codeseg and --constseg and pragma codeseg and constseg,
6325           documented bit parameters (reentrant) and bit returning
6326         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
6327            currFunc->recvSize, but is this ok for all ports?
6328           (ast2iCode): result of ~ on unsigned char must be cast to int for
6329            bool to work
6330         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
6331           function pointers in bit space
6332         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
6333           (processFuncArgs): call port.reg_parm() with reentrancy info
6334         * src/port.h,
6335         * src/avr/main.c,
6336         * src/ds390/main.c,
6337         * src/hc08/main.c,
6338         * src/pic/main.c,
6339         * src/pic16/main.c,
6340         * src/xa51/main.c,
6341         * src/z80/main.c: port.reg_parm prototype extended with
6342           "bool reentrant" parameter
6343         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
6344           options.stackAuto for allocating bit register parameters
6345         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
6346           (genSend): set BitBankUsed if it is,
6347           (selectRegBank): factored out of genCall for use in genPcall,
6348           (genCall): removed redundant dtype assignmen, use selectRegBank,
6349           (genPcall): handle returning in Carry properly, save in F0 if needed,
6350           (genReceive): handle bit register parameters
6351         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
6352           (mcs51_assignRegisters): enable bit registers for all reentrant
6353            functions and don't set BitBankUsed unconditionally
6354         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
6355         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
6356         * support/regression/tests/funptrs.c: added tests for BOOL and for return
6357
6358 2005-08-27 Borut Razem <borut.razem AT siol.net>
6359
6360         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
6361         ppc-osx (Darwin) does not support -u option. It seems that it is
6362         supported only on Linux - GNU cp
6363
6364 2005-08-25 Borut Razem <borut.razem AT siol.net>
6365
6366         * sim/ucsim/gui.src/serio.src/Makefile.in,
6367           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
6368           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6369           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
6370           install and strip, since the strip at /usr/ccs/bin should be used
6371           on solaris
6372
6373 2005-08-24 Borut Razem <borut.razem AT siol.net>
6374
6375         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
6376
6377 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
6378
6379         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
6380         ffffffffu
6381
6382 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
6383
6384         * as/mcs51/aslink.h: completed lkrloc.c prototypes
6385         * as/mcs51/lkmain.c (link_main): fixed warning
6386         * device/include/stdbool.h: ds390 has no advanced bit support yet
6387         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
6388         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
6389         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
6390           and updated their macros
6391         * src/SDCCval.c (constVal): updated comment for renamed b_long
6392
6393 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
6394
6395         * as/mcs51/asdata.c: changed ctype['['] to BINOP
6396         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
6397           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
6398           (oprio): set priority for '['
6399         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
6400            and adb_24_bit
6401         * as/mcs51/asm.h: added defines R_BIT and S_BIT
6402         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
6403         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
6404         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
6405           added overlayable BIT_BANK area
6406         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
6407           (summary2): explain 'T' in legenda
6408         * as/mcs51/lkrloc.c: replaced old K&R style,
6409           (relr): added R_BIT processing,
6410           (errmsg): added "Bit-addressable relocation error",
6411           (adb_bit): added for converting from byte- to bit-addressable space,
6412           (adb_24_bit): added for converting from byte- to bit-addressable space
6413         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
6414            used in reentrant functions now even as return value
6415         * device/lib/_gptrput.c (_gptrput): removed obsolete code
6416         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
6417           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
6418         * src/SDCCglobl.h: added indicator BitBankUsed
6419         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
6420            the bit registers b0-b7
6421         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
6422           (geniCodeCast): fixed bug 1263853,
6423           (geniCodeLogicAndOr): put result in bool or char,
6424           (geniCodeReceive): added parameter func for accessing the return type,
6425           (geniCodeFunctionBody): pass func to geniCodeReceive
6426         * src/SDCCmain.c: added indicator BitBankUsed
6427         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
6428         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
6429           (checkSClass): don't put automatic bool/bit on stack,
6430           (checkFunction): removed check on function cannot return bit
6431         * src/SDCCsymt.h: added newBoolLink prototype
6432         * src/mcs51/gen.c (rb1regs): added bit registers,
6433           (movc): created for assigning to carry,
6434           (pushReg, popReg): created for pushing registers,
6435           (sameRegs): check both AOP_REG and AOP_CRY types,
6436           (aopOp): handle bit registers,
6437           (aopPut): optimization no self-assign,
6438           (saveRegisters): push reg->base (bits) only once for bit registers,
6439            and use pushReg,
6440           (unsaveRegisters): pop reg->base only once and use popReg,
6441           (assignResultValue): added parameter func and return in carry for bits,
6442           (genIpush): optimization no reload in A if not changed,
6443           (genSend): bit parameters in reentrant functions are passed in bit
6444            registers by first assigning to bits in B, then save registers and
6445            copy B to bits,
6446           (genCall): handle returning in Carry properly, save it in F0 if needed,
6447           (genPcall): updated assignResultValue call, this is not safe yet for bit
6448            returning function !!!
6449           (genFunction): don't generate equ's for bit registers and use pushReg,
6450           (genEndFunction): take care of bit returning functions and use popReg,
6451           (genRet): return bit in Carry,
6452           (genIfx): optimize bit registers and other directly addressable bits,
6453           (genReceive): updated assignResultValue call
6454         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
6455           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
6456            registers when using stack-auto
6457         * src/mcs51/ralloc.c (_G): added allBitregs,
6458           (regs8051): added the bit registers,
6459           (createStackSpil): use macro IS_BIT,
6460           (getRegBit): added to allocate a bit register, else spill,
6461           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
6462           (updateRegUsage): factored out to ease stepping while debugging,
6463           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
6464            also allocate bit registers,
6465           (fillGaps): handle bit registers,
6466           (findAllBitregs): added to create bit vector with all bit registers,
6467           (mcs51_allBitregs): returns this bit vector,
6468           (mcs51_assignRegisters): when using stack-auto use bit registers for
6469            passing parameters and creating local variables
6470         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
6471
6472 2005-08-22 Borut Razem <borut.razem AT siol.net>
6473
6474         * device/lib/Makefile.in: replaced find option -or with -o
6475           to make it run on solaris
6476
6477 2005-08-22 Raphael Neider <rneider AT web.de>
6478
6479         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
6480           fixes #1265442 (crash on Solaris)
6481
6482 2005-08-20 Borut Razem <borut.razem AT siol.net>
6483
6484         * configure, configure.in: added tests for libsocket and libnsl libraries,
6485           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
6486           from support/regression/Makefile.in
6487         * support/regression/Makefile.in: added
6488         * device/lib/pic16/Makefile.common.in: force make to use bash shell
6489         * sim/ucsim/libtool: regenerated on sparc-solaris
6490         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
6491           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
6492           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
6493           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
6494           sparc-solaris, which doesn't use GNU ld linker
6495         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
6496         * as/Makefile: find on sparc-solaris does not support -maxdepth option
6497
6498 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
6499
6500         * src/mcs51/peeph.def: updated comments
6501
6502 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6503
6504         * device/lib/_gptrget.c,
6505         * device/lib/_gptrput.c: slightly shorter
6506         * doc/sdccman.lyx: incremented version
6507         * src/mcs51/peeph.def: moved peephole comments to the line of first
6508           change to better keep line correlation, reanimated 186.e
6509         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
6510
6511 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6512
6513         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
6514           David Saxton with quotes around file name.
6515
6516 2005-08-15 Borut Razem <borut.razem AT siol.net>
6517
6518         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
6519           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
6520           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
6521           make tests run on x86_64 platform
6522
6523 2005-08-13 Raphael Neider <rneider AT web.de>
6524
6525         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
6526           as it might be executed DURING a build (parallel make is wonderful)
6527
6528 2005-08-13 Raphael Neider <rneider AT web.de>
6529
6530         * device/lib/Makefile.in (port-specific-objects-pic16):
6531           revert to cp $(PORT)/bin/*.* $(PORTDIR)
6532         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
6533           dependency
6534         * device/lib/pic16/Makefile.rules: build subdirs before creating
6535           the library, removed builddir rule, create $(builddir) early in
6536           recurse rule, use empty recurse rule for leaf directories
6537         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
6538           mkdir errors (race condition), removed duplicate suffix "hex"
6539           from clean rules
6540         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
6541         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
6542           prevents mkdir -p from aborting on Alpha
6543
6544 2005-08-12 Raphael Neider <rneider AT web.de>
6545
6546         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
6547           db-statements in order to allow for arrays of pointers in code
6548           sections to be placed without interspersed 0-padding, fixes
6549           bug #1256215
6550         * (emitStatistics): fixed division by zero for pic18f1220
6551         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
6552           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
6553         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
6554         * (pic16_pCodeConstString): keep track of already emitted string
6555           literals to prevent "duplicate definitions of symbol _str_NR"
6556         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
6557           debug message
6558         * device/lib/Makefile.in: ignore failing PIC16 library builds
6559         * device/lib/pic16/Makefile: do not build if gputils are missing
6560         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
6561
6562 2005-08-10 Raphael Neider <rneider AT web.de>
6563
6564         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
6565           my last commit)
6566
6567 2005-08-10 Raphael Neider <rneider AT web.de>
6568
6569         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
6570           Rokas' patch to add the new fixed point type "__fixed16x16"
6571         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
6572           functions for __fixed16x16 arithmetics
6573         * device/lib/pic16: reimplemented the build system to support
6574           a separate build directory, better handling of libio (create
6575           the library in a separate subdir for each architecture) and
6576           easier configuration (centralized in Makefile.common)
6577
6578 2005-08-07 Raphael Neider <rneider AT web.de>
6579
6580         * src/pic16/gen.c (genrshTwo): fixed sign extension
6581         * src/pic16/device.c: added pic18f2320, 4220 and 4320
6582         * device/include/pic16/pic18f2220.h: changed some bit definitions,
6583           added T0CONbits
6584         * device/include/pic16/pic18f4220.h: NEW, header for
6585           pic18f4220 and pic18f4320
6586         * device/include/pic16/pic18fregs.h: added new devices,
6587           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
6588         * device/include/pic16/signal.h: resolved name clashes
6589           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
6590           to also allow testing for interrupt enable bits, added
6591           comments on how to use the macros
6592         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
6593         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
6594           register definitions for the devices
6595         * device/lib/pic16/pics.all: added new devices
6596         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
6597           allocated memory
6598         * device/lib/pic16/libc/stdlib/memfree: do not count
6599           the block header as free memory
6600         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
6601           simplified and added missing end-of-blocklist-marker
6602           (reported by Peter Onion, fixes #1252814)
6603         * (_mergeHeapBlock): fixed loop condition
6604         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
6605           len==0, restructured code
6606         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
6607           up a bit, reduced bitfield accesses, prevent endless loops
6608           in case of heap corruption
6609         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
6610           "unreferenced arguments/must return a value" warnings
6611         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
6612           replaced BAUDREG with SPBRG
6613         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
6614           device/lib/pic16/debug/gstack/gstack.c: replaced
6615           _naked, _asm, _endasm with __naked, __asm, __endasm
6616
6617 2005-08-05 Raphael Neider <rneider AT web.de>
6618
6619         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
6620           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
6621
6622 2005-08-05 Borut Razem <borut.razem AT siol.net>
6623
6624         * device/lib/Makefile.in: added missing ';'
6625         * configure: removed ^M characters
6626
6627 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6628
6629         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
6630           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
6631           License
6632
6633 2005-08-04 Borut Razem <borut.razem AT siol.net>
6634
6635         * configure.in: pic16 libraries build 2nd try - enable running
6636           configure in device/lib/pic16
6637         * configure: regenerated from configure.in
6638         * device/lib/Makefile.in: create $(PORT)/bin directory
6639
6640 2005-08-03 Raphael Neider <rneider AT web.de>
6641
6642         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
6643           to get/set values via pointers
6644         * (genUnpackBits,genPackBits): changed detection of
6645           ptr->bitfield vs. sym.bitfield, fixed access via generic
6646           pointers, removed dead (wrong) code for multibyte bitfields
6647         * (genNearPointerGet, genGenPointerGet): removed useless code,
6648           fixed bitfield detection, fixes #1250594
6649         * (genNearPointerSet): removed useless code
6650         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
6651           and introduced macro pic16_emitpcode that conditionally emits
6652           the origin of the following pCode (useful for debugging SDCC)
6653         * src/pic16/pcode.c: changed (and disabled) some debug outputs
6654         * (createDefmap): fixed handling of LFSR for --optimize-df
6655
6656 2005-08-02 Borut Razem <borut.razem AT siol.net>
6657
6658         * device/lib/Makefile.in: pic16 libraries build enabled since
6659           gputils-0.13.2 are now localy installed at sourceforge's compile farm
6660
6661 2005-08-02 Raphael Neider <rneider AT web.de>
6662
6663         * src/pic16/gen.c (genPackBits): removed deprecated warning
6664         * (genGenPointerSet): fixed bitfield detection
6665
6666 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6667
6668         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
6669
6670 2005-07-31 Raphael Neider <rneider AT web.de>
6671
6672         * device/lib/pic16/libdev/pic18f458.c,
6673           device/include/pic16/pic18f458.h: added missing T0CONbits
6674
6675 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6676
6677         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
6678
6679 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
6680
6681         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
6682
6683 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6684
6685         * device/include/mcs51/at89c51ed2.h: added.
6686
6687 2005-07-23 Raphael Neider <rneider AT web.de>
6688
6689         * src/pic/gen.h: added emitpcode macro for debugging
6690         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
6691           and replace by macro adding debug information on demand
6692         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
6693         * (gencjne): tried to fix; replaced with correct (slower) code
6694         * (gen{Unp,P}ackBits): fixed single bit access
6695         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
6696         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
6697           previous instruction
6698         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
6699           register has to be handled with care (forbidding movement
6700           of assignments/uses, removing assignments completely, ...)
6701         * (pCodeOptime2pCodes): make use of regIsSpecial
6702         * added lots of debugging output (commented out)
6703         * src/pic/rallloc.c (deassignLRs): prevent operand registers
6704           from being reused as result UNLESS it is known to work
6705
6706 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
6707
6708         * support/Util/dbuf.h: include <stddef.h> for size_t
6709         * .version: changed to version 2.5.2
6710
6711 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
6714
6715 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6716
6717         * src/hc08/gen.c (genMinus): fixed bug #1241835,
6718           (genModOneByte): removed needless psha/pula
6719
6720 2005-07-22 Raphael Neider <rneider AT web.de>
6721
6722         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
6723           have PIC14 handled like PIC16, fixes broken pic14 linker calls
6724         * src/pic/gen.c (resolveIfx): do not "invent" labels
6725         * (genSkipc): changed to positive logic
6726         * (genSkipCond): removed as no longer needed
6727         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
6728           backport from PIC16
6729         * (genLeftShift): check operands are in different registers
6730         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
6731           INCF does not update CARRY...
6732         * src/pic/main.c: fixed _linkCmd
6733         * src/pic/pcode.c (unlinkpCode): added inactive code
6734         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
6735           alive (do not assign result and operand overlapping registers)
6736
6737 2005-07-22 Raphael Neider <rneider AT web.de>
6738
6739         * src/pic/device.c (dump_sfr): replaced register declaration with
6740           call to emitSymbolToFile() to avoid duplicate symbols
6741         * (assignRelocatableRegisters): do not declare external symbols
6742         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
6743           right (take size of type, not etype)
6744         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
6745         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
6746         * (packRegsForAccUse): disabled assignment of WREG as
6747           the result reg to prevent occurence of just fixed #1235003,
6748           fixes #1242954
6749         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
6750           symbols (avoids duplicate symbols in .asm file)
6751         * (pic14emitRegularMap): use emitSymbolToFile()
6752         * src/pic/gen.c (aopOp): fixed spillLocation handling
6753         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
6754         * (genDataPointerSet): removed unneccessary variables/output
6755
6756 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
6757
6758         * as/mcs51/lkarea.c: enlarged codemap for banked memory
6759         * device/lib/mcs51/crtbank.asm: added # to 0x0F
6760
6761 2005-07-21 Raphael Neider <rneider AT web.de>
6762
6763         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
6764           architecture cannot handle them efficiently, fixes bug #1235003
6765         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
6766           check for empty sets before using them (fixes bug #1232190)
6767
6768 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
6769
6770         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
6771           (lnksect2): generate warnings for memory overlap
6772         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
6773           constseg to set the name of these segments so you can instruct the linker
6774           to place them in banks
6775         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
6776         * src/SDCCglobl.h: added MODEL_HUGE to enum,
6777           added code_seg and const_seg to options
6778         * src/SDCCglue.c (emitMaps): use options.const_seg,
6779           (createInterruptVect): put interrupt vectors in segment HOME,
6780           (glue): put HOME before static segment and put the main glue in HOME,
6781           (glue): use options.code_seg
6782         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
6783         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
6784           these segments so you can instruct the linker to place them in banks
6785           (linkEdit): use code_loc for HOME segment which should be the first
6786           segment in code memory now
6787         * src/SDCCmem.c: fixed more stuff like bug 1238386
6788         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
6789           (changePointer): don't change function pointers to code pointers for
6790           banked functions,
6791           (compareType): added exceptional check for banked function pointers
6792         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
6793         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
6794           after static in code memory
6795         * src/mcs51/gen.c: added aopLiteralLong prototype,
6796           (aopForSym): use getSize for functions,
6797           (genCall): generate banked calls over one trampoline __sdcc_banked_call
6798           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
6799           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
6800           the segment,
6801           (genPcall): use call for literal function pointers and generate banked
6802           calls over the one trampoline so there's only one place for the user to
6803           modify according to his/hers hardware,
6804           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
6805           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
6806         * src/mcs51/main.c: added keyword banked,
6807           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
6808         * support/Util/SDCCerr.c,
6809         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
6810           needed for passing the bank and address to the trampoline
6811         * device/lib/mcs51/crtbank.asm: added for bankswitching
6812         * device/lib/mcs51/Makefile: added crtbank
6813
6814 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6815
6816         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
6817           for fields at offset 0 of a struct or union as reported
6818           on 2005-07-07 in the developer mailing list.
6819
6820 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
6821
6822         * src/SDCCmem.c: fixed bug 1238386
6823
6824 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6825
6826         * src/mcs51/peeph.def: added labelrefcounting for peepholes
6827           (patch #1144962), added peephole 300, enabled 259.x
6828         * doc/sdccman.lyx: removed screenshot and provided link instead
6829
6830 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6831
6832         * doc/sdccman.lyx: added section about debugging with ddd
6833         * doc/figures/ddd_example.eps: screenshot of debugging session
6834
6835 2005-07-04 Raphael Neider <rneider AT web.de>
6836
6837         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
6838           like CODE pointers, fixes #1115683
6839         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
6840           call, fixes bugs #1232211, #1228110,
6841           fixed wrong casts to pCodeFlow from pCodeInstructions
6842
6843 2005-07-04 Raphael Neider <rneider AT web.de>
6844
6845         * src/pic/gen.c (popGet): changed assert to allow for
6846           bit operands
6847         * (popGetAddr): changed signature to provide
6848           an additional index, patched all call sites
6849         * (genCmpEq): handle literal-like operands correctly
6850         * (genAddrOf): added sanity checks on __code/__data pointers
6851         * (genAssign): added handling of symbols from __code section
6852         * (gencjne): do not generate code for comparisons whose result
6853           is neither stored nor used, fixes bug #1171114
6854         * (AccLsh, AccRsh): operate on operand instead of WREG
6855         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
6856           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
6857           by known count
6858         * rewrote complete shift-by-literal logic, commented unused
6859           functions out
6860         * (genConstPointerGet): get multiple bytes (if result size > 1),
6861           fixed handling of non-immediate addresses
6862         * (genPointerGet): handle CODE pointers like CONST pointers
6863         * (genpic14Code): insert C-SRC lines as Cource-pCodes
6864         * ({aop,op}_isLitLike): NEW, single place to decide whether an
6865           operand is to be treated as a literal or not
6866         * (mov2w,genPcall,genCmpEq),
6867           src/pic/genarith.c: use aop_isLitLike() to decide between
6868           literal/register contents
6869         * (addSign): added missing offset
6870         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
6871           only emit comment in debug-mode,
6872           use {aop,op}_isLitLike throughout the file
6873         * src/pic/glue.c: fix initializers for pointers (work in progress)
6874         * src/pic/pcode.c (get_op): honor index on _const symbols
6875         * ({reset,dump}pCodeStatistics): NEW, estimate code size
6876         * (dumppBlock): added pCode size estimation
6877         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
6878           check for IS_SYMOP before OP_SYMBOL'ing
6879         * fixed indentation, compacted switch-statements
6880         * (allocReg): find free register and allocate it instead of
6881           allocating new registers all the time
6882         * (deassignLRs): prevent POINTER_GET's from being assigned the same
6883           registers as its operands (necessary only for multibyte GETs)
6884
6885 2005-07-01 Raphael Neider <rneider AT web.de>
6886
6887         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
6888           debugging .asm-output macros FENTRY + FEXIT
6889         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
6890           way... I wonder...
6891         * (emitpComment): NEW, printf to pCode
6892         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
6893           offset handling
6894         * (popGetAddr): NEW, variant of popGet to access an immediates
6895           high(er) bytes instead of the n'th byte of memory they reference,
6896           replaced popGet with popGetAddr where neccessary
6897         * (genDataPointerGet): reactivated and fixed implementation
6898         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
6899           accesses
6900         * (genDataPointerSet): fixed multibyte assignments
6901         * (genpic14Code): fixed --i-code-in-asm handling
6902         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
6903         * (genPlus): fixed index-out-of-bounds error
6904         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
6905         * src/pic/ralloc.c: added debugging output macro FENTRY2
6906         * (spillThis): fixed indentation, enbraced for-body for clarity
6907         * (rematStr): commented out as now unused
6908         * (regTypeNum): commented out special spill case (overwrites
6909           arbitrary values)
6910         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
6911
6912 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
6913
6914         * doc/sdccman.lyx: documented sfr16/sfr32,
6915           added example for using storage class with function pointers
6916         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
6917
6918 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
6919
6920         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
6921         * device/lib/_itoa.c,
6922         * device/lib/_ltoa.c: optimized codesize
6923         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
6924           but don't know how to suppress the double warning.
6925         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
6926         * support/Util/SDCCerr.c,
6927         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
6928
6929 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
6930
6931         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
6932           fixed old K&R prototypes
6933         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
6934         * device/lib/_gptrget.c,
6935         * device/lib/_gptrgetc.c,
6936         * device/lib/_gptrput.c: changed versions for new memory indicator values,
6937           also new versions for small generic pointers and banked generic pointers
6938         * src/port.h: added const_name
6939         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
6940         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
6941         * src/SDCCcse.c (findPrevIc): check all associative operators
6942         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
6943         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
6944         * src/SDCCmem.c: updated comments,
6945           set far-space to 0 for pdata, results in optimized code
6946         * src/SDCCmem.h: added macro CONST_NAME
6947         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
6948           moving the info into the highest bits, see also gptrget/gptrput
6949         * src/src.dsp: added sdcc.ico to project files
6950         * src/avr/gen.c (genCast): fixed bug 0x%d
6951         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
6952         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
6953           relation between ptr_type and DCL_TYPE,
6954           (genCast): fixed bug 0x%d
6955         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
6956           (CODE)" for const_name
6957         * src/hc08/gen.c (genCast): fixed bug 0x%d
6958         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
6959           (hc08_port): added "CONST (CODE)" for const_name
6960         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
6961           (aopForRemat, adjustArithmeticResult): disconnected direct relation
6962           between ptr_type and DCL_TYPE,
6963           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
6964           operand* and took AOP() inside function so sfr-ness can be checked,
6965           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
6966           new prototype,
6967           (genFunction, genEndFunction): optimized stack setup,
6968           (genMinus): optimized for literals with ending zeroes (in bytes),
6969           (genCast): fixed bug 0x%d
6970         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
6971           (mcs51_port): added "CONST (CODE)" for const_name
6972         * src/mcs51/peeph.def: made rule 226 more generic
6973         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
6974         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
6975         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
6976         * src/z80/main.c (z80_port): added NULL for const_name,
6977           (gbz80_port): added NULL for const_name
6978         * support/regression/tests/bug663539.c,
6979         * support/regression/tests/sfr16.c: new tests
6980
6981 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6982
6983         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
6984
6985 2005-06-24 Raphael Neider <rneider AT web.de>
6986
6987         * device/lib/pic16/libdev/pic18f[68][567]20.c:
6988           corrected typos...
6989         * device/include/pic16/signal.h: added USBIF
6990           and SIG_USB
6991
6992 2005-06-24 Raphael Neider <rneider AT web.de>
6993
6994         * device/lib/pic16/libdev/pic18f2455.c,
6995           device/include/pic16/pic18f2455.h: NEW
6996         * device/include/pic16/pic18fregs.h,
6997           device/lib/pic16/pics.all,
6998           src/pic16/device.c: added 18f2455
6999         * device/lib/pic16/libdev/pic18f[68][567]20.c,
7000           device/include/pic16/{pic18f[68][567].h,usart.h}:
7001           replaced MULTIPLE_USARTS define with more relaible
7002           compatibility sfrs (for USART access)
7003
7004 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
7005
7006         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
7007           and the output asm file line is printed on two lines.
7008
7009 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7010
7011         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
7012           BGT, BLE, BHI, and BLS instructions
7013         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
7014           genCmpEq): removed
7015         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
7016           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
7017           fixes bug #1216342
7018         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
7019
7020 2005-06-15 Raphael Neider <rneider AT web.de>
7021
7022         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
7023         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
7024         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
7025           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
7026           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
7027
7028 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7029
7030         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
7031           Marcel Telka in bug #1215704
7032
7033 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
7034
7035         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
7036           located in shared memory bank.
7037
7038 2005-05-31 Raphael Neider <rneider AT web.de>
7039
7040         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
7041           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
7042           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
7043
7044 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
7045
7046         * device/lib/_strncpy.c: fixed the fix
7047
7048 2005-05-26 Raphael Neider <rneider AT web.de>
7049
7050         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
7051           initializers with \0, bug #1208187
7052         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
7053           intializers with \0, bug #1208187
7054
7055 2005-05-26 Raphael Neider <rneider AT web.de>
7056
7057         * src/pic16/glue.c (pic16_printIvalChar): fixed string
7058           initializers with \0, bug #1208187
7059         * src/pic16/main.c (_process_pragma): added sanity checks
7060           for stack position and size, emit warnings when appropriate
7061
7062 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
7063
7064         * device/lib/_strncpy.c: fixed not filling with \0
7065
7066 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7067
7068         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
7069           createFunction),
7070         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
7071           compound_statement),
7072         * src/SDCCsymt.h,
7073         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
7074
7075 2005-05-24 Raphael Neider <rneider AT web.de>
7076
7077         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
7078
7079 2005-05-24 Raphael Neider <rneider AT web.de>
7080
7081         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
7082           TRISE definitions, closes bug #1162453
7083
7084 2005-05-22 Raphael Neider <rneider AT web.de>
7085
7086         * src/pic16/main.c (_process_pragma): check for missing
7087           arguments to pragmas code and udata
7088         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
7089           consistency fixes to match other headers (thanks to Jim Paris)
7090         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
7091
7092 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
7093
7094         * src/SDCCicode.c (isOperandEqual): fixed missing ;
7095
7096 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
7097
7098         * support/regression/tests/bug1198642.c: new test
7099         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
7100         * src/SDCCcse.c (findPrevIc): added comment, please have a look
7101         * support/scripts/resource.h,
7102         * support/scripts/resource.rc,
7103         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
7104         * support/scripts/sdcc.ico: added 32x32 icon
7105
7106 2005-05-18 Raphael Neider <rneider AT web.de>
7107
7108         * device/lib/pic16/libdev/pic18f*.c,
7109         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
7110           keywords to "__sfr" and "__at (X)"
7111         * device/include/pic16/pic18fregs.h: added pic18f4520
7112         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
7113           #1203088 (MPLAB compatibility)
7114
7115 2005-05-17 Raphael Neider <rneider AT web.de>
7116
7117         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
7118         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
7119         * device/lib/pic16/pics.all: added new devices
7120         * src/pic16/device.c: added support for pic18f4520
7121
7122 2005-05-16 Raphael Neider <rneider AT web.de>
7123         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
7124         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
7125         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
7126           convenience function for bit access
7127
7128 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7129
7130         * device/lib/printf_large.c: fixed bug 1193299
7131         * support/regression/tests/bug1057979.c: added test %3.3s
7132
7133 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7134
7135         * device/include/mcs51/8051.h,
7136         * device/include/mcs51/8052.h: made parseable with lint
7137         * device/include/mcs51/lint.h: added include file for (sp)lint
7138         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
7139         * doc/cdbfileformat.lyx,
7140         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
7141
7142 2005-05-14 Raphael Neider <rneider AT web.de>
7143
7144         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
7145         * device/lib/pic16/libc/stdlib/itoa.c (new)
7146         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
7147         * device/lib/pic16/libio/Makefile: exclude subdir according to
7148           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
7149         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
7150         * src/pic16/gen.c (genFunction): prevent annoying warning
7151         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
7152           nameclashes on BeOS
7153         * support/cpp2/cppmain.c (cpp_output_string): new
7154         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
7155           fixes bug 1116802
7156
7157 2005-05-13 Borut Razem <borut.razem AT siol.net>
7158
7159         * src/SDCCmain.c (linkEdit): fixed bug 1195202
7160
7161 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7162
7163         * .version: changed to version 2.5.1; back to bleeding edge development
7164
7165 2005-05-11 Borut Razem <borut.razem AT siol.net>
7166
7167         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
7168           generate PDF version 1.3 documents
7169
7170 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7171
7172         * .version: changed to version 2.5.0
7173
7174 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7175
7176         * doc/sdccman.lyx: updated weblinks, index and smaller updates
7177
7178 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7179
7180         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
7181         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
7182         well as many smaller updates.
7183         * .version: changed to version 2.5.0-pre1
7184
7185 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7186
7187         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
7188
7189 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
7190
7191         * support/regression/tests/bug1185672.c: added
7192         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
7193           bug 1185672
7194         * src/mcs51/gen.c (genCall): added comments, made it look safer
7195         * src/mcs51/gen.c (genEndFunction): simplified
7196
7197 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
7198
7199         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
7200
7201 2005-04-14 Borut Razem <borut.razem AT siol.net>
7202
7203         * fixed bug 1045046 - SIGSEGV with really simple code?:
7204           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
7205           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
7206
7207 2005-04-14 Borut Razem <borut.razem AT siol.net>
7208
7209         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
7210           src/pic16/device.h: temporarily disabled experimental #inline pragma
7211           for 2.5.0 release
7212
7213 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
7214
7215         * device/include/z80/stdio.h,
7216         * device/include/z80/string.h: removed these highly incomplete files so
7217           SDCC can use the default ones in device/include/
7218
7219 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7220
7221         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
7222         gcc warning.
7223         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
7224         fix sdcpp warnings.
7225
7226 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7227
7228         * device/include/malloc.h: removed redundant __reentrant prototypes
7229         * device/lib/_mullong.c: added working xstack variant in asm (C version
7230           doesn't pass regression tests)
7231         * device/lib/bpx.c: used __data and made bpx char for mcs51
7232         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
7233           (createFunction): fixed bug with xstackPtr
7234         * src/SDCCcse.c: corrected comments
7235         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
7236           (killDeadCode, eBBlockFromiCode): removed unused code
7237         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
7238           corrected comments
7239         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
7240           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
7241           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
7242           (genModOneByte): fixed warning in MSVC
7243         * src/mcs51/main.c (): added comments
7244         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
7245
7246 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
7247
7248         * src/SDCCmain.c (linkEdit): oops, changed one line too many
7249
7250 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
7251
7252         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
7253
7254 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
7255
7256         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
7257         characters arrays of larger size than the declared one.
7258
7259 2005-04-10 Borut Razem <borut.razem AT siol.net>
7260
7261         * src/pic/gen.c (genInline),
7262           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
7263           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
7264           (findNextInstruction), (findPrevInstruction),
7265           (findInstructionUsingLabel),
7266           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
7267         * src/pic/pcode.c (findLabel): added missing '\n'
7268         * src/src.dsp: added SDCCdwarf2.c to the project
7269
7270 2005-04-09 Borut Razem <borut.razem AT siol.net>
7271
7272         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
7273
7274 2005-04-08 Raphael Neider <rneider AT web.de>
7275
7276         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
7277           into the chain after a given one) and mergeDefmapSymbols (combine
7278           defmap entries for each symbol per pcode)
7279         * (createDefmap): have defmap entries merged in the end
7280         * (defmapReplaceSymRef): split defmap entries covering two accesses to
7281           a symbol before replacing one access type's symbol, merge symbols in
7282           the end (replacement symbol might already have an entry)
7283         * (assignValnums): keep reference to written WREG intact
7284
7285 2005-04-08 Raphael Neider <rneider AT web.de>
7286
7287         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
7288           Alpha)
7289
7290 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
7291
7292         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
7293         bytes
7294
7295 2005-04-07 Raphael Neider <rneider AT web.de>
7296
7297         * device/include/pic16/usart.h: added compatibility defines for
7298           devices with more than one USART
7299         * device/include/pic16/pic18f[68][567]20.h: activated above defines
7300
7301 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7302
7303         * device/lib/Makefile.in: updated for port specific include
7304
7305 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7306
7307         * support/regression/ports/mcs51/spec.mk: added mcs51 include
7308
7309 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
7310
7311         * device/include/8051.h,
7312         * device/include/8052.h,
7313         * device/include/at89S8252.h,
7314         * device/include/at89c55.h,
7315         * device/include/at89x051.h,
7316         * device/include/at89x51.h,
7317         * device/include/at89x52.h,
7318         * device/include/mcs51reg.h,
7319         * device/include/reg51.h,
7320         * device/include/reg764.h,
7321         * device/include/regc515c.h,
7322         * device/include/sab80515.h: (re)moved these 12 files
7323         * device/include/mcs51/8051.h,
7324         * device/include/mcs51/8052.h,
7325         * device/include/mcs51/at89S8252.h,
7326         * device/include/mcs51/at89c55.h,
7327         * device/include/mcs51/at89x051.h,
7328         * device/include/mcs51/at89x51.h,
7329         * device/include/mcs51/at89x52.h,
7330         * device/include/mcs51/mcs51reg.h,
7331         * device/include/mcs51/reg51.h,
7332         * device/include/mcs51/reg764.h,
7333         * device/include/mcs51/regc515c.h,
7334         * device/include/mcs51/sab80515.h: and added them here
7335
7336 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
7337
7338         * device/include/stdarg.h: changed SDCC specific keywords to double
7339           underlined form.
7340         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
7341           mcs51 and ds390.
7342         * device/include/hc08/mc68hc908gp32.h,
7343         * device/include/hc08/mc68hc908jb8.h,
7344         * device/include/hc08/mc68hc908jkjl.h,
7345         * device/include/hc08/mc68hc908qy.h: fixed comments
7346         * device/include/mcs51/README: updated
7347         * device/include/mcs51/c8051f120.h: added PINRSF
7348         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
7349         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
7350           amidst code. Also inline is not supported.
7351
7352 2005-04-06 Raphael Neider <rneider AT web.de>
7353
7354         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
7355         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
7356           callers stack/frame pointers
7357
7358 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
7359
7360         * device/include/pic16/usart.h: added, missing in previous commit,
7361         * device/include/pic16/adc.h: fixed typo,
7362         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
7363         commit,
7364         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
7365         <p18fxxx.inc>
7366         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
7367         uninitialized because a bug appears with gplink
7368         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
7369         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
7370         complains for unrecognised option
7371
7372 2005-04-05 Raphael Neider <rneider AT web.de>
7373
7374         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
7375           structs as well (using memcpy)
7376         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
7377           on ISRs (GOTO has no label)
7378         * src/pic16/device.h: added OF_OPTIMIZE_DF
7379         * src/pic16/main.c: added compiler switch --optimize-df to enable the
7380           new data flow analysis/optimization
7381         * src/pic16/pcode.c: added (prototypes for and implementation of)
7382           dataflow analysis functions, fixed pCodeInstructions' inCond and
7383           outCond values, made RCALL a branch instruction
7384         * (pic16_unlinkpCode): keep C line if possible
7385         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
7386           C line moved if possible
7387         * (pic16_getRegFrompCodeOp): NEW, improved version of...
7388         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
7389           to use new pic16_getRegFrompCodeOp (works for more SFRs)
7390         * (pic16_BuildFlow): fixed skip instructions with label (did not start
7391           new flow)
7392         * (pic16_getJumptabpCode): NEW, needed in...
7393         * (LinkFlow): fixed handling of jumptables, calls and conditional
7394           branches
7395         * (pic16_InsertCommentAfter): NEW
7396         * (pic16_pCodeReplace): made verbose and flow preserving
7397         * (AnalyzeFlow): added call to data flow analysis
7398         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
7399         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
7400         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
7401
7402 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7403
7404         * src/SDCCast.c (decorateType): fixed bug #1105626
7405
7406 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
7407
7408         * device/include/asm/pic16/features.h,
7409         * pic18f*.h headers,
7410         * device/include/pic16/adc.h,
7411         * device/include/pic16/delay.h,
7412         * device/include/pic16/i2c.h,
7413         * device/include/pic16/malloc.h,
7414         * device/include/pic16/stdio.h,
7415         * device/include/pic16/stdlib.h,
7416         * device/include/pic16/string.h,
7417         * device/lib/pic16/libc/stdio/printf_tiny.c,
7418         * device/lib/pic16/libc/stdio/printf_small.c,
7419         * device/lib/pic16/libc/stdio/strmgpsim.c,
7420         * device/lib/pic16/libc/stdio/strmmssp.c,
7421         * device/lib/pic16/libc/stdio/strmusart.c,
7422         * device/lib/pic16/libc/stdio/vfprintf.c,
7423         * device/lib/pic16/libc/stdlib/ltoa.c,
7424         * device/lib/pic16/libc/stdlib/putchar.c,
7425         * device/lib/pic16/libc/stdlib/x_ftoa.c,
7426         * device/lib/pic16/libc/stdlib/memchrpgm.c,
7427         * device/lib/pic16/libc/stdlib/memchrram.c,
7428         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
7429         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
7430         * device/lib/pic16/libio/adc/adcbusy.c,
7431         * device/lib/pic16/libio/adc/adcread.c,
7432         * device/lib/pic16/libio/adc/adcsetch.c,
7433         * device/lib/pic16/libio/usart/ubaud.c,
7434         * device/lib/pic16/libio/usart/ubusy.c,
7435         * device/lib/pic16/libio/usart/udrdy.c,
7436         * device/lib/pic16/libio/usart/uopen.c,
7437         * device/lib/pic16/libio/usart/uputc.c,
7438         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
7439         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
7440         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
7441         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
7442         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
7443         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
7444         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
7445         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
7446         specific keywords to double underlined form,
7447         * device/lib/pic16/libc/Makefile.rules,
7448         * device/lib/pic16/libsdcc/Makefile.rules,
7449         * device/lib/pic16/libm/Makefile,
7450         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
7451         to compile with C standard set in Makefile.common
7452         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
7453         rand.c and crc.c in compilation process,
7454         * device/lib/pic16/libsdcc/int/divuint.c,
7455         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
7456         `c' from signed to unsigned,
7457         * device/lib/pic16/startup/crt0.c,
7458         * device/lib/pic16/startup/crt0i.c,
7459         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
7460         keywords to double underlined form, bug fixes in _do_cinit function
7461         which prevented the correct initialization of the .idata segment,
7462         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
7463         core to enter a infinite loop
7464         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
7465
7466 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7467
7468         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
7469
7470 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7471
7472         * device/include/Makefile.in: add support for hc08 subdirectory
7473         * device/include/hc08/: new subdirectory
7474         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
7475         Lucas Loizaga, thanks!
7476         * device/include/hc08/mc68hc908qy.h,
7477         * device/include/hc08/mc68hc908gp32.h,
7478         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
7479         their own directory. Changed internal macro names to use the compiler
7480         reserved namespace. Changed SDCC specific keywords to double
7481         underlined form.
7482         * device/include/math.h,
7483         * device/include/malloc.h,
7484         * device/include/stdarg.h,
7485         * device/include/stdbool.h
7486         * device/include/string.h,
7487         * device/include/tinibios.h,
7488         * device/include/ds400rom.h,
7489         * device/include/8051.h,
7490         * device/include/8052.h,
7491         * device/include/80c51xa.h,
7492         * device/include/at89c55.h,
7493         * device/include/at89S8252.h,
7494         * device/include/at89x51.h,
7495         * device/include/at89x52.h,
7496         * device/include/ds80c390.h,
7497         * device/include/reg764.h,
7498         * device/include/regc515c.h,
7499         * device/include/sab80515.h,
7500         * device/include/mcs51/c8051f000.h,
7501         * device/include/mcs51/c8051f018.h,
7502         * device/include/mcs51/c8051f020.h,
7503         * device/include/mcs51/c8051f040.h,
7504         * device/include/mcs51/c8051f060.h,
7505         * device/include/mcs51/c8051f120.h,
7506         * device/include/mcs51/c8051f300.h,
7507         * device/include/mcs51/c8051f310.h,
7508         * device/include/mcs51/c8051f320.h,
7509         * device/include/mcs51/c8051f330.h,
7510         * device/include/mcs51/c8051f350.h,
7511         * device/include/z180.h: Changed SDCC specific keywords to double
7512         underlined form.
7513
7514 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
7515
7516         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
7517         18F4455,
7518         * (pic16_assignConfigWordValue): disable testing of configuration
7519         register value with config mask,
7520         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
7521         function with port->fun_prefix,
7522         * (genFunction): when generating a naked interrupt function never
7523         create an absolute segment placed in interrupt vector address, place
7524         the actual interrupt function at IVA instead, when an interrupt
7525         function is generated with unspecified interrupt then do not create
7526         the absolute section,
7527         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
7528         code for generating a call to generic pointer get/put function with
7529         a call to function pic16_callGenericPointer(),
7530         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
7531         the call to the generic pointer get/put functions with prefixing the
7532         function name with port->fun_prefix,
7533         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
7534         * src/pic16/main.c (_process_pragma): prefix function with
7535         port->fun_prefix,
7536         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
7537         calling assembler, old 18Fxxxx macro is deprecated,
7538         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
7539         PC_ASMDIR in while condition,
7540         * (findInstruction): add PC_ASMDIR in while condition,
7541         * (buildCallTree): prefix main with port->fun_prefix,
7542         * (pic16_pCode2str): fixed bug that didn't emit the memory access
7543         identifier for variable with banked access in instructions BTFSS,
7544         BTFSC, BCF, BSF, BTG
7545         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
7546         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
7547         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
7548         perform optimization when enviroment variable NO_REG_OPT is set,
7549         * (insideLRBlock): NEW, return 1 if register is inside an
7550         INF_LOCALREGS block,
7551         * (RemoveRegFromLRBlock): remove a register that is completely
7552         eliminated by register optimization, but it is still left in local
7553         register store/restore in/from stack block,
7554         * (Remove2pcodes): after removing register, check to see if it
7555         should be removed from local register store/restore in/from stack
7556         block,
7557         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
7558         DUMMY_READ_VOLATILE,
7559
7560         * device/include/pic16/adc.h: minor prototype modifications and
7561         update,
7562         * device/include/pic16/malloc.h: added GPL notice various
7563         modifications,
7564         * device/include/pic16/stdint.h: NEW, standard header for ints
7565         * device/include/pic16/delay.h: NEW, header for delay functions,
7566         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
7567         delay1mtcy,
7568         * device/include/pic16/signal.h: NEW, header providing helper macros
7569         for implementing signal handlers,
7570         * device/include/pic16/stdio.h: added prototypes for functions,
7571         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
7572         prototypes for stdin and stdout, added macro PUTCHAR to
7573         automatically implement putchar function prototype,
7574         * device/include/pic16/usart.h: modified and updated USART library,
7575         * device/lib/pic16/libio/adc/,
7576         * device/lib/pic16/libio/i2c: some modifications to improve library
7577         performance,
7578         * device/lib/pic16/libc/stdio/: modifications for the new printf*
7579         family of functions,
7580         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
7581         family of functions and other sources,
7582         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
7583         of the PIC18Fxx[28] devices,
7584         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
7585         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
7586         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
7587         _do_cinit function, because the previous failed when local variables
7588         where not placed in the same memory bank,
7589         * device/lib/pic16/libsdcc/char/: various modifications to improve
7590         library performance,
7591         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
7592         information on the new functions of the c library and more...
7593
7594 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7595
7596         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
7597
7598 2005-03-26 Raphael Neider <rneider AT web.de>
7599
7600         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
7601           if condition == CARRY)
7602         * (genCmp): adapted to new genSkipc semantics
7603         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
7604           on rIfx (genCmp was broken)
7605
7606 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7607
7608         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
7609         * src/z80/main.c (_keywords[]),
7610         * src/SDCCglobal.h (struct options),
7611         * src/SDCC.y,
7612         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
7613         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
7614         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
7615         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
7616         always available in leading double underscore form. The C99 support is
7617         mostly missing, but it's a start.
7618         * support/regression/tests/bug-227710.c: fixed nonconforming use of
7619         reserved identifier "__data".
7620
7621 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
7622
7623         * src/mcs51/peeph.def: fixed bug 1170013
7624
7625 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
7626
7627         * device/include/mcs51reg.h: fixed bug 842007
7628
7629 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7630
7631         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
7632         last time.
7633
7634 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7635
7636         * src/port.h (struct PORT),
7637         * src/avr/ralloc.c (avr_assignRegisters),
7638         * src/avr/main.c,
7639         * src/ds390/ralloc.c (ds390_assignRegisters),
7640         * src/ds390/main.c,
7641         * src/hc08/ralloc.c (hc08_assignRegisters),
7642         * src/hc08/main.c,
7643         * src/mcs51/ralloc.c (mcs51_assignRegisters),
7644         * src/mcs51/main.c,
7645         * src/pic/ralloc.c (pic14_assignRegisters),
7646         * src/pic/main.c,
7647         * src/pic16/ralloc.c (pic16_assignRegisters),
7648         * src/pic16/main.c,
7649         * src/xa51/ralloc.c (xa51_assignRegisters),
7650         * src/xa51/main.c,
7651         * src/z80/ralloc.c (z80_assignRegisters),
7652         * src/z80/ralloc.h,
7653         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
7654         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
7655         * src/SDCCcse.h,
7656         * src/SDCCdflow.c (computeDataFlow),
7657         * src/SDCCdflow.h,
7658         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
7659         * src/SDCCloop.h,
7660         * src/SDCCcflow.c (*),
7661         * src/SDCCcflow.h,
7662         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
7663         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
7664         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
7665         immedDom() returning wrong block; probably fixes bug #1160833)
7666
7667 2005-03-20 Borut Razem <borut.razem AT siol.net>
7668
7669         * support/scripts/inc2h.pl: WIN32 port
7670
7671 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
7672
7673         * device/lib/makefile.in: added abs.c and labs.c
7674
7675 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
7676
7677         * device/include/stdint.h: added
7678         * device/lib/abs.c: added
7679         * device/lib/labs.c: added
7680         * device/include/stdlib.h: added abs() and labs() prototypes
7681         * device/lib/libsdcc.lib: added abs and labs
7682         * device/include/float.h,
7683         * device/lib/_fsmul.c,
7684         * device/lib/printf_fast.c,
7685         * device/lib/printf_tiny.c: updated comments
7686
7687 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7688
7689         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
7690         bug #1164313
7691
7692 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7693
7694         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
7695         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
7696
7697 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
7698
7699         * device/lib/printf_large.c: removed inline assembly for portability and
7700           readability. Use printf_fast if speed or size are more important.
7701         * src/pic16/gen.c: removed conditions around use of DEBUGpc
7702         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
7703
7704 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
7705
7706         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
7707         prevent compiler warning
7708
7709 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
7710
7711         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
7712         moved to level 0 and declared as static. Also they are explicit
7713         placed in access bank. This was necessery because some times they
7714         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
7715         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
7716         optimizations. Currently only compare to unsigned char is implemented,
7717         * src/pic16/gen.c: added fReturnIdx array,
7718         * (struct resolvedIfx) is moved to gen.h and made public,
7719         * (struct _G): added sregsAlloc and sregsAllocSet fields,
7720         * (aopForSym): added an optimization to directly store in stack of
7721         the operand of a SEND iCode,
7722         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
7723         but as registers instead (AOP_REG) using the fReturnIdx array,
7724         * (pic16_freeAsmop): remove the freed register from the
7725         _G.sregsAlloc field,
7726         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
7727         a compare of 'WREG',
7728         * (pic16_popGetTempRegCond): changed function prototype, now
7729         function takes also a bitVector argument v which holds the current
7730         set of registers that are allocated for stack access by aopForSym,
7731         registers allocated in aopForSym for accessing stack symbols are not
7732         any more part of the functions usedRegs field,
7733         * (genCall): some times aopOp is called for a stack variable to be
7734         send, aopForSym might perform the push, if this is true make sure
7735         that genCall doesn't push the variable twice by testing _G.resDirect,
7736         * (genFunction): changed testing for unspecified interrupt number
7737         from 256 to INTNO_UNSPEC,
7738         * modified selection scheme of frame pointer generation. Previously
7739         if function did use local registers a frame pointer was generated,
7740         now a frame pointer is generated only if function has arguments
7741         (that need PLUSW2 register access), or has stack arguments, or the
7742         compiler is not instructed to omit the frame pointer,
7743         * (genEndFunction): before restoring local registers that were saved
7744         in the function preamble, also restore the registers that *might*
7745         have been allocated for stack access,
7746         * (genRet): removed some old comments,
7747         * (genCmp, the active (RN's) version): added a call to the
7748         pic16_genCmp_special function to perform the compare with a more
7749         robust and optimized way,
7750         * (genInline): a feature has been added in inline code generation,
7751         which allows a wildcard variable substitution when writing inline
7752         assembly. Code is incomplete and experimental therefore undocumented,
7753         * (genCast): changed order of aopOp for result and right to allow
7754         aopForSym to directly load the result if possible,
7755         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
7756         perform an optimized compare on some selected special occasions,
7757         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
7758         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
7759         generate an IVT any more,
7760         * src/pic16/main.c (pic16_optionsTable): added command line option
7761         --optimize-cmp,
7762         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
7763         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
7764         macros,
7765         * src/pic16/NOTES: Raphael Neider added in list of active developers
7766         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
7767         jumptable_end to prevent bug #,
7768         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
7769         inCond and outCond fields,
7770         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
7771         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
7772         turn off register spilling,
7773         * (packRegsForOneUse): synced with other ports' versions although it
7774         is not used currently,
7775         * (pic16_packRegisters): added an optimization while reading
7776         structure bitfields, some registers may be saved (malloc code is
7777         decreased by 80 bytes)
7778
7779 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
7780
7781         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
7782         left is a bitfield, if yes, then don't optimize assignment. Perhaps
7783         this can be optimized more?
7784
7785 2005-03-10 Raphael Neider <rneider AT web.de>
7786
7787         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
7788           genNearPointerGet): (hopefully) fixed access to bitfields via
7789           pointers (p->bitN = x; and x = p->bitN; failed)
7790
7791 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
7792
7793         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
7794
7795 2005-03-09 Raphael Neider <rneider AT web.de>
7796
7797         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
7798
7799 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
7800
7801         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
7802         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
7803           (regTypeNum): set REG_BIT type if necessary
7804         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
7805         * support/regression/tests/critical.c: check bug 1144613
7806
7807 2005-03-02 Raphael Neider <rneider AT web.de>
7808
7809         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
7810
7811 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7812
7813         * src/avr/ralloc.c (serialRegAssign),
7814         * src/ds390/ralloc.c (serialRegAssign),
7815         * src/hc08/ralloc.c (serialRegAssign),
7816         * src/mcs51/ralloc.c (serialRegAssign),
7817         * src/pic/ralloc.c (serialRegAssign),
7818         * src/pic16/ralloc.c (serialRegAssign),
7819         * src/xa51/ralloc.c (serialRegAssign),
7820         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
7821
7822 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
7823
7824         * src/SDCCast.c (decorateType): fixed bug 1124787
7825
7826 2005-02-20 Hubert Sack <sack AT digiplan.de>
7827         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7828
7829         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
7830         patch #1121755
7831
7832 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7833
7834         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
7835         to keep the correct label reference count when adding/removing references
7836         to labels. A peephole file using this is appended to patch #1144962.
7837
7838 2005-02-14 Raphael Neider <rneider AT web.de>
7839
7840         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
7841         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
7842         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
7843           retrievals of result operand's value on assignment
7844
7845 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
7846
7847         * device/include/pic16/string.h: modified prototype for memccpy()
7848         to memccpy(void *, void *, char, size_t)
7849         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
7850         check whether to omit frame pointer or not,
7851         * (genInline): convert all occurences of "\n" to LF in inline
7852         assembler blocks, this helps formatting the inline text,
7853         * (pic16_loadFSR0): modified prototype,
7854         * (genNearPointerGet, genNearPointerSet): reorganization of code,
7855         removed some 8051 legacy code,
7856         * (genPackBits): enabled handling bitfields exceeding one byte in size,
7857         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
7858         before allocating temporary registers in functions,
7859
7860 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
7861
7862         * support/regression/tests/bitvars.c: corrected the "fix"
7863
7864 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
7865
7866         * support/regression/tests/bitvars.c,
7867         * support/regression/tests/bitwise.c,
7868         * support/regression/tests/rotate.c: "fixed" problems on Alpha
7869
7870 2005-02-10 Raphael Neider <rneider AT web.de>
7871
7872         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
7873           different size for Alpha
7874         * src/pic16/gen.c (genCmpEq) : improved compare with 0
7875
7876 2005-02-09 Raphael Neider <rneider AT web.de>
7877
7878         * src/SDCC.lex(doPragma) : save and restore warning options as well
7879           (also added new stack plus clone- and copyAndFreeSDCCERRG())
7880         * have #pragma less_pedantic set the errorlevel to WARNING
7881           (fixes #1117001)
7882         * (cloneOptimize) : fixed wrong malloc's size
7883         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
7884           facilitate correct handling of #pragma (save|restore)
7885
7886 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
7887
7888         * src/mcs51/gen.c: removed non-standard C nameless struct/union
7889
7890 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
7891
7892         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
7893
7894 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
7895
7896         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
7897
7898 2005-02-02 Raphael Neider <rneider AT web.de>
7899
7900         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
7901         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
7902         * (pic16_storeForReturn): fixed to allow returning function pointers
7903         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
7904         * device/include/pic16/{stddef.h,stdbool.h}: added
7905
7906 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
7907
7908         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
7909
7910 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
7911
7912         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
7913         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
7914          appeared to be required
7915
7916 2005-01-31 Borut Razem <borut.razem AT siol.net>
7917
7918         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
7919           include/mcs51 and include/z80 directories to the package
7920
7921 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7922
7923         * src/hc08/gen.c (genFunction): fixed bug #1112752
7924
7925 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7926
7927         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
7928
7929 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7930
7931         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
7932
7933 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
7934
7935         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
7936
7937 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
7938
7939         * device/include/c8051fxxx.h: removed these 6 files
7940         * device/include/mcs51/c8051fxxx.h: added these 11 new files
7941
7942 2005-01-26 Raphael Neider <rneider AT web.de>
7943
7944         * src/pic16/gen.c (genAssign): fixed assignment from longs
7945           in codespace (were cut to three bytes)
7946         * (genDummyRead): implemented (except for CODESPACE...),
7947           fixed bug #1108575
7948         * src/pic16/glue.c (emitStatistics): beautified
7949         * device/lib/pic16/libm/Makefile: added include path
7950
7951 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7952
7953         * src/z80/gen.c (aopPut): fixed bug #1103902
7954
7955 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7956
7957         * device/lib/expf.c: fixed bug #1095792
7958
7959 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
7960
7961         * device/lib/pic16/libm: added Math library sources
7962
7963 2005-01-24 Raphael Neider <rneider AT web.de>
7964
7965         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
7966           to enable upcast to pCodeOpReg2 (there is no type tag to
7967           differenciate the two and pic16_popGet2p cast into PCOR2)
7968         * src/pic16/main.c (_process_pragma): fixed another malloc bug
7969           (sizeof(sectNames) changed to sizeof(sectName))
7970           Both patches fix segfaults under MinGW.
7971
7972 2005-01-23 Raphael Neider <rneider AT web.de>
7973
7974         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
7975           Safe_[mc]?alloc()'ed variables
7976         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
7977           of (byte sized) temporaries (assign them to WREG for now)
7978         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
7979           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
7980           this might fix SIGSEGVs on MinGW...
7981         * src/SDCCopt.c (killDeadCode): restored original behaviour
7982           (volatile operands might get thrown away though)
7983
7984 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
7985
7986         * src/pic16/gen.c: fixed bug #1106975,
7987         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
7988         pointer update, INTCON is saved, global interrupts are disabled and
7989         restored after updateing TOS.
7990         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
7991         * added function attribute 'shadowregs' to take advantage of shadow
7992         registers,
7993         * added function attribute 'wparam' as an alternative to the wparam
7994         pragma,
7995         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
7996         user declares a non-ISR function as 'shadowregs',
7997         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
7998
7999 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
8000
8001         * .version: bumped version number to 2.4.8
8002         * device/lib/pic16/pics.all: list of PIC18F devices supported by
8003         pic16 port,
8004         * device/lib/pic16/libio/i2c/: I2C module support library,
8005         * device/include/pic16/i2c.h: I2C support library header,
8006         * device/lib/pic16/libc/stdio/: standard IO support sources,
8007         * (printf_small.c): printf_small() source, supports float print,
8008         * (printf_tiny.c): printf_tiny() source, does not support floats,
8009         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
8010         enable global optimizations for entire library source, other
8011         Makefiles in the source tree are also modified to reflect this,
8012         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
8013         function,
8014         * doc/sdccman.lyx: updated to reflect new changes,
8015         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
8016         sym->onStack if-case,
8017         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
8018         sbit, idata, _idata, xdata, _xdata,
8019         * added pragma library, to link an external library, (see doc),
8020         * removed command line options, --pomit-config-words, --pomit-ivt,
8021         --pleave-reset-vector,
8022         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
8023         when calling assembler to reflect memory model used, also define
8024         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
8025         reflect stack model used,
8026         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
8027         on stack return NULL,
8028
8029 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8030
8031         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
8032           of the operands is volatile. Fixes #1020220
8033
8034 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
8035
8036         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
8037         * (OptimizeRegUsage): make sure that there is really no other flow where
8038           the first pCode is used
8039
8040 2005-01-22 Raphael Neider <rneider AT web.de>
8041
8042         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
8043           to fix #1106967 (pCode->seq are not set up correctly)
8044
8045 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8046
8047         * src/SDCCglue.c (glue): make sure code area is declared before the
8048         static initialization area.
8049
8050 2005-01-21 Raphael Neider <rneider AT web.de>
8051
8052         * device/lib/Makefile.in: fixed test for pic16 install dir
8053         * device/lib/pic16/*/Makefile*: modified compile flags to enable
8054           optimizations
8055         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
8056           added --optimize-goto compiler switch and pragma wparam documentation
8057         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
8058         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
8059           and PRODH closing bug #1071770 (peephole optimizer)
8060
8061 2005-01-19 Raphael Neider <rneider AT web.de>
8062
8063         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
8064           cmdLine buffers (used when calling sdcpp...) are large enough
8065           (MAX_PATH=256 truncates arguments leading to system halts when
8066           used in MinGW...)
8067         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
8068         * (genUminus): rewritten to for efficiency
8069         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
8070           used uninitialized in some cases)
8071         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
8072           copy the third byte from the int -- now assumes 0x80 (data memory)
8073         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
8074           operands (genAddLit expects the iCode's operands to swapped as
8075           well), fixed leftover bytes (crashed for short left operands)
8076         * (pic16_genMinusDec): performance improvements, removed false
8077           PIC14 emitSKPNCs
8078         * (pic16_genMinus): fixed to cope with differently sized operands
8079         * src/pic16/glue.c (pic16_glue): added new banksel optimization
8080           for --obanksel > 1
8081         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
8082         * src/pic16/graph.[ch]: implementation of directed graphs, used by
8083           new banksel optimization
8084         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
8085           analysis for temporary registers (segfaults...)
8086         * src/pic16/peeph.def: added rule
8087
8088 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
8089
8090         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
8091         which converts a float number to its ASCII representation
8092         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
8093         functions to convert the fractional and integer part of a float to ASCII,
8094         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
8095         realloc.c): added _MALLOC_SPEC to explicit place variables in data
8096         ram
8097         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
8098         _STATMEM macros,
8099         * device/include/pic16/adc.h: added GPL info,
8100         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
8101         a pCodeOp as tested operand,
8102         * (genNearPointerGet): optimized bit testing, does not use
8103         intermediate register for bit value, test directly instead with
8104         BTFSS, BTFSC, works only for single bits,
8105         * (genpic16Code): dump the name of the iCode in the asm,
8106         * src/pic16/ralloc.c (decodeOp): removed static declaration and
8107         renamed to pic16_decodeOp,
8108         * (serialRegAssign): do not allocate a temporary register for iCode
8109         sequences that test a single bit for 1/0
8110
8111 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
8112
8113         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
8114         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
8115         access stack and frame pointers. They are initially assigned to
8116         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
8117         accessing SFRs. Updated all occurences of modification of stack or
8118         frame pointer in gen.c and pcode.c,
8119         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
8120         assigning of a literal value to pointers,
8121         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
8122         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
8123         selected
8124
8125 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8126
8127         * doc/sdccman.lyx: update documentation about stack pragma, added
8128         some info for stack memory models
8129
8130 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8131
8132         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
8133
8134 2005-01-08 Raphael Neider <rneider AT web.de>
8135
8136         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
8137           udata sections to fix bug #1097823
8138
8139 2005-01-05 Raphael Neider <rneider AT web.de>
8140
8141         * src/pic16/gen.c (genGenericShift): added handling of differently
8142           sized left operand and result
8143
8144 2005-01-04 Raphael Neider <rneider AT web.de>
8145
8146         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
8147         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
8148           to hold the condition bit)
8149         * added new version of genCmp (old code available via #define)
8150         * added new version of genShiftLeft/genShiftRight in a generic
8151           way, now supports shifting by negative values
8152         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
8153           shiftCount (expected by genGenericShift)
8154         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
8155         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
8156           dump
8157         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
8158           is an invalid literal too...)
8159
8160 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
8161
8162         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
8163         from Raphael Neider,
8164         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
8165         for 8-bit literals. This fixes some literal operands which are sign
8166         extended to 16-bits ints when instruction needs only 8-bits.
8167
8168 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
8169
8170         * device/lib/logf.c: added mcs51 assembly version
8171         * device/lib/expf.c: added mcs51 assembly version
8172         * device/lib/_logexpf.c: new shared asm code for expf and logf
8173         * device/include/math.h: add defines for assembly math library
8174         * device/lib/Makefile.in: build new _logexpf.c
8175         * device/lib/libfloat.lib: use new _logexpf.c
8176
8177 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8178
8179         * src/pic/device.c
8180         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
8181           device types which have less than 0x7f registers.
8182
8183 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
8184
8185         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
8186
8187 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8188
8189         * device/lib/printf_fast.c: only build on supported arch.
8190         * device/lib/printf_tiny.c: only build on supported arch.
8191         * device/lib/printf_fast_f.c: only build if asm float lib
8192         * device/lib/_fsget1arg.c: only build if asm float lib
8193         * device/lib/_fsget2args.c: only build if asm float lib
8194         * device/lib/_fsnormalize.c: only build if asm float lib
8195         * device/lib/_fsreturnval.c: only build if asm float lib
8196         * device/lib/_fsrshift.c: only build if asm float lib
8197         * device/lib/_fsswapargs.c: only build if asm float lib
8198         * device/include/stdio.h: don't provide print_fast,
8199           print_fast_f, print_tiny prototypes if --xstack used
8200
8201 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
8202
8203         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
8204         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
8205           to the SOURCES
8206
8207 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
8208
8209         * device/lib/printf_fast_f.c: same as printf_fast, but
8210           with floating point enabled
8211         * device/lib/printf_fast.c: minor tweaks
8212         * device/include/stdio.h: add printf_fast_f
8213
8214 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8215
8216         * src/SDCCmain.c: make --float-reent default for mcs51
8217         * device/lib/_fsadd.c: added mcs51 assembly version
8218         * device/lib/_fssub.c: added mcs51 assembly version
8219         * device/lib/_fsmul.c: added mcs51 assembly version
8220         * device/lib/_fsdiv.c: added mcs51 assembly version
8221         * device/lib/_fseq.c: added mcs51 assembly version
8222         * device/lib/_fsneq.c: added mcs51 assembly version
8223         * device/lib/_fsgt.c: added mcs51 assembly version
8224         * device/lib/_fslt.c: added mcs51 assembly version
8225         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
8226         * device/lib/Makefile.in: add _fscmp to build
8227         * device/lib/libfloat.lib: add _fscmp to build
8228
8229 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
8230
8231         * device/lib/_fs2slong.c: added mcs51 assembly version
8232         * device/lib/_fs2sint.c: added mcs51 assembly version
8233         * device/lib/_fs2schar.c: added mcs51 assembly version
8234         * device/lib/_fs2ulong.c: added mcs51 assembly version
8235         * device/lib/_fs2uint.c: added mcs51 assembly version
8236         * device/lib/_fs2uchar.c: added mcs51 assembly version
8237         * device/lib/_slong2fs.c: added mcs51 assembly version
8238         * device/lib/_sint2fs.c: added mcs51 assembly version
8239         * device/lib/_schar2fs.c: added mcs51 assembly version
8240         * device/lib/_ulong2fs.c: added mcs51 assembly version
8241         * device/lib/_uint2fs.c: added mcs51 assembly version
8242         * device/lib/_uchar2fs.c: added mcs51 assembly version
8243         * device/include/float.h: added #define to select asm vs c
8244
8245 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
8246
8247         * device/lib/printf_fast.c: improvements to float output
8248         * device/include/float.h: add defines for assembly float library
8249         * device/lib/_fsget1arg.c: receive 1 float arg
8250         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
8251         * device/lib/_fsnormalize.c: normalize a float
8252         * device/lib/_fsreturnval.c: return float, various helper routines
8253         * device/lib/_fsrshift.c: right shift a float's mantissa
8254         * device/lib/_fsswapargs.c: swap 2 floats
8255         * device/lib/Makefile.in: build these 6 new files for mcs51
8256         * device/lib/libfloat.lib: add these 6 files to the library
8257
8258 2004-12-26 Borut Razem <borut.razem AT siol.net>
8259
8260         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
8261           built by gcc 3.4.2
8262
8263 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
8264
8265         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
8266           and fully reentrant and register bank neutral.
8267         * device/lib/printf_fast.c: added float (not enabled by default),
8268           added compact/slower integer (also not enabled by default),
8269           improved size/speed of fast integer code, other minor changes
8270         * device/include/stdio.h, device/lib/Makefile.in,
8271           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
8272
8273 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
8274
8275         * src/pic16/pcode.c: declaring variables other than at the start of a
8276           block is not supported in C by VC6.
8277
8278 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
8279
8280         * applied a previous patch from Raphael Neider that wasn't included
8281         in the previous commits, which fixes infinite loops within jumptable
8282         improvements,
8283         * made some fixes that previous patches introduced
8284
8285 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
8286
8287         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
8288         that fixes an issue with AOP_PCODE asmop's offset,
8289         * (pic16_popCopyReg): update instance field too,
8290         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
8291         function of pic port,
8292         * (genCmp, genAnd, genAssign),
8293         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
8294
8295 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
8296
8297         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
8298         variables initial values to idata section,
8299         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
8300         variables in some functions. This utilizes parmBytes field of iCode
8301         structure to hold the offset of the variable in stack. (might be
8302         able to use the stack field too?)
8303         * applied patch from Raphael Neider # ### , # ###
8304         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
8305         variable initial values in idata section,
8306         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
8307         for static variables with initial value
8308         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
8309         applied fix in while loop from Raphael Neider.
8310
8311 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
8312
8313         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
8314         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
8315         * src/ds390/ralloc.c (serialRegAssign): spill bits
8316         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
8317         * support/Util/SDCCerr.c,
8318         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
8319         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
8320         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
8321
8322 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
8323
8324         * device/include/sdcc-lib.h: inserted LGPL, added includes
8325           asm/ds390/features.h and asm/mcs51/features.h
8326         * device/include/asm/default/features.h,
8327         * device/include/asm/gbz80/features.h,
8328         * device/include/asm/z80/features.h: added empty _AUTOMEM
8329           and _STATMEM
8330         * device/include/asm/ds390/features.h,
8331         * device/include/asm/mcs51/features.h: added files with defines for
8332           _AUTOMEM and _STATMEM indicating automatic and static storage class
8333         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
8334         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
8335         * src/SDCCicode.c (geniCodeCast),
8336         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
8337         * src/SDCCloop.c (loopInduction): removed unused variable lr
8338         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
8339           to convertToFcall to include char modulo (RFE 1065037), added check
8340           if left operand is unsigned and use abs of literal value
8341         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
8342           as it doesn't work after conversion from peephole.def to peephole.rul
8343         * src/mcs51/gen.c (toBoolean): added check for size,
8344           (genModOneByte): optimized code for signed char modulo a literal
8345           power of 2 (thanks to Hubert Sack),
8346           (genRRC): removed unnecessary "clr c",
8347           (genRLC): replaced "add a,acc" with cheaper "rlc a"
8348         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
8349           jump optimization,
8350           swapped rules 256.c and 256.d,
8351           extended 256.d by using new multiple checks (thanks Erik),
8352           added rules 256.e and 256.f,
8353           updated rule 261.a and 261.b to new generated code
8354         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
8355
8356 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8357
8358         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
8359           induction related bugs, including first part of bug #1074377
8360
8361 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
8362
8363         * applied patch from bug-report #1076292,
8364         * applied patches for genAnd and Goto-optimizations for Raphael
8365         Neider,
8366         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
8367         dump a less iCode information,
8368         * src/pic16/device.h (pic16_options_t): added field debgen,
8369         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
8370         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
8371         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
8372         puclic,
8373         * (various functions): added macros FENTRY and FENTRY2 to functions,
8374         to emit function prologue,
8375         * (various functions): fixed indentation,
8376         * (genNearPointerGet): fixed loading of FSR0,
8377         * (genPackBits): applied patch from Raphael Neider to fix updating
8378         of FSR0 and touching only the modified bits,
8379         * src/pic16/genarith.c (various functions): added macros FENTRY to
8380         emit function prologue in comments,
8381         * src/pic16/pcode.h: added functions debugf2, debugf3,
8382         * src/pic16/ralloc.c: partial fix for packForPush caused
8383         segmentation fault,
8384
8385 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8386
8387         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
8388           <stsp AT users.sourceforge.net> with reversed byte order
8389         * support/regression/tests/rotate.c: added (ds390 skips some tests)
8390
8391 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8392
8393         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
8394           bug #1074377
8395         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
8396         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
8397
8398 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8399
8400         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
8401
8402 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8403
8404         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
8405           conditions,
8406           (setFromConditionArgs): friendly operand parser for peephole rules,
8407           (operandBaseName, operandsNotRelated): new peephole condition
8408           "operandsNotRelated" -- similar to "operandsNotSame", but takes
8409           architecture specific register naming into account, handles n-way
8410           comparisons, and supports quoted literals
8411         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
8412
8413 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8414
8415         * src/mcs51/peeph.def: fixed bug #1076940
8416
8417 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
8418
8419         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
8420
8421 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8422
8423         Adding support for replacing ljmps with sjmps in jumptables
8424         generated for switch statements. For now you need to set the
8425         environment variable SDCC_SJMP_JUMPTABLE to enable this.
8426         Now 4 algorithms for mcs51 jumptable generation are used:
8427         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
8428         addresses loaded pc-relative for up to 112 cases and stack-pushing
8429         target addresses loaded with offset from dptr for up to 256 cases.
8430
8431         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
8432         * src/mcs51/main.c: adapted constants for switch table generation
8433         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
8434
8435 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
8436
8437         * device/lib/printf_large.c (_print_format): fixed bug 1073386
8438         * support/regression/tests/bug1057979.c: added test for bug 1073386
8439
8440 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8441
8442         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
8443         compilers
8444
8445 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
8446
8447         * src/pic16/device.h,
8448         * src/pic16/genarith.c,
8449         * src/pic16/glue.c,
8450         * src/pic16/main.c,
8451         * src/pic16/pcode.c: applied patches #1068154 and #1070213
8452
8453 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
8454
8455         Large cummulative patch for pic16 port.
8456         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
8457         to call when a stack overflow occurs,
8458         * (malloc.h): added CVS Id tag,
8459         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
8460         variable,
8461         * added libc directory. The current version of LibC contains string
8462         functions, ctype functions and macros and some functions of the
8463         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
8464         be extensively tested in the future. Standard disclaimer here.
8465         Library is not automatically build yet. But one can build it by
8466         invoking 'make' inside the libc directory.
8467         * added ADC library under libio. Preliminary version yet.
8468
8469         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
8470         * src/pic16/gen.c (aopForRemat): asmop size is filled by
8471         aopForRemat() now and not by pic16_aopOp(),
8472         * (pic16_popGetTempReg): removed warning messgae when allocating
8473         temporary registers, its a buggy feature and will be removed,
8474         * (pic16_popGet): set register instance field in AOP_CRY,
8475         * (pic16_outBitC): fixed for results in size greater than 1,
8476         * (genUminusFloat): fixed for pic16, ported code from mcs51,
8477         * (pic16_storeForReturn): optimized return of 0,
8478         * (genCmp): experimental code for new genCmp which uses PIC18's
8479         special compare&skip instructions. Initial tests fail some times
8480         with variables grater than 1 byte in size, so new code is disabled,
8481         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
8482         a single bit,
8483         * (genCast): began a fix to optimize the casting of a bit to another
8484         bit, now assigning a bitfield to another bitfield will fail, sorry,
8485         * src/pic16/main.c: disabled the use of lr-support feature,
8486         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
8487         * added some function prototypes, added function _debugf prototype,
8488         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
8489         bits with offset (case PO_GPR_BIT),
8490         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
8491         command line,
8492         * (isBankInstruction): modified to return 0 for no banking instruction,
8493         and 1 for banking instruction,
8494         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
8495         caused stop processing pCodes after a inline assembly block,
8496         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
8497         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
8498         registers when it shouldn't,
8499         * src/pic16/ralloc.c (allocReg): add preliminary support for
8500         supporting a limited set of temporary registers,
8501
8502 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8503
8504         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
8505           genDataPointerSet): ensure assignments always copy in MSB to LSB
8506           order,
8507           (loadRegFromAop): recognize CLRH optimization,
8508           (genFunction): optimize RECEIVE iCodes in reentrant functions
8509
8510 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8511
8512         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
8513           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
8514           selected.
8515         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
8516         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
8517           contiguous with data
8518
8519 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8520
8521         * device/lib/_gptrget.c (_gptrget),
8522         * device/lib/_gptrgetc.c (_gptrgetc),
8523         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
8524           instead of sjmp to ret
8525         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
8526           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
8527
8528 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
8529
8530         * .version: bumped version to 2.4.7
8531         * device/lib/_gptrget.c (_gptrget): is now _naked
8532         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
8533         * device/lib/_gptrput.c (_gptrput): is now _naked
8534         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
8535           (createFunction): fixed xstack
8536         * src/SDCCglue.c (emitMaps): set allocation required for bit area
8537         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
8538           or bit either,
8539           (geniCodeCritical): store original interrupt state in an iTemp bit
8540           var unless stack-auto
8541         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
8542         * src/SDCCmain.c (setIncludePath): added include/target to search path
8543         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
8544         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
8545           prototype,
8546           (processFuncArgs): put bit vars in bit area
8547         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
8548           unsaveRBank): fixed xstack,
8549           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
8550           (genFunction, genEndFunction): fixed xstack,
8551           (genAssign): optimization don't walk backwards through mem
8552         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
8553         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
8554         * support/regression/Makefile: also make library (for stack-auto) when
8555           making "all" and added "test-mcs51-xstack-auto"
8556         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
8557         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
8558         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
8559         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
8560         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
8561           make-library by MAKE_LIBRARY
8562         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
8563           regression tests for xstack
8564         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
8565         * support/regression/tests/critical.c: test for critical on mcs51
8566
8567 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8568
8569         * support/regression/ports/ucz80/spec.mk: use include and lib files from
8570           built version of sdcc instead of installed version
8571
8572 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
8573
8574         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
8575         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
8576           vprintf.c now
8577         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
8578         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
8579           WARNING: remove device/lib/build/z80/printf.o by hand when
8580           updating from previous build!
8581         * device/lib/z80/printf.c: updated comment
8582         * support/regression/tests/bug1057979.c: test all ports now
8583         * support/regression/tests/bug1065458.c: file added
8584
8585 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8586
8587         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
8588           *_start and *_end symbols for static functions
8589
8590 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
8591
8592         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
8593           and search crt0.o in all library paths,
8594           (setIncludePath): proper handling of --nostdinc,
8595           (setLibPath): proper handling of --nostdlib
8596         * support/regression/Makefile,
8597         * support/regression/ports/ds390/spec.mk,
8598         * support/regression/ports/gbz80/spec.mk,
8599         * support/regression/ports/hc08/spec.mk,
8600         * support/regression/ports/mcs51/spec.mk,
8601         * support/regression/ports/mcs51-large/spec.mk,
8602         * support/regression/ports/mcs51-stack-auto/spec.mk,
8603         * support/regression/ports/z80/spec.mk: use include and lib files from
8604           built version of sdcc instead of installed version
8605         * doc/sdccman.lyx: fixed typo in --nostdinc
8606
8607 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
8608
8609         * src/pic/pcode.c,
8610         * src/pic/device.c,
8611         * src/pic/ralloc.c,
8612         * src/pic/gen.c : added support to generate code for struct bit fields.
8613
8614 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
8615
8616         * as/xa51/xa_version.h,
8617         * device/include/errno.h,
8618         * device/include/regc515c.h,
8619         * device/lib/_itoa.c,
8620         * device/lib/_ltoa.c,
8621         * device/lib/ser_ir_cts_rts.c,
8622         * sim/ucsim/xa.src/glob.cc,
8623         * sim/ucsim/xa.src/inst_gen.cc,
8624         * sim/ucsim/xa.src/xa_bit.cc,
8625         * sim/ucsim/xa.src/xa_sfr.cc,
8626         * sim/ucsim/z80.src/inst_dd.cc,
8627         * sim/ucsim/z80.src/inst_fdcb.cc,
8628         * support/scripts/keil2sdcc.pl,
8629         * src/pic16/pic16.dsp,
8630         * src/pic16/pic16a.dsp: corrected cvs line endings
8631         * device/lib/printf_large.c: fixed bug 1057979
8632         * src/pic16/gen.c: fixed non-C standard code
8633         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
8634         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
8635         * support/regression/ports/mcs51/support.c: reload T1 asap
8636         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
8637           pdata use and clear idata startup behaviour
8638         * support/regression/tests/bug1057979.c: added
8639
8640 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
8641
8642         * device/examples/ds390/ow390/ad26.h,
8643         * device/examples/ds390/ow390/cnt1d.h,
8644         * device/examples/ds390/ow390/crcutil.c,
8645         * device/examples/ds390/ow390/ownet.h,
8646         * device/examples/ds390/ow390/owsesu.c,
8647         * device/examples/ds390/ow390/swt12.h,
8648         * device/examples/ds390/ow390/swtoper.c,
8649         * device/examples/ds390/ow390/temp10.h,
8650         * device/examples/ds390/ow390/thermodl.c,
8651         * device/examples/ds390/tinitalk/tinitalk.dsp,
8652         * device/examples/ds390/tinitalk/tinitalk.dsw,
8653         * device/examples/mcs51/clock/hw.h,
8654         * device/examples/mcs51/simple2/go.bat,
8655         * device/examples/serialcomm/windows/serial.h,
8656         * device/examples/xa51/dummy.c,
8657         * device/examples/xa51/hello.c,
8658         * device/include/80c51xa.h,
8659         * device/include/at89x051.h: corrected cvs line endings
8660
8661 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
8662
8663         * src/pic16/main.c (options): added command line --gstack, to trace
8664         stack over/under flows,
8665         * added pragma 'wparam' to allow passing first byte of function
8666         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
8667         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
8668         call to __gstack_test function and sets up the symbol as extern,
8669         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
8670         * popaop): added call to pic16_testStackOverflow,
8671         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
8672         wparamList list,
8673         * (genCall, genPcall): now all parameters are passed via stack
8674         except in functions that are pass to wparam pragma in which WREG is
8675         used too,
8676         * (genPcall): REENTRANT flag is checked to see if variable prototype
8677         contains reentrant keyword, don't call a non-reentrant function, via
8678         a reentrant function pointer or vice versa, functions are never
8679         passed via WREG,
8680         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
8681         D.Winkler,
8682         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
8683         SIGSEGV when accessing a NULL register stucture,
8684         * (pic16_printGPointerType): modified to handle UPPER modifier for
8685         function initializers, changed prototype of function to simpler one,
8686         * (pic16_printIvalFuncPtr): check to see if function is already
8687         added in externs list,
8688         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
8689         optimized a move from W to SFR with a move to the same register
8690         later after a CALL,
8691         * device/lib/pic16/debug: NEW directory, contains debug features
8692         which are enabled when linking with libdebug.lib, currently command
8693         line option --gstack enables stack pointer tracing for over/under
8694         flow, corresponding sources are in debug/gstack
8695
8696 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
8697
8698         * doc/sdccman.lyx: updated SDCC version,
8699         * (PIC16 port): update list of command line options,
8700         * src/pic16/device.h (structure pic16_options_t): added field gstack
8701         to enable stack overflow tracing on push/pops,
8702         * src/pic16/device.c (statistics structure): added statistics
8703         structure,
8704         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
8705         pic16_dump_int_registers): increase statistics counters for each
8706         * variable which is encountered
8707         * (pic16_dump_usection): emit each .udata variable to its own udata
8708         section,
8709         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
8710         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
8711         parameters via stack, otherwise use old scheme,
8712         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
8713         assembler output file,
8714         * src/pic16/main.c: added command line options --gstack to enable
8715         push/pop tracing for stack overflow,
8716         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
8717         instructions): added size of each instruction,
8718         * (pic16_countInstruction): estimate size of instructions in
8719         the_pFile list, inline assembly blocks are not counted,
8720         * (pic16_FixRegisterBanking): trace previous register usage, when
8721         banksel optimizations is greater than 0, don't emit a redudant
8722         banksel directive,
8723
8724 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
8725
8726         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
8727         * src/pic16/ralloc.c : applied same fix for pic16.
8728         * src/pic/gen.c : tidied it up a little.
8729
8730 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8731
8732         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
8733         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
8734
8735 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8736
8737         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
8738
8739 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8740
8741         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
8742         non-reentrant function __modsint in the interrupt function (thus
8743         corrupting math operations during serial I/O)
8744         * device/lib/ser_ir.c: as above, changed buffersize
8745         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
8746         256.c,d for zeroing
8747         * doc/Makefile: added option -t for rsync
8748
8749 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8750
8751         * src/SDCCast.h (struct ast),
8752         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
8753
8754 2004-10-20 Borut Razem <borut.razem AT siol.net>
8755
8756         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
8757         package
8758
8759 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
8760
8761         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
8762         makefile targets,
8763         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
8764         support functions to replace long sequences of MOVFF's from access
8765         bank registers to stack and vice versa,
8766         * src/pic16/device.h: added new field opt_flags, where optimization
8767         flags can be set to enable certain features,
8768         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
8769         * pBlock, (genFunction, genEndFunction): surroung loop for
8770         saving/loading used registers in stack with PC_INFO pCodes,
8771         INF_LREGS. Code in between can then be optimized by pCode optimizer
8772         to support function calls,
8773         * (genDataPointerSet): fixed bug which loaded float fields in
8774         structures with corrupt data,
8775         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
8776         in a standard way debug info on stderr. Feature used for developing
8777         and debugging only,
8778         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
8779         obsolete chunks of code,
8780         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
8781         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
8782         * pic16/src/pcode.c (pic16_newpCodeInfo,
8783         * (pic16_newpCodeOpLocalRegs),
8784         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
8785         feature,
8786         * (pic16_pCodeConstString): printing of the initial value of a
8787         symbol as a comment is inhibited since parsing was already done by
8788         copyStr and output is corrupt,
8789         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
8790
8791 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8792
8793         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
8794
8795 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
8796
8797         * as/mcs51/lkarea.c: removed old K&R style,
8798           (lnksect): changed check on boundary error,
8799           (lnksect2): changed check on boundary error,
8800           (lnksect2): extend XSTK to end of page if size = 1
8801         * as/mcs51/lkmain.c: removed old K&R style,
8802           (Areas51): create l_IRAM symbol
8803         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
8804         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
8805           model-mcs51-stack-auto, added model-mcs51-xstack-auto
8806         * device/lib/_mullong.c: added version to be compiled with xstack
8807         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
8808         * device/lib/mcs51/crtxclear.asm: clear pdata as well
8809         * device/lib/mcs51/crtxstack.asm: fixed comment
8810         * src/SDCCglue.c: maxInterrupts defaults to 0,
8811           (emitMaps): added pdata,
8812           (createInterruptVect): (re)moved default,
8813           (glue): added pdata,
8814           (glue): moved __start__xstack to XSTK with default size 1
8815         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
8816           and options.float_rent when options.stackAuto is set,
8817           (linkEdit): only write XDATA_NAME if provided on command line
8818         * src/SDCCmem.h,
8819         * src/SDCCmem.c: added pdata
8820         * src/port.h: added pdata_name to PORT
8821         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
8822           (saveRegisters, unsaveRegisters): removed usage of B,
8823           (genMinus): fixed accumulator clash,
8824           (genJumpTab): added comment, this needs another look
8825         * src/mcs51/gen.c: added check for "B in use" paranoia,
8826           added pushB() and popB()
8827         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
8828           chance
8829         * src/avr/main.c,
8830         * src/ds390/main.c,
8831         * src/hc08/main.c,
8832         * src/mcs51/main.c,
8833         * src/pic/main.c,
8834         * src/pic16/main.c,
8835         * src/xa51/main.c,
8836         * src/z80/main.c: (reset_regparms) made void parameter explicit and
8837           added PSEG (PAG,XDATA) or NULL to port specifier
8838         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
8839         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
8840           (_mcs51_genInitStartup): removed __start__xstack equ,
8841           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
8842         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
8843         * src/z80/gen.c (_rleAppend): fixed warnings
8844         * support/regression/tests/zeropad.c: added pdata test
8845         * .version: bumped to 2.4.6
8846
8847 2004-10-17 Borut Razem <borut.razem AT siol.net>
8848
8849         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
8850         as a part of nightly build
8851
8852 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
8853
8854         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
8855         WREG holds the first byte function parameters,
8856         * (aopForSym): take special case for symbols which are in FARSPACE
8857         but in CODESPACE too,
8858         * (assignResultValue): modified to take into account _G.useWreg,
8859         * (genCall): don't use wreg for parameter passing when function is
8860         declared as reentrant, too, added optimization INCF to stack
8861         pointer when stack parameter count is 1,
8862         * (genFunction, genEndFunction): refurnished and fixed to not using
8863         wreg for passing parameters when function has varargs or is
8864         reentrant, fixed bug with symbol name compare for generating
8865         functions in absolute address,
8866         * (pic16_storeForReturn): refurnished,
8867         * (genCmp): began writing a new version of the function, not ready
8868         yet, therefore it is disabled,
8869         * (genAssign): do not read code memory when assigning a function to
8870         a pointer function,
8871         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
8872         array of characters, not pointer,
8873         * (pic16initialComments): in debug mode emit an .ident directive for
8874         the assembler,
8875         * (_process_pragma): emit a new warning type (internal to pic16)
8876         when setting stack to default length, emit a similar warning when
8877         placing a function at absolute address and address is not word aligned
8878         * (_pic16_parseOptions): added 'return TRUE' statement,
8879         * (_pic16_linkEdit): if compiling a source, then add the source's
8880         file object, first in the list of objects to link,
8881
8882 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
8883
8884         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
8885         * src/pic/main.c : removed VC warning.
8886         * src/pic/gen.c : changed comment.
8887
8888 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
8889
8890         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
8891         reference to a deprecated symbol _GPTRREG was causing failure to
8892         link. Thanks G. M. Gallant for the info.
8893
8894 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
8895
8896         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
8897         comments for Bugs item #954788.
8898
8899 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
8900
8901         * src/pic16/device.c (pic16_dump_gsection,
8902         * pic16_groupRegistersInSection): handle symbols declared to be in
8903         access bank differently,
8904         * src/pic16/gen.c (struct _G): added field resDirect,
8905         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
8906         send values read from stack directly to result and don't allocate
8907         temporary values,
8908         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
8909         same registers,
8910         * (pic16_sameRegsOfs): NEW,
8911         * (freeAsmop): if _G.resDirect is set then do not mark registers as
8912         free because they were not allocated from temporary pool,
8913         * pic16_popRegFromString): workaround to fix a problem with
8914         allocating variables twice or never,
8915         * (genGenPointerGet): using PRODL instead of FSR0H,
8916         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
8917         instead of FSR0H,
8918         * (genAssign): take advantage of the _G.resDirect flag,
8919         * (genCast): around line 11844, use mov2f instead of directly
8920         MOVFF'ing between operands to account for literal values,
8921         * src/pic16/genutils.c: some new debug functions for gpsim have been
8922         added,
8923         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
8924         float with integer part only,
8925         * src/pic16/main.c (_process_pragma): handle pragma udata access to
8926         place variables in access bank
8927         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
8928         updated sources to reflect recent changes in gen.c
8929
8930 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
8931
8932         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
8933         sources that searched for headers in installation path, now the
8934         device/include/pic16 is used,
8935         * src/pic16/glue.c (pic16glue),
8936         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
8937         .line directives if not in debug mode, this suppresses assembler's
8938         warnings for ignored directives
8939
8940 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
8941
8942         * src/port.h: made reset_regparms prototype void parameter explicit.
8943         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
8944         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
8945         * doc/sdccman.lyx: documented warning disabling and how to use
8946           printf_large to make it print floats.
8947         * device/include/stdbool.h: NEW
8948         * device/lib/_atof.c,
8949         * device/lib/_divuint.c,
8950         * device/lib/_divulong.c,
8951         * device/lib/expf.c,
8952         * device/lib/printf_large.c,
8953         * device/lib/sincosf.c,
8954         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
8955         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
8956           a completely reentrant lib.
8957
8958 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
8959
8960         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
8961         * device/include/pic16/stdio.h: fixed bug with colon
8962
8963 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
8964
8965         * device/include/pic16/stdio.h,
8966         * device/include/pic16/stdlib.h,
8967         * device/include/pic16/math.h: NEW
8968         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
8969         declared as _naked to reduce overhead
8970         * device/lib/Makefile.in (target port-specific-objects-pic16):
8971         changed * to *.* so to ignore the CVS directory,
8972         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
8973         stacked variables back in stack,
8974         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8975         corruption
8976
8977 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
8978
8979         * .version: bumped version number to 2.4.5
8980         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
8981         * support/Util/SDCCerr.c (messages structure): added entry for
8982         W_POSSBUG2
8983
8984         Large cumulative patch for pic16 port and libraries.
8985         * device/include/pic16/sdcc-lib.h,
8986         * device/include/pic16/stdarg.h,
8987         * device/include/asm/pic16/features.h,
8988         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
8989         * device/include/pic16/float.h: changes reentrant keyword with
8990         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
8991         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
8992         updated target build-libraries to include objects from gptr,
8993         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
8994         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
8995         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
8996         all function headings,
8997         * src/SDCCmain.c: added global parameter userIncDirsSet,
8998         * (parseCmdLine): when option -I is encountered add directory to
8999         userIncDirsSet too,
9000         * src/version.awk: added space between control and long,
9001         * src/pic16/NOTES: added some notes for the port,
9002         * src/pic16/gen.c: added prototype for mov2fp function,
9003         * (fReturnpic16[]): properly named return value registers,
9004         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
9005         * (aopForSym): added code to handle symbols with onStack flag set,
9006         symbols onStack are allocated PTRSIZE bytes,
9007         * (aopFreeAsmop): handles special case where asmops are stack objects,
9008         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
9009         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
9010         added argument lock to trace flaws in allocating temporary registers
9011         when developing port,
9012         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
9013         * (pic16_popRegFromString): reenabled allocating a direct register
9014         from string,
9015         * (assignResultValue): various beautifications,
9016         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
9017         referenced function argument,
9018         * (genIpush): reenabled to allow stacked arguments, handles only
9019         ic->parmPush iCodes,
9020         * (genCall, genPcall): major changes to allow for variable argument
9021         functions, fixed a bug with falsely restoring stack pointer after
9022         returning from call,
9023         * (genFunction): pending code for critical function,
9024         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
9025         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
9026         * (genNearPointerGet): fixed bug with indirect reading, was always
9027         reading from INDF0
9028         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
9029         pointers,
9030         * (genAddrOf): rewrote code to take address of a stacked function parameter
9031         * (genCast): fixed casting to generic pointer type,
9032         * src/pic16/gen.h: added AOP_STA,
9033         * (struct asmop): added field stk,
9034         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
9035         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
9036         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
9037         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
9038         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
9039         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
9040         generic pointers,
9041         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
9042         and library paths,
9043         * (pic16_port structure): generic pointer size is set to 3,
9044         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
9045         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
9046         compiler warning,
9047         * src/pic16/ralloc.c (allocReg): prevent allocating register when
9048         operand is an iTemp,
9049
9050 2004-09-24 Martin Helmling <mh AT octo-soft.de>
9051
9052         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
9053         * debugger/mcs51/simi.c: addapt new syntax of s51
9054
9055 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
9056
9057         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
9058         * src/pic16/pcode.c: commented out some calls to free() in order to
9059         fix bug #989576,
9060
9061 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9062
9063         * src/SDCCicode.h,
9064         * src/SDCCicode.c (isiCodeInFunctionCall),
9065         * src/avr/ralloc.c (selectSpil),
9066         * src/pic/ralloc.c (selectSpil),
9067         * src/pic16/ralloc.c (selectSpil),
9068         * src/ds390/ralloc.c (selectSpil),
9069         * src/hc08/ralloc.c (selectSpil),
9070         * src/xa51/ralloc.c (selectSpil),
9071         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
9072         stack in the middle of a function call sequence (fixes bug #1020268)
9073         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
9074         costs associated with the minimum switch case.
9075
9076 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9077
9078         * src/SDCC.lex: fixed bug #1030549
9079
9080 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9081
9082         * src/SDCCcse.h (struct cseDef),
9083         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
9084         over a function call if the CSE is derived from a symbol whose
9085         address has been taken (fixes bug #1029883)
9086         * support/regression/tests/bug-1029883: a new regression test for
9087         this bug
9088
9089 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9090
9091         * src/hc08/gen.c (emitinline): fixed bug #1029778
9092         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
9093         to a cast object is no longer a syntax error ("fixes" bug #1030006,
9094         and starts toward RFE #905167)
9095
9096 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
9097
9098         * src/pic16/gen.c (mov2f): New function to move an operand to
9099         another without considering if it is a literal or a register,
9100         * (pic16_sameRegs): don't check if they are both AOP_REG,
9101         * (AccRsh): removed andmask=0 lines,
9102         * (genLeftShift): duplicated to be improved in future versions,
9103         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
9104         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
9105         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
9106         * (pic16initMnemonics): added initialization for POC_INFSNZW,
9107         * (insertBankSwitch): fixed inserting banksel directives algorithm
9108         for instructions that follow a skip instruction, this fixes a report
9109         for broken subtraction code generation,
9110         * src/pic16/ralloc.c (deassignLRs): do not free register if current
9111         iCode is a left op, just in case result and right share the same
9112         registers
9113
9114 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9115
9116         * src/hc08/main.c,
9117         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
9118         preservation of HX
9119         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
9120         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
9121         on 2004-09-12; it was buggy
9122
9123 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
9124
9125         * src/SDCCsymt.h: removed RESULT_CHECK
9126         * src/SDCCast.c,
9127         * src/SDCCglue.c,
9128         * src/SDCCval.c,
9129         * src/pic/glue.c,
9130         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
9131
9132 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
9133
9134         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
9135         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
9136         configuration values no more rejected by compiler, they are assigned
9137         to configuration registers with a warning message instead,
9138         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
9139         the for-loop so last conf register is emitted too,
9140         * (_pic16_initPaths): link library libsdcc.lib by default,
9141         * (_hasNativeMulFor): modified test for multiplication according to
9142         Raphael Neider's remarks. Integer multiplication is also done with
9143         support functions,
9144         * device/include/pic16/pic18fregs.h: corrected type error in while
9145         testing and including 18f6720 header file
9146
9147 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
9148
9149         * src/pic16/device.h (pic16_options): removed field use_crt,
9150         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
9151         until an optimization to handle single bits is added,
9152         * (pic16_loadFSR0): moved before genUnpackBits,
9153         * (genAnd): some white lines removed,
9154         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
9155         leave_reset flags in pic16_options when using crt modules,
9156
9157 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
9158
9159         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
9160           for bugs 898889 & 979599. Also used some safer print instructions.
9161
9162 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
9163
9164         * src/pic16/device.h (pic16_options_t): added field use_crt,
9165         crt_name, no_crt,
9166         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
9167         catch a probable future bug,
9168         * src/pic16/gen.c: aopIdx function commented out,
9169         * (genAssign): commented out old code which used aopIdx,
9170         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
9171         code, added if conditionals to take into account the --use-crt
9172         command line options,
9173         * src/pic16/main.c (pic16_optionsTable): added new command line
9174         options, --use-crt= and --no-crt,
9175         * (_pic16_linkEdit): now the proper crt object is added in the
9176         linker command line except than when --no-crt is specified,
9177         * src/pic16/pcode.c,
9178         * src/pic16/pcode.h: added some structures and functions for a new
9179         optimization scheme to compansate for instruction overhead between
9180         same iCodes, this scheme is currently under development and is not
9181         working in any way,
9182         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
9183         to && operator,
9184         * device/lib/pic16/startup/crt0i.c,
9185         * device/lib/pic16/startup/crt0iz.c: added global char variable
9186         __uflags to force the generation of an idata section
9187
9188 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
9189
9190         * doc/Makefile,
9191         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
9192         * doc/sdccman.lyx: updated sdcc version to 2.4.4
9193
9194 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9195
9196         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
9197         Frieder) and clarified the default code optimization mode
9198
9199 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9200
9201         * src/SDCC.lex (doPragma, process_pragma),
9202         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
9203         "opt_code_size", and "opt_code_balanced"
9204         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
9205         regrouped options by category, added support for category headers
9206         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
9207         and "--opt-code-size"
9208         * doc/sdccman.lyx: documented these new options and pragmas
9209         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
9210         preference into account
9211
9212 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9213
9214         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
9215           geniCodePreDec): Fixed bug 904237 by generating a warning
9216         * src/SDCCerr.h,
9217         * src/SDCCerr.c: added warning W_SIZEOF_VOID
9218
9219 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
9220
9221         * src/pic/device.c : When no max ram set validate full memory range.
9222         * src/pic/pcode.c,
9223         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
9224
9225 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
9226
9227         * device/lib/_gptrget.c,
9228         * device/lib/_gptrput.c: updated comment
9229         * device/lib/calloc.c,
9230         * device/lib/free.c,
9231         * device/lib/malloc.c,
9232         * device/lib/realloc.c: added LGPL, made them reentrant-safe
9233         * src/SDCCcse.c (cseBBlock),
9234         * src/SDCCicode.c (printOperand, geniCodeArray),
9235         * src/SDCCicode.h (struct operand): fixed bug 868103
9236         * support/regression/tests/bug-868103.c: added
9237         * src/SDCCast.c (searchLitOp),
9238         * src/SDCCcse.h (struct cseDef),
9239         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
9240         * src/SDCCicode.h (struct operand),
9241         * src/SDCCsymt.h (struct sym_link),
9242         * src/avr/gen.c (hasInc),
9243         * src/ds390/gen.c (hasInc),
9244         * src/hc08/gen.c (genPlusIncr, hasInc),
9245         * src/mcs51/gen.c (hasInc),
9246         * src/pic16/glue.c (pic16_printIvalChar),
9247         * src/pic16/ralloc.c (regWithIdx),
9248         * src/xa51/gen.c (hasInc) : removed warnings
9249         * src/SDCCast.c (createBlock): added comment ???
9250         * src/hc08/ralloc.c: updated comments
9251
9252 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9253
9254         * doc/sdccman.lyx: updated section on switch statements, added
9255         section about semaphore locking
9256         * doc/Makefile: added option -info for latex2html
9257         * device/lib/_gptrget.c,
9258         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
9259
9260 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9261
9262         * src/pic/device.h,
9263         * src/pic/device.c,
9264         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
9265          maxram is less than 0x100.
9266
9267 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
9268
9269         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
9270
9271 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9272
9273         * src/port.h,
9274         * src/mcs51/main.c,
9275         * src/ds390/main.c,
9276         * src/z80/main.c,
9277         * src/hc08/main.c,
9278         * src/pic/main.c,
9279         * src/pic16/main.c,
9280         * src/avr/main.c,
9281         * src/xa51/main.c
9282         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
9283         a jump table is the best form for a switch statement, including
9284         automatic insertion of missing cases to make the case range
9285         continuous. Developed in collaboration with Frieder Ferlemann.
9286
9287 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9288
9289         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
9290         accumulator result if it needs sign extension
9291
9292 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9293
9294         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
9295
9296 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9297
9298         * device/lib/gbz80/printf.c,
9299         * device/lib/z80/printf.c: removed define for NULL
9300
9301 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
9302
9303         * as/xa51/xa_link.c,
9304         * device/examples/ds390/ow390/ad26.c,
9305         * device/examples/ds390/ow390/cnt1d.c,
9306         * device/examples/ds390/ow390/counter.c,
9307         * device/examples/ds390/ow390/ds2480.h,
9308         * device/examples/ds390/ow390/ds2480ut.c,
9309         * device/examples/ds390/ow390/findtype.c,
9310         * device/examples/ds390/ow390/gethumd.c,
9311         * device/examples/ds390/ow390/owllu.c,
9312         * device/examples/ds390/ow390/ownetu.c,
9313         * device/examples/ds390/ow390/swt12.c,
9314         * device/examples/ds390/ow390/swtloop.c,
9315         * device/examples/ds390/ow390/temp.c,
9316         * device/examples/ds390/ow390/temp10.c,
9317         * device/examples/ds390/ow390/thermo21.c,
9318         * device/examples/ds390/ow390/tinilnk.c,
9319         * device/examples/ds390/ow390/tstfind.c,
9320         * device/examples/serialcomm/windows/serial.cpp,
9321         * device/examples/serialcomm/windows/test_serialcomm.cpp,
9322         * device/include/reg51.h: fixed line endings for cvs
9323
9324 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9325
9326         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
9327         packRegsForAccUse, packRegisters): new accumulator register
9328         packing algorithm
9329         * support/regression/ports/hc08/support.c (_putchar): suppress
9330         warning of unused variable
9331         * src/SDCCicode.c: added SWAP entry to codeTable
9332
9333 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
9334
9335         * device/lib/sprintf.c: forgot to add this file before previous commit
9336
9337 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
9338
9339         * src/pic16/gen.c (genPackBits): added operand right in function
9340         parameters, load result directly if p_type is POINTER (that is
9341         called by genNearPointerSet)
9342         * (genUnPackBits): added operand left in function parameters,
9343         * (genNearPointerGet, genNearPointerSet): prevent the loading of
9344         FSR0 if accessing bitfields,
9345
9346 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
9347
9348         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
9349           _print_format; updated printf, sprintf, vsprintf
9350         * device/include/asm/default/features.h: corrected comment/define
9351         * device/lib/Makefile.in: added sprintf.c
9352         * device/lib/libsdcc.lib: added sprintf module
9353         * device/lib/printf_large.c,
9354         * device/lib/vprintf.c,
9355         * device/lib/sprintf.c: totally refactored printf_large and vprintf
9356           into these 3 files
9357         * support/regression/Makefile: changed ALL_PORTS into a usefull default
9358         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
9359         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
9360           hc08 test
9361         * support/regression/tests/zeropad.c: define idata as data for hc08
9362
9363 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9364
9365         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
9366         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
9367         labels are referenced at least once (even if a reference is not found)
9368         * src/hc08/gen.c (emitcode): set isComment flag for comments
9369         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
9370         loads), rules 6a..6b (optimize jumps to return)
9371
9372 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9373
9374         * device/lib/acosf.c (acosf),
9375         * device/lib/asinf.c (asinf),
9376         * device/lib/atanf.c (atanf),
9377         * device/lib/ceilf.c (ceilf),
9378         * device/lib/cosf.c (cosf),
9379         * device/lib/coshf.c (coshf),
9380         * device/lib/cotf.c (cotf),
9381         * device/lib/fabsf.c (fabsf),
9382         * device/lib/floorf.c (floorf),
9383         * device/lib/log10f.c (log10f),
9384         * device/lib/logf.c (logf),
9385         * device/lib/sinf.c (sinf),
9386         * device/lib/sinhf.c (sinhf),
9387         * device/lib/sqrtf.c (sqrtf),
9388         * device/lib/tanf.c (tanf),
9389         * device/lib/tanhf.c (tanhf),
9390         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
9391         replaced all instances of "reentrant" in the library functions
9392         defined in math.h with this macro.
9393         * support/regression/tests/float_trans.c: reenabled test for hc08
9394
9395 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
9396
9397         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
9398         erroneously deleted
9399
9400 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9401
9402         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
9403         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
9404         multi-byte volatile operands are used
9405         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
9406         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
9407         initialization to area GSINIT0 so that it would always precede
9408         any static initializers in GSINIT
9409         * support/regression/tests/zeropad.c: fixed idata define for hc08
9410         * support/regression/tests/bug-927659.c,
9411         * support/regression/tests/float_trans.c: disabled tests for hc08
9412         pending missing library routines
9413         * .version: increased version number to 2.4.4 - hc08 port now passes
9414         regression tests
9415
9416
9417 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
9418
9419         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
9420         * Makefile.common.in,
9421         * as/Makefile,
9422         * as/hc08/Makefile.in,
9423         * as/mcs51/Makefile.in,
9424         * as/z80/Makefile.in,
9425         * debugger/mcs51/Makefile.in,
9426         * device/include/Makefile.in,
9427         * device/lib/Makefile.in,
9428         * doc/Makefile,
9429         * link/Makefile,
9430         * link/z80/Makefile.in,
9431         * packihx/Makefile.in,
9432         * sim/ucsim/main_in.mk,
9433         * sim/ucsim/avr.src/Makefile.in,
9434         * sim/ucsim/doc/Makefile.in,
9435         * sim/ucsim/gui.src/serio.src/Makefile.in,
9436         * sim/ucsim/hc08.src/Makefile.in,
9437         * sim/ucsim/s51.src/Makefile.in,
9438         * sim/ucsim/xa.src/Makefile.in,
9439         * sim/ucsim/z80.src/Makefile.in,
9440         * src/Makefile.in,
9441         * support/cpp2/Makefile.in,
9442         * support/librarian/Makefile,
9443         * support/makebin/Makefile: added DESTDIR to the install path proposed
9444         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
9445         * doc/sdccman.lyx: added DESTDIR documentation
9446
9447 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
9448
9449         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
9450         instruction for interrupt handlers, use fast returns when returning
9451         from high priority interrupts
9452
9453 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9454
9455         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
9456         code generation
9457         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
9458         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
9459         bugs, ported much of Bernhard's code from mcs51
9460         * src/mcs51/gen.c (genSend),
9461         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
9462         than one when calling a reentrant function
9463         * device/lib/_mullong.c: defined an alternate struct layout for big
9464         endian ports (hc08)
9465
9466 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9467
9468         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
9469         test
9470
9471 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9472
9473         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
9474         are sane and complete before asking the port its prefered parameter
9475         passing method (fixes bug #1017633)
9476         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
9477         and _ret3
9478
9479 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9480
9481         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
9482         problem in bitfields >= 8 bits.
9483
9484 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9485
9486         * src/SDCCsymt.c: undid changes that were not meant to be committed
9487
9488 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9489
9490         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
9491
9492 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
9493
9494         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
9495           copied and wrong bit got inverted
9496
9497 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9498
9499         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
9500         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
9501         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
9502         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
9503         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
9504         assignments to bitfields at known addresses
9505         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
9506         reads from bitfields at known addresses
9507         * src/hc08/ralloc.c (packRegisters),
9508         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
9509         genhc08Code): optimize pointer get values used as conditionals
9510         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
9511         and branch
9512
9513 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9514
9515         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
9516         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
9517         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
9518         as conditionals
9519
9520 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9521
9522         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
9523
9524 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9525
9526         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
9527         related problems
9528
9529 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
9530
9531         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
9532
9533 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9534
9535         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
9536         mcs51 port
9537
9538 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
9539
9540         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
9541
9542 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9543
9544         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
9545         cases use more compact code.
9546
9547 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
9548
9549         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
9550
9551 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9552
9553         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
9554
9555 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9556
9557         * src/SDCCsymt.h,
9558         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
9559         parameter of changePointer() from symbol* to sym_link*
9560         * src/SDCCast.c (decorateType): call changePointer() for CAST op
9561         * src/SDCCsymt.c (compareType): void* type is castable to other
9562         pointers, but not necesarily an exact match.
9563         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
9564         is no longer blindly treated as an exact match.
9565         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
9566
9567 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
9568
9569         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
9570
9571 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
9572
9573         * src/pic/gen.c,
9574         * src/pic/pcode.c,
9575         * src/pic/ralloc.h,
9576         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
9577
9578 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
9579
9580         * src/pic/device.c,
9581         * src/pic/device.h,
9582         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
9583
9584 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9585
9586         * src/mcs51/gen.c (emitcode): fixed bug #992819
9587
9588 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
9589
9590         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
9591           there's no need to make it worse
9592
9593 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9594
9595         * src/mcs51/ralloc.c (deassignLR),
9596         * src/ds390/ralloc.c (deassignLR),
9597         * src/hc08/ralloc.c (deassignLR),
9598         * src/z80/ralloc.c (deassignLR),
9599         * src/pic/ralloc.c (deassignLR),
9600         * src/pic16/ralloc.c (deassignLR),
9601         * src/avr/ralloc.c (deassignLR),
9602         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
9603         rlivePoint): fixed another part of bug #971834
9604
9605 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9606
9607         * src/z80/main.c: enabled "critical" keyword
9608         * src/z80/mappings.i,
9609         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
9610         functions (fixes bug #979646)
9611         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
9612
9613 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9614
9615         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
9616           such as c:\mydir.
9617
9618 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
9619
9620         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
9621           doesn't disable too much optimizations
9622
9623 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9624
9625         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
9626
9627 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
9628
9629         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
9630
9631 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
9632
9633         * src/pic/gen.c tidied up tabs
9634         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
9635         * src/pic/main.c tidied up tabs
9636         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
9637         * src/pic/pcoderegs.c tidied up tabs
9638         * src/pic/ralloc.c tidied up tabs
9639
9640 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
9641
9642         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
9643         to S_FIXED for pic16 port and when symbol is not in level 0,
9644         allocate for S_REGISTER storage class and pic16 port, too,
9645         * src/pic16/device.h: prototype for checkSym,
9646         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
9647         * (pic16_assignConfigWordValue): test the value and the mask to
9648         validate that the value is suitable for the configuration word,
9649         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
9650         collect extern declared symbols, don't emit symbol twice, check
9651         first if symbol is in publics set first,
9652         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
9653         * added command line '--fstack' which enables an experimental
9654         feature for stack access, too buggy to be used yet...
9655         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
9656         * (pic16_allocDirReg): when register has storage class S_REGISTER
9657         allocate in pic16_dynAccessRegs,
9658         * device/include/pic16/pic18f????.h: modified configuration word
9659         naming convention, words started as CONFIG0H but should be CONFIG1H
9660
9661 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
9662
9663         * device/include/mcs51reg.h: fixed bug 970993
9664
9665 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
9666
9667         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
9668         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
9669         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
9670         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
9671         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
9672         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
9673           error/warning numbers,
9674           added function setWarningDisabled()
9675         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
9676         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
9677           _memcmp.c _memmove.c calloc.c realloc.c free.c
9678         * support/regression/tests/malloc.c: added tests for new functionality
9679         * support/regression/tests/zeropad.c: added tests for truncated initializers
9680           and initialized char arrays starting with '\x0'
9681         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
9682
9683 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
9684
9685         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
9686
9687 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9688
9689         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
9690         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
9691         peephole 177.e. Thanks to anonymous
9692
9693 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
9694
9695         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
9696         function isn't used in the source but referenced as a
9697         variable initializer then declare it as extern in .asm file
9698
9699 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
9700
9701         * .version: increased version number to 2.4.3
9702
9703         Adding version extension according to ChangeLog CVS revision
9704         * src/Makefile.in (target all): added dependency 'version.h'
9705         * (rule version.h): added rule to create version.h from ChangeLog,
9706         * (rule dep): added dependency version.h,
9707         * src/version.awk: AWK script to create version.h
9708         * src/SDCCdwarf2.c (dwWriteModule),
9709         * src/SDCCglue.c (initialComments),
9710         * src/SDCCmain.c (printVersionInfo): modified to write after
9711         version string the version extension number,
9712         * src/SDCCutil.c: included "version.h"
9713         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
9714         number,
9715         * src/SDCCutil.h: added prototype for getBuildNumber
9716
9717         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
9718         includeDirsSet, too,
9719         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
9720         const char [] is found in function prototype...
9721
9722         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
9723         moving to WREG with source is already in WREG,
9724         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
9725         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
9726         * (aopForSym): stack'ed symbols are partially supported, added
9727         if-clause to support symbols in FARSPACE,
9728         * (sameRegs): added test for AOP_ACC to see if registers are same,
9729         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
9730         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
9731         * (pic16_popRegFromString): will not allocate a new register if it
9732         doesn't find one by name, bug may have introduced...
9733         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
9734         * (genIpush): revived to use pic16 port's stack,
9735         * (genAddrOf): added incomplete case for stack'ed operand,
9736         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
9737         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
9738         can handle multibyte operands,
9739         * src/pic16/glue.c (pic16_printIval*): some debug info added,
9740         * (pic16initialComments): added message for MPLAB compatibility
9741         mode enabled,
9742         * src/pic16/main.h: prototype for pic16_mplab_comp,
9743         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
9744         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
9745         * (_pic16_linkEdit): NEW, handles link stage, transferred here
9746         because of increased complexity of procedure,
9747         * (_process_pragma): stack pragma changed to format 'stack pos len',
9748         emit symbol '_stack_end' to conform with gplink,
9749         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
9750         to search for register,
9751         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
9752         PO_GPR_REGISTER,
9753         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
9754         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
9755         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
9756         case for PO_GPR_REGISTER,
9757         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
9758         dies, the new era is ahead !...
9759         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
9760         pic16_dynInternalRegs,
9761         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
9762         * (pic16_allocDirReg): minor optimizations and bug fixes,
9763         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
9764
9765         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
9766         load stack and frame pointer with address of 'stack_end' symbol
9767
9768 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
9769
9770         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
9771         without source code but only variable initializers
9772
9773 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
9774
9775         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
9776         external are not declared as extern to reduce overhead while linking
9777
9778 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
9779
9780         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
9781
9782 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
9783
9784         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
9785           Yee Keat for the patch
9786         * src/SDCCast.c (decorateType): fixed bug #979599
9787         * src/ds390/gen.h: removed local fReturnSizeDS390
9788         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
9789         * src/ds390/gen.c (genAnd, genOr, genXor),
9790         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
9791
9792 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
9793
9794         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
9795         add relFilesSet to $3, manipulate $2 to handle linking of object
9796         files without source files in command line,
9797         * device/include/pic16 (all headers): added ID location macros,
9798         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
9799         entries for ID location bytes,
9800         * (pic16_assignIdByteValue): NEW,
9801         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
9802         added field dumpcalltree to pic16_options_t,
9803         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
9804         is used instead of pic16_Gstack_base_addr, check if (ifx) before
9805         emitting rFalseIfx label after check_carry label,
9806         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
9807         pic16_emitDIRegs), NEW
9808         * (pic16glue): dump .calltree file when option --calltree found,
9809         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
9810         * (_pic16_genAssemblerPreamble): emit ID locations after
9811         configuration registers,
9812         * (pic16_linkCmd): modifications of the link command,
9813         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
9814         * (pic16_pCodeInitRegisters): don't init stack registers,
9815         * (pic16_findPrevInstruction): fixed bug,
9816         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
9817         bug with immediate registers,
9818         * (buildCallTree): traces stack push and pop,
9819         * (pct2): dump also stack usage for each function,
9820         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
9821         * (pic16_allocDirReg): various modifications,
9822         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
9823         fixed to 1,
9824
9825 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
9826
9827         * src/pic16/pcode.c: removed buggy double colon
9828
9829 2004-07-01 Borut Razem <borut.razem AT siol.net>
9830
9831         * support/scripts/sdcc.nsi: added include/pic16 to setup
9832
9833 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
9834
9835         * device/lib/Makefile.in: fixed bug in target objects-pic16,
9836         * device/lib/pic16/Makefile: prefixed with dash (-) command under
9837         target 'clean',
9838         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
9839         specific command line arguments. Also added sample lkr script
9840         for placing a variable at a specific memory bank.
9841         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
9842         at a specific memory bank,
9843         * (pic16_dump_isection): fixed bug which caused string literals to
9844         be omitted when dumping idata section,
9845         * (pic16_groupRegistersInSection): added code to handle registers
9846         in specific memory banks,
9847         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
9848         public, all references are renamed too,
9849         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
9850         AOP_DPTR2,
9851         * (pic16_storeForReturn): added case to handle when dest is WREG,
9852         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
9853         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
9854         pic16_rel_udata, check to see if that register is marked as being
9855         a member of a specific memory bank,
9856         * (pic16_printIvalCharPtr): added code to add string literals either
9857         to code or the idata sections,
9858         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
9859         also accept the 'udata' pragma,
9860         * src/pic16/main.h: new structure types sectName and sectSym
9861         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
9862         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
9863         * (pic16_findPrevInstruction): fixed, it returned nothing,
9864         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
9865         instruction combinations,
9866         * (pic16_FixRegisterBanking): heavily reorganised,
9867         * (pic16_AnalyzeBanking): if generating banksel directives is
9868         disabled, then don't call FixRegisterBanking at all,
9869         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
9870         completely removed,
9871         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
9872
9873 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
9874
9875         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
9876         Phuah Yee Keat <yk.phuah AT nestac.com>
9877
9878 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9879
9880         * src/pic16/glue.c (pic16createInterruptVect): function now emits
9881         correctly the IVT even if it is relocated to some other location
9882
9883 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
9884
9885         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
9886         * device/include/pic16/pic18f2220.h: NEW,
9887         * device/lib/pic16/libdev/pic18f2220.c: NEW,
9888         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
9889         * src/pic16/device.c (struct Pics16): added info for 18f2220,
9890         * src/pic16/device.h (struct pic16_options): added ivt_loc and
9891         nodefaultlibs, ivt_loc is the location of the interrupt vector
9892         table, and nodefaultlibs signs that default libraries should not be
9893         linked in link stage,
9894         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
9895         according to --ivt-loc argument,
9896         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
9897         when pragma stack is found,
9898
9899 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9900
9901         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
9902         256 (range check), 257 (do while), 258.a-f (bit banging
9903         f.e. on 3-wire SPI bus)
9904
9905 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9906
9907         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
9908         variables used exclusively within a loop
9909
9910 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
9911
9912         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
9913
9914 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9915
9916         * src/SDCClrange.c (computeClash): fixed bug #971834
9917
9918 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9919
9920         * src/mcs51/gen.c (genCmp): fixed bug #975903
9921         * src/hc08/gen.c (operandsEqu),
9922         * src/ds390/gen.c (operandsEqu),
9923         * src/z80/gen.c (operandsEqu),
9924         * src/pic/gen.c (operandsEqu),
9925         * src/pic16/gen.c (operandsEqu),
9926         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
9927         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
9928
9929 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9930
9931         * src/SDCCcse.c (cseBBlock): fixed bug #966963
9932
9933 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
9934
9935         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
9936         default case in switch statement,
9937         * glue.c (pic16_initPointer): expr is initialised via decoarteType
9938         to eliminate problem with initialisation of pointers, but problem
9939         still exists,
9940         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
9941         * (emitStaticSegment): removed various lines emitting debug info,
9942         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
9943         added processor registers for utilizing EEPROM,
9944         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
9945         configurable and set 8
9946
9947 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
9948
9949         * .version: increased version number to 2.4.2,
9950
9951         Cumulative patch for pic16 port
9952         * src/pic16/device.c: changed scheme to dump initial values for
9953         variables in idata segment, all print_idata* functions were removed,
9954         now the pic16_printIval* will be called,
9955         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
9956         * _pic16_printPointerType, pic16_printPointerType,
9957         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
9958         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
9959         NEW, similar to the respective functions in SDCCglue.c,
9960         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
9961         way, emitting hex bytes,
9962         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
9963
9964 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9965
9966         * src/avr/ralloc.c (serialRegAssign),
9967         * src/xa51/ralloc.c (serialRegAssign),
9968         * src/pic/ralloc.c (serialRegAssign),
9969         * src/pic16/ralloc.c (serialRegAssign),
9970         * src/hc08/ralloc.c (serialRegAssign),
9971         * src/z80/ralloc.c (serialRegAssign),
9972         * src/ds390/ralloc.c (serialRegAssign),
9973         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
9974
9975 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9976
9977         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
9978         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
9979
9980 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
9981
9982         Cumulative patch for pic16 port:
9983         * src/pic16/device.h (typedef PIC16_device) modified fields for
9984         defining microcontrollers,
9985         * src/pic16/device.c: added new info for all devices in Pics16 array,
9986         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
9987         to be optimised out by the pCode optimiser,
9988         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
9989         specially, bug reported by G.M. Gallant,
9990         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
9991         as force'd so that cannot be optimised out by pCode optimiser,
9992         * src/pic16/pcode.c,
9993         * src/pic16/pcodepeeph.c,
9994         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
9995         they are disabled by default, but can be enabled explicit with
9996         command argument --denable-peeps, for testing,
9997         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
9998         --pomit-ivt in COMPILE_FLAGS
9999
10000 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10001
10002         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
10003           compilation on MSVC
10004
10005 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
10006
10007         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
10008
10009 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10010
10011         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
10012         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
10013
10014 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
10015
10016         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
10017         would only assign 0x300001 register.
10018
10019 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
10020
10021         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
10022         in COMPILE_FLAGS. Thanks to G. Gallant for report.
10023
10024 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10025
10026         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
10027         for ds80c400
10028         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
10029         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
10030         added peephole 254 (left shift), 255 (jump table)
10031
10032 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
10033
10034         * device/lib/Makefile.in: removed comment line with model-pic16,
10035         * (target port-specific-objects-pic16): the libraries and objects
10036         are copied to the build directory form the device/lib/pic16/bin
10037         directory
10038
10039         Cumulative patch concerning pic16 port:
10040         * library directory has been re-organized,
10041         * added support for PIC18F1220,
10042         * added headers and library sources for chips 18f1220,18f6520,
10043         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
10044
10045         * configuration registers setting has changed, now each supported
10046         device has a complete description of the registers it uses,
10047         * all initialisations are moved to idata sections, these section
10048         can be absolute or relocatable,
10049         * fixed initialisation of codespace variables,
10050         * fixed warning about PCLATU and gpsim,
10051         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
10052         * (genAssign): use table reads when assigning from variables in codespace,
10053         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
10054         char/int variables placed in codespace,
10055         * (pic16_emitConfigRegs): NEW, emits a list with configuration
10056         registers set in .asm file, no need for --pomit-config-words anymore,
10057         * (pic16glue): some 8051 legacy segments are commented out
10058         (to be removed completely),
10059         * added support for alternative assembler and linker with --asm=
10060         and --link= command line arguments,
10061         * peepholes are disabled automatically in the port, no need to
10062         specify on command line,
10063         * port supports natively char/int/long multiplication, but converts
10064         all divisions to support functions,
10065         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
10066         to the file set in variable $2,
10067         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
10068         strings in ASCII format and not in hex,
10069         * ralloc.c (serialRegAssign): added a triplet of conditional calls
10070         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
10071         allocate proper register if iCodes aren't temporary,
10072
10073 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
10074
10075         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
10076
10077 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
10078
10079         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
10080         is commented out
10081
10082 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10083
10084         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
10085         computed address is reused
10086         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
10087         multi-byte bitfields
10088
10089 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10090
10091         * src/z80/gen.c: (genArrayInit): must check for pointers too
10092
10093 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
10094
10095         * support/regression/tests/zeropad.c: never meant to commit the
10096           nestedstruct test: removed, added check for GCC version
10097
10098 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
10099
10100         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
10101         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
10102         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
10103           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
10104           bugs 928906 and 954082 half-empty initializers
10105         * src/SDCCsymt.h,
10106         * src/SDCCsymt.c (getAllocSize): added for above fix
10107         * src/z80/gen.c (genArrayInit): fixed bug 741044
10108         * support/regression/tests/zeropad.c: added tests
10109
10110 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
10111
10112         * src/pic16/device.c (pic16_dump_section): corrected bug which
10113         caused some symbols of the libraries to be misplaced
10114
10115 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10116
10117         * src/pic16/glue.c,
10118         * src/pic16/ralloc.h,
10119         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
10120         to fix conflict with pic port
10121
10122 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
10123
10124         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
10125         externs configuration variables,
10126         * src/pic16/ralloc.h,
10127         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
10128         prototype in header, commented out some debug messages
10129
10130 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
10131
10132         * src/pic16/glue.c,
10133         * src/pic16/main.c,
10134         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
10135         for gpasm COFF object generation. Thanks to D. Hawkins for
10136         his patch info
10137
10138 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10139
10140         * src/ds390/main.c,
10141         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
10142         Brock for spotting this)
10143         * src/ds390/gen.c (genEndFunction),
10144         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
10145         interrupt handler and critical. Disable push/pop optimizations when
10146         peephole optimizations disabled.
10147
10148 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10149
10150         Updated pic16 library sources and headers.
10151         * device/lib/pic16/pic18f*/ ,
10152         * device/include/pic16/*.h: modified to handle structured SFR
10153         definitions
10154
10155 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
10156
10157         * src/port.h (PORT structure): added hook initPaths, now each
10158         port can declare its own default search paths,
10159         which can been seen with the --print-search-dirs option,
10160         see pic16 port for example,
10161         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
10162         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
10163         * (doPrintSearchDirs): NEW, replaces in a central manner the
10164         printing of search dirs which was split in set*Paths functions,
10165         * (main): added call to port->initPaths and doPrintSearchDirs,
10166         * src/avr/main.c,
10167         * src/ds390/main.c,
10168         * src/hc08/main.c,
10169         * src/izt/i186.c,
10170         * src/izt/tlcs900h.c,
10171         * src/mcs51/main.c,
10172         * src/pic/main.c,
10173         * src/pic16/main.c: modified port structures to reflect addition of
10174         initPaths hook,
10175
10176         * src/pic16/device.c (regCompare): registers are finally sorted by name,
10177         * (pic16_dump_section): for registers in same address reserve memory once,
10178         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
10179         to no_banksel,
10180         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
10181         result is greater in size than right or left,
10182         * (pic16_genUMult8X8_8): there are some cases where the result can
10183         be 16 bits size, so handle these,
10184         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
10185         * (pic16_outBitC): modified to emit pcodes,
10186         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
10187         or not,
10188         * (genDivOneByte): implemented algorithm to divide 8-bits,
10189         * (genCmp): uncommented goto, but issues still exist,
10190         * (genAnd): fixed a bug with variables >8bits,
10191         * (genPackBits): optimization added that uses BCF/BSF to change a
10192         single bit,
10193         * (genAssign): fixed bug when assigning floating point literals,
10194         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
10195         __sdcc_gsinit_startup label,
10196         * src/pic16/main.c (_pic16_init): removed search directory
10197         initialisations,
10198         * (_pic16_initPaths): NEW, used to initialise search directories,
10199         * (_hasNativeMulFor): support functions for all except char/int
10200         multiplication, and char division,
10201         * (PIC16_port struct): modified entry for native mul support,
10202         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
10203         no_banksel option,
10204         * (buildCallTree): call to register_usage is ifdef'ed out,
10205
10206 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10207
10208         * device/include/string.h: applied Stas Sergeev's patch to make this
10209         header file compatible with the preprocessor -Wundef option
10210         * src/SDCCmain.c (main): abort compilation if preprocessor reports
10211         failure (fixes bug #941458)
10212
10213 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10214
10215         * src/SDCCopt.c (killDeadCode): fixed bug #907733
10216         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
10217         that the variable, not the function, should be static
10218         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
10219         to be consistent with non-literal case
10220
10221 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10222
10223         * src/SDCCast.c (isConformingBody): fixed bug #949967
10224         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
10225         convilong): fixed bug #952086
10226
10227 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10228
10229         * src/SDCCmem.c (allocVariables): fixed bug #955321
10230
10231 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10232
10233         * src/hc08/main.c (_hc08_genAssemblerEnd),
10234         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
10235         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
10236         completely eliminated the use of a temporary file
10237         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
10238         when more than one file linked
10239         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
10240
10241 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10242
10243         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
10244         which fixes bug #543481
10245         * support/regression/tests/bug-751703.c: fixed comments left from a
10246         cut and paste error
10247         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
10248         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
10249         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
10250         scopes
10251         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
10252         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
10253         are now changed to underscores in moduleName
10254
10255 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10256
10257         * as/mcs51/lkmem.c: better fix for bug #954173
10258
10259 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
10260         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10261
10262         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
10263         * device/include/c8051f000.h,
10264         * device/include/c8051f120.h,
10265         * device/include/c8051f300.h,
10266         * device/include/c8051f310.h,
10267         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
10268         PWM16) and detab'ed
10269
10270 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10271
10272         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
10273         and mailing lists, doc'ed --no-peep-comments, removed reference
10274         to knoppix (newest version has no LyX/LaTeX), other minor changes
10275         * src/SDCCglue.c (glue): save 2 bytes stack space with
10276         option --main-return. The ljmp could probably be avoided too
10277
10278 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10279
10280         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
10281
10282 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10283
10284         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
10285         * src/SDCCopt.c (isLocalWithoutDef),
10286         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
10287         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
10288         (credit to Maarten Brock for patch #949363, on which this is based)
10289         * support/regression/tests/bug-751703.c: some test cases of extern used
10290         within inner scopes.
10291
10292 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10293
10294         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
10295         SPEC_STRUCT
10296         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
10297         struct definitions
10298         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
10299         dwWriteLabel): fix to create valid debugger symbols even when
10300         the module name has non-alphanumeric symbols in it
10301         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
10302         when a variable's allocation has been optimized away
10303
10304
10305 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10306
10307         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
10308         * src/hc08/main.c,
10309         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
10310         * src/mcs51/main.c,
10311         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
10312         * src/ds390/main.c,
10313         * src/z80/gen.c (z80_emitDebuggerSymbol),
10314         * src/z80/main.c,
10315         * src/pic/gen.c (pic14_emitDebuggerSymbol),
10316         * src/pic/main.c,
10317         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
10318         * src/pic16/main.c,
10319         * src/avr/gen.c (avr_emitDebuggerSymbol),
10320         * src/avr/main.c,
10321         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
10322         * src/xa51/main.c,
10323         * src/SDCCdebug.c (emitDebuggerSymbol),
10324         * src/SDCCdebug.h,
10325         * src/port.h: added a debugger struct to the port struct. Added a
10326         callback for defining debugger symbols
10327
10328         * src/SDCCast.c (createLabel),
10329         * src/SDCC.y (labeled_statement): mark all compiler generated labels
10330         with isitmp = 1
10331         * src/SDCCicode.h,
10332         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
10333         iCode back to the ast for the function
10334
10335         * src/hc08/ralloc.c (hc08_assignRegisters),
10336         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
10337         unneeded fields from the regs struct.
10338         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
10339         pushReg() & pullReg() functions instead of emitcode()
10340
10341         * src/hc08/gen.c (genLabel, genhc08Code),
10342         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
10343
10344         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
10345         debugger hooks
10346
10347         * src/hc08/gen.c (genEndFunction, genhc08Code),
10348         * src/hc08/gen.h,
10349         * src/mcs51/gen.c (genEndFunction, gen51Code),
10350         * src/mcs51/gen.h,
10351         * src/ds390/gen.c (genEndFunction, gen390Code),
10352         * src/ds390/gen.h,
10353         * src/z80/gen.c (genEndFunction, genZ80Code),
10354         * src/z80/gen.h,
10355         * src/z80/z80.h,
10356         * src/pic/gen.c (genEndFunction, genpic14Code),
10357         * src/pic/gen.h,
10358         * src/pic16/gen.c (genEndFunction, genpic16Code),
10359         * src/pic16/gen.h,
10360         * src/avr/gen.c (genEndFunction, genAVRCode),
10361         * src/avr/gen.h,
10362         * src/xa51/gen.c (genEndFunction, genXA51Code),
10363         * src/xa51/gen.h,
10364         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
10365         specific code to cdbFile.c and out of the backend code generators
10366
10367         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
10368         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
10369         starting address is now 0
10370
10371         * as/hc08/asm.h,
10372         * as/hc08/m08pst.c,
10373         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
10374         assembler directive for DWARF support
10375         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
10376
10377         * src/src.dsp,
10378         * src/Makefile.in,
10379         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
10380
10381 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10382
10383         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
10384         and inappropriate peephole optimization in jump tables
10385
10386 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10387
10388         * as/hc08/m08pst.c,
10389         * src/SDCCglue.c: sdccopt works for the hc08 port now
10390
10391 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
10392
10393         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
10394
10395 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10396
10397         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
10398
10399 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10400
10401         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
10402         rules
10403         * src/SDCCmain.c,
10404         * src/SDCCglobl.h,
10405         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
10406         comments from the peephole optimizer replacement rules
10407         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
10408         symbols
10409         * src/SDCCcse.c (updateSpillLocation),
10410         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
10411         equivalents
10412         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
10413         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
10414         objects far pointers
10415
10416 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10417
10418         * src/SDCCsymt.h: a missing part of my last change
10419         * src/pic/ralloc.c (regTypeNum),
10420         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
10421
10422 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10423
10424         * src/SDCCicode.h,
10425         * src/SDCCicode.c (aggrToPtrDclType),
10426         * src/SDCCptropt.h,
10427         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
10428         ptrPseudoSymConvert),
10429         * src/pic/ralloc.c (regTypeNum),
10430         * src/pic16/ralloc.c (regTypeNum),
10431         * src/hc08/ralloc.c (regTypeNum),
10432         * src/ds390/ralloc.c (regTypeNum),
10433         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
10434         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
10435
10436 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10437
10438         * link/z80/lkmain.c (afile),
10439         * as/hc08/lkmain.c (afile),
10440         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
10441         prevent a pointer problem when a filename has no directory and
10442         no extension specified.
10443
10444 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10445
10446         * link/z80/lkmain.c (afile): allow periods in directory names
10447         * link/z80/lkmain.c (afile),
10448         * as/mcs51/lkmain.c (afile),
10449         * as/hc08/lkmain.c (afile): allow linker script file to have an
10450         extension other than ".lnk"
10451         * link/z80/lklex.c (getfid),
10452         * link/z80/lkmain.c (parse),
10453         * as/mcs51/lklex.c (getfid),
10454         * as/mcs51/lkmain.c (parse),
10455         * as/hc08/lklex.c (getfid),
10456         * as/hc08/lkmain.c (parse): Support comments in the linker script
10457         file on lines by themselves and after filenames
10458
10459 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10460
10461         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
10462
10463 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10464
10465         * src/z80/peeph-z80.def: removed some peephole rules that don't
10466         work with multibyte arithmetic (fixed bug #937126)
10467         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
10468         to registers and not global variables
10469         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
10470         geniCodePreInc, geniCodePostDec, geniCodePreDec,
10471         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
10472         checking for assignments not internally generated (fixed bug #931895)
10473         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
10474         structure member (fixed bug #930072)
10475
10476 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10477
10478         * src/SDCCmain.c (linkEdit),
10479         * src/hc08/main.c (_hc08_parseOptions),
10480         * as/hc08/Makefile.in,
10481         * as/hc08/aslink.h,
10482         * as/hc08/asm.h,
10483         * as/hc08/m08pst.c,
10484         * as/hc08/lkrloc.c (relr, rele),
10485         * as/hc08/lkarea.c (lnkarea)
10486         * as/hc08/lkmain.c (afile, parse),
10487         * as/hc08/lkelf.c: support for ELF output
10488         * as/hc08/lks19.c (s19),
10489         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
10490
10491 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10492
10493         * as/mcs51/lkihx.c: Fixed bug #899105.
10494
10495 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10496
10497         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
10498         .dsp files from Unix to DOS.
10499
10500 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10501
10502         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
10503         function pointers; we have been compliant for several months now.
10504         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
10505         change that was accidently commented out
10506         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
10507         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
10508         bug #922319
10509
10510 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10511
10512         * src/hc08/gen.c: output of all of the internal debugging information
10513         is now controlled by the D() macro; it is disabled by default
10514
10515 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10516
10517         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
10518         harder to keep the same registers during a CAST iCode
10519         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
10520         long via int can be done in a single cast, if the signedness is
10521         correct.
10522         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
10523         putchar() in tinibios.c in ds390's library
10524
10525 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
10526
10527         * src/SDCCast.c (decorateType): fixed bug #898889,
10528         cast result of a literal complement too
10529         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
10530         fixed check for bitfields
10531
10532 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
10533
10534         * src/SDCCicode.c (geniCodeLogic): made it static,
10535         (geniCodeLogicAndOr): added in order to fix bug #905492,
10536         (ast2iCode): fixed bug #905492
10537         * support/regression/tests/bug-905492.c: added
10538         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
10539         (processParms): fixed bug #927659: don't copy parms, this will clear
10540         decorated flag
10541         * support/regression/tests/bug-927659.c: added
10542
10543 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
10544
10545         * src/SDCCast.c (addCast): don't cast float to char
10546         * device/lib/libsdcc.lib: added _memmove
10547
10548 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
10549
10550         * device/lib/large/Makefile: fixed parallel execution by
10551         replacing `make` by `$(MAKE)`
10552
10553 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10554
10555         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
10556         offsets (fixes bug #923936)
10557
10558 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
10559
10560         * device/lib/small/Makefile: fixed parallel execution by
10561         replacing `make` by `$(MAKE)`
10562
10563 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10564
10565         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
10566
10567 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
10568
10569         * src/pic/gen.c (genCpl): multi-byte complements were not working.
10570         * src/regression/Makefile: Regression test was not running.
10571
10572 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10573
10574         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
10575         complement if possible
10576         * src/SDCCval.c (valComplement),
10577         * src/SDCCicode.c (operandOperation): fixed complement of literal
10578         * support/regression/tests/onebyte.c (testComplement): added
10579
10580 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
10581
10582         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
10583         return an optimized tree; actually replace actParm with the new tree
10584         * src/SDCCast.h: added some parantheses to remove side effects
10585         * support/regression/tests/bug-920866.c
10586
10587 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
10588         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
10589         Bit operands were not being handled properly in the pic14 port.
10590         (now src/regression/add.c passes again).
10591
10592 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10593
10594         * src/SDCC.y (labeled_statement): case and default no longer require
10595         a following statement (RFE #893037)
10596
10597 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10598
10599         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
10600         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
10601         disabled (fixes bug #916294)
10602         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
10603         "mov a,acc"; patch provided by Lenny Story
10604         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
10605
10606 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10607
10608         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
10609         functions
10610         * src/ds390/gen.c (genFunction, genEndFunction),
10611         * src/ds390/ralloc.c (ds390_assignRegisters),
10612         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
10613         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
10614         pushed if there are parameters passed on the stack. Also, a cleaner
10615         way to decide if r0/r1 should be pushed/popped. (Together they fix
10616         bug #918693)
10617
10618 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10619
10620         * doc/sdccman.lyx,
10621         * device/lib/mcs51/crtpagesfr.asm,
10622         * device/lib/mcs51/crtxinit.asm,
10623         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
10624         to avoid confusion with Si Lab's SFRPAGE register.
10625
10626 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10627
10628         * src/SDCCglue.c (emitMaps): allow public sfr variables
10629         * src/SDCCglue.c (initialComments): include compiler build date
10630         with compiler version and put the timestamp of the generated
10631         assembly file on a serperate line to be less confusing.
10632         * src/port.h: added genInitStartup hook
10633         * src/avr/main.c,
10634         * src/ds390/main.c,
10635         * src/hc08/main.c,
10636         * src/pic/main.c,
10637         * src/pic16/main.c,
10638         * src/xa51/main.c,
10639         * src/z80/main.c: genInitStartup initialize as NULL (default to
10640         historical behaviour)
10641         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
10642         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
10643         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
10644         library instead of hard coding it into the compiler.
10645         * support/regression/ports/mcs51-stack-auto/spec.mk,
10646         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
10647         * device/lib/mcs51/Makefile,
10648         * device/lib/small/Makefile,
10649         * device/lib/large/Makefile,
10650         * device/lib/mcs51/crtpagesfr.asm,
10651         * device/lib/mcs51/crtstart.asm,
10652         * device/lib/mcs51/crtxclear.asm,
10653         * device/lib/mcs51/crtxinit.asm,
10654         * device/lib/mcs51/crtclear.asm,
10655         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
10656         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
10657         and into user configurable files.
10658         * device/lib/clean.mk: clean mcs51 directory too
10659         * support/regression/tests/longlit.c: added static to T1 declaration
10660         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
10661         accesses in the initialization code
10662
10663 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10664
10665         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
10666         OSCTRIMVAL as noted in bug #916008
10667
10668 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10669
10670         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
10671         in loops with multiple exits (reported as incorrect registers
10672         used by Martin Helmling in Sdcc-user list)
10673
10674 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10675
10676         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
10677         made ds390 register extensions look less like error messages
10678
10679 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10680
10681         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
10682         reported by Adam Wozniak in Sdcc-user list
10683
10684 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10685
10686         * src/SDCCast.c (decorateType): fixed with bug and promotion in
10687         arithmetic optimizations, added debug output
10688
10689 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
10690
10691         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
10692         * sdcc.spec: updated and split sdcc into 3 rpms
10693         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
10694         needed for literals of LEFT_OP and '+'
10695         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
10696         introduced RESULT_TYPE_NOPROM
10697         (geniCodeMultiply): fixed logic for decision if mul is optimized to
10698         left shift
10699         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
10700         limited promotion to int only for '*'
10701         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
10702
10703 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
10704
10705         * src/pic16/gen.c (genSkip),
10706         (genc16bit2lit), (gencjneshort): commented out
10707         (is_LitOp): new helper function, checks operand type
10708         (genCmpEq): rewritten
10709
10710 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
10711
10712         * support/regression/tests/bug-908454.c: added
10713
10714 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
10715
10716         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
10717         * src/SDCCicode.c (usualBinaryConversions): op needs int type
10718         (geniCodeCast): cosmetic, don't preserve bit storage class
10719         (geniCodeLeftShift): added promotion
10720         (geniCodeLogic): fixed regression
10721         * src/SDCCsymt.c (computeTypeOr): accept bits too
10722         (compareType): 2nd part of fix for bug #908454, needed for bitfields
10723
10724 2004-03-07  Borut Razem <borut.razem AT siol.net>
10725
10726         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
10727
10728 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
10729
10730         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
10731         version of pic16_genPackRegisters which does not check if ic is a
10732         CAST operator,
10733         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
10734         function cause string1.c regression test fails
10735
10736 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
10737
10738         * sim/ucsim/configure.in,
10739         * sim/ucsim/configure,
10740         * sim/ucsim/doc/Makefile.in: use docdir
10741         * src/SDCC.y: fixed sbit atrributes
10742         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
10743         * src/SDCCast.c (decorateType): |^& need special promotion handling
10744         * src/SDCCast.h,
10745         * src/SDCCsymt.h: moved definition of RESULT_TYPE
10746         * src/SDCCsymt.h (computeType),
10747         * src/SDCCicode.c: computeType() needs op
10748         * src/SDCCsymt.c (checkTypeSanity),
10749         * doc/sddman.lyx: "plain" bitfields are unsigned
10750         * src/SDCCsymt.c (computeTypeOr): added
10751         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
10752         |^& ops
10753         * src/SDCCval.c (val*): computeType() needs op
10754         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
10755         * support/regression/tests/onebyte.c: added tests for |^&
10756
10757 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
10758
10759         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
10760         for writing icode into asm output.
10761
10762 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
10763
10764         * src/pic16/device.c: added some debug lines enabled
10765         with macro DEBUG_CHECK,
10766         * src/pic16/genarith.c: more debug in genPlus,
10767         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
10768         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
10769         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
10770         * (aopForSym): onStack symbols are re-placed in data memspace,
10771         and onStack flag is cleared,
10772         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
10773         copy temporary pcodeop,
10774         * (genPcall): added warning for not updating PCLATU,
10775         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
10776         always true for pic16 port,
10777         * (genMultOneWord): NEW, supports integer multiplication,
10778         * (genMult): modified to call genMultOneWord,
10779         * (ifxForOp): added warning when return NULL,
10780         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
10781         flag is set before call to operandFromSymbol for implicit
10782         added structures,
10783         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
10784         options.intlong_rent are set by default,
10785         * (_hasNativeMulFor): modified to allow port generation of integer
10786         multiplication,
10787         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
10788         set regtype to REG_SFR for all registers, restricting seting the
10789         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
10790
10791 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10792
10793         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
10794         more than 500 times in the regression tests
10795
10796 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10797
10798         * support/Util/SDCCerr.h,
10799         * support/Util/SDCCerr.c,
10800         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
10801         enumerator_list),
10802         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
10803         for symbol conflicts.
10804         * support/valdiags/tests/enum.c,
10805         * support/valdiags/tests/tentdecl.c,
10806         * support/valdiags/tests/struct.c: expect possible error messages
10807         referring to original symbol definitions.
10808         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
10809         * src/SDCCsymt.h,
10810         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
10811
10812 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
10813
10814         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
10815
10816 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
10817
10818         * src/pic16/ralloc.c (newReg): fixed bug #908929
10819
10820 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10821
10822         * src/ds390/gen.c: added missing #include "main.h"
10823
10824 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
10825
10826         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
10827         checking if symbol is already in set,
10828         * src/pic16/device.h: prototype for checkAddSym,
10829         * src/pic16/gen.c: (_G): added entry interruptvector,
10830         * (assignResultValue): removed some commented out lines,
10831         * (genFunction): check for ISR via sym->type, absolute section for
10832         interrupt code is created via a new pBlock, the goto instruction is
10833         placed now correctly at the interrupt vector position, changed all
10834         references from ivec to _G.interruptvector,
10835         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
10836         is the interrupt is a high priority one, same for return from ISR,
10837         * src/pic16/glue.c: changed all calls of addSetHead for publics and
10838         externs to calls of checkAddSym,
10839         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
10840         pic16_pcode_verbose flag is set,
10841         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
10842         * src/pic16/pcoderegs.c: message about how many registers are saved
10843         will only be emitted if pic16_pcode_verbose flag is set,
10844
10845 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10846
10847         * src/ds390/ralloc.h,
10848         * src/ds390/ralloc.c (ds390_regWithIdx),
10849         * src/ds390/gen.c (emitcode),
10850         * src/ds390/main.h,
10851         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
10852         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10853         ds390operandCompare, getRegsRead, getRegsWritten,
10854         initializeAsmLineNode): customized instruction size calculation for
10855         ds390, started basis for some register optimizations
10856         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
10857         corresponding assembly output
10858         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
10859         missing push/pop of r0/r1. Optimized push/pops
10860
10861 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10862
10863         * src/mcs51/main.c (instructionSize): fixed ACALL size
10864         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
10865
10866 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
10867
10868         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
10869         the sorting of rlist with NULL elements
10870         * (print_idataType, print_idata): NEW to create idata sections
10871         * src/pic16/device.h: idataSymSet new variable
10872         * src/pic16/gen.c (genFunction): fixed some bugs in string
10873         comparing, improved the absolute section creation for ISRs,
10874         added FSR0L/FSR0H in registers that are saved in an ISR,
10875         * (genInline): fixed the processing of inline snippets,
10876         now they undergo no process by the peephole optimizer
10877         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
10878         are placed in idataSymSet,
10879         * (pic16emitStaticSeg): extern symbols are added in externs,
10880         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
10881         switching when aboslute variables are placed in access bank memory
10882         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
10883         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
10884         commented out with #if,
10885         * (pic16_packRegisters): reintroduce the check for CAST because some
10886         symbols are not correctly handled,
10887         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
10888         pCodeInstruction instead of pCode,
10889         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
10890         pCodeAsmDir definition,
10891         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
10892         directive, then the argument directive is emitted without the leading
10893         tab, hack for inline labels which must be in the first column,
10894         * (compareLabel,pic16_findNextInstruction),
10895         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
10896         * (insertBankSwitch): modified for the new pCodeAsmDir,
10897
10898 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10899         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
10900
10901         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
10902         instance,
10903         * (pushSide): commented out with #if,
10904         * (assignResultValue): fixed some typos in saving
10905         registers,
10906         * (genPcall): FIXED and sync'ed with genCall,
10907         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
10908         * (genNearPointerGet): fixed to handle some more cases,
10909         implementation scheme via table reads,
10910         * (genConstPointerGet): modified to access code memory correct,
10911         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
10912         and improved to handle some cases
10913         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
10914         instead of "RETLW" for init data
10915         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
10916         not IN_DIRSPACE, work around to reduce bank switching when aboslute
10917         variables are placed in access bank memory (<0x80 and >=0xf80),
10918         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
10919         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
10920         TBLWT_POSTDEC,TBLWT_PREINC
10921         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
10922         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
10923         directives
10924         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
10925         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
10926         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
10927         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
10928
10929 2004-02-29  Borut Razem <borut.razem AT siol.net>
10930
10931         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
10932         support/Util/findme.h, support/Util/system.h: enhance binary relative
10933         search for lib and include by using findProgramPath()
10934
10935 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10936
10937         * src/SDCCpeeph.h,
10938         * src/SDCCpeeph.c (pcDistance),
10939         * src/port.h,
10940         * src/mcs51/ralloc.h,
10941         * src/mcs51/ralloc.c (mcs51_regWithIdx),
10942         * src/mcs51/main.h,
10943         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
10944         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
10945         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
10946         size calculation port specific, started basis for some register
10947         optimizations
10948         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
10949         missing push/pop of r0/r1. Optimized push/pops
10950         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
10951         * device/lib/_modsint.c (_modsint),
10952         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
10953         and stack version so regression tests pass
10954
10955 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
10956
10957         * src/Makefile.in (dep): include SLIBOBJS in dependency check
10958         * src/SDCCast.c (decorateType): catch another small optimization
10959         with '?' operator
10960         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
10961         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
10962         modified to finally use computeType() all over SDCC,
10963         see Feature Request #877103
10964         * src/SDCCval.h: cosmetic
10965         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
10966         valCompare(); regression tested in muldiv.c
10967         * support/regression/tests/muldiv.c (testMod): mod sign follows
10968         dividend only
10969
10970 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
10971
10972         * src/SDCCast.c (decorateType): fixed bug #902362
10973         * doc/INSTALL.txt: fixed install instructions for win32
10974
10975 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
10976
10977         * device/include/Makefile.in (install): fixed by replacing spaces
10978         by tabs
10979         * doc/README.txt,
10980         * doc/INSTALL.txt: updated for release
10981         * doc/sdccman.lyx: added warning for --xstack being buggy
10982
10983 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
10984
10985         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
10986         to eliminate build warnings.
10987         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
10988
10989 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
10990            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
10991
10992         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
10993         removed -penable-stack, added comment for stack pragma, added
10994         warning for not initializing the stack/frame registers, removed
10995         comment at interrupts section
10996
10997         Stack is made permanent, there is no ability to disable stack usage.
10998         * src/pic16/device.h,
10999         * src/pic16/device.c: removed all references to USE_STACK macro,
11000         * src/pic16/device.c (pic16_dump_section): when no elements in
11001         rlist, free rlist before return,
11002         * (pic16_dump_int_registers): NEW, internal registers are a new set
11003         of general purpose registers reused by each function,
11004         * (checkAddReg): returns 1 if registers is added to set,
11005         * (pic16_groupRegistersInSection): when a registers is of type
11006         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
11007         * src/pic16/device.h: memRange and Assigned Memory are deleted,
11008         SRCASECMP macro is moved here from device.c
11009         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
11010         PO_PCLATU, PO_PRODL, PO_PRODH,
11011         * (pic16_pCodeOpType, genMinus,
11012         changed compares to "a" register, with AOP_ACC,
11013         * (pic16_genPlus): fixed some bugs and indented properly,
11014         * (pic16_addSign): changed size to size+offset in the MOVWF
11015         instruction,
11016         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
11017         multiply 8-bit operand by literal, result is 8-bit,
11018         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
11019         multiply 2 8-bit operand, result is 8-bit,
11020         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
11021         genUMult8X*_16,
11022         * src/pic16/gen.c: changed accUse to contain WREG only,
11023         * (pic16_emitcomment): renamed to pic16_emitpcomment,
11024         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
11025         true, do not use immediate addressing any more unless sym is a
11026         pointer in codespace,
11027         * (aopForRemat): do not use immediate addressing when symbol not in
11028         codespace and when symbol's address is requested,
11029         * (aopOp): for-loop in if(sym->accUse) is modified for the new
11030         accUse size (= 1),
11031         * (aopGet): added case for AOP_ACC and don't return "accumulator
11032         bug" but WREG instead,
11033         * (popGetTempReg): pushes contents of temporary register in stack,
11034         * (popReleaseTempReg): pops contents of temporary register from
11035         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
11036         * (pic16_popGet): separated case AOP_ACC to return register WREG
11037         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
11038         or PO_IMMEDIATE and initializes their instance/offset appropriately,
11039         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
11040         the use of immediate pointers to certain cases only.
11041
11042         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
11043         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
11044         * (assignResultValue, genCall, genRet): modified to use the new
11045         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
11046         genPcall is still broken,
11047         * (genFunction): added code to create 'A' type pBlocks when
11048         interrupt functions are generated, code not extensively tested yet,
11049         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
11050         * (genEndFunction): modified so ISRs pop stored registers from stack,
11051         * (genMultOneByte): cleanup,
11052         * (AccRsh): added flag andmask, to and result with appropriate mask,
11053         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
11054         * (genDataPointerGet): fixed and reenabled its use,
11055         * (genNearDataPointerGet): bugs fixed,
11056         * (genDataPointerSet): bugs fixed,
11057         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
11058         pic16_DumpSymbol, pic16_DumpOp,
11059         * src/pic16/genutils.h: function prototypes for the above functions,
11060         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
11061         pointers,
11062         * (pic16emitRegularMap): many many many improvements, but needs a
11063         major cleanup,
11064         * src/pic16/main.c: enable_stack in pic16_options is removed,
11065         * (_pic16_parseOptions): removed command line options -penable-stack,
11066         * (_process_pragma): emit stack symbol only when stack pragma is
11067         processed,
11068         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
11069         redirected to FSR0L/FSR0H pair,
11070         * (pic16_get_op, pic16_get_op2): modifications and improvements,
11071         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
11072         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
11073         for immediates,
11074         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
11075         * (dumpPicOptype): NEW,
11076         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
11077         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
11078         with movff instruction,
11079         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
11080         added pic16_int_regs, some packRegsFor* functions are commented out,
11081         because produce errors,
11082         * src/pic16/NOTES: minor modifications
11083
11084 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11085
11086         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
11087         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
11088         --pack-iram.
11089         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
11090         * as/mcs51/lkaomf51.c: fixed bug #895763
11091
11092 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
11093
11094         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
11095
11096 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11097
11098         * doc/sdccman.lyx: added details about the HC08 storage classes and
11099         interrupts, fixed the register usage info for z80 & gbz80
11100
11101 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
11102
11103         * doc/sdccman.lyx: added more pic16 port documentation
11104         * device/include/pic16/: added header pic18fregs.h
11105
11106 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
11107
11108         * doc/sdccman.lyx: added Vangelis' contribution
11109
11110 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11111
11112         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
11113         extend to the next CALL or PCALL, not just to the next CALL.
11114
11115 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
11116
11117         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
11118
11119 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11120
11121         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
11122         bug #895752 and a better fix for bug #716790
11123
11124 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11125
11126         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
11127
11128 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11129
11130         * doc/sdccman.lyx: minor changes, minor changed
11131
11132 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
11133
11134         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
11135         which can't handle SDCC_NEWONEBYTEOPS,
11136         (geniCodeMultiply): removed conversion from mult to shift for pic14
11137         and pic16
11138
11139 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11140
11141         * src/hc08/gen.h,
11142         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
11143         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
11144         thus fixing bug #895406
11145
11146 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
11147
11148         * device/lib/_modsint.c,
11149         * device/lib/_modslong.c: sign follows divisor only
11150         * src/hc08/gen.c (genMultOneByte): if result size is 1,
11151         signs or signedness can be ignored
11152         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
11153         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
11154         added optimization for IFX,
11155         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
11156         arguments;
11157         reenabled optimization for IFX, which was removed on 2004-01-11
11158         * src/SDCCast.h: added return type IFX
11159         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
11160         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
11161         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
11162         SDCC_OLDONEBYTEOPS selects the old behaviour
11163         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
11164         changed again and commented promotion rule
11165         * src/SDCCval.c (valDiv): promotion no longer necessary
11166         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
11167         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
11168         rewritten
11169         * support/regression/tests/onebyte.c: added
11170
11171 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
11172
11173         * gen.c (genInline): reverted to old code for assemnling inline
11174         code because of bug reported James Chadd
11175
11176 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
11177
11178         * ralloc.h: missing declarations from previous patch,
11179         seems that patch for ralloc.h was never applied, fixed
11180
11181 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11182            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11183
11184         * pcode.c,
11185         * pcode.h,
11186         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
11187         indirect addressing. Marked FSR0 as deprecated
11188         * gen.c (pointerCode): commented out, not needed now
11189         (pic16_popGet2p): new MOVFF helper function
11190         (genGenPointerGet),
11191         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
11192         (shiftRLong): removed duplicate debugging info
11193
11194 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11195
11196         * src/ds390/gen.c (genNearPointerGet),
11197         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
11198         optimization with bits, but not bitfields.
11199         * src/ds390/ralloc.c (packRegisters),
11200         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
11201
11202 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11203
11204         * src/SDCCcse.c (algebraicOpts): copy operands before modification
11205
11206 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11207
11208         * src/SDCCsymt.h,
11209         * src/SDCCicode.c (operandFromSymbol),
11210         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
11211         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
11212         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
11213         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
11214         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
11215         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
11216         bug #892038
11217         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
11218         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
11219         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
11220         * src/SDCCsymt.c (newSymbol),
11221         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
11222         enumerator_list),
11223         * src/SDCCval.h,
11224         * src/SDCCval.c (newiList): fixed bug #885705
11225
11226 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11227
11228         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
11229         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
11230
11231 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11232
11233         * device/include/c8051f120.h,
11234         * device/include/c8051f300.h,
11235         * device/include/c8051f310.h: added/updated header files for Silicon
11236         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11237         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
11238         in new section Submitting patches
11239
11240 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11241
11242         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
11243         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11244         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11245         genGenPointerSet),
11246         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
11247         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11248         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11249         genGenPointerSet),
11250         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
11251         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11252         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11253         genGenPointerSet),
11254         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
11255         genFarPointerGet, genCodePointerGet, genGenPointerGet,
11256         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
11257         genGenPointerSet): fixed bug #892400
11258         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
11259         to eliminate build warnings.
11260         * src/SDCCast.c (processParms),
11261         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
11262         fixed bug 751859
11263         * support/valdiag/valdiag.py: added GCC to the list of defines active
11264         when compiling with gcc
11265
11266 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11267
11268         * support/Util/SDCCerr.h,
11269         * support/Util/SDCCerr.c,
11270         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
11271         with an incomplete type (fixed bug #883734)
11272         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
11273
11274 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11275
11276         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
11277
11278 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11279
11280         * src/SDCCast.c (decorateType),
11281         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
11282         function pointer implementation
11283         * support/regression/tests/funptrs.c: added tests to verify both forms
11284         of function pointers work correctly. Added tests to verify parameters
11285         are passed in the correct order.
11286
11287 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
11288
11289         * device.c (regCompare): registers are sorted by ascending
11290         address and increasing size,
11291         * main.c (_pic16_finaliseOptions): removed the declaration
11292         of compiler macro MCU. Now a macro of the format pic18fxxxx
11293         will be defined from the command line
11294
11295 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
11296             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
11297
11298         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
11299         PCOP_RLCF was overwritten!
11300         * gen.c (genSkip): commented out calls to pic16_emitcode,
11301         * (genCmpEQ): fixed "long" compares, only high word did get compared,
11302         * (genlshTwo),
11303         * (genRRC): added debugging info,
11304         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
11305         overwritten while shifting,
11306         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
11307         overwritten while shifting,
11308         * (AccLsh),
11309         * (AccRsh),
11310         * (shiftLLeftOrResult),
11311         * (shiftRLeftOrResult),
11312         * (shiftRLong),
11313         * (shiftLLong): Implemented with pic16_emitpcode
11314         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
11315         * (genLeftShift): Fixed bug, operand for shift by variable always
11316         was "and"ed with 0x0f,
11317         * (genLeftShiftLiteral),
11318         * (genrshTwo),
11319         * (genRightShiftLiteral): added debugging info,
11320         * (genrshFour): added comment,
11321         * (genRightShift): determined signedness from operand "left"
11322         instead of "result"
11323
11324 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11325
11326         * src/SDCCicode.c (geniCodeParms),
11327         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
11328         function pointers, fixed function pointer bugs #861242 and #861896
11329
11330 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11331
11332         * device/include/c8051f000.h,
11333         * device/include/c8051f120.h,
11334         * device/include/c8051f300.h: added header files for Silicon
11335         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
11336
11337 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
11338
11339         * src/SDCCast.c (processParams): added new type flow and restructured
11340         (gatherAutoInit): added new type flow
11341         (addCast): cosmetic changes
11342         (getLeftResultType): added new type flow for array indices, patch
11343         provided by Stas, see FR #877103
11344         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
11345         array index patch by Stas
11346         * src/SDCCast.h: added prototype getResultTypeFromType()
11347         * src/SDCCval.h,
11348         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
11349         * src/pic/glue.c (pic14emitStaticSeg),
11350         * src/pic16/glue.c (pic16emitStaticSeg),
11351         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
11352         for initialization of symbols
11353         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
11354         * support/Util/SDCCerr.h:
11355         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
11356         * .version: bumped version number to 2.3.8
11357         * device/include/Makefile.in (install),
11358         * doc/Makefile (install): changed to 'rm `find ...`' construct to
11359         avoid warnings
11360
11361 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
11362
11363         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
11364         Slade Rich fixed an optimization bug
11365         * src/pic/pcodepeep.c,
11366         * src/pic/pcoderegs.c
11367         * doc/Makefile (install): added test for directory
11368
11369 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11370
11371         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
11372         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
11373         * src/pic/ralloc.c (getRegPtr, getRegGpr),
11374         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
11375         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
11376         * as/mcs51/asexpr.c (term),
11377         * as/hc08/asexpr.c (term): fixed bug #887146
11378
11379 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11380
11381         * src/z80/gen.c (genMult): handle single byte result product
11382         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
11383         DUMMY_READ_VOLATILE (fixed bug #886367)
11384
11385 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11386
11387         * support/regression/tests/libmullong.c: fixed logic, on little endian
11388         hosts we ended without a mullong_wrapper()
11389
11390 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11391
11392         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
11393         virus/worm forged address usage.
11394
11395 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
11396
11397         Fixed promotion, it should be done on AST level:
11398         * src/SDCCast.c (addCast): added promotion to int
11399         (decorateType): updated call to upCast()
11400         * src/SDCCicode.c (geniCodeLeftShift): removed call to
11401         usualUnaryConversions()
11402
11403 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
11404
11405         * support/regression/tests/literalop.c (mulWrapper): Added a
11406         wrapper to remove integer overflow warnings.
11407
11408         * support/regression/tests/float_trans.c: Made work on host.
11409
11410         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
11411         location of sz80.
11412
11413         * support/regression/generate-cases.py (main): Changed from inline
11414         to a main method.
11415
11416         * doc/Makefile (install): Changed to depth first to get rid of
11417         missing directory install warning.
11418
11419         * as/Makefile (install-doc): Made work on Mac.
11420
11421 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
11422
11423         * src/SDCCast.c: added an additional type flow in decorateType() of
11424         opposite direction, see feature request #860006; it's enabled at runtime
11425         by setting the environment variable SDCC_NEWTYPEFLOW
11426         * src/SDCCast.h: changed prototype of decorateType()
11427         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
11428         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
11429         'char' to 'int' can be omitted, if both operands are 'unsigned char';
11430         see feature request #877103
11431         * src/SDCCval.c: updated call of decorateType()
11432         (valBitwise): fixed bug #882876
11433         (valMinus): added promotion
11434         (valLogicAndOr): result is unsigned
11435         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
11436         * src/SDCCsymt.c (computeType),
11437         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
11438         must not cause an unsigned operation
11439         * src/pic/glue (pic14emitRegularMap),
11440         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
11441
11442 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
11443
11444         * src/pic/pcode.c (PCodeID): commented out left over debug code
11445
11446 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
11447
11448         * support/valdiag/tests/overflow.c: added shift tests
11449         * src/pic/device.c,
11450         * src/pic/gen.c,
11451         * src/pic/gen.h,
11452         * src/pic/glue.c,
11453         * src/pic/main.c,
11454         * src/pic/pcode.c,
11455         * src/pic/pcode.h,
11456         * src/pic/pcodepeep.c,
11457         * src/pic/pcoderegs.c,
11458         * src/pic/ralloc.c,
11459         * src/pic/ralloc.h: applied patch from Slade Rich;
11460         added support for multiple code pages and multiple RAM banks on the
11461         PIC 14 port. The ASM files now no longer simply assume all the
11462         code / RAM are in the same page / bank. This means the linker can
11463         safely allocate code/RAM of separate ASM files to different pages/banks.
11464         * doc/sdccman.lyx: added Slade's tips
11465         * src/mcs51/peeph.def: fixed bug #880768
11466
11467 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11468
11469         * src/hc08/ralloc.c (rematStr): fixed bug #879282
11470         * src/SDCCast.c (decorateType): fixed bug #880197
11471
11472 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
11473
11474         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
11475         getopt.h.
11476
11477         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
11478         strtof is not part of C89 and isn't included with Mac OS X.
11479
11480 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11481
11482         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
11483         shiftL2Left2Result): fixed bug #879326
11484         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
11485         (genMultOneByte): fixed bug in signed vs unsigned multiplication
11486         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
11487         address fetch for clr instruction
11488         * device/lib/hc08/_mulint.c: created optimized assembly version
11489         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
11490
11491 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
11492
11493         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
11494         proposed in FR #877103
11495
11496 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
11497
11498         * src/SDCCval.c (cheapestVal): added missing checks
11499         * src/SDCCicode.c (usualBinaryConversions): fixed condition
11500         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
11501
11502 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
11503
11504         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
11505         equal operands
11506
11507 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
11508
11509         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
11510         loaded with the linker search paths (-L arguments) and the libraries
11511         to be linked with the current source (-l arguments). Changes
11512         currently will affect only the pic16 port.
11513         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
11514         include path the port specific paths and port specific libraries,
11515         * gplink command now contains the $3 argument,
11516         * src/pic16/device.h,
11517         * src/pic16/device.c,: structure PIC_device is made public and
11518         renamed to PIC16_device, the same for variable Pics which is renamed
11519         to Pics16. Updated all references to them.
11520         * src/pic16/glue.c (pic16glue): corrected bug with code
11521         initialization which bypassed the variable initializations block.
11522
11523         * device/lib/pic16/Makefile.rules: removed --penable-stack from
11524         COMPILE_FLAGS and added the --nostdinc option
11525
11526 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11527
11528         * device/include/mc68hc908jb8.h: Register defs for another member
11529         of the hc08 family. Contributed by Bjorn Bringert - thanks!
11530
11531 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
11532
11533         Documenting changes from previous commits.
11534         * configure.in (version 1.56),
11535         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
11536         when generating output files to configure the pic16 library,
11537         but now I've commented it out, since gputils aren't installed in the
11538         SF compile farm, so library won't compile
11539
11540         * device/lib/Makefile.in (version 1.56): initially I've added in
11541         target 'all' the prerequestive 'model-pic16' so it compiled the
11542         pic16 library, but now I've commented it out for the same reasons
11543         above,
11544         * added targets 'model-pic16' and 'objects-pic16' to compile the
11545         library
11546         * added target 'port-specific-objects-pic16' to handle the
11547         generated libraries and copy them into the build/ directory
11548         * added target 'clean-intermediate-pic16' to clean intermediate
11549         files into pic16 directory
11550         * in target 'installdirs' added line to create directory pic16 in
11551         the installation path
11552
11553         * device/include/Makefile.in (version 1.11): in target 'install'
11554         added lines to copy all header files to installation path,
11555         * in target 'installdirs' added line create directory for pic16
11556         headers in the installation path
11557
11558 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
11559
11560         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
11561          a function call
11562
11563 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
11564
11565         * configure,
11566         * device/lib/configure.in,
11567         * device/lib/configure: fixed for autoconf 2.57
11568
11569 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11570
11571         * src/z80/main.c (_parseOptions): fixed the portmode= command line
11572         option so that it actually works. Made it specific to the z80, since
11573         the gbz80 doesn't have these kinds of I/O ports.
11574
11575 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11576
11577         * device/include/z180.h,
11578         * device/lib/_memcpy.c,
11579         * device/lib/_memmove.c,
11580         * device/lib/_mulint.c,
11581         * device/lib/ser_ir.c,
11582         * device/lib/ser_ir_cts_rts.c,
11583         * device/lib/_strcmp.c,
11584         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
11585         * src/z80/main.c (_process_pragma): add support for pragmas bank and
11586         portmode; added deprecation warning for bank= and protmode= forms.
11587         Also, guard against buffer overflow.
11588         * src/z80/gen.c (aopGet): generate better code for sfr banked read
11589
11590 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11591
11592         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
11593         changed interrupt vector table generation to only emit declared vectors.
11594         * device/include/Makefile.in: added missing backslash
11595         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
11596
11597 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11598
11599         Mainly changes to support compilation of the device libraries
11600         * src/pic16/device.c: stack is allocated via symbol and not
11601         via literal number. The symbol is placed in the corresponding
11602         position of the data ram
11603         * (pic16_dump_section): relocatable and absolute uninitialized
11604         data are now emitted in sorted order to reduce section naming,
11605         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
11606         weren't marked as being in the access bank,
11607
11608 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
11609
11610         Added portion of GNU PIC Library under the directory
11611         device/include/pic16 and device/lib/pic16. These files
11612         contain the declarations of SFRs for the PIC18Fxx2 devices.
11613         The directory is initialized via configure from toplevel.
11614
11615 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
11616
11617         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
11618         the spilllocations to be compared correctly
11619
11620 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11621
11622         * src/SDCCast.c (decorateType): fixed bug introduced today
11623
11624 2004-01-12  Borut Razem <borut.razem AT siol.net>
11625
11626         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
11627         doc/sdccman.lyx: upper case pragmas are deprecated
11628
11629 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11630
11631         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
11632         in simpler and even better code
11633
11634 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
11635
11636         * src/SDCCicode.c (operandOperation): fixed bug #874819
11637         * src/SDCCast.c (decorateType): fixed
11638         char foo (unsigned long ul) { return ul > 0; }
11639
11640 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11641
11642         * doc/sdccman.lyx: Moved and added some sections, small changes
11643         all over. Telling LaTeX to be less strict with word spacing
11644         to better keep the right margin. Changed some notes about
11645         maintainance of the ports in section 3.2.1 - is it OK like this?
11646
11647 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
11648
11649         SDCC source changes:
11650         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
11651         convilong): modified to inform the pic16 port that builtin functions
11652         are external
11653
11654         PIC16 PORT specific changes:
11655         * src/pic16/device.c pic16_dump_equates() added,
11656         processor registers declared internally by the port are emitted in
11657         the translation as equates,
11658         * src/pic16/gen.c: inline code is passed unprocessed to the
11659         translation,
11660         * (pic16_popGetLit2): fnuction modified to take second operand as
11661         pCodeOp pointer and not as literal,
11662         * (popRegFromIdx): prefixed with pic16_,
11663         * (pic16_popCombine2): modified to receive already allocated pCode
11664         operands,
11665         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
11666         * (genFunction): initializes local stack frame and pushes on stack
11667         all the registers used by this function,
11668         * (genEndFunction): restores all registers from stack and restores
11669         stack frame,
11670         * src/pic16/glue.c (pic16emitRegularMap): various changes and
11671         improvements,
11672         * (pic16glue): changed the program startup sequence,
11673         * added new dbName code 'A' for functions placed in absolute section
11674         * src/pic16/main.c: added function attribute _naked,
11675         * added pragma 'code' to place a fnuction at an absolute address,
11676         * added command line arguments --debug-ralloc and --pcode-verbose,
11677         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
11678         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
11679         * (pic16_newpCodeOpLit2): modified to take the second operand as
11680         pCodeOp pointer,
11681         * (pic16_printpBlock): modified to emit each function in a separate
11682         section,
11683         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
11684         UPPER for immediate operands,
11685         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
11686         instruction,
11687         * src/pic16/peeph.def: all peepholes with movff are commented out,
11688         because there is a problem in the pcode peep optimizer,
11689         * src/pic16/ralloc.c: the register allocator can now reuse local
11690         function symbols for another function. This saves register usage.
11691         * src/pic16/ralloc.h: added flag isLocal in structure regs,
11692
11693         Added file src/pic16/NOTES with information about program writing on
11694         the current port version.
11695
11696 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11697
11698         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
11699         and peephole 252 (array access)
11700
11701 2004-01-09  Borut Razem <borut.razem AT siol.net>
11702
11703         * src/SDCCmain.c : fixed #872250: -l command line defined library
11704           files are scanned before standard library files
11705
11706 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11707
11708         * src/SDCCast.c (decorateType): fixed bug #874046
11709
11710 2004-01-09  Borut Razem <borut.razem AT siol.net>
11711
11712         * support/scripts/sdcc.nsi: remove previous installation
11713
11714 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11715
11716         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
11717         bytes for last interrupt vector (mcs51)
11718         * sdcc.spec: fixed typo
11719
11720 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11721
11722         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
11723         gen51Code): more efficient parameter receive for --model-large
11724         ("bug" #845294)
11725
11726 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11727
11728         * src/ds390/main.c,
11729         * src/z80/main.c: added missed needLinkerScript flags (more than
11730         one port structure defined in these file)
11731         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
11732         bug #795325
11733
11734 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
11735
11736         * src/SDCCmain.c: removed various references to DEFAULT_PORT
11737         * src/port.h: added flag needLinkerScript in port->linker
11738         structure to inform whether to create a .lnk file or not,
11739         * src/avr/main.c,
11740         * src/ds390/main.c,
11741         * src/hc08/main.c,
11742         * src/mcs51/main.c,
11743         * src/pic/main.c,
11744         * src/pic16/main.c,
11745         * src/xa51/main.c,
11746         * src/z80/main.c: changed appropriately to configure
11747         needLinkerScript flag
11748         * src/pic/gen.c,
11749         * src/pic16/gen.c (genAddrOf): fixed bug #863624
11750         * src/pic/glue.c: added variable udata_section_name to
11751         override default uninitialized data segment definition for
11752         devices only with SHAREBANK memory (reported from Erik Epetrich)
11753         * (pic14emitOverlay): modified to emit a commented overlay segment
11754         directive when no overlay data exist
11755         * (picglue): modified to emit uninitialized data segment
11756         according to udata_section_name
11757         * src/pic/main.c (_pic14_parseOptions): added command line
11758         options --udata-section-name=[name] to override default
11759         udata definition name
11760         * modified _linkCmd and _asmCmd to include compiler passed
11761         arguments via -W option
11762         * src/pic16/main.c: added $l in _asmCmd, changed extension for
11763         object file from '.rel' to '.o' in port->linker structure,
11764         changed size of fptr from 2 to 3 in port structure
11765
11766 2004-01-07  Borut Razem <borut.razem AT siol.net>
11767
11768         * support/scripts/sdcc.nsi: update PATH
11769         * support/scripts/sdcc.ico: craeted
11770
11771 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
11772
11773         * device/include/Makefile.in: fix install
11774         * doc/Makefile: fix install
11775
11776 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11777
11778         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
11779         in bug #860505
11780         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
11781         how the function variable allocation summary is displayed; also
11782         include information about variables allocated to the overlay
11783         segment
11784
11785 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11786
11787         * as/mcs51/lkmain.c: Help about -Y option
11788         * as/mcs51/lkarea.c: Fixed gcc warnings
11789
11790 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11791
11792         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
11793         fixed warning
11794         * support/valdiag/tests/overflow.c: added
11795         * src/SDCCast.c (decorateType),
11796         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
11797         LEFT_OP (left shift)
11798
11799 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11800
11801         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
11802         (default behaviour).
11803
11804 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11805
11806         A python script to validate compiler diagnostic messages. It can be
11807         used to verify that sdcc complains about bad c source code and
11808         gives a good location of the error.
11809         * support/valdiag/Makefile,
11810         * support/valdiag/valdiag.py,
11811         * support/valdiag/tests/*
11812
11813 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11814
11815         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
11816         * src/SDCCsymt.c (newEnumType),
11817         * src/SDCCsymt.h
11818         * support/Util/SDCCerr.c,
11819         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
11820         enum related bugs.
11821         * support/regression/tests/enum.c: added test for enum values that
11822         require at least 2 bytes of storage.
11823
11824 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11825
11826         * src/common.h: added ifndef/define/endif macros
11827         around the header file.
11828         Bug reported from Jesus Calvino-Fraga
11829
11830 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
11831
11832         * sdcc.spec: updated
11833         * device/include/Makefile.in: don't install CVS directories
11834         * device/lib/Makefile.in: added removal of CVS directories after install
11835         * doc/Makefile: fixed install, added local_icons
11836         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
11837         * src/mcs51/gen.c (genRightShift): fixed bug #870788
11838         * src/ds390/gen.c (genRightShift): fixed bug #870788
11839         * src/SDCCast.c (decorateType): fixed bug #870781
11840
11841 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
11842
11843         PIC16 port related changes:
11844         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
11845         added variable stackPos,
11846
11847         * gen.c: genCall, assignResultValue: added support for
11848         pushing/retrieving function parameters to/from stack,
11849         genFunction,genEndFunction: setup stack frame for the
11850         generated function,
11851         genAddrOf: will be changed according to bug 863624
11852
11853         * added files genutils.c and genutils.h which contain gen*
11854         debugged and optimised functions extracted from gen.c
11855
11856         * glue.c: added variable 'externs' which holds extern symbols,
11857         pic16emitRegularMap: is modified to properly handle relocatable
11858          symbols under the new scheme,
11859         pic16createInterruptVect: is modified
11860         pic16printPublics: is modified to emit 'global' assembler directives,
11861         added pic16_printExterns to print extern symbols,
11862         pic16glue: initializes stack/frame pointer in the beginning of
11863         the assembly output. Temporary hack, will be corrected later,
11864         because gplink yet does not support stack and SDCC does not
11865         yet support a type of crt0.o object to create the final binary.
11866
11867         * Removed many lines that contain 8051 legacy code.
11868         * The code is finally placed under a 'code' directive.
11869         * Added port specific options.
11870
11871         * _process_pragma: simplified since now we do not need *special*
11872         include file to define SFR registers. But a separate header
11873         will be needed. This will be developed later.
11874         * _pic16_parseOptions: added, parses port specific options:
11875         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
11876         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
11877         --preplace-udata-with=
11878
11879         * _pic16_setDefaultOptions: modified to initialize section names,
11880         but hack is temporarly out of order since it needs improvement.
11881         * _pic16_genAssemblerPreamble: configuration words are emitted by
11882         their address instead of their name. This part is incomplete and
11883         supports only the 18Fxx2 devices. Other devices will emit an error
11884         during assembly since they do not contain the same set of config
11885         registers
11886         * _pic16_genIVT: is modified,
11887
11888         * pcode.c: added definitions for some hardware registers that are needed
11889         for stack support
11890         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
11891         All PCI entries are updated. Now LFSR is supported.
11892         * Removed pic16_pciTRIS is mentioned by mdubuc in source
11893         * added pic16_newpCodeOpLit2 to support instructions with
11894         two literal arguments
11895         * pic16_pCode2str: corrected code that emits assembler instructions
11896         with two literal operands and those that have an access bit modifier
11897         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
11898         this fixes a bug which caused some labels to be lost, when an
11899         assembler directive was added, i.e. banksel,
11900         * pic16_FixRegisterBanking: improved logic that causes the insertion
11901         of bank switching,
11902         * InlineFunction: functions that are called once, are not any more
11903         inlined. This can be a port option in the future,
11904
11905         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
11906
11907         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
11908         hold the corresponding uninitialized symbols,
11909         * pic16_allocProcessorRegister: registers have explicit marked the
11910         accessBank field,
11911         * pic16_allocInternalRegister: registers are explicit marked as
11912         not used,
11913         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
11914         processing list, so bit registers were lost,
11915         *
11916
11917         * ralloc.h: added field 'accessBank' and original symbol operand
11918         in register definition,
11919         * removed the field isMapped from register definition,
11920
11921         ** Several functions have been removed from various sources:
11922         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
11923         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
11924         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
11925         pic16_assignRelocatableRegisters
11926
11927         ** others have been introduced:
11928         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
11929         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
11930
11931 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
11932
11933         * support/scripts/inc2h.pl: changed definition of BIT_AT
11934         to emit 'sbit at' instead of 'bit at'. This was a request.
11935
11936         PIC16 port related preliminary changes:
11937         * gen.c: prefixed function popRegFromString with
11938         pic16_ and all references to it corrected
11939         * pcode.c: all pic16_pc_* hardware registers prefixed
11940         with underscore (_),
11941         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
11942         * ralloc.c: newReg(): when register is REG_SFR then
11943         set address to rIdx,
11944         pic16_allocProcessorRegister(): marks register wasUsed=0
11945         pic16_writeUsedRegs(): added a call to assign processor
11946         registers via pic16_assignFixedRegisters
11947
11948 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11949
11950         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
11951         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
11952         variables in unused register banks.  Also the SSEG is placed
11953         wherever there is enough space for it, and IDATA can be anywhere
11954         in internal RAM.  For now compile using -Wl-Y[stack_size].
11955         The mem file is different for this option as well, since it
11956         makes no sense of talking about DSEG lenght.
11957
11958 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
11959
11960         * src/SDCClrange.c: fixed bug 869095 that caused segfault
11961         in certain cases, e.g. when ROM assignment, patch provided
11962         from Albert den Haan.
11963
11964 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
11965
11966         Many signedness and type propagation fixes:
11967         * src/SDCCicode.c: made geniCodeCast() static
11968         replaced SPEC_ by IS_ (cosmetic)
11969         (operandOperation): fixed div and mod operation
11970         (usualBinaryConversions): added support for promotion of char
11971         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
11972         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
11973         (geniCodeAdd): an array index will stay unsigned, even if promoted
11974         from char to int
11975         (geniCodeArray): ditto
11976         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
11977         * src/SDCCsymt.c (computeType): added more support for char;
11978         promotion of char is selectable by promoteCharToInt, fixed signedness
11979         for all cases
11980         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11981         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
11982         * src/SDCCval (val*): replaced signedness calculation by
11983         computeType()
11984         rearranged if-branches (cosmetic)
11985         (valShift): added warning W_SHIFT_CHANGED
11986         (valCompare): fixed problem with different types
11987         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
11988         * support/regression/tests/literalop.c: added many cases
11989         * support/regression/tests/ast_constant_folding.c: changed finally to
11990         'unsigned int'
11991         * .version: new year, new version: 2.3.7
11992         * src/SDCCmain.c (main): applied patch #866468
11993         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
11994         provided by Scott Bronson
11995         * doc/sdccman.lyx: updated documentation for sdcdb
11996         updated and added chapter tips
11997
11998 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
11999
12000         * src/SDCCsymt.h: missing from yesterday's commits
12001
12002 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12003
12004         * src/SDCC.y (struct_or_union_specifier),
12005         * support/Util/SDCCerr.c,
12006         * support/Util/SDCCerr.h: verify that struct & union tags are used
12007         as declared.
12008
12009 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12010
12011         * src/SDCCglobl.h: missing from yesterday's commits
12012
12013 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12014
12015         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
12016         sft_attributes, struct_declaration, parameter_declaration,
12017         type_name, start_block, declaration_list),
12018         * src/SDCC.lex (check_type): support redefinition of typedef names
12019
12020 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12021
12022         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
12023         aligned xdata arrays. Erik helped me with the if clause.
12024
12025 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12026
12027         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
12028         warning
12029
12030 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12031
12032         * src/SDCCast.h,
12033         * src/SDCCast.c (newAst_),
12034         * src/SDCCicode.h,
12035         * src/SDCCicode.c (ast2iCode, newiCode),
12036         * src/SDCCglobl.h,
12037         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
12038         expr, statement, expression_statement, selection_statement,
12039         iteration_statement, expr_opt, jump_statement): foundation for tracking
12040         sequence points
12041         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
12042         point code too)
12043
12044 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12045
12046         * support/Util/SDCCerr.c,
12047         * src/SDCCast.h,
12048         * src/SDCCast.c (createCase, createDefault, decorateType),
12049         * src/SDCClabel.c (labelUnreach),
12050         * src/SDCC.y (labeled_statement, jump_statement): More improvements
12051         to error messages.
12052         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
12053         (with thanks to Stas Sergeev)
12054         * device/include/time.h,
12055         * device/lib/time.c (CheckTime): suppress unreachable code warning
12056
12057 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12058
12059         * src/SDCCast.c (createIvalCharPtr),
12060         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
12061         bug #753752)
12062         * support/regression/tests/nullstring.c: tests for these two bugs
12063
12064 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12065
12066         * support/Util/SDCCerr.h,
12067         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
12068         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
12069         about storage class and 'at' used inside struct or union
12070         * src/SDCCBBlock.c (iCodeFromeBBlock),
12071         * src/SDCCcse.c (ifxOptimize),
12072         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
12073         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
12074         printIval, emitStaticSeg, emitOverlay),
12075         * src/SDCClabel.c (deleteIfx),
12076         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
12077         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
12078         gatherAutoInit, processParms),
12079         * support/Util/SDCCerr.h,
12080         * support/Util/SDCCerr.c (werrorfl): Support for better error location
12081         reporting for post-parse errors.
12082
12083 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12084
12085         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
12086         implicit casts via union; they don't work on big endian systems
12087         (possible fix for bug #861138)
12088
12089 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12090
12091         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
12092         * src/mcs51/main.c: fixed the fix for bug #737001
12093
12094 2003-12-15  Borut Razem <borut.razem AT siol.net>
12095
12096         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
12097
12098 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12099
12100         * support/makebin/makebin.c: put output in binary mode
12101
12102 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12103
12104         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
12105         xdata and data memory on startup. Set the environment variable
12106         SDCC_NOGENRAMCLEAR to disable this.
12107         * src/mcs51/peephole.def,
12108         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
12109         (allows non-interrupt and interrupt code to safely compete for a resource
12110         without the non-interrupt code having to disable interrupts)
12111
12112 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12113
12114         * src/SDCCicode.c (geniCodeAdd),
12115         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
12116         with valFromType if type might be a pointer and host is big endian).
12117         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
12118         types, not just integer types.
12119         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
12120         multiply defined with mismatching "at" address.
12121
12122 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12123
12124         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
12125         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
12126         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
12127         with embedded nulls (fixed bug #753752)
12128
12129 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12130
12131         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
12132         Apparently this did not see much testing (endless loop)
12133
12134 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12135
12136         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
12137
12138 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12139
12140         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
12141         gracefully handle NULL memmap pointers
12142
12143 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12144
12145         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
12146         instead of deleting the iCode when an operand is volatile
12147         * src/z80/gen.c (genDummyRead),
12148         * src/mcs51/gen.c (genDummyRead),
12149         * src/ds390/gen.c (genDummyRead),
12150         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
12151         not just IC_RIGHT
12152         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
12153         * src/SDCC.y: fixed bug #850420
12154
12155 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12156
12157         Applied z80 i/o port patch from Peter Townson and fixed some operators
12158         to better handle operands in A register.
12159         * device/include/z180.h
12160         * src/SDCC.y
12161         * src/SDCCglue.c
12162         * src/z80/gen.c
12163         * src/z80/gen.h
12164         * src/z80/main.c
12165         * src/z80/peeph-z80.def
12166         * src/z80/peeph.def
12167         * src/z80/z80.h
12168
12169 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12170
12171         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
12172
12173 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12174
12175         * device/lib/hc08/_mullong.c: Removed extra #endif
12176
12177 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12178
12179         * sim/ucsim/hc08.src/inst.cc,
12180         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
12181         carries from x to h
12182         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
12183         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
12184         * device/include/stdarg.h: fixed varargs for hc08
12185         * device/lib/Makefile.in,
12186         * device/lib/hc08/Makefile,
12187         * device/lib/hc08/_mulint.c,
12188         * device/lib/hc08/_mullong.c: fixed some endian problems
12189
12190 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12191
12192         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
12193         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
12194         * device/lib/_gptrget.c,
12195         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
12196
12197 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12198
12199         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
12200         * src/SDCCast.c (astErrors): fixed bug #846007
12201         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
12202
12203 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12204
12205         * src/SDCCast.c (decorateType): disabled a transformation I added in
12206         revision 1.188 (access to fields of a structure at an absolute address);
12207         it breaks with bitfields, extern declarations, and gcse analysis.
12208         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
12209         could be assigned through a pointer, so don't complain.
12210         * src/SDCCast.c (astErrors),
12211         * src/SDCCast.h,
12212         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
12213
12214 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
12215
12216         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
12217         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
12218         output of __config directives, since gpasm now supports them
12219         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
12220         pre-processor macro, i.e. -DMCU=p18f452
12221         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
12222         and modified to handle 'cast' icode similarly to '=' icode
12223         * src/pic16/device.h (typedef struct PIC_device): added field
12224         'extMIface' to indicate that chip has external memory interface
12225         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
12226         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
12227         18F8720
12228
12229 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12230
12231         * src/SDCC.y (pointer): fixed bug #846006
12232         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
12233         * src/SDCCast.c (decorateType): fixed bug #846009
12234         * src/ds390/peeph.def,
12235         * src/ds390/gen.c (genAnd, genOr),
12236         * src/mcs51/peeph.def,
12237         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
12238
12239 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12240
12241         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
12242         * src/SDCCdflow.c
12243         * src/SDCCcse.c
12244         * src/SDCCcse.h
12245         * src/SDCCBBlock.h
12246         * src/SDCCBBlock.c
12247
12248 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
12249
12250         fixed bug #845089
12251         * src/SDCCbitv.h,
12252         * src/SDCCbitv.c: added function to free a bitvector
12253         * src/SDCClrange.h,
12254         * src/SDCClrange.c: added function to recompute the liveranges
12255         * src/avr/ralloc.c,
12256         * src/ds390/ralloc.c,
12257         * src/hc08/ralloc.c,
12258         * src/mcs51/ralloc.c,
12259         * src/pic/ralloc.c,
12260         * src/pic16/ralloc.c,
12261         * src/xa51/ralloc.c,
12262         * src/z80/ralloc.c: recompute the liveranges after register packing
12263
12264 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
12265
12266         * src/SDCCloop.c (newInduction): fixed bug #845630
12267
12268 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12269
12270         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
12271         inadvertantly left behind from my 2003-11-12 change
12272
12273 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12274
12275         Updated headers I neglected to commit yesterday.
12276         * src/SDCClrange.h,
12277         * src/SDCCicode.h
12278
12279 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12280
12281         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
12282         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
12283         * src/SDCCopt.c (eBBlockFromiCode),
12284         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
12285         the creation of the key hash table from the sequencing so it can be used
12286         earlier (for some GCSE bug fixes still pending)
12287
12288 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12289
12290         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
12291         * support/regression/tests/addsub.c: testing genPlus shortcut
12292
12293 2003-11-15  Borut Razem <borut.razem AT siol.net>
12294
12295         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
12296
12297 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12298
12299         * src/SDCCcse.c (cseBBlock): fixed bug #527779
12300         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
12301         ordering is immaterial.
12302         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
12303
12304 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12305
12306         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
12307         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
12308         (SIGSEV) of bug #840381
12309         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
12310         unlink new file before rename if new and old filenames are the same)
12311
12312 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12313
12314         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
12315         uninitialized variables) for the mcs51. Set environment variable
12316         SDCC_GENRAMCLEAR to test.
12317         xdata initialization slightly shorter
12318
12319 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12320
12321         * src/SDCCsymt.h,
12322         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
12323         #838241 & 780691 (basicly the same bug)
12324         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
12325         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
12326
12327 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
12328
12329         * src/SDCCmain.c (linkEdit): "fix" #834252
12330
12331 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12332
12333         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
12334         * src/SDCCast.h,
12335         * src/SDCC.y: fixed bug #819403
12336
12337 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12338
12339         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
12340         the reentrant attribute.
12341         * src/hc08/gen.c (genPackBits): added missing stack readjustment
12342         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
12343         simulation
12344         * src/SDCCast.c (decorateType): fixed bug with storage class not being
12345         updated during pointer dereference; f.e. ~(((char *)1)*) was being
12346         erroneously reduced to a literal.
12347         * src/hc08/ralloc.c (packRegisters, rematStr),
12348         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
12349         some cases
12350
12351 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12352
12353         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
12354         * doc/sdccman.lyx: changed from 'article' to 'book'
12355         * doc/Makefile: readded test_suite_spec and cdbfileformat
12356
12357 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
12358
12359         * device/include/stdlib.h: include malloc.h to comply with ANSI
12360         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
12361
12362 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12363
12364         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
12365         * doc/clean.mk: also remove *.out files
12366         * doc/sdccman.lyx: some additions, larger top/bottom margins
12367
12368 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12369
12370         * src/SDCC.y: fixed bug #837365
12371         * support/regression/tests/bitopcse.c
12372         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
12373         a symbol (might be valop instead)
12374         * device/lib/Makefile.in: added errno.c to HC08SOURCES
12375         * device/lib/clean.mk: added hc08 to the cleaning list
12376
12377 2003-11-04  Borut Razem <borut.razem AT siol.net>
12378
12379         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
12380           made 2003-11-04
12381         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12382           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
12383           malloc is declared in standard stdlib.h
12384
12385 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12386
12387         * device/lib/hc08/Makefile: need to clean .rel not .o files
12388         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
12389
12390 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12391
12392         * src/port.h,
12393         * src/hc08/main.c,
12394         * src/mcs51/main.c,
12395         * src/ds390/main.c,
12396         * src/z80/main.c,
12397         * src/avr/main.c,
12398         * src/pic/main.c,
12399         * src/pic16/main.c,
12400         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
12401         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
12402         tests (which uses the port's oclsExpense function)
12403         * src/SDCC.y,
12404         * src/SDCCast.c,
12405         * src/SDCCicode.c,
12406         * src/hc08/gen.c,
12407         * src/ds390/gen.c,
12408         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
12409
12410 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12411
12412         * src/SDCCcse.c (ifxOptimize),
12413         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
12414         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
12415         deleting the IFX iCode.
12416         * src/hc08/ralloc.c: reduced unneeded slocs
12417         * src/hc08/gen.c: fixed bug in asmopToBoolean
12418
12419 2003-11-04  Borut Razem <borut.razem AT siol.net>
12420
12421         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
12422           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
12423           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
12424           transferred to configure
12425
12426 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
12427
12428         Use headers defined in the C[++] standards:
12429         * sim/ucsim/gui.src/serio.src/fileio.cc
12430         * sim/ucsim/gui.src/serio.src/frontend.cc
12431         * sim/ucsim/gui.src/serio.src/main.cc
12432         * sim/ucsim/gui.src/serio.src/posix_signal.cc
12433         * support/Util/NewAlloc.c
12434         * as/hc08/lklibr.c
12435         * as/mcs51/lklibr.c
12436         * as/z80/aslist.c
12437         * as/z80/assym.c
12438
12439 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12440
12441         * Added MSVC projects for hc08 assembler and linker:
12442         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
12443         /as/hc08/link_hc08.dsp
12444
12445 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
12446
12447         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
12448
12449 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
12450
12451         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
12452
12453 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12454
12455         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
12456
12457 2003-10-31  Borut Razem <borut.razem AT siol.net>
12458
12459         * support/cpp2/cpplib.h,
12460           support/cpp2/cpplib.c,
12461           support/cpp2/cpplex.c,
12462           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
12463           to switch _asm block preprocessing on / off. Default is
12464           #pragma preproc_asm +
12465
12466 2003-10-31  Borut Razem <borut.razem AT siol.net>
12467
12468         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
12469           when outputting comment blocks (when executed with -C option) and
12470           _asm (SDCPP specific) blocks
12471
12472 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12473
12474         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
12475
12476 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
12477
12478         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
12479
12480 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
12481
12482         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
12483         * src/SDCCast.c (decorateType): fixed bug #832664
12484
12485 2003-10-31  Borut Razem <borut.razem AT siol.net>
12486
12487         * support/cpp2/cpplex.c: fixed for SDCPP:
12488           comments(when executed with -C option) and _asm blocks
12489           were included even if they where in skipped #if block.
12490           Applied solution from GCC cpp 3.3.2
12491
12492 2003-10-31  Borut Razem <borut.razem AT siol.net>
12493
12494         * src/SDCC.lex: sdcc now understands both formats:
12495           '# <line_number> <file_name>' and
12496           '#line <line_number> <file_name>'
12497         * support/cpp2/cppmain.c: sdcpp now generates the standard
12498           '# <line_number> <file_name>' instead of former
12499           '#line <line_number> <file_name>'
12500
12501 2003-10-30  Borut Razem <borut.razem AT siol.net>
12502
12503         * support/cpp2/cpphash.h,
12504         * support/cpp2/cpplib.h
12505         * support/cpp2/cpplex.c,
12506         * support/cpp2/cppmain.c,
12507         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
12508
12509 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12510
12511         Fixed a number of problems revealed by bug #827883.
12512         * src/SDCCloop.c (loopInvariants): Spill location of the
12513         result operand should be recomputed if extracted from
12514         a loop. Also, don't extract assignments of an iTemp
12515         from a literal.
12516         * src/SDCCast.c (isConformingBody): loop reversal should
12517         not occur if the control variable is involved with a
12518         relational operator.
12519
12520 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
12521
12522         * .version: bumped to 2.3.6 to reflect the big improvements
12523         made by Erik and Klaus. Thanks!
12524
12525 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
12526
12527         Replaced the livrange code.
12528         * src/SDCClrange.c: added new LR code
12529         * src/SDCCloop.c,
12530         * src/SDCCBBlock.h: removed remainig parts from old LR code
12531         * src/ds390/ralloc.c,
12532         * src/ds390/gen.c: minor fixes to make it work with new code
12533
12534 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12535
12536         * as/hc08/asm.h,
12537         * as/hc08/lkrloc.c,
12538         * src/hc08/gen.c,
12539         * src/hc08/ralloc.c: Fix various warnings related to the hc08
12540         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
12541         (tweaked fix for bug #818696)
12542
12543 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12544
12545         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
12546
12547 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12548
12549         * src/SDCCmain.c,
12550         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
12551         * src/mcs51/gen.c (gencjneshort),
12552         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
12553         more efficient (per Scott Bronson's suggestion)
12554
12555 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12556
12557         Extended the semantics of the critical keyword to include
12558         individual statements. See RFE #827755 and #799831
12559         * src/SDCC.y
12560         * src/SDCCicode.c
12561         * src/SDCCopt.c
12562         * src/SDCCast.c
12563         * support/Util/SDCCerr.c
12564         * support/Util/SDCCerr.h
12565         * src/mcs51/gen.c
12566         * src/ds390/gen.c
12567         * src/hc08/gen.c
12568
12569 2003-10-19  Borut Razem <borut.razem AT siol.net>
12570
12571         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
12572
12573 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12574
12575         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
12576         Fixed bug #818696
12577         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
12578         and predecrement operand is displayed
12579
12580 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12581
12582         * src/SDCCval.c (valMinus): fixed bug #826041
12583
12584 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12585
12586         Some hc08 related updates that I missed earlier
12587         * sim/ucsim/stypes.h
12588         * support/regression/ports/hc08/spec.mk
12589
12590 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12591
12592         New target "hc08" for the Motorola 68hc08 family of micros
12593
12594         * configure
12595         * configure.in
12596         * Makefile
12597         * src/hc08/*
12598         * src/SDCCmain.c
12599         * src/port.h
12600         * sim/ucsim/hc08.src/*
12601         * sim/ucsim/configure.in
12602         * src/ucsim/configure
12603         * sim/ucsim/packages_in.mk
12604         * as/hc08/*
12605         * as/Makefile
12606         * device/include/mc68hc908qy.h
12607         * device/lib/hc08/*
12608         * device/lib/Makefile.in
12609         * support/regression/ports/hc08/*
12610         * support/regression/Makefile
12611
12612 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12613
12614         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
12615         regression test
12616         * src/ds390/gen.c (genCast): fixed bug #821957
12617
12618 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
12619
12620         * device/lib/logf.c: "fixed" overlay bug
12621         * support/regression/ports/host/spec.mk: added m library
12622         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
12623         * support/regression/tests/float_trans: added (for Eric)
12624
12625 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
12626
12627         * src/mcs51/gen.c (genCpl): fixed bug
12628         http://sf.net/mailarchive/message.php?msg_id=6263915
12629
12630 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
12631
12632         * src/SDCCast.c (decorateType): added extended constant folding
12633         * src/SDCCsymt.c (computeType): cleanup
12634         * src/SDCCval.c (valShift): minor optimization
12635         * support/regression/tests/ast_constant_folding.c: added
12636
12637 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12638
12639         * src/SDCCmain.c: removed some unintended changes
12640
12641 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12642
12643         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
12644         * src/z80/gen.c: fixed part of bug #817589
12645         * src/SDCCsymt.c (checkFunction): fixed bug #817895
12646
12647 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
12648
12649         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
12650         * src/SDCCcflow.c
12651         * src/SDCCcse.c
12652         * src/SDCCdflow.c
12653         * src/SDCClabel.c
12654         * src/SDCClrange.c
12655         * src/SDCCmem.c
12656         * src/SDCCopt.c
12657         * src/SDCCpeeph.c
12658         * src/SDCCset.c
12659         * src/avr/ralloc.c
12660         * src/ds390/ralloc.c
12661         * src/izt/ralloc.c
12662         * src/mcs51/ralloc.c
12663         * src/pic/ralloc.c
12664         * src/pic16/ralloc.c
12665         * src/xa51/ralloc.c
12666         * src/z80/ralloc.c
12667         * src/z80/gen.c: removed unused label "release:"
12668
12669 2003-10-06  Borut Razem <borut.razem AT siol.net>
12670
12671         * src/SDCC.lex: removed definition of unused variables
12672           save_optimize and save_options
12673
12674 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
12675
12676         * clean.mk: removed '=' in "-maxdepth=1"
12677         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
12678         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
12679
12680 2003-10-06  Borut Razem <borut.razem AT siol.net>
12681
12682         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
12683           my_unput() replaced by unput()
12684
12685 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
12686
12687         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
12688         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
12689         type-punned pointer will break strict-aliasing rules"
12690         Old LR behaviour is again default; Klaus' LR can be choosen by
12691         defining the environment variable LRKLAUS
12692         * src/SDCCBBlock.h
12693         * src/SDCCloop.c
12694         * src/SDCClrange.c
12695         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
12696         * clean.mk: fixed removal of files in bin/CVS/
12697         * device/lib/clean.mk: fixed removal of directories small and large
12698         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
12699         * src/SDCCicode.c,
12700         * src/SDCCval.c: removed superflous test for pedantic
12701
12702 2003-10-05  Borut Razem <borut.razem AT siol.net>
12703
12704         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
12705           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
12706           message "unmatched #pragma SAVE and #pragma RESTORE"
12707
12708 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12709
12710         * doc/sdccman.lyx: various additions and updates (interrupts, inline
12711           assembly, critical functions, atomic, nojtbound)
12712
12713 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
12714
12715         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
12716         * src/SDCCBBlock.h
12717         * src/SDCCloop.c
12718         * src/SDCCloop.h
12719         * src/SDCClrange.c
12720
12721 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12722
12723         * src/z80/gen.h,
12724         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12725         * src/mcs51/gen.h
12726         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12727         * src/ds390/gen.h
12728         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
12729         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
12730         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
12731
12732 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12733
12734         * src/z80/gen.c (genRet): fixed bug #524753
12735         * src/z80/gen.c (genCast): fixed internal error on cast from
12736         pointer to long
12737         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
12738         fix for bug #477835 to the z80
12739         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
12740         for tracking iCodes in the peephole optimizer for z80
12741
12742 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12743
12744         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
12745         the other part of bug #814548
12746         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
12747
12748 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
12749
12750         * src/SDCCcse.c: fixed part of bug #814548
12751
12752 2003-09-28  Borut Razem <borut.razem AT siol.net>
12753
12754         * src/asm.c: rewrite of printILine() to use temporary file instead
12755           a pipe
12756         * src/xa51/main.c: commented out declaration of int rewinds
12757
12758 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12759
12760         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
12761
12762 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12763
12764         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
12765         * src/asm.c (printILine): Fixed bug #811015
12766
12767 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12768
12769         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
12770         freeing.
12771
12772 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12773
12774         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
12775         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
12776         to correctly handle general case of AOP_PAIRPTR
12777         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
12778
12779 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12780
12781         * src/mcs51/ralloc.c (fillGaps),
12782         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
12783         register positioning bug)
12784
12785 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
12786
12787         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
12788
12789 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12790
12791         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
12792         genCodePointerGet, genGenPointerGet, genFarPointerSet,
12793         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
12794         (ralloc doesn't intentionally do this now, but perhaps later)
12795         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
12796         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
12797         register positioning bugs (Fixed bug #762602 and #795325)
12798         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
12799         (Fixed bug #808779)
12800         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
12801         lines that --i-code-in-asm generates
12802
12803 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12804
12805         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
12806         trying to fclose a FILE* that was already closed.
12807
12808 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12809
12810         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
12811         of const struct should be treated as if const themselves)
12812
12813 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
12814
12815         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
12816
12817 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12818
12819         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
12820         Unix (/n) and DOS (/r/n) line terminations.
12821
12822 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12823
12824         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
12825         bug #613775
12826
12827 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12828
12829         * src/mcs51/gen.c (genFunction, genEndFunction),
12830         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
12831         and restore of EA so that stack offsets to parameters are
12832         correct when using both critical and reentrant/stack-auto.
12833         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
12834         size (can be triggered in error if sloc is shared between
12835         different sized objects)
12836         * device/include/float.h: fixed macros to explicitly use
12837         unsigned long where needed
12838
12839 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
12840
12841         Feature req. 799831: added code to allow nesting of critical functions
12842         * src/mcs51/gen.c (genFunction, genEndFunction)
12843         * src/ds390/gen.c (genFunction, genEndFunction)
12844
12845 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12846
12847         * src/SDCCsymt.c (sclsFromPtr),
12848         * src/SDCCsymt.h,
12849         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
12850         support for standard C idiom of memory mapped variables; for
12851         example, *((xdata int*)0x1234) = 1 is now internally equivalent
12852         to xdata int at 0x1234 tempvar = 1.
12853         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
12854         provided by Akiya ISHIDA
12855
12856 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
12857
12858         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
12859         * src/SDCCval.c (constVal): added reduction from int to char
12860         * src/SDCCval.c (valMult, valDiv): fixed sign handling
12861         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
12862         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
12863         to ignore the sign
12864         * support/regression/tests/shifts.c: fixed
12865
12866 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12867
12868         * src/z80/gen.c (genXor): Fixed bug #805445
12869
12870 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12871
12872         Fixed bug #621531 (const & volatile confusion in the type chain).
12873         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
12874         refer to the const or volatile state of the pointer itself.
12875
12876         * src/SDCCast.c
12877         * src/SDCCglue.c
12878         * src/SDCCicode.c
12879         * src/SDCCsymt.c
12880         * src/SDCCval.c
12881         * src/SDCC.y
12882         * src/SDCCsymt.h
12883         * src/pic/gen.c
12884         * src/pic/ralloc.c
12885         * src/pic16/gen.c
12886         * src/pic16/ralloc.c
12887         * support/regression/tests/const.c
12888
12889 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12890
12891         When checking for duplicated modules, use absolute paths
12892         instead of relative paths.  Files changed:
12893
12894         * as/mcs51/lklib.c
12895         * link/z80/lklib.c
12896
12897 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12898
12899         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
12900
12901 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12902
12903         * device/include/string.h: added size_t typedef, changed
12904         prototypes to use size_t, eliminated separate reentrant and
12905         non-reentrant declarations, added _memmove declaration
12906         * device/lib/_memcpy.c: changed to use size_t instead of int,
12907         changed /4 to >>2 to avoid division library call
12908         * device/lib/_memcmp.c,
12909         * device/lib/_memset.c,
12910         * device/lib/_strncat.c,
12911         * device/lib/_strncpy.c,
12912         * device/lib/_strncmp.c: changed to use size_t instead of int
12913         * device/lib/_memmove.c: new file (fixed bug #772294)
12914         * device/lib/Makefile.in: added _memmove.c
12915         * device/lib/z80/asm_strings.s: fixed bug #772290
12916         * support/regression/tests/bitfields.c: attempt to fix host assertion
12917         failure on amd64-unknown-linux2.2
12918
12919 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12920
12921         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
12922         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
12923         * as/z80/asmain.c (main): fixed bug #801766
12924
12925 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
12926
12927         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
12928         compilers
12929
12930 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12931
12932         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
12933         reported in bug #800609
12934
12935 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
12936
12937         * Top header beautifications in src/pic16 directory:
12938           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
12939           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
12940           pcoderegs.h, ralloc.c, ralloc.h
12941         * main.c: added top header and GPL license notice
12942         * pcode.c: fixed the if-conditional warning
12943
12944 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
12945
12946         * device/lib/_mullong.c: replaced int by short for gcc
12947
12948 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
12949
12950         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
12951         and JUMPTABLE iCodes properly now (worked by accident before)
12952         * src/mcs51/gen.c (leftRightUseAcc),
12953         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
12954         iCode properly now. Use getSize instead of nRegs since a & b
12955         aren't part of the nRegs tally.
12956
12957 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
12958
12959         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
12960         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
12961           before instructions that use the _STATUS register
12962
12963 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
12964
12965         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
12966         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
12967         fetching of the pointer
12968         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
12969         copied from genNearPointerSet()
12970         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
12971         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
12972         If they pop r0/r1 they must be called in the opposite order than aopOp().
12973         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
12974         (resp. --stack-auto), prepared for --xstack
12975
12976 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12977
12978         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
12979
12980 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12981
12982         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
12983         these ports have their own __sdcc_external_start()
12984
12985 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
12986
12987         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
12988         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
12989         type for bits was changed. It resulted in bit variables becoming
12990         global, which is not permitted in PIC 14 assembly output.
12991
12992 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12993
12994         * doc/sdccman.lyx: various additions and updates. Rearranged sections
12995
12996 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12997
12998         Z80 and MCS51 linkers complaint if a public symbol is defined
12999         in more than one library module:
13000
13001         * as/mcs51/lklib.c
13002         * link/z80/lklib.c
13003         * as/mcs51/Makefile.in
13004
13005 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13006
13007         A few small changes that speed up the peephole optimizer.
13008
13009         * src/SDCCpeeph.c
13010
13011 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13012
13013         Try to make the peephole optimizer smarter by maintaining
13014         an association between the assembly source code and the
13015         iCodes that originated them. Put this information to use
13016         with a new peephole rule condition "notVolatile" so that
13017         the rules can be aggressive yet still safe.
13018
13019         * src/SDCCpeeph.c
13020         * src/SDCCpeeph.h
13021         * src/mcs51/gen.c
13022         * src/mcs51/peeph.def
13023
13024 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13025
13026         Fixed bug #741761
13027
13028         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
13029         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
13030         if the left or right operand symbols have the accuse flag set.
13031
13032 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13033
13034         Changed the type of the result of the ! (NOT) operator to char;
13035         previously it returned the same type as the source. This allows
13036         us to eliminate all the genFloatNot functions (all of its target
13037         implementations were very buggy) since !float can use the same
13038         code as !long now.
13039
13040         * src/SDCCicode.c (ast2iCode): ! returns char
13041         * src/mcs51/gen.c (genNot, genNotFloat),
13042         * src/ds390/gen.c (genNot, genNotFloat),
13043         * src/z80/gen.c (genNot, genNotFloat),
13044         * src/pic/gen.c (genNot, genNotFloat),
13045         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
13046
13047 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
13048
13049         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
13050         1. Interrupt would not compile properly. Ensure PCLATH register is saved
13051            during interrupts. Ensure WSAVE is located at a shared bank address.
13052         2. Fixed page selection in some places
13053         3. Fixed BTFSS/C to where necessary use registers directly and not simply
13054            the registers name strings.
13055         4. Fixed "signed / unsigned compare" compiler warnings.
13056         5. The PIC port manages its own allocation of the general purpose
13057            registers, but makes no attempt to reuse them. As a result when
13058            compiling it soon runs out of general purpose registers. Some
13059            additional code was added to the files pcode.c and device.c to walk
13060            through the function call tree and rename the registers so that they
13061            get reused.
13062
13063         * src/pic/device.c
13064         * src/pic/gen.c
13065         * src/pic/glue.c
13066         * src/pic/pcode.c
13067         * src/pic/pcode.h
13068         * src/pic/ralloc.c
13069         * src/pic/ralloc.h
13070         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
13071         genPlus() & genMinus() when the result is the same as left or right
13072
13073 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13074
13075         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
13076
13077 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13078
13079         Made bitfield a distinct type from bit so that bitfields
13080         convert as per ANSI C and bits retain their traditional
13081         boolean style behaviour. Implemented bitfield support in
13082         the z80 port.
13083
13084         * src/SDCCsymt.h,
13085         * src/SDCCsymt.c,
13086         * src/SDCCast.c,
13087         * src/cdbFile.c,
13088         * src/mcs51/gen.c,
13089         * src/ds390/gen.c: bit v bitfield split
13090         * src/z80/gen.c: New support for bitfields
13091         * support/regression/tests/bitfields.c: reenabled z80,
13092         added more tests
13093
13094 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13095
13096         Rules 246.x, 247.x relate to bitfields, the others speed up
13097         access to xdata mapped I/O devices.
13098
13099         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
13100
13101 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13102
13103         Cleaned up genPackBits and genUnpackBits and added two helper
13104         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
13105         for literal assignments in genPackBits (thanks to Frieder for
13106         reminding me).
13107
13108         * src/mcs51/gen.c
13109         * src/ds390/gen.c
13110
13111 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13112
13113         Fixed bug #748310 (pointer to function type mishandled when the
13114         function name is omitted). Also fixed a SIGSEGV when a function
13115         attribute (reentrant, etc) is used on a non-function or on a
13116         function but misplaced before the parameter list.
13117
13118         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
13119         bug #748310
13120         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
13121         * support/Util/SDCCerr.h,
13122         * support/Util/SDCCerr.c: Added func attr misuse error msg
13123
13124 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13125
13126         Fixed bug #787649 by anonymous
13127         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
13128         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
13129
13130 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13131
13132         Fixed numerous bitfield problems.
13133
13134         * src/SDCC.y: More bitfield related error checking
13135         * src/SDCCsymt.h,
13136         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
13137         * support/Util/SDCCerr.h,
13138         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
13139         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13140         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
13141         * support/regression/tests/bitfields.c: tests added
13142
13143 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13144
13145         Made the constant following the "interrupt" keyword optional. If
13146         omitted, the function will not automatically be given an entry
13147         in the interrupt vector table (similar to #pragma NOIV, but
13148         less syntacticly kludgy). The interrupt number is also now
13149         range checked. Also fixed a bug in the high order bit example
13150         in the manual.
13151
13152         * src/SDCC.y
13153         * src/SDCCmem.c
13154         * src/SDCCglue.c
13155         * src/SDCCsymt.h
13156         * support/Util/SDCCerr.c
13157         * support/Util/SDCCerr.h
13158         * doc/sdccman.lyx
13159
13160 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
13161
13162         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
13163         * src/SDCCicode.c (operandOperation): rewritten some ops
13164         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
13165         * src/SDCCsymt.c (computeType): literals are handled the same way as any
13166         other type
13167         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
13168         be re-activated by defining REDUCE_LITERALS)
13169         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
13170         unsigned, but are signed by default
13171         * src/SDCCval.c (constVal): rearranged
13172         * src/SDCCval.c (valMod): preliminary fix
13173         * src/SDCCval.c (valCastLiteral): use TYPE_* types
13174         * support/regression/literalop.c: added, work in progress
13175
13176 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13177
13178         Generate warnings for useless declarations like "char data;"
13179         that don't do what new users expect.
13180
13181         * src/SDCC.y
13182         * support/Util/SDCCerr.h
13183         * support/Util/SDCCerr.c
13184
13185 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
13186
13187         * src/SDCCval.c (valMult): fix overflow detection of negative int
13188
13189 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13190
13191         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
13192
13193         Changes to support big endian targets:
13194
13195         * src/ports.h
13196         * src/SDCCglue.c
13197         * src/avr/main.c
13198         * src/ds390/main.c
13199         * src/izt/i186.c
13200         * src/mcs51/main.c
13201         * src/pic/main.c
13202         * src/pic16/main.c
13203         * src/xa51/main.c
13204         * src/z80/main.c
13205
13206 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
13207
13208         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
13209         * device/lib/time.c: fixed warning "integer overflow in expression"
13210
13211 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
13212
13213         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
13214         * src/SDCCval.c (constVal): changed default to signed; hex and octal
13215         constants are unsigned; added recognition of "u" flag for unsigned
13216         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
13217         * src/SDCCval.c (valDiv, valMod): fixed signdness
13218         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
13219         signedness of modulo, left and right shift
13220         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
13221         * support/Util/SDCCerr.h: added warning W_INT_OVL
13222         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
13223         * src/SDCCast.c (ast_print): improved output of constants
13224
13225 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13226
13227         Fixed some warnings when building with MSVC:
13228
13229         * as/mcs51/asdata.c
13230         * as/z80/asdata.c
13231         * as/mcs51/asm.h
13232         * as/z80/asm.h
13233         * link/z80/aslink.h
13234         * link/z80/lkdata.c
13235         * link/z80/lkeval.c
13236         * link/z80/lkgb.c
13237         * link/z80/lkihx.c
13238         * link/z80/lks19.c
13239         * link/z80/lksym.c
13240         * support/cpp2/cpplib.c
13241         * src/ds390/gen.c
13242         * src/mcs51/gen.c
13243
13244 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
13245
13246         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
13247
13248 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13249
13250         * support/librarian/clean.mk: Do not remove Makefile.
13251         * support/librarian/Makefile: added.
13252
13253 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13254
13255         Added librarian to MSVC build:
13256         * all.dsp
13257         * sdcc.dsw
13258         * support/librarian/librarian.dsp
13259
13260         'configure' not needed for librarian, removed:
13261         * support/librarian/configure
13262         * support/librarian/configure.in
13263         * support/librarian/config_in.h
13264         * support/librarian/Makefile.in
13265
13266         Hopefully these ones built the librarian and the rest of sdcc properly:
13267         * Makefile
13268         * Makefile.common.in
13269
13270         Messed up 'configure', so revert to previous version:
13271         * configure
13272         * configure.in
13273
13274 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
13275
13276         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
13277         there, while the mantissa of a double is "only" 53 bits wide.
13278
13279 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13280
13281         Adding sdcclib to the build.  MSVC project coming soon.
13282         Files added/changed:
13283
13284         * support/librarian/clean.mk
13285         * support/librarian/configure
13286         * support/librarian/configure.in
13287         * support/librarian/config_in.h
13288         * support/librarian/Makefile.bcc
13289         * support/librarian/Makefile.in
13290         * support/librarian/sdcclib.c
13291         * Makefile.bcc
13292         * Makefile
13293         * Makefile.common.in
13294         * configure
13295         * configure.in
13296
13297 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13298
13299         Linker now complaints if linked modules have conflicting options, for
13300         example, one compiled using --model-large and another one compiled with
13301         --model-small.  The following files were modified:
13302
13303         * as/mcs51/asdata.c
13304         * as/mcs51/aslink.h
13305         * as/mcs51/asm.h
13306         * as/mcs51/asmain.c
13307         * as/mcs51/asout.c
13308         * as/mcs51/i51pst.c
13309         * as/mcs51/lkdata.c
13310         * as/mcs51/lklibr.c
13311         * as/mcs51/lkmain.c
13312         * as/z80/asdata.c
13313         * as/z80/asm.h
13314         * as/z80/asmain.c
13315         * as/z80/asout.c
13316         * as/z80/z80pst.c
13317         * link/z80/aslink.h
13318         * link/z80/lkdata.c
13319         * link/z80/lklibr.c
13320         * link/z80/lkmain.c
13321         * src/SDCCglue.c
13322
13323 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13324
13325         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
13326         as/mcs51/lklibr.c: Generate a warning when a library is not found.
13327
13328 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
13329
13330         * src/z80/mappings.i: fix _mul[us][int,long] entries
13331
13332 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13333
13334         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
13335
13336 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13337
13338         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
13339         * support/regression/tests/bitopcse.c: added
13340         fixed warning:
13341         * src/avr/gen.c:
13342         * src/pic/gen.c:
13343         * src/pic16/gen.c:
13344         * src/z80/gen.c:
13345         * src/xa51/gen.c:
13346
13347 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13348
13349         added support for new library format to z80, gbz80 linkers:
13350         *link/z80/aslink.h
13351         *link/z80/lklex.c
13352         *link/z80/lklib.c
13353         *link/z80/lklist.c
13354
13355 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
13356
13357         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
13358         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
13359
13360 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
13361
13362         added DUMMY_READ_VOLATILE:
13363         * src/SDCC.y:
13364         * src/avr/gen.c:
13365         * src/xa51/gen.c:
13366         * src/z80/gen.c:
13367         * src/pic/gen.c:
13368         * src/pic16/gen.c:
13369         * src/mcs51/gen.c:
13370         * src/ds390/gen.c:
13371         * src/SDCCcse.c (algebraicOpts): many improvements
13372         * src/SDCCcse.h: removed algebraicOpts()
13373         * src/SDCCicode.c (picDummyRead): added
13374
13375 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13376
13377         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
13378         "Insufficient space in data memory".
13379
13380 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13381
13382         * src/mcs51/gen.c: fixed bug #771358
13383         * src/z80/gen.c: fixed bug #759087
13384
13385 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
13386
13387         * src/pic16/glue.c: minor cleanup by Vangelis
13388
13389 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13390
13391         * device/include/regc515c.h: fixed #758477
13392         * device/lib/_gptrget.c: saving some cycles in generic pointer get
13393         * device/lib/_gptrput.c: saved a few bytes
13394         * my tab spacing is 8, yours too?)
13395         * device/lib/_ser.c: process RX bytes earlier than TX bytes
13396         * device/lib/serial.c: process RX bytes earlier than TX bytes
13397         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
13398
13399 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
13400
13401         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
13402
13403 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13404
13405     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
13406
13407 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
13408
13409         * device/lib/Makefile.in: bad fix, reverted to 1.43
13410
13411 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
13412
13413         * device/lib/Makefile.in: added missing z80 object files
13414
13415 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
13416
13417         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
13418         pic16 progress by Vangelis:
13419         * src/SDCCglobl.h:
13420         * src/SDCCmain.c:
13421         * src/pic/Makefile:
13422         * src/pic:
13423         * pic/Makefile:
13424         * pic16/device.c:
13425         * pic16/device.h:
13426         * pic16/gen.c:
13427         * pic16/gen.h:
13428         * pic16/genarith.c:
13429         * pic16/glue.c:
13430         * pic16/main.c:
13431         * pic16/pcode.c:
13432         * pic16/pcode.h:
13433         * pic16/pcodepeep.c:
13434         * pic16/peeph.def:
13435
13436 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13437
13438     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
13439
13440 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13441
13442     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
13443     added gbz80 build to MSVC project.
13444     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
13445     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
13446     from 8051 stuff and setup so it links using a .lnk file.
13447
13448 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13449
13450     * support/librarian/sdcclib.c: sdcc librarian.
13451     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
13452     with sdcclib.
13453
13454 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13455
13456     * as/mcs51/lkmain.c: properly handle extensions in function afile.
13457
13458 2003-07-02  Borut Razem <borut.razem AT siol.net>
13459
13460         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
13461         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
13462         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
13463         src/xa51/main.c, src/z80/main.c:
13464         virtualization of glue() function: each port has it's own glue function,
13465         which is accessed by do_glue function pointer in PORT.general structure
13466
13467 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
13468
13469         * DS800C400 fun, improved ROM interface and tinibios.
13470
13471 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
13472
13473         * More support for DS80C400. Now includes beginning of interface to ROM.
13474
13475 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
13476
13477         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
13478
13479 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13480
13481         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
13482
13483 2003-06-19  Borut Razem <borut.razem AT siol.net>
13484
13485         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
13486
13487 2003-06-19  Borut Razem <borut.razem AT siol.net>
13488
13489         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
13490         fixed Z80 port - crt0.o: cannot open.
13491
13492 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
13493
13494         * support/Util/MySystem.c (merge_command): revert bad fix
13495
13496 2003-06-18  Borut Razem <borut.razem AT siol.net>
13497
13498         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
13499
13500 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13501
13502         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13503         option --use-stdout sends errors to stdout instead of stderr.
13504
13505 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
13506
13507         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
13508
13509 2003-06-15  Borut Razem <borut.razem AT siol.net>
13510
13511         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
13512         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
13513         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
13514         fixed width array of pointers replaced with sets;
13515         multiple include and lib paths ared transferred to preprocessor and linker
13516         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
13517         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
13518         fixed width array of pointers
13519         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
13520         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
13521         fixupPath(), getPathDifference()
13522         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
13523         fixed width array of pointers
13524
13525 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
13526
13527         * src/pic16/ralloc.c: fix warnings
13528         * src/pic16/pcode.c: fix warning
13529
13530 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
13531
13532          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
13533         know all the details, but essentially this set of changes enable
13534         the pic16 port to generate movff instructions and generate assembler
13535         directives,
13536         * src/SDCCmain.c:
13537         * src/pic16/gen.c:
13538         * src/pic16/glue.c:
13539         * src/pic16/pcode.c:
13540         * src/pic16/device.c:
13541         * src/pic16/main.c:
13542         * src/pic16/pcode.h:
13543         * src/pic16/pcoderegs.c:
13544         * src/pic16/ralloc.c:
13545         * src/pic16/ralloc.h:
13546
13547 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13548
13549         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
13550         added option --vc, so sdcc errors and warnings are compatible with
13551         Microsoft Visual Studio.
13552
13553 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13554
13555         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
13556           device/lib/libfloat.lib: added atof function.
13557
13558 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
13559
13560         * doc/sdccman.lyx: updated to Lyx 1.3
13561         * doc/cdbfileformat.lyx: updated to Lyx 1.3
13562         * doc/test_suite_spec.lyx: updated to Lyx 1.3
13563         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
13564
13565 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
13566
13567         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
13568
13569 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13570
13571         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
13572           additions to the "related tools/documentation" section
13573
13574 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
13575
13576         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
13577
13578 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
13579
13580         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
13581         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
13582
13583 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
13584
13585         * doc/sdccman.lyx: fix double dash and other minor things
13586         * doc/Makefile: fix double dash
13587
13588 2003-05-28  Karl Bongers(patches from Martin Helmling)
13589         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
13590           condition and ignore commands.
13591
13592 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13593
13594         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
13595           is in parts still quite out of date, I did changes as far as I felt makes sense
13596           for a non-native english speaker.
13597           Please feel free to add to the manual or to correct my changes.
13598         * doc/Makefile: undid touching the date of intermediate tex files.
13599
13600 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13601
13602         * doc/sdccman.lyx: Manual has an index now
13603
13604 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
13605
13606         Finalize muluint/mulsint and mululong/mulslong merging:
13607         * device/lib/_mulint.c
13608         * device/lib/_mullong.c
13609         * device/lib/gbz80/mul.s
13610         * device/lib/gbz80/stubs.s
13611         * device/lib/z80/mul.s
13612         * device/lib/z80/stubs.s
13613         * src/SDCCsymt.c (initCSupport)
13614
13615 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13616
13617         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
13618         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
13619           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
13620           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
13621           instead of /Zm500.
13622
13623 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13624
13625         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
13626           the regression tests I'm not brave enough to enable 245.b, 245.c
13627         * doc/sdccman.lyx: added latex preamble for hyperref package.
13628           Using pdflatex this will give you a hyperlinked pdf file with
13629           bookmarks. (prepend '%' before /usepackage if this breaks something)
13630
13631 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13632
13633          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
13634
13635 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
13636
13637         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
13638
13639 2003-05-21    <johan AT balder>
13640
13641         * src/SDCCglue.c (printIval): fixed bug #739934
13642
13643 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13644
13645         Applied patch from bug 737905 (renamed yylineo to mylineno):
13646         * src/altlex.c
13647         * src/SDCCast.c
13648         * src/SDCglobl.h
13649         * src/SDCC.lex
13650         * src/SDCCsymt.c
13651         * src/SDCCval.c
13652         * src/pic16/pcode.c: Cleaned warnings
13653         * src/pic16/pcodeflow.c: Cleaned warnings
13654         * src/pic16/pcoderegs.c: Cleaned warnings
13655
13656 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
13657
13658         * src/pic16/pcode.c: Cleaned warnings
13659         * src/pic16/pcodepeep.c: Cleaned warnings
13660         * src/pic16/ralloc.c: Cleaned warnings
13661
13662 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
13663
13664         * doc/sdccman.lyx: fixed bug 739745
13665         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
13666
13667 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
13668
13669         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
13670         it can be defined with CFLAGS when running configure
13671         * src/SDCCmain.c: fixed compiling + linking with object files
13672
13673 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
13674
13675         * configure.in: configure for pic16 port,
13676             added --disable-pic16-port
13677         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
13678         * src/SDCCmain.c: linkOptions is changed to set *,
13679             added if/endif conditional macros to remove options help
13680             messages from optionsTable when a port is not configured, added
13681             support for the PIc16 port in the ports table, when executing
13682             the compiler with no port specified on command line, a default
13683             port is selected with the new macro DEFAULT_PORT which is
13684             defined in port.h, in setDefaultOptions() linkOptions is removed
13685             from initialization assignment, since now it is a set,
13686             parseCmdLine uses setParseWithComma for linkOptions, in
13687             linkEdit() linkOptions are accessed with new function indexSet()
13688             which returns the i'th item of a set variable. See SDCCset.c, in
13689             linkEdit() when calling buildCmdLine(), added linkOptions as
13690             last argument. Now users can pass arguments to gplink via the
13691             -Wl option, main() uses pic16glue() to glue up pic16 programs
13692         * src/SDCCpeeph.c: various changes to support pic16
13693         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
13694             return the i'th item of the set
13695         * src/SDCCset.h: added function prototype for indexSet()
13696         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
13697         * src/clean.mk: added pic16 in CLEANALLPORTS variable
13698         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
13699             added macro DEFAULT_PORT
13700         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
13701         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
13702             generated
13703         * src/pic16/glue.c: commented out some error producing lines
13704         * src/pic16/main.c: __config directives are commented out to stop
13705             gpasm complaining and test the linkage with gplink, _linkCmd and
13706             _asmCmd changed to be more gplink and gpasm friendly
13707         * src/pic16/peeph.def: peep rule 3 is commented out, since it
13708             produced an error when parsed, peep rule 12 is added to utilize
13709             movff, but it is commented out since the pCode does not support
13710             yet a command with 2 address arguments
13711
13712 2003-05-18    <johan AT balder>
13713
13714         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13715         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
13716 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
13717
13718         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
13719   Added feature to script commands from file.
13720
13721 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
13722
13723         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
13724         * src/SDCCutil.c: include ctype.h for win32
13725
13726 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
13727
13728         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
13729
13730 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
13731
13732         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
13733   Fixed so you can set breakpoints prior to run, run does not stop
13734   on entry now.  Add tbreak.  Other enhancements and fixes for use
13735   with ddd.
13736
13737 2003-05-12  Borut Razem <borut.razem AT siol.net>
13738
13739         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
13740
13741 2003-05-11  Borut Razem <borut.razem AT siol.net>
13742
13743         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
13744         the path of bin directory, so that PATH is the only env. variable, which has to be set
13745         in case of standard installation.
13746         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
13747         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
13748         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
13749
13750 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13751
13752         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
13753         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
13754         temp files are in the port dir; clean the gen/test directory when
13755         generating new test.c
13756         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
13757         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
13758         * support/regression/tests/zeropad.c: added
13759
13760 2003-05-09    <johan AT balder>
13761
13762         * src/SDCCglue.c: fixed bug #597940
13763
13764 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
13765
13766         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13767   cache sfr, optimize next,step, fix off by one sourceline,
13768   support ddd list function.
13769         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
13770
13771 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
13772
13773         * support/regression/HTMLgen.py: added compare_s2f()
13774         * support/regression/Makefile: redo 1.27
13775         * support/regression/generate-cases.py: redo 1.5
13776
13777 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
13778
13779         * support/regression/tests/float.c: workaround 33 bit hex constant
13780         * support/regression/tests/simplefloat.c: fix division for host
13781
13782 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
13783
13784         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
13785         that tame's the PIC's over-aggressive optimizer.
13786
13787 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
13788
13789          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
13790          support for MSVC.
13791
13792 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
13793
13794         Initial support for DS80C400. "Hello world" runs on TINIm400
13795         (with polled I/O).
13796
13797 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
13798
13799          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
13800          * Some notes on ddd usage added in debugger/README
13801          Martin Helmling adding more features and fixes for ddd GUI debugger.
13802          Code added for nexti, stepi, up, down, and other adjustments.
13803
13804 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
13805
13806         * src/pic/pCodepeep.c non-wildcard asmops are now handled
13807         * src/pic/peeph.def Added two rules to optimize carry manipulation
13808         * src/pic/* removed debug printfs
13809
13810 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
13811
13812         * debugger/mcs51/cmd.c: added header newalloc.h
13813
13814 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
13815
13816         * as/Makefile: new EXEEXT
13817         * as/z80/Makefile: remove trailing slash of BUILDIR
13818         * as/z80/clean.mk: new EXEEXT
13819         * Makefile.common.in: add to CFLAGS (and others), don't replace it
13820         * support/cpp2/Makefile.in: new EXEEXT
13821         * src/pic/glue.c (pic14emitRegularMap): fixed warning
13822
13823 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
13824
13825         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
13826         EXEEXT was introduced to fix all related problems with targets
13827         "clean", "install" and "uninstall"; a couple of further flaws
13828         especially with "clean" have been fixed too
13829         * as/mcs51/Makefile.in
13830         * as/mcs51/clean.mk
13831         * as/z80/Makefile
13832         * Makefile
13833         * clean.mk
13834         * debugger/mcs51/Makefile.in
13835         * debugger/mcs51/clean.mk
13836         * link/z80/Makefile
13837         * link/z80/Makefile.in
13838         * link/z80/clean.mk
13839         * link/Makefile
13840         * packihx/Makefile.in
13841         * packihx/clean.mk
13842         * sim/ucsim/Makefile
13843         * sim/ucsim/clean.mk
13844         * sim/ucsim/avr.src/Makefile.in
13845         * sim/ucsim/avr.src/clean.mk
13846         * sim/ucsim/s51.src/Makefile.in
13847         * sim/ucsim/s51.src/clean.mk
13848         * sim/ucsim/xa.src/Makefile.in
13849         * sim/ucsim/xa.src/clean.mk
13850         * sim/ucsim/z80.src/Makefile.in
13851         * sim/ucsim/z80.src/clean.mk
13852         * sim/ucsim/main_in.mk
13853         * sim/ucsim/packages_in.mk
13854         * sim/ucsim/gui.src/Makefile.in
13855         * sim/ucsim/gui.src/serio.src/Makefile.in
13856         * sim/ucsim/gui.src/serio.src/clean.mk
13857         * src/Makefile.in
13858         * src/clean.mk
13859         * support/cpp2/Makefile.in
13860         * support/cpp2/clean.mk
13861         * support/makebin/Makefile
13862         * support/makebin/clean.mk
13863         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
13864         * doc/sdccman.lyx: --program-suffix no longer needed
13865
13866 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
13867
13868          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
13869          Martin Helmling added support for ddd GUI debugger.
13870          Code added to display assembly, set variables, and other commands
13871          to interface to ddd.
13872
13873 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
13874
13875         * as/Makefile: fix target clean
13876         * as/clean.mk: fix target clean
13877         * as/z80/clean.mk: fix target clean
13878
13879 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
13880
13881         * Makefile.common.in: added  AT EXEEXT AT
13882         * configure.in: removed all mingw32 stuff
13883         * configure: rebuilt from configure.in
13884         * doc/sdccman.lyx: updated section "installation"
13885         * support/scripts/sdcc_mingw32: adapted to configure
13886         * support/scripts/sdcc_cygwin_mingw32: added
13887
13888 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
13889
13890         * src/pic Added object file support for the PIC port
13891         * src/pic Applied patch from Craig Franklin (this started the object file support)
13892         * src/regression Updated the PIC regression tests for object files
13893
13894 2003-04-20  Borut Razem <borut.razem AT siol.net>
13895
13896         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
13897           lklex.c: In function `getfid':
13898           lklex.c:203: warning: array subscript has type `char'
13899         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
13900           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
13901         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
13902           stack handling macros
13903
13904 2003-04-19  Borut Razem <borut.razem AT siol.net>
13905
13906         * "handling space characters in file path" task:
13907         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
13908         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
13909         * support/Util/MySystem.h: make it self-sufficient
13910         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
13911           src/z80/main.c, sdcc/as/mcs51/lklex.c:
13912           handling space characters in file path
13913         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
13914           (it will be used by assemblers, which have their own includes, e.g. gpasm)
13915         * support/Util/MySystem.c: handling space characters in executable's path
13916
13917 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
13918
13919         * as/z80/Makefile: fix permanent rebuild of z80
13920         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
13921         * support/regression/tests/bitfields.c: added Johan's bitfields.c
13922
13923 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
13924
13925         * src/SDCCopt.c: add special case optimization to replace modulo by
13926           a power of two with a bitwise AND.
13927
13928 2003-04-18    <johan AT balder>
13929
13930         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
13931
13932 2003-04-17    <johan AT balder>
13933
13934         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
13935         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
13936
13937 2003-04-13  Borut Razem <borut.razem AT siol.net>
13938
13939         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
13940         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
13941           fixed mingw problem in adl_NORMALIZE_PATH
13942
13943 2003-04-12  Borut Razem <borut.razem AT siol.net>
13944
13945         * fixed "#pragma SAVE/RESTORE can not be nested":
13946         * src/SDCC.lex: reworked pragma handling functions
13947         * sdcc/src/SDCCglobl.h: reworked stack handling macros
13948         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
13949
13950 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13951
13952         * src/SDCCutil.c (pathEquivalent): defined but not used
13953         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
13954         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
13955         * configure: rebuilt from configure.in
13956         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13957         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
13958         * device/include/Makefile.in: replace sdcc_datadir
13959         * device/lib/Makefile.in: replace sdcc_datadir
13960         * Makefile.common.in: add LDFLAGS from configure
13961         * packihx/Makefile.in: use LDFLAGS
13962         * src/Makefile.in: use LDFLAGS
13963         * support/cpp2/Makefile.in: add LDFLAGS from configure
13964         * support/makebin/Makefile: use LDFLAGS
13965         * .version: bumped version number to 2.3.5
13966
13967 2003-04-12  Borut Razem <borut.razem AT siol.net>
13968
13969         * completed "different paths" task:
13970         * src/SDCCmacro.c: fixed bug in handling quotes
13971         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
13972         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
13973
13974 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
13975
13976         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
13977
13978 2003-04-11 kevin Vigor <kevin AT vigor.nu>
13979
13980         * ds390/gen.c ds390/peeph.def: fix bug 706781
13981
13982 2003-04-11  Borut Razem <borut.razem AT siol.net>
13983
13984         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
13985
13986 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
13987
13988         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
13989         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
13990          set - this bit used to not be set...).
13991         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
13992           bad code in PIC Port
13993         * src/regression/and2.c added to test bug 609268
13994         * src/regression/Makefile added and2.c to regression test
13995
13996
13997 2003-04-08    <johan AT CP255758-A>
13998
13999         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
14000         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
14001         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
14002
14003 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
14004
14005         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
14006         fix bug #487815
14007         * support/cpp2/Makefile.in: fix bug #487815
14008         * configure: rebuilt from configure.in
14009         * Makefile.common.in: docdir changed, new path suffixes
14010         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14011         * sdcc_vc_in.h: reflect changes from sdccconf.h
14012         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
14013         * src/SDCCutil.h: remove BINDIR hack
14014         * doc/sdccman.lyx: update new path hierarchy
14015
14016 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14017
14018         * src/SDCCpeeph.c: added okToRemoveSLOC test
14019
14020 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14021
14022         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
14023
14024 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
14025
14026         * src/SDCCpeeph.c: added labelIsReturnOnly test
14027         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
14028
14029 2003-04-05    <johan AT balder>
14030
14031         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
14032         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
14033         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
14034         * src/SDCCast.c: fixed a warning
14035         * src/SDCCast.h: fixed a warning
14036         * src/SDCCicode.c (operandFromAst): fixed a warning
14037
14038 2003-04-04    <johan AT balder>
14039
14040         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
14041         * src/SDCCast.c (decorateType): fixed bug #715076
14042         * src/SDCC.y: fixed bug #702907
14043
14044 2003-04-03    <johan AT balder>
14045
14046         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
14047         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
14048         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
14049         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
14050         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
14051
14052 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
14053
14054         * _decdptr.c: fix return values
14055         * _gptrget.c: fix return values
14056         * _gptrgetc.c: fix return values
14057         * _gptrput.c: fix return values
14058         * _mulint.c: fix return values
14059         * as/z80/Makefile: fix 'make -j' problem
14060
14061 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
14062
14063         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
14064         * configure.in: big cleanup, updated to autoconf 2.5x
14065         * configure: rebuilt from configure.in
14066         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
14067         * sdcc_vc_in.h: reflect changes from sdccconf.h
14068         * doc/Makefile: fixed a flaw in "make install"
14069
14070 2003-04-02    <johan AT balder>
14071
14072         * src/ds390/gen.c (genCmp): no comments
14073         * src/mcs51/gen.c (genCmp): no comments
14074         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
14075         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
14076
14077 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
14078
14079         * support/regression/generate-cases.py: place generated file in given sub directory
14080         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
14081         * support/regression/Makefile: improvements for 'make -j';
14082         side effect: it's simpler and faster now
14083
14084 2003-03-31  Borut Razem <borut.razem AT siol.net>
14085
14086         * src/z80/main.c: link-{port} and as-{port} defined without path
14087         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
14088
14089 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
14090
14091         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
14092
14093 2003-03-30  Borut Razem <borut.razem AT siol.net>
14094
14095         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
14096           changed type of list parameter to set
14097         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
14098         * src/port.h: changed type of do_assemble() parameter to set
14099         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
14100           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
14101           definition of "cppoutfilename" macro with NULL value in preProcess()
14102         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
14103         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
14104         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
14105           replaced with set *binPathSet
14106         * shash_add() deallocates the item, if allready exsists, before adding the new one
14107         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
14108
14109 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
14110
14111         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
14112           a nested for loop bug in the PIC port
14113         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
14114           for loops
14115
14116 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
14117
14118         * support/Util/dbuf.h: remove C++ stuff to make it portable
14119
14120 2003-03-28  Borut Razem <borut.razem AT siol.net>
14121
14122         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
14123           literal strings in stringLiteral()
14124         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
14125         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
14126           to the project
14127
14128 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
14129
14130         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
14131
14132 2003-03-26    <johan AT balder>
14133
14134         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
14135         * src/ds390/gen.c (saveRegisters): catched symbol abuse
14136         * src/SDCCast.c (decorateType): fixed " -v < 3"
14137
14138 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
14139
14140         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
14141         Added Lenny Story's debug infrastructure changes:
14142         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
14143         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
14144         * src/cdbFile.c: added
14145         * src/SDCCdebug.c: added
14146         * src/SDCCdebug.h: added
14147         * src/SDCCast.c (createFunction)
14148         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
14149         * src/SDCCmain.c (parseCmdLine, main)
14150         * src/SDCCmem.c (redoStackOffsets)
14151         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
14152         * src/SDCCsymt.h
14153         * src/common.h
14154         * src/avr/gen.c (genAVRCode)
14155         * src/ds390/gen.c (gen390Code)
14156         * src/mcs51/gen.c (gen51Code)
14157         * src/pic/gen.c (genpic14Code)
14158         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
14159         * src/xa51/gen.c (genXA51Code)
14160         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
14161
14162 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14163
14164         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
14165         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
14166
14167 2003-03-22    <johan AT balder>
14168
14169         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
14170
14171 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
14172
14173         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
14174         * doc/cdbfileformat.lyx: added, written by Lenny Story
14175         * doc/Makefile: added cdbfileformat.lyx
14176         * doc/clean.mk: added cdbfileformat.lyx
14177
14178 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
14179
14180         * src/mcs51/peeph.def: fix bug #705773
14181
14182 2003-03-20    <johan AT balder>
14183
14184         An sfr/sbit can have an "at #" AND an initializer
14185         * src/SDCCsymt.c (checkSClass):
14186         * src/SDCCmem.c (allocGlobal):
14187         * src/SDCCmem.c (allocLocal):
14188         * src/SDCCast.c (createBlock):
14189
14190 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
14191
14192         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
14193
14194 2003-03-16    <johan AT balder>
14195
14196         Undid the hackup of const and volatile, the problem is much bigger
14197         * src/SDCC.y:1.65
14198         * src/SDCCast.c:1.171
14199         * src/SDCCglue.c:1.138
14200         * src/SDCCicode.c:1.146
14201         * src/SDCCsymt.c:1.150
14202         * src/SDCCval.c:1.65
14203
14204 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
14205
14206         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
14207         * src/ds390/gen.c (genAddrOf): fixed bug #704087
14208
14209 2003-03-13    <johan AT balder>
14210
14211         Hackup const and volatile modifiers in type chains a bit:
14212         * src/SDCC.y:1.63
14213         * src/SDCCast.c:1.169
14214         * src/SDCCglue.c:1.136
14215         * src/SDCCicode.c:1.143
14216         * src/SDCCsymt.c1.146
14217         * src/SDCCsymt.h1.59
14218         * src/SDCCval.c:1.63
14219
14220 2003-03-12    <johan AT balder>
14221
14222         * src/SDCCBBlock.h: more LRH debugging junk
14223         * src/SDCCcflow.h: more LRH debugging junk
14224         * src/SDCCloop.c: more LRH debugging junk
14225         * src/SDCC.y (struct_declaration): fixed bug #697590
14226         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
14227         * src/ds390/gen.c (aopForRemat): fixed bug #700031
14228         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
14229
14230 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14231         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
14232         test function names must now match exactly).
14233         * src/SDCCcse.c: added special case in findCheaperOp to allow
14234         extending a short integer. Makes less awful code for bug 700121 test case.
14235
14236 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14237
14238         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
14239         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
14240
14241 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14242
14243         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
14244         actually called (operandsNotEqual() was called for all
14245         operandsNotEqualX tests).
14246
14247 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
14248
14249         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
14250         with shorter literals. Fixes bug 700121.
14251
14252 2003-03-11    <johan AT balder>
14253
14254         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
14255
14256 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
14257
14258         * src/SDCCloop.c (mergeRegions): an evil beast is dead
14259         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
14260
14261 2003-03-10  Borut Razem <borut.razem AT siol.net>
14262
14263         * src/SDCCmain.c: pipe preprocessor's output
14264         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14265         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14266         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14267         which closes all pipes in pipeSet set
14268         * src/SDCCset.c: free deleted item in function deleteSetItem()
14269         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14270         moved from z80 to src subproject
14271         * .version: increased version number to 2.3.4
14272
14273 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
14274
14275         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
14276         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
14277         * support/regression/ports/xa51/spec.mk: fix typo
14278
14279 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
14280
14281         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
14282
14283 2003-03-09  Borut Razem <borut.razem AT siol.net>
14284
14285         * src/SDCCmain.c: pipe preprocessor's output
14286         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
14287         * sdcc_vc_in.h: define pclose as _pclose for WIN32
14288         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
14289         which closes all pipes in pipeSet set
14290         * src/SDCCset.c: free deleted item in function deleteSetItem()
14291         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
14292         moved from z80 to src subproject
14293
14294 2003-03-09  Borut Razem <borut.razem AT siol.net>
14295
14296         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
14297         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
14298         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
14299         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
14300         * src/SDCCglobl.h: unification of WIN32 native definitions
14301
14302 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14303
14304         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
14305
14306 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14307
14308         * src/configure.in:   check for endianess (even while cross-compiling)
14309         * src/configure:      check for endianess (even while cross-compiling)
14310         * src/configure_in.h: check for endianess (even while cross-compiling)
14311         * src/avr/gen.c:        remove old endianess stuff
14312         * src/mcs51/gen.c:      remove old endianess stuff
14313         * src/ds390/gen.c:      remove old endianess stuff
14314         * src/pic/gen.c:        remove old endianess stuff
14315         * src/pic/genarith.c:   remove old endianess stuff
14316         * src/pic/glue.c:       fix endianess check
14317         * src/pic16/gen.c:      remove old endianess stuff
14318         * src/pic16/genarith.c: remove old endianess stuff
14319         * src/pic16/glue.c:     fix endianess check
14320         * src/xa51/gen.c:       remove old endianess stuff
14321         * src/z80/gen.c:        fix endianess check
14322         * src/SDCCglue.c:       fix endianess check
14323         * src/ds390/peeph.def: fix bug 700036
14324
14325 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
14326
14327         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
14328         * src/configure: find appropriate data-types on host for SDCC's int and long
14329         * src/configure.in: find appropriate data-types on host for SDCC's int and long
14330         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
14331         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
14332
14333 2003-03-07    <johan AT balder>
14334
14335         Just a big NOOP:
14336                 some minor cleanups before the big shot
14337                 OP_DEFS and OP_USES now use Kevin's protection
14338                 new option --nolabelopt
14339
14340         * src/SDCCBBlock.c:
14341         * src/SDCCast.c,:
14342         * src/SDCCcflow.c:
14343         * src/SDCCcse.c:
14344         * src/SDCCicode.c:
14345         * src/SDCCicode.h:
14346         * src/SDCClabel.c:
14347         * src/SDCCloop.c:
14348         * src/SDCCmain.c:
14349         * src/ds390/ralloc.c:
14350         * src/mcs51/ralloc.c:
14351         * src/pic/ralloc.c:
14352         * src/xa51/ralloc.c:
14353         * src/z80/ralloc.c:
14354
14355 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
14356
14357         * src/pic/pcode.c (get_op): fix 64 bit warnings
14358         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
14359         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
14360         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
14361         * support/regression/tests/malloc.c: fix 64 bit warnings
14362
14363 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
14364
14365         * src/mcs51/gen.c (genMinus): fixed bug 696436
14366
14367 2003-03-02  Borut Razem <borut.razem AT siol.net>
14368
14369         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
14370
14371 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
14372
14373         * configure.in: test for mkstemp
14374         * sdccconf_in.h: add HAVE_MKSTEMP
14375
14376 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
14377
14378         * device/include/ctype.h: removed warning while using --stack-auto
14379         * device/include/malloc.h: removed warning while using --stack-auto
14380         * device/include/string.h: removed warning while using --stack-auto
14381
14382 2003-02-23  Borut Razem <borut.razem AT siol.net>
14383
14384         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
14385         because NDEBUG is defined (see man assert)
14386         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
14387
14388 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14389
14390         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
14391         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
14392
14393 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14394
14395         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
14396         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
14397
14398 2003-02-18    <johan AT balder>
14399
14400         * as/mcs51/asmain.c (asmbl): module can start with a digit
14401         * as/z80/asmain.c (asmbl): module can start with a digit
14402
14403 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
14404
14405         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
14406         * src/asm.c: fix pipe() for Mingw32
14407
14408 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
14409
14410         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
14411         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
14412         make -V work again; --c1mode reads now from stdin
14413         * doc/sdccman.lyx: added --c1mode
14414         * support/Util/SDCCerr.c: new messages for c1 mode
14415         * support/Util/SDCCerr.h: new messages for c1 mode
14416         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
14417
14418 2003-02-15    <johan AT balder>
14419
14420         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
14421
14422 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
14423
14424         * doc/sdccman.lyx: Environment variables, -o and other minor things
14425
14426 2003-02-14    <johan AT balder>
14427
14428         * src/xa51/main.c: before anyone really tries to use it :)
14429
14430         * Install doc's in share/sdcc/doc
14431         * removed some obsolete files
14432         * Do a proper make distclean and uninstall
14433         M Makefile.common.in
14434         R sdccbuild.sh
14435         M as/Makefile
14436         M device/include/Makefile.in
14437         M device/lib/Makefile.in
14438         M doc/sdccman.lyx
14439         M link/Makefile
14440         M sim/ucsim/doc/Makefile.in
14441         M src/clean.mk
14442         R src/avr/peeph.rul
14443         R src/xa51/peeph.rul
14444         M support/cpp2/Makefile.in
14445         M support/makebin/Makefile
14446
14447
14448 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
14449
14450         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
14451
14452 2003-02-10  Borut Razem <borut.razem AT siol.net>
14453
14454         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
14455         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
14456         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
14457         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
14458         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
14459         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
14460         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
14461         src/z80/Makefile.bcc: Borland Makefile cleanup
14462         * as/z80/Makefile.bcc: Added Borland Makefile
14463         * support/cpp2/borland.h: Removed
14464
14465 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
14466
14467         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
14468         * src/SDCC.lex: new pragma NOIV
14469         * src/SDCCglobl.h: new pragma NOIV
14470         * src/SDCCmem.c: new pragma NOIV
14471
14472 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14473
14474         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
14475
14476 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
14477
14478         * src/SDCCmain.c: signal handling is switched off by --debug
14479         * doc/Makefile: small fix for install; use clean.mk again
14480         * doc/clean.mk: clean *.pdf and *.html too
14481
14482 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
14483
14484         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
14485         * device/lib/printfl.c: fix a ds390 bug by making it portable
14486         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
14487         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
14488         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
14489         * debugger/mcs51/cmd.c: converted multi-line string literals
14490         * sim/ucsim/globals.cc: converted multi-line string literals
14491         * src/SDCCmain.c: introduced signal handler to remove temp files
14492         * doc/Makefile: small tweaks, implement clean
14493         * doc: removed generated files
14494
14495 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14496
14497         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
14498         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
14499         Address Record is not correctly generated for DS390."
14500
14501 2003-02-02  Borut Razem <borut.razem AT siol.net>
14502
14503         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
14504         * as/mcs51/asm.h: fixed compilation with Borland C
14505         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
14506         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
14507         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
14508         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
14509         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
14510         src/z80/Makefile.bcc: delete $(LIB) only if exist
14511         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
14512
14513 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
14514
14515         * device/include/malloc.h: introduced NULL
14516         * device/include/string.h: introduced NULL
14517         * device/include/stdlib.h: introduced NULL
14518         * device/lib/_memcpy.c: removed NULL
14519         * device/lib/_strcat.c: removed NULL
14520         * device/lib/_strchr.c: removed NULL
14521         * device/lib/_strcmp.c: removed NULL
14522         * device/lib/_strcpy.c: removed NULL
14523         * device/lib/_strcspn.c: removed NULL
14524         * device/lib/_strlen.c: removed NULL
14525         * device/lib/_strncat.c: removed NULL
14526         * device/lib/_strncmp.c: removed NULL
14527         * device/lib/_strncpy.c: removed NULL
14528         * device/lib/_strpbrk.c: removed NULL
14529         * device/lib/_strrchr.c: removed NULL
14530         * device/lib/_strspn.c: removed NULL
14531         * device/lib/_strstr.c: removed NULL
14532         * device/lib/_strtok.c: removed NULL
14533         * device/lib/malloc.c: removed NULL, include own header
14534
14535 2003-02-02    <johan AT balder>
14536
14537         * 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
14538         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
14539         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
14540         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
14541         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
14542         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
14543
14544 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14545
14546         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
14547         area 'DATA'"
14548
14549 2003-02-01    <johan AT balder>
14550
14551         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
14552
14553 2003-01-31    <johan AT CP255758-A>
14554
14555         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
14556
14557 2003-01-30    <johan AT balder>
14558
14559         * src/SDCCBBlock.c: automatic bug detection
14560         * src/SDCCicode.c: automatic bug detection
14561
14562 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14563
14564         * src/SDCCglobl.h:   now --xram-size 0 works
14565         * src/SDCCmain.c:    now --xram-size 0 works
14566
14567 2003-01-29    <johan AT balder>
14568
14569         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
14570
14571 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14572
14573         * as/mcs51/aslink.h: Added options --xram-size and --code-size
14574         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
14575         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
14576         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
14577         * src/SDCCglobl.h:   Added options --xram-size and --code-size
14578         * src/SDCCmain.c:    Added options --xram-size and --code-size
14579
14580 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
14581
14582         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
14583         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
14584
14585 2003-01-27    <johan AT balder>
14586
14587         * src/SDCC.y: fixed bug #613764
14588
14589 2003-01-26    <johan AT balder>
14590
14591         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
14592         * src/SDCCsymt.h: fixed bug #673374
14593         * src/SDCCglue.c: fixed bug #661910
14594         * src/SDCCast.c: fixed bug #458099 and 673374
14595
14596 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
14597
14598         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
14599         * as/mcs51/strcmpi.h: added
14600         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
14601         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
14602         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
14603         * as/mcs51/assym.c: strcmpi -> as_strcmpi
14604         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
14605         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
14606         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
14607         * as/mcs51/Makefile.aslink: new module strcmpi
14608         * as/mcs51/Makefile.asx8051: new module strcmpi
14609         * as/mcs51/Makefil.bcc: new module strcmpi
14610         * as/mcs51/Makefile.in: new module strcmpi
14611         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
14612
14613 2003-01-26    <johan AT balder>
14614
14615         * src/SDCCglue.c: reverted back to 1.124
14616         * src/SDCCast.c: reverted back to 1.156
14617         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
14618
14619 2003-01-25    <johan AT balder>
14620
14621         * src/SDCCglue.c: A better fix for bug #661910
14622         * src/SDCCast.c: A better fix for bug #661910
14623         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
14624
14625 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14626
14627         * src/Makefile.in: remove spawn.o
14628         * src/SDCCmain.c: remove spawn.h
14629         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
14630         * src/spawn.c: removed
14631         * src/spawn.h: removed
14632         * support/regression/ports/ds390/spec.mk: link with -r
14633
14634 2003-01-24    <johan AT CP255758-A>
14635
14636         * src/ds390/gen.c (aopOp): fixed bug #667458
14637         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
14638         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
14639         (createIvalCharPtr): an ival doesn't always have a storage class anymore
14640
14641 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
14642
14643         * src/mcs51/peeph.def: better assembler identation by Frieder
14644         * src/mcs51/gen.c: better assembler identation by Frieder
14645
14646 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
14647
14648         * as/z80/string.h: removed for gcc 3.2
14649         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
14650         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
14651
14652 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14653
14654         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
14655         * src/SDCCpeeph.c (replaceRule): fix bug #663503
14656         * support/regression/Makefile: separate temp files for ports
14657         * support/regression/generate-cases.py: separate temp files for ports
14658         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14659         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
14660
14661 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
14662
14663         * moved tinitalk to device/examples/ds390
14664
14665 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
14666
14667         * as/mcs51/lkmem.c: rflag is for DS390
14668         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
14669         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
14670                          (linkEdit): move mem- and map-files the same way as ihx-files
14671         * src/z80/main.c (_setDefaultOptions): removed --generic
14672         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
14673         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
14674         * src/pic/glue.c (picglue): --c1mode works again
14675         * src/pic16/glue.c (pic16glue): --c1mode works again
14676         * src/asm.c (printCLine): fix #660034
14677
14678 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
14679
14680         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
14681         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
14682         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
14683         * as/mcs51/lkmem (summary): better fix for sp problem
14684         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
14685         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
14686         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
14687                                               remove --stack-after-data
14688
14689 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
14690
14691         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
14692         * src/SDCCutil.c (join): ugly bug: missing '\0'
14693         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
14694
14695 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14696
14697         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
14698         * src/port.h: typo
14699         * src/pic/main.c (_asmCmd): gpasm supports -o
14700         * src/z80/main.c: more general macros
14701         * device/lib/Makefile.in: remove intermediate files
14702
14703 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
14704
14705         * .version: Bumped version number to 2.3.3
14706         * src/SDCCBBlock.c: new option -o
14707         * src/SDCCglobl.h: new option -o
14708         * src/SDCCglue.c: new option -o
14709         * src/SDCCmain.c: new option -o
14710         * src/asm.c: new option -o
14711         * src/ds390/main.c: new option -o
14712         * src/pic/glue.c: new option -o
14713         * src/pic/pcode.c: new option -o
14714         * src/pic/ralloc.c: new option -o
14715         * src/pic16/glue.c: new option -o
14716         * src/pic16/pcode.c: new option -o
14717         * src/pic16/ralloc.c: new option -o
14718         * src/z80/main.c: new option -o
14719         * device/lib/Makefile.in: use -o
14720         * support/regression/ports/ds390/spec.mk: use -o
14721         * support/regression/ports/gbz80/spec.mk: use -o
14722         * support/regression/ports/mcs51/spec.mk: use -o
14723         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
14724         * support/regression/ports/z80/spec.mk: use -o
14725         * support/regression/ports/ucz80/spec.mk: use -o
14726         * support/regression/ports/xa51/spec.mk: use -o
14727         * support/regression/fwk/lib/timeout.c: fix usage string
14728
14729 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
14730         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
14731
14732 2003-01-07    <johan AT balder>
14733
14734         * src/SDCCast.c (decorateType): fixed bug #600035
14735
14736 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
14737         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
14738         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
14739         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
14740         * src/pic/pcode.c: outcommented unused variable to remove warnings
14741         * src/pic/ralloc.c: outcommented unused variable to remove warnings
14742
14743 2003-01-06    <karl AT turbobit.com>
14744         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
14745    regression tests.
14746
14747 2003-01-06    <johan AT balder>
14748
14749         * src/SDCCicode.c: fixed array add
14750
14751 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
14752         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
14753         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
14754
14755 2003-01-04    <johan AT balder>
14756
14757         * src/SDCCval.c (getNelements): fixed the initialized array of structures
14758
14759 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14760         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
14761
14762 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14763         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
14764         * support/regression/tests/bug-524697.c: fit mem usage into 8032
14765
14766 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
14767         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
14768
14769 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
14770         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
14771
14772 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
14773         * src/mcs51/main.c: removed {bindir}{sep} from aslink
14774
14775 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14776
14777     * in /sdcc/as/mcs51/ changed these files in order to create an
14778     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
14779     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
14780     following files to include the previous two files: aslink.dsp,
14781     Makefile.aslink, Makefile.bcc, and Makefile.in.
14782
14783     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
14784     .adb instead of .cdb
14785
14786 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14787
14788         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
14789         value from option --iram-size.
14790
14791 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14792
14793         * /sdcc/as/mcs51/lklist.c: added boundary check before using
14794         dram[] array.
14795
14796 2002-09-18    <wiml AT hhhh.org>
14797
14798         * SDCClrange.h: exposed setFromRange() and setToRange()
14799         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
14800           packRegsForAccUse() (bug 542397)
14801         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
14802           multiple times and emitting the fetch operations more than once
14803           added aopGetUsesAcc() function to allow binary operators to
14804           fetch their operands in the correct order; made genMinus() emit
14805           compact code for X = LITERAL - Y
14806
14807 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14808         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
14809         sprintf() in line 1267.
14810
14811 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14812         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
14813         like ports.
14814
14815 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
14816         Changes to aslink (All the changes are marked with 'JCF'):
14817
14818         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
14819         summary().
14820
14821         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
14822         area BSEG.  Also moves, if possible, the DATA area down into the internal
14823         ram so more space is available.
14824
14825         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
14826         sflag.
14827
14828         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
14829         not bytes.  Function summary() which creates a memory usage summary
14830         file with extension .mem.  Reports of overlaping stack and small stack
14831         size.  If the space for the stack is less than 16 bytes aslink trows a
14832         warning.
14833
14834         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
14835         the 8051.  Option 'y' for memory summary output file.
14836
14837         Changes to sdcc (All the changes are marked with 'JCF'):
14838
14839         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
14840
14841         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
14842         overlaying area for it (uses RegBankUsed[4]).
14843
14844         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
14845         bank zero as used by default.  By default aslink locates the stack
14846         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
14847         the creation of the .mem file.  Delegates the allocation of data area
14848         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
14849         the begining of the stack area to aslink.
14850
14851         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
14852         glue() in SDCCglue.c creates an area for it.
14853
14854 2002-09-03  Borut Razem <borut.razem AT siol.net>
14855         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
14856         sdcc/src/pic/glue.c:
14857         introduced atexit() handler for teporay files removal in case of
14858         errors, assertions, ...
14859
14860 2002-08-29  Borut Razem <borut.razem AT siol.net>
14861         * sdcc/support/cpp2/auto-host_vc_in.h:
14862         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
14863         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
14864         Maybe there is a similar problem with BORLANDC? It should be checked!
14865
14866         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
14867         corrected improper use of assert: the assignment to clr variable was done inside the assert.
14868         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
14869         was not executed, and the compiler (cl) launched a warning:
14870         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
14871
14872 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
14873         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
14874
14875 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
14876         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
14877
14878         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14879           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
14880           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
14881           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14882           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
14883           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
14884           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
14885         - added Release configuration in VS projects
14886         - review of compiler an linker options
14887         - VC .exe files are generated in bin_vc directory, not to interfere
14888           with binaries generated from other projects (cygwin, mingw, bcc ...)
14889
14890         * sdcc/src/yacc.dsp: added
14891
14892         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
14893         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
14894         and insert the version number definitions from .version
14895
14896         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
14897
14898         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
14899         added - genarate auto-host.h using auto-host_vc_in.h as template
14900
14901         * sdcc/sdcc_vc.h,
14902         removed from CVS, generated automatically
14903
14904 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
14905         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
14906
14907 2002-08-11  Borut Razem <borut.razem AT siol.net>
14908         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
14909
14910 2002-08-10  Borut Razem <borut.razem AT siol.net>
14911         * src/SDCCmain.c (main):
14912         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
14913         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
14914         The consequence was that some temporary files were not removed.
14915
14916         * src/SDCCglue.c:
14917         unification of code in functions tempfilename() and tempfile():
14918         function tempnam() is defined in Visual Studio 6.0 and .NET
14919
14920         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
14921
14922         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
14923           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
14924         - removed compiler command line option /WX: Treats all warnings as errors
14925         - update a list of source files, included into the project
14926
14927         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
14928           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
14929         changed project type to Generic Project so that can be correcly converted to VS.NET project
14930
14931         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
14932
14933         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
14934
14935         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
14936
14937         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
14938         added return 0 statements after assert() to make compiler happy
14939
14940         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
14941         added newline in the def file to keep MSC compiler satisfied
14942
14943         * sdcc/src/z80/gen.c:
14944         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
14945           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
14946         - solved MSC error in function aopDump()
14947
14948         * sdcc_vc.h: define PREFIX as "\\sdcc"
14949
14950 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
14951         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
14952
14953 2002-06-22  Scott Dattalo <scott AT dattalo.com>
14954         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
14955         - Rewrote the register banking algorithm.
14956         - Added pCode live-range analysis to registers (for now, only non-used and
14957         singly-used registers optimized away)
14958
14959         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
14960
14961         * 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.
14962
14963 2002-05-10  Scott Dattalo <scott AT dattalo.com>
14964         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
14965
14966 2002-04-22  Michael Hope  <michaelh AT vroom>
14967
14968         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
14969
14970         * configure.in (DD_COPT): Added include support required for gbdk.
14971
14972         * .version: Bumped version number just to increase it.
14973
14974         * src/SDCCmain.c: Added -nostdinc to the default options.
14975
14976 2002-04-15  Michael Hope  <michaelh AT vroom>
14977
14978         * device/lib/z80/printf.c (sprintf): Added.
14979
14980         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
14981
14982         * src/z80/peeph.def: Added transpose redundent load rule.
14983
14984         * src/z80/main.c: Added force callee saves for jaune.
14985
14986         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
14987
14988         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
14989
14990 2002-03-28  Johan Knol  <johan AT balder>
14991
14992         * src/SDCCval.c: fixed bug #532436
14993
14994 2002-03-14  Scott Dattalo <scott AT dattalo.com>
14995         * /src/port.h:
14996         Added "char *Processor" field to the port structure.
14997
14998         * /src/SDCCmain.c:
14999         Added -p option. Allows port dependent processor to be specified.
15000
15001         * all ports:
15002         Initialized the new field char *Processor field to NULL in all ports
15003
15004         * /src/pic/*:
15005         Compiler generated registers for interrupt context saving
15006         were not getting allocated.
15007
15008 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
15009
15010         * /src/SDCCast.c:
15011         Fixed left shift. Will promote the left side of a left shift
15012         if a) left shifting more than size of operand or b) when assigned
15013         to something size > size of left side
15014
15015 2002-03-14  Scott Dattalo <scott AT dattalo.com>
15016         * src/pic/*
15017         tons of changes. Register allocation has been
15018         rewritten. Added customization for the various PICs. Flow
15019         analysis is restructured. ...
15020
15021         * src/pic/device.h:
15022         Added
15023
15024         * src/pic/device.c:
15025         Added. device.c is a PIC port hack to accomodate variations
15026         in PIC devices.
15027
15028 2002-03-13  Michael Hope  <michaelh AT vroom>
15029
15030         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
15031
15032 2002-03-04  johanknol  <johanknol AT manik>
15033
15034         * /src/SDCCval.c: fixed
15035
15036         const unsigned char arr[][2] = { { 0, 1 } };
15037         t18.c:1: error: Initializer element is not constant
15038
15039 2002-03-04  bela  <bela AT manik>
15040
15041         * /device/include/mcs51reg.h:
15042         ds89c420 register definition update
15043
15044 2002-03-03    <johan AT FRIJA>
15045
15046         * support/Util/SDCCerr.c: did something, but don't no why anymore
15047
15048         * support/regression/tests/bug-524691.c: made it a little less shy
15049
15050         * src/SDCCast.c (decorateType): fixed bug #524697
15051
15052         * src/SDCCast.c: made some lineno improvements
15053
15054         * src/SDCCval.c (getNelements): changed warning to error
15055
15056         * src/SDCCglue.c (printIvalArray): changed warning to error
15057
15058         * src/SDCCicode.c: fixed a warning for mingw
15059
15060         * src/SDCCast.c (decorateType): fixed the << promotion for ops
15061
15062         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
15063
15064 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
15065
15066         * src/ds390/peeph.def:
15067         Added some more peephole rules
15068
15069         * src/ds390/gen.c: Various fixes & enhancements
15070
15071         * src/SDCClrange.c, src/SDCClrange.h:
15072         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
15073
15074         * src/ds390/ralloc.c:
15075         various fixes & enhancements (ds390) specific
15076
15077         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
15078         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
15079         from rallocs.
15080
15081         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
15082
15083 2002-03-02    <johan AT FRIJA>
15084
15085         * src/SDCCast.c (decorateType): fixed bug #524708
15086
15087         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
15088
15089         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
15090
15091 2002-03-01  Michael Hope  <michaelh AT vroom>
15092
15093         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
15094
15095         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
15096
15097 2002-03-01    <johan AT FRIJA>
15098
15099         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
15100
15101         * src/SDCCast.c (decorateType): fixed bug #524209
15102
15103         * src/SDCCval.c (valNot): fixed bug #524195
15104
15105 2002-02-26    <johan AT balder>
15106
15107         * src/xa51/gen.c: fixed a warning
15108
15109         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
15110
15111         * src/SDCCast.c (decorateType): fixed bug #522534
15112
15113 2002-02-23    <johan AT balder>
15114
15115         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
15116
15117 2002-02-22    <johan AT balder>
15118
15119         * src/SDCCast.c: fixed bug #514865
15120
15121         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
15122
15123 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
15124
15125         * sdcc/src/SDCCloop.c:
15126         Previous fix was not good. basic blocks that have "break" or "return" are
15127         not really partof a loop , but live ranges used in these blocks should
15128         be live thru the entire loop, so set partOfLoop but don't add them to
15129         loop region
15130
15131 2002-02-21    <johan AT FRIJA>
15132
15133         * src/SDCCcse.c: fixed bug #514308
15134
15135 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
15136
15137         * src/SDCCloop.c:
15138         Fixed BUG #519583. If a conditional block ended in a return/break
15139         statement inside a loop, it was not being considered part of the loop.
15140
15141         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
15142
15143 2002-02-10  Karl Bongers <karl AT turbobit.com>
15144
15145         * debugger/*:
15146         Fixed up SDCDB debugger somewhat.  Updated debugger/README
15147         with lots of comments and notes.
15148
15149         * device/examples/test2.c:
15150         Fix bug, "red" variable not being initialized(compiler complained).
15151
15152         * device/examples/Makefile, examples/test3.c:
15153         Add Makefile in device/examples folder, compiles test3.c
15154         for use as a multiple module SDCDB test case.
15155
15156         * sim/ucsim/cmd.src/cmdset.cc:
15157         Took out debug printfs in ucsim "next" command.
15158
15159         * sim/ucsim/xa.src:
15160         Karl and Johan start ucsim XA support.  Most dissassembly working,
15161         about 75% emulation done(plenty of work remaining).
15162
15163         * sim/ucsim/z80.src:
15164         Add Z80 support to ucsim, add test-ucz80 regression test,
15165         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
15166         Notice z80 compiler fails on examples/test3.c/crc code.
15167
15168 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
15169
15170         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
15171         Added support for --parms-in-bank1
15172
15173         * src/ds390/peeph.def:
15174         added a few more peephole optimzations
15175
15176         * src/ds390/main.c:
15177         1) added __builtin_inp & __builtin_outp used to read in data of given length
15178            from a memory mapped port
15179         2) added __builtin_memcmp
15180         3) added __builtin_swapw swap bytes of a short
15181
15182         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
15183         1) handle multiple send & receives from register bank1
15184         2) ralloc can now allocate DPTR1 to some liveRanges
15185
15186         * src/SDCCsymt.c, src/SDCCsymt.h:
15187         changes to handle multiple sends & receives
15188
15189         * src/SDCCptropt.h:
15190         added some pointer arithmetic optimization
15191
15192         * src/SDCCptropt.c:
15193         added some pointer arithmetic optimizations but not stable yet so not
15194         called from anywhere (will get this working shortly)
15195
15196         * src/SDCCopt.c: fixed for multiple sends & receives
15197
15198         * src/SDCCmain.c:
15199         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
15200         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
15201            set preprocessor defines (depending on options)
15202
15203         * src/SDCCicode.c, src/SDCCicode.h:
15204         changes made to handle multiple sends & receives
15205
15206         * src/SDCCglobl.h:
15207         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
15208
15209         * src/SDCCcse.c, src/SDCCcse.h:
15210         added function findbackward def (to be used in upcoming optimization)
15211
15212         * src/SDCCcflow.c, src/SDCCcflow.h:
15213         added function returnAtEnd - to determine if a basic block terminates with
15214         a RETURN iCode
15215
15216         * src/SDCCast.c, src/SDCCast.h:
15217         added option parms-in-bank1
15218
15219         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
15220         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
15221         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
15222         adjusted for --parms-in-bank1 option
15223
15224         * device/include/string.h:
15225         donot redefine "reentrant" keyword
15226
15227         * device/include/ds80c390.h: Added some more SFRs
15228
15229 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
15230
15231         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
15232
15233 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
15234
15235         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
15236
15237 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
15238
15239         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
15240
15241 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
15242
15243         * Added --xram-movc option
15244
15245 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
15246
15247         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
15248
15249 2002-01-11  Johan Knol
15250
15251         * Added math lib of Jesus Calvino-Fraga
15252
15253 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
15254
15255         * src/SDCCmain.c (processFile): fix processing of ../../src.c
15256         * support/regression/Makefile: new target test-mcs51-stack-auto
15257         * support/regression/ports/mcs51-stack-auto/spec.mk: added
15258
15259 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15260
15261         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
15262
15263 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
15264
15265         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
15266
15267 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
15268
15269         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
15270
15271         * src/SDCCglue.h: add definition for printIvalChar()
15272
15273 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15274
15275         * src/SDCCast.c: fix #498138 by Johan
15276
15277         * src/SDCCglue.c: fix #498138 by Johan
15278
15279 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
15280
15281         * support/regression/Makefile: fix clean
15282
15283         * support/regression/ports/ds390/support.c: fix transmission of last character
15284
15285 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
15286
15287         * /sdcc/src/ds390/gen.c:
15288         a) improved computing address of stack variable
15289         b) took out some #if 0 code
15290         c) improved parmBytes adjustment
15291         d) improved genPlusIncr & genMinusIncr
15292         e) genCmp could generate bad code (when left assigned to DPTR)
15293         f) Fixed bug in hasInc
15294
15295         * /sdcc/src/ds390/ralloc.c:
15296         a) packRegsForSupport could mess up live information (Fixed)
15297         b) packRegsDPTRuse could be incorrect for left & right shift
15298
15299         * /sdcc/src/mcs51/ralloc.c:
15300         packRegsForSupport could mess up the live information (Fixed)
15301
15302         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
15303
15304         * /sdcc/src/SDCCast.c:
15305         can reverse a loop even if function call is present as long
15306         as the loop control variable is local & is not passed as parameter
15307
15308 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15309
15310         * /sdcc/ChangeLog: *** empty log message ***
15311
15312         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
15313         More builtin function additions for TININative
15314
15315         * /sdcc/src/ds390/ralloc.c:
15316         Had broken the regression testsuite
15317
15318         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
15319
15320         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
15321         Added funcattr hasStackParms will be set for reentrant functions when there
15322         are paramteres on the stack, this helps in minimizing frame pointer generation
15323         typeFromStr can handle function pointers now
15324
15325         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
15326         *** empty log message ***
15327
15328 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15329
15330         * /src/ds390/gen.c, /src/ds390/main.c:
15331         More builtin function additions for TININative
15332
15333         * /src/ds390/ralloc.c:
15334         Had broken the regression testsuite
15335
15336         * /src/SDCCast.c: Fixed a bug in dumptree
15337
15338         * /src/SDCCsymt.c, /src/SDCCsymt.h:
15339         Added funcattr hasStackParms will be set for reentrant functions when there
15340         are paramteres on the stack, this helps in minimizing frame pointer generation
15341         typeFromStr can handle function pointers now
15342
15343         * /doc/builtins.txt, /doc/TININative.txt:
15344         *** empty log message ***
15345
15346
15347 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
15348
15349         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
15350         ALPHA version for -mTININative
15351
15352         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
15353         updated to reflect changes in the port structure
15354
15355         * /src/port.h:
15356         added function do_assemble (similar to do_link) if non-null this function
15357         will be called to do assembly (-mTININative) requires a multi command
15358         assembly
15359         added function genAssemblerEnd will be called to generate assembler Epilogue
15360
15361         * /src/SDCCsymt.c:
15362         added _JavaNative to debug info printing
15363
15364         * /src/SDCCmain.c: added option --tini-libid
15365         added port->do_assemble function (-mTININative) has a multi command assemble
15366
15367         * /src/SDCCglue.c: Disabled "constExpr" check
15368         added port->genAssemblerEnd function
15369
15370         * /src/SDCCglobl.h: Added option --tini-libid value
15371
15372         * /src/SDCCast.h:
15373         tookout optimizeCompare from the header (has no external references)
15374
15375         * /src/SDCCast.c: made one more function "static"
15376
15377 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
15378
15379         * src/z80/mappings.i: Added z80asm support.
15380
15381         * src/z80/main.c: Added z80asm support on --asm=z80asm
15382
15383         * src/z80/gen.c: Fixed asm portability issues.
15384
15385         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
15386
15387         * src/SDCCglue.c (printExterns): Added global/extern split.
15388
15389 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
15390
15391         * support/regression/Makefile: added test for mcs51 model large
15392
15393         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
15394
15395         * support/regression/ports/gbz80/spec.mk: added -mgbz80
15396
15397 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
15398
15399         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
15400
15401 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
15402
15403         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
15404
15405         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
15406
15407 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
15408
15409         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
15410
15411         * support/regression/tests/simplefloat.c: Port to mcs51.
15412
15413 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
15414         * support/regression/tests/bug-485362.c: Added.
15415
15416         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
15417
15418         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
15419
15420         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
15421
15422         * src/z80/gen.c (aopDump): Added a dump function.
15423
15424 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
15425         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
15426
15427         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
15428
15429         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
15430
15431         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
15432
15433         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
15434
15435         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
15436
15437         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
15438
15439         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
15440
15441         * support/regression/ports/ds390/support.c: Use tinibios.
15442
15443         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
15444
15445 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
15446
15447         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
15448         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
15449
15450         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
15451
15452         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
15453
15454 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
15455
15456         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
15457
15458         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
15459         (packRegsForIYUse): Created and optimised.
15460
15461 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15462
15463         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
15464 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
15465
15466         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
15467
15468         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
15469
15470         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
15471
15472 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15473
15474         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
15475
15476         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
15477
15478 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15479
15480         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
15481
15482         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
15483
15484         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
15485
15486 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
15487
15488         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
15489         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
15490         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
15491
15492         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
15493
15494         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
15495         (genNotFloat): Added.
15496         (genUminusFloat): Added.
15497
15498         * device/lib/z80/Makefile: Added floating pt stubs.
15499
15500         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
15501
15502         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
15503
15504         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
15505
15506 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
15507
15508         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
15509
15510         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
15511
15512         * sdcc/support/regression/Makefile: Add port ds390.
15513
15514         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
15515
15516         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
15517
15518         * sdcc/support/regression/ports/ds390/spec.mk: Added.
15519
15520         * sdcc/support/regression/ports/ds390/support.c: Added.
15521
15522         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
15523
15524         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
15525
15526         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
15527
15528 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15529
15530         * device/include/malloc.h: Added z80 and gbz80 support.
15531
15532         * device/lib/gbz80/heap.s: Added.
15533
15534         * device/lib/z80/heap.s: Added.
15535
15536         * device/lib/malloc.c: Added z80 and gbz80 support.
15537
15538         * support/regression/tests/malloc.c (testMalloc): Added.
15539
15540         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
15541
15542         * support/regression/tests/bug-478094.c: Added.
15543
15544         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
15545
15546 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
15547
15548         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
15549
15550         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
15551
15552         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
15553
15554         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
15555
15556         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
15557
15558 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
15559
15560         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
15561
15562 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
15563
15564         * support/regression/tests/bug-477927.c: Added.
15565
15566         * src/z80/peeph.def: Added minor rules.
15567
15568         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
15569
15570         * src/z80/peeph.def: Added jump optimisation modification.
15571
15572 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
15573
15574         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
15575
15576 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
15577
15578         * support/regression/tests/funptrs.c: Added.
15579
15580 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
15581
15582         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
15583
15584 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
15585
15586         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
15587
15588         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
15589
15590         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
15591         (movLeft2ResultLong): Created.
15592
15593         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
15594         (joinPushes): Added.  Joins two char pushes into a word push.
15595
15596 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
15597
15598         * support/cpp2/Makefile.in (install): Added creation of dest dir.
15599
15600         * support/makebin/Makefile (install): Added creation of dest dir.
15601
15602 2001-10-24 Karl Bongers <karl AT turbobit.com>
15603
15604         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
15605
15606 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
15607
15608         * src/z80/ralloc.c: Turned off faulty pack for one use.
15609
15610         * src/z80/peeph-gbz80.def: Removed redundent restart options.
15611
15612         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
15613
15614 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
15615
15616         * support/regression/Makefile: Improved clean
15617
15618         * support/regression/ports/gbz80/spec.mk: Added clean
15619
15620         * support/regression/ports/host/spec.mk: Added clean
15621
15622         * support/regression/ports/z80/spec.mk: Added clean
15623
15624         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
15625
15626         * support/regression/ports/mcs51/timeout.c: little improvements
15627
15628 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
15629
15630         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
15631
15632         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
15633
15634         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
15635
15636 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
15637
15638         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
15639
15640         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
15641
15642 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
15643         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
15644
15645         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
15646
15647         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
15648
15649         * src/mcs51/main.c (_linkCmd): Added bin path to command.
15650
15651         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
15652
15653         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
15654
15655         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
15656
15657         * support/regression/tests/longor.c: Added.
15658
15659 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
15660
15661         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
15662
15663         * as/mcs51/aslink.h: define PATH_MAX
15664
15665         * as/mcs51/asm.h: define PATH_MAX
15666
15667         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
15668
15669         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
15670
15671         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
15672
15673         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
15674
15675         * src/SDCCglobl.h: define PATH_MAX
15676
15677         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
15678
15679         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
15680
15681 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
15682
15683         * src/z80/gen.c (gencjneshort): Fixed
15684
15685         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
15686
15687 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
15688
15689         * support/regression/tests/bug-469671.c: Added.
15690
15691         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
15692
15693 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
15694
15695         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
15696
15697         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
15698
15699 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
15700
15701         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
15702
15703         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
15704
15705         * src/device/lib/_mullong.c : removed hint: nooverlay bug
15706
15707         * src/device/lib/_divuint.c : removed hint: nooverlay bug
15708
15709         * src/device/lib/_divulong.c: removed hint: nooverlay bug
15710
15711         * src/device/lib/_moduint.c : removed hint: nooverlay bug
15712
15713         * src/device/lib/_modulong.c: removed hint: nooverlay bug
15714
15715 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
15716
15717         * 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.
15718
15719         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
15720
15721         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
15722
15723 2001-10-07    <johan AT FRIJA>
15724
15725         * device/lib/gets.c (gets): fixed the return value.
15726
15727 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
15728         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
15729
15730         * 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.
15731
15732         * 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.
15733
15734         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
15735
15736         * src/pic/gen.c: Removed Safe_strdup.
15737
15738         * configure.in: Added option to enable libgc support.
15739
15740         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
15741         (bitVectUnion): Optimised.
15742         (bitVectIntersect): Optimised.
15743         (bitVectBitsInCommon): Optimised.
15744         (bitVectCplAnd): Optimised.
15745
15746         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
15747
15748 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15749
15750         * src/SDCCmain.c: distinguish between assembler debug and plain options
15751
15752         * src/avr/main.c:   remove standard assembler options
15753
15754         * src/ds390/main.c: remove standard assembler options
15755
15756         * src/mcs51/main.c: remove standard assembler options
15757
15758         * src/port.h: removed "PENDING" comment
15759
15760 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15761
15762         * src/device/lib/_mulint.c  : new, with assember functions
15763
15764         * src/device/lib/_mullong.c : new, with assember functions
15765
15766         * src/device/lib/_divuint.c : with assember functions
15767
15768         * src/device/lib/_divsint.c : with assember functions
15769
15770         * src/device/lib/_divulong.c: with assember functions
15771
15772         * src/device/lib/_divslong.c: with assember functions
15773
15774         * src/device/lib/_moduint.c : with assember functions
15775
15776         * src/device/lib/_modsint.c : with assember functions
15777
15778         * src/device/lib/_modulong.c: with assember functions
15779
15780         * src/device/lib/_modslong.c: with assember functions
15781
15782         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
15783
15784         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
15785
15786         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
15787                                       replaced _mululong.c and _mulslong.c by _mullong.c
15788
15789 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
15790
15791         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
15792
15793 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15794
15795         * src/SDCCglue.c: test, if win32api is available for MINGW
15796
15797 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
15798
15799         * src/SDCCsymt.c: no more _modifier in printTypeChain()
15800         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
15801         * support/regression/ports/gbz80/spec.mk: removed GENERIC
15802         * support/regression/ports/host/spec.mk: removed GENERIC
15803         * support/regression/ports/mcs51/spec.mk: removed GENERIC
15804         * support/regression/ports/z80/spec.mk: removed GENERIC
15805
15806 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
15807
15808         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
15809
15810         * support/regression/tests/bug-467035.c: Created.
15811
15812 2001-10-01    <johan AT FRIJA>
15813
15814         * src/SDCC.y: fixed bug #466586 part 1
15815
15816 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
15817
15818         * SDCCicode.c: z80 has no generic pointers
15819         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
15820
15821 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
15822
15823         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
15824
15825 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
15826
15827         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
15828
15829         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
15830
15831 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
15832
15833         * configure.in: Fixed up so that ucsim is only configured once.
15834
15835         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
15836
15837         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
15838         (getPathDifference): As above.
15839
15840         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
15841
15842         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
15843
15844 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
15845         * .version: Updated to 2.3.1
15846
15847         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
15848         Added copyright header.
15849
15850         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
15851         (assemble): Added support for macro based assembler commands.
15852         (linkEdit): Added support for macro based linker commands.
15853         (preProcess): Changed the pre-processor to use macros.
15854         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
15855         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
15856
15857         * device/lib/z80/crt0.s: Added module name for debugging.
15858
15859 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
15860
15861         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15862
15863         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
15864
15865         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
15866
15867         * src/Makefile.in: Added SDCCmacro and SDCCutil
15868
15869 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
15870
15871         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
15872
15873 2001-09-16    <johan AT FRIJA>
15874
15875         * 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.
15876
15877 2001-09-15    <johan AT FRIJA>
15878
15879         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
15880         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
15881
15882 2001-09-11    <johan AT FRIJA>
15883
15884         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
15885
15886 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
15887
15888         * support/regression/tests/bug-460444.c: Added test case.
15889
15890         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
15891         (genCast): Added justification for all of the asserts.
15892
15893 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
15894
15895         * support/regression/support.c: _xdata replaced by xdata
15896
15897         * support/regression/spec.mk: removed _generic
15898
15899 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
15900
15901         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
15902
15903         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
15904         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
15905
15906         * src/z80/peeph.def: Added a rule to optimise shift then compare.
15907
15908         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
15909
15910         * support/regression/tests/bug-460010.c: Added test case.
15911
15912         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
15913
15914 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
15915
15916         * support/regression/Makefile: inter-port-clean adjusted for mcs51
15917
15918         * support/regression/testfwk.c: removed workaround for bug #436344
15919
15920         * support/regression/tests/bp.c: use less memory with mcs51
15921
15922         * support/regression/tests/bug-441448.c: use less memory
15923
15924         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
15925
15926         * support/regression/collate-results.py: typo
15927
15928 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
15929
15930         * support/regression/tests/fetchoverlap.c: Added new test case.
15931
15932         * support/regression/tests/bp.c: Added new test case.
15933
15934         * support/regression/tests/bug-448984.c: Added new test case.
15935
15936         * support/regression/tests/pow2shifts.c: Added new test case.
15937
15938         * src/z80/gen.c: Turned off the noise it normally generates for the release.
15939         (genlshTwo): Fixed right shift for count > 8.
15940
15941         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
15942
15943 2001-09-08    <johan AT FRIJA>
15944
15945         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
15946
15947 2001-09-07    <johan AT FRIJA>
15948
15949         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
15950
15951         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
15952
15953 2001-09-06    <johan AT FRIJA>
15954
15955         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
15956         * bernhard noted me at this: "() equals to (void)" (1.38)
15957
15958 2001-09-05    <johan AT FRIJA>
15959
15960         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
15961
15962 2001-09-04    <johan AT FRIJA>
15963
15964         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
15965
15966
15967 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
15968
15969         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
15970
15971 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
15972
15973         * link/z80/aslink.h: Fixed path for PATH_MAX
15974
15975 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
15976
15977         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
15978
15979         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
15980
15981         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
15982
15983         * 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.
15984
15985 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
15986
15987         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
15988         (genCmp): Fixed up genCmp for the GB with longs.
15989
15990         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
15991
15992         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
15993
15994         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
15995
15996         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
15997
15998 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
15999
16000         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
16001
16002 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
16003
16004         * 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.
16005
16006         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
16007
16008 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
16009
16010         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
16011
16012         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
16013
16014 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
16015
16016   * sim/ucsim/configure:    little improvement of Cygwin-detection
16017   * sim/ucsim/configure.in: little improvement of Cygwin-detection
16018   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
16019   * support/regression/tests/bug-221100.c: small changes for mcs51
16020   * support/regression/tests/bug-221168.c: small changes for mcs51
16021   * support/regression/tests/bug-227710.c: small changes for mcs51
16022   * support/regression/tests/staticinit.c: small changes for mcs51
16023   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
16024   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16025   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
16026
16027 $Revision$