device/lib/_putchar.c,_getchar.c, inituart.c: removed
[fw/sdcc] / ChangeLog
1 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
2
3         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
4         Removed.
5  
6 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
7
8         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
9         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
10         on/off CR to CRLF conversion.  
11
12 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
13
14         * doc/sdccman.lyx: updated IRQ section
15
16 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
17
18         * device/lib/serial_io.c: removed
19         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
20         replacements for serial_io.c
21
22 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
23
24         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
25
26 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
27
28         * device/lib/serial_io.c: Default putchar() and getchar() for
29           mcs51 uses serial port.
30
31 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
32
33         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
34
35 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
36
37         * support/regression/ports/mcs51/support.c: smaller
38         _sdcc_external_startup()
39         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
40
41 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
42
43         * device/lib/gbz80/crt0.s,
44         * device/lib/gbz80/crt0_rle.s,
45         * device/lib/gbz80/div.s,
46         * device/lib/gbz80/fstubs.s,
47         * device/lib/gbz80/heap.s,
48         * device/lib/gbz80/mul.s,
49         * device/lib/gbz80/putchar.s,
50         * device/lib/gbz80/stubs.s,
51         * device/lib/z80/crt0.s,
52         * device/lib/z80/crt0_rle.s,
53         * device/lib/z80/div.s,
54         * device/lib/z80/fstubs.s,
55         * device/lib/z80/heap.s,
56         * device/lib/z80/mul.s,
57         * device/lib/z80/putchar.s,
58         * device/lib/z80/stubs.s: reverted, I was mistaken
59
60 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
61
62         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
63         * support/regression/ports/mcs51/support.c: removed race
64         condition on TI in _putchar allowing to use serial port mode 0
65
66 2006-10-20 Borut Razem <borut.razem AT siol.net>
67
68         * sebugger/mcs51/sdcdb.c: replaced isblank() with isspace()
69
70 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
71
72         * device/lib/gbz80/crt0.s,
73         * device/lib/gbz80/crt0_rle.s,
74         * device/lib/gbz80/div.s,
75         * device/lib/gbz80/fstubs.s,
76         * device/lib/gbz80/heap.s,
77         * device/lib/gbz80/mul.s,
78         * device/lib/gbz80/putchar.s,
79         * device/lib/gbz80/stubs.s,
80         * device/lib/z80/crt0.s,
81         * device/lib/z80/crt0_rle.s,
82         * device/lib/z80/div.s,
83         * device/lib/z80/fstubs.s,
84         * device/lib/z80/heap.s,
85         * device/lib/z80/mul.s,
86         * device/lib/z80/putchar.s,
87         * device/lib/z80/stubs.s: removed all leading underscores from area names
88
89 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
90
91         * support/regression/ports/mcs51/support.c: use highest baudrate so the
92           regression tests are not waiting in the simulator for simulated
93           transmission of debug output
94
95 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
96
97         * device/lib/printf_large.c: slightly smaller
98         * doc/sdccman.lyx: do not use spaces within html links
99
100 2006-10-16 Borut Razem <borut.razem AT siol.net>
101
102         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
103           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
104           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
105           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
106           debugger/mcs51/configure:
107           [ 1185668 ] add gnu readline support to sdcdb - enabled
108
109 2006-10-16 Raphael Neider <rneider AT web.de>
110
111         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
112           fixes #1577882, removes close to all banking optimizations
113
114 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
115
116         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
117           variables in code memory
118         * support/regression/tests/absolute.c: added test for this
119
120 2006-10-15 Raphael Neider <rneider AT web.de>
121
122         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
123           devices,
124           (BankSelect): emit BANKSEL before touching linker-placed regs,
125           fixes #1570934
126
127 2006-10-10 Raphael Neider <rneider AT web.de>
128
129         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
130         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
131         * src/pic/main.c (_pic14_parseOptions),
132         * src/pic/main.h: mostly reverted to previous state, now use results
133             from SDCCmain.c's argument parsing
134
135 2006-10-10 Borut Razem <borut.razem AT siol.net>
136
137         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
138           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
139           [ 1185668 ] add gnu readline support to sdcdb -
140           prepared for READLINE, not enabled yet,
141           thanks to <tal.bav AT gmail.com>
142
143 2006-10-10 Raphael Neider <rneider AT web.de>
144
145         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
146         * src/pic16/devices.inc,
147         * device/include/pic16 (pic18f[24]620.h),
148         * device/include/pic18fregs.h,
149         * device/lib/pic16/pics.all,
150         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
151             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
152             Gary Plumbridge and Anton Strobl
153
154 2006-10-10 Raphael Neider <rneider AT web.de>
155
156         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
157           --stack-siz=NUM options to configure the argument passing stack
158         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
159         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
160           (pic14_getSharebankSize): obey --stack-siz=NUM,
161           (pic14_getSharebankAddress): obey --stack-loc=NUM
162
163 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
164
165         * doc/sdccman.lyx: added to the manual
166         * doc/figures/ddd_example.png: added (neither pdflatex nor
167         most browsers seem to like the .eps file)
168
169 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
170
171         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
172         to /tmp and /var/tmp acc. LSB
173         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
174         RESULT_TYPE_IFX
175         * support/regression/tests/onebyte.c: added test
176
177 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
178
179         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
180
181 2006-10-05 Borut Razem <borut.razem AT siol.net>
182
183         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
184           thanks to dfulab:
185           - sdcc.dsw: changed property eol-style to CRLF
186           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
187
188 2006-10-04 Raphael Neider <rneider AT web.de>
189
190         * device/include/pic/{pic16f84.h,pic16f84a.h},
191         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
192           from patch #1522504, thanks to Robas Teodor
193
194 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
195
196         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
197           fixes bug 1566015
198
199 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
200
201         * src/pic16/glue.c (pic16emitMaps),
202         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
203         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
204         * device/lib/pic16/libc/string/memcpypgm2ram.c,
205         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
206           Philipp Krause
207         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
208         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
209
210 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
211
212         * support/librarian/sdcclib.c: Added option -l.
213         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
214           usage totals.
215         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
216           using Windows command prompt.
217
218 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
219
220         * device/lib/libsdcc.lib: added module rand
221         * src/ds390/ralloc.c (rematStr),
222         * src/hc08/ralloc.c (rematStr),
223         * src/mcs51/ralloc.c (rematStr),
224         * src/z80/ralloc.c (rematStr): made output more consistent
225         * src/mcs51/gen.c: cosmetic changes
226
227 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
228
229         * src/port.h: added mem.cabs_name to PORT
230         * src/ds390/main.c,
231         * src/hc08/main.c,
232         * src/mcs51/main.c,
233         * src/pic16/main.c,
234         * src/pic/main.c,
235         * src/xa51/main.c,
236         * src/z80/main.c: added cabs_name initializers
237         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
238           constants
239           (emitMaps): emit absolutes in code memory into cabs_name
240         * src/SDCCmem.c,
241         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
242         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
243         * support/regression/fwk/include/testfwk.h: added define for at
244         * support/regression/tests/absolute.c: added, new
245
246 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
247
248         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
249           optimizations, see also patch 887161 by Stas Sergeev
250         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
251           to be necessary anymore,
252           (102, 103, 104, 127): renamed all occurances of bp to _bp
253
254 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
255
256         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
257           thanks Weston T. Schmidt for patch 1555221
258         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
259         * src/SDCCicode.c(geniCodeMultiply): small optimization
260
261 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
262
263         * device/include/stdlib.h: added rand prototypes
264         * device/lib/rand.c: new, added
265         * device/lib/Makefile.in: added rand.c
266         * src/z80/peeph.def,
267         * src/z80/peeph-gbz80.def,
268         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
269
270 2006-09-20 Raphael Neider <rneider AT web.de>
271
272         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
273
274 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
275
276         * as/link/aslink.h: cosmetic changes
277         * as/link/mcs51/Makefile.in,
278         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
279
280 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
281
282         * as/link/aslink.h,
283         * as/link/mcs51/aslink.h,
284         * as/link/z80/aslink.h: merged and moved to as/link/
285         * as/link/lkstore.c,
286         * as/link/mcs51/lkstore.c: moved to as/link/
287         * as/link/clean.mk: remove *.o
288         * as/link/mcs51/alloc.h: deleted
289         * as/link/mcs51/lkarea.c: added lnksect prototype
290         * as/link/mcs51/lkdata.c,
291         * as/link/mcs51/lklex.c,
292         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
293         * as/link/mcs51/lkmem.c,
294         * as/link/mcs51/lknoice.c: removed include strcmpi.h
295         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
296         * as/link/mcs51/aslink.dsp,
297         * as/link/mcs51/Makefile.aslink,
298         * as/link/mcs51/Makefile.bcc,
299         * as/link/mcs51/Makefile.in: updated for moved files
300         * as/link/z80/lkarea.c,
301         * as/link/z80/lkhead.c,
302         * as/link/z80/lklex.c,
303         * as/link/z80/lklibr.c,
304         * as/link/z80/lklist.c,
305         * as/link/z80/lkmain.c,
306         * as/link/z80/lkrloc.c,
307         * as/link/z80/lksym.c: synced with mcs51
308         * as/link/z80/lkdata.c,
309         * as/link/z80/lkeval.c,
310         * as/link/z80/lkihx.c,
311         * as/link/z80/lks19.c: cosmetic changes
312         * as/link/z80/Makefile.in,
313         * as/link/z80/linkgbz80.dsp,
314         * as/link/z80/linkz80.dsp: updated for moved files
315
316 2006-09-16 Borut Razem <borut.razem AT siol.net>
317
318         * debugger/mcs51/sdcdb.c: partially fixed
319           [ 1203664 ] sdcdb fails to open files w. two "." periods
320         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
321           debugger/mcs51/symtab.h: fixed indenting
322         * configure.in, configure: up to date with latest Maarten's changes
323
324 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
325
326         as/link/mcs51
327         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
328         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
329         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
330         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
331         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
332         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
333         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
334         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
335         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
336         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
337         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
338         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
339         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
340         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
341         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
342         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
343         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
344         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
345         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
346         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
347         as/link/mcs51/alloc.h,
348         as/link/mcs51/clean.mk,
349         as/link/mcs51/conf.mk,
350         as/link/mcs51/Makefile.bcc,
351         as/link/mcs51/Makefile.in,
352         as/link/mcs51/readme.390,
353         as/link/mcs51/strcmpi.c,
354         as/link/mcs51/strcmpi.h,
355         as/mcs51/clean.mk,
356         as/mcs51/Makefile.bcc,
357         as/mcs51/Makefile.in,
358         configure,
359         Makefile.in,
360         sdcc.dsw: moved mcs51 linker to as/link/mcs51
361
362 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
363
364         * as/link,
365         * as/link/Makefile.in,
366         * as/link/z80/linkgbz80.dsp,
367         * as/link/z80/linkz80.dsp,
368         * configure,
369         * link,
370         * link/clean.mk,
371         * link/Makefile.in,
372         * link/README,
373         * link/z80,
374         * link/z80/aslink.h,
375         * link/z80/clean.mk,
376         * link/z80/conf.mk,
377         * link/z80/linkgbz80.dsp,
378         * link/z80/linkz80.dsp,
379         * link/z80/lkarea.c,
380         * link/z80/lkdata.c,
381         * link/z80/lkeval.c,
382         * link/z80/lkgb.c,
383         * link/z80/lkgg.c,
384         * link/z80/lkhead.c,
385         * link/z80/lkihx.c,
386         * link/z80/lklex.c,
387         * link/z80/lklibr.c,
388         * link/z80/lklist.c,
389         * link/z80/lkmain.c,
390         * link/z80/lkrloc.c,
391         * link/z80/lks19.c,
392         * link/z80/lksym.c,
393         * link/z80/Makefile.in,
394         * Makefile.in,
395         * sdcc.dsw: moved link/ to as/link/
396
397 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
398
399         * as/mcs51/i51mch.c (machine): fixed warning
400
401 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
402
403         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
404
405 2006-09-09 Borut Razem <borut.razem AT siol.net>
406
407         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
408           sdcdb WIN32 native port
409         * src/clean.mk: fixed
410
411 2006-09-08 Borut Razem <borut.razem AT siol.net>
412
413         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
414
415 2006-09-08 Raphael Neider <rneider AT web.de>
416
417         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
418         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
419             to gplink to disable processor mismatch warning and to allow
420             the use of devices with only aliased (shared) memory banks,
421           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
422
423 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
424
425         * doc/sdccman.lyx: Some re-formating plus example on using
426           #pragma preproc_asm +/-
427
428 2006-09-07 Borut Razem <borut.razem AT siol.net>
429
430         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
431           section
432
433 2006-09-06 Borut Razem <borut.razem AT siol.net>
434
435         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
436           line at sdcc.nsi:153
437         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
438
439 2006-09-05 Borut Razem <borut.razem AT siol.net>
440
441         * configure.in, configure: support for winsock2
442         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
443           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
444           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
445           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
446           debugger/mcs51/symtab.h: sdcdb WIN32 native port
447
448 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
449
450         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
451           and OP_DEFS
452         * support/regression/tests/bug1551947.c: new, added
453         * src/SDCCsymt.h: strings are char* not byte*
454
455 2006-09-05 Raphael Neider <rneider AT web.de>
456
457         * device/lib/pic16/libdev/pic18f4550.c,
458           device/include/pic16/pic18f4550.h: added PORTD/TRISD
459             declarations/definitions from patch #1520949
460
461 2006-09-05 Raphael Neider <rneider AT web.de>
462
463         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
464           byte-aligned bitfields, fixes #1539278
465
466 2006-09-05 Raphael Neider <rneider AT web.de>
467
468         * src/pic/gen.c (genReceive): skip unreferenced arguments,
469           fixes #1544120
470
471 2006-09-04 Borut Razem <borut.razem AT siol.net>
472
473         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
474         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
475           -mno-cygwin is a part of the compiler name
476         * support/scripts/sdcc_mingw32: don't disable ucsim
477
478 2006-09-03 Borut Razem <borut.razem AT siol.net>
479
480         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
481         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
482
483 2006-09-03 Raphael Neider <rneider AT web.de>
484
485         * src/pic/ralloc.c,
486         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
487           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
488           fixes #1550049
489
490 2006-09-01 Borut Razem <borut.razem AT siol.net>
491
492         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
493           to make ppc-osx happy
494
495 2006-08-31 Borut Razem <borut.razem AT siol.net>
496
497         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
498         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
499         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
500         * support/regression/ports/ds390/spec.mk,
501           support/regression/ports/mcs51/spec.mk,
502           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
503           To run regression tests in mingw environment:
504           make DEV_NULL=NUL CC=gcc
505
506 2006-08-30 Borut Razem <borut.razem AT siol.net>
507
508         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
509           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
510           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
511           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
512           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
513           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
514           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
515           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
516           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
517           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
518           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
519           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
520           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
521           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
522           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
523           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
524           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
525           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
526           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
527           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
528           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
529           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
530           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
531           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
532           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
533           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
534           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
535           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
536           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
537           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
538           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
539           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
540           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
541           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
542           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
543           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
544           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
545           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
546           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
547           ucsim WIN32 native port
548
549 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
550
551         * doc/sdccman.lyx: added note on dynamic memory heap initialization
552
553 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
554
555         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
556         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
557
558 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
559
560         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
561         * support/regression/tests/bug1546986.c: new, added
562         * as/mcs51/.cvsignore,
563         * debugger/mcs51/.cvsignore,
564         * src/.cvsignore: deleted
565
566 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
567
568         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
569           definitions)
570
571 2006-08-20 Borut Razem <borut.razem AT siol.net>
572
573         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
574           removed cl_listen_console::match(), cl_console::match(),
575           restructured cl_commander::proc_input()
576
577 2006-08-16 Borut Razem <borut.razem AT siol.net>
578
579         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
580           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
581           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
582
583 2006-08-14 Borut Razem <borut.razem AT siol.net>
584
585         * support/regression/Makefile.in,
586           support/regression/ports/pic14/gpsim.cmd,
587           support/regression/ports/pic14/spec.mk,
588           support/regression/ports/pic14/support.c:
589           added pic14 regression test
590
591 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
592
593         * as/doc/asxhtm.html: documented changed ABS behaviour
594         * as/doc/README: fixed some typos
595
596 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
597
598         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
599           not defined on host
600
601 2006-08-12 Borut Razem <borut.razem AT siol.net>
602
603         * support/regression/fwk/include/testfwk.h,
604           support/regression/fwk/lib/testfwk.c,
605           support/regression/generate-cases.py,
606           support/regression/Makefile.in:
607           regression test framework does not depend on function pointers and
608           variable arguments
609
610 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
611
612         * device/include/stddef.h: c temporary hack to fix bug 1518273
613
614 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
615
616         * device/include/mcs51/cc2510fx.h: added
617         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
618           to projects.
619
620 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
621
622         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
623         * as/z80/Makefile.in: added strcmpi.c
624         * as/z80/z80adr.c: added upper case registers and lower case conditionals
625         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
626
627 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
628
629         * device/lib/gbz80/asm_strings.s,
630         * device/lib/gbz80/crt0_rle.s,
631         * device/lib/gbz80/div.s,
632         * device/lib/gbz80/mul.s,
633         * device/lib/gbz80/shift.s,
634         * device/lib/z80/asm_strings.s,
635         * device/lib/z80/crt0_rle.s,
636         * device/lib/z80/div.s,
637         * device/lib/z80/mul.s,
638         * device/lib/z80/shift.s: changed to all lower case menmonics except the
639           flags which are all upper case
640
641 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
642
643         * as/z80/asm.h: made CASE_SENSITIVE 1
644         * link/z80/aslink.h: made CASE_SENSITIVE 1
645         * src/z80/gen.c (throughout): made all conditionals upper case
646         * support/regression/tests/bug1503067.c: new
647
648 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
649
650         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
651           (shiftIntoPair): added case 2 for PAIR_IY,
652           (setupToPreserveCarry): replaced parameters with iCode and check if
653            PAIR_DE is in use to fix bug 1399290,
654           (genPlus, genMinus): updated call to setupToPreserveCarry
655         * support/regression/tests/bug1399290.c: new
656
657 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
658
659         * device/lib/Makefile.in (Z80SOURCES): enabled float support
660         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
661         * src/ds390/gen.c (shiftRLong),
662         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
663         * src/mcs51/gen.c (sameReg): changed to sameByte,
664           (xch_a_aopGet): new,
665           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
666            shiftRLong): fixed bug 1533966
667         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
668           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
669         * support/regression/Makefile.in: disabled z80, enabled ucz80
670         * support/regression/tests/float_trans.c: enabled test for z80 and host
671         * support/regression/tests/shifts2.c: new, for testing bug 1533966
672
673 2006-08-01 Borut Razem <borut.razem AT siol.net>
674
675         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
676           comparison is always false due to limited range of data type
677           on PPC64 machine (openpower-linux1) where "char = unsigned char"
678
679 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
680
681         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
682         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
683         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
684         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
685
686 2006-07-31 Borut Razem <borut.razem AT siol.net>
687
688         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
689           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
690           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
691           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
692           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
693           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
694           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
695           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
696           enable ucsim mingw compilation. Serial port is disabled,
697           since it uses termios.h API, which is not available on native
698           WIN32
699
700 2006-07-31 Borut Razem <borut.razem AT siol.net>
701
702         * Small Device C Compiler 2.6.0 released
703         * support/scripts/sdcc.nsi: added FULL_DOC option
704         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
705
706 2006-07-28 Borut Razem <borut.razem AT siol.net>
707
708         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
709         * doc/INSTALL.txt: updated
710
711 2006-07-27 Borut Razem <borut.razem AT siol.net>
712
713         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
714           device/lib/pic/libdev/Makefile.in: fixed bug
715           [ 1438354 ] pic libsdcc: distclean doesn't work
716         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
717           device/lib/pic16/libio/Makefile.in: fixed bug
718           [ 1438344 ] pic16 lib: clean doesn't work properly
719         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
720
721 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
722
723         * device/lib/pic/libsdcc/fsdiv.c,
724         * device/lib/pic/libsdcc/fsmul.c,
725         * device/lib/pic16/libsdcc/float/fsdiv.c,
726         * device/lib/pic16/libsdcc/float/fsmul.c,
727         * device/lib/_fsdiv.c,
728         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
729         * support/regression/tests/bug1520966.c: added
730         * doc/knownbugs.html: removed [ 1520966 ] from the list
731
732 2006-07-25 Borut Razem <borut.razem AT siol.net>
733
734         * configure.in, configure, sdccconf_in.h: fixed bug
735           [ 1519095 ] regression test onebyte.c fails on ppc64 host
736         * doc/knownbugs.html: removed [ 1519095 ] from the list
737
738 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
739
740         * doc/knownbugs.html: added, contains list of known bugs at release
741         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
742
743 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
744
745         * device/include/mcs51/compiler.h: added SFRX for xdata based special
746           function registers and corrected defaults with additional warning
747         * device/lib/malloc.c: cosmetic changes
748         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
749         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
750           (fillGaps): and used it
751
752 2006-07-20 Raphael Neider <rneider AT web.de>
753
754         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
755           output unless SDCCPICDEBUG is set
756         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
757           output if SILENT is set
758
759 2006-07-11 Borut Razem <borut.razem AT siol.net>
760
761         * doc/README.txt: updated
762
763 2006-07-10 Borut Razem <borut.razem AT siol.net>
764
765         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
766           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
767           in WIN32 installation
768         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
769           release candidate 1
770
771 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
772
773         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
774         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
775
776 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
777
778         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
779
780 2006-07-06 Borut Razem <borut.razem AT siol.net>
781
782         * support/regression/tests/bitfields.c:
783           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
784         * support/regression/tests/constantRange.c:
785           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
786
787 2006-07-04 Borut Razem <borut.razem AT siol.net>
788
789         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
790           src/port.mk,
791           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
792           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
793           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
794           reverted changes from 2006-07-03
795         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
796         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
797           added CPPFLAGS, used by the host port
798
799 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
800
801         * support/regression/valdiag/tests/switch.c,
802         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
803         * support/regression/tests/libmullong.c: fixed for host
804         * support/regression/ports/host/spec.mk: disable all warnings for host,
805         SDCC runs with --less-pedantic too
806
807 2006-07-03 Borut Razem <borut.razem AT siol.net>
808
809         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
810           defined CPPFLAGS
811         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
812         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
813           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
814           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
815           include ../port.mk
816         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
817           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
818           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
819           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
820
821 2006-07-02 Raphael Neider <rneider AT web.de>
822
823         * src/pic16/devices.inc,
824         * device/include/pic16/pic18fregs.h,
825         * device/include/pic16/pic18f4550.h,
826         * device/lib/pic16/pics.all,
827         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
828
829 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
830
831         * as/hc08/lkaomf51.c (OutputName),
832         * as/mcs51/lkaomf51.c (OutputName),
833         * as/z80/asmain.c (asmbl),
834         * src/ds390/main.c (asmLineNodeFromLineNode),
835         * src/hc08/ralloc.c (hc08_assignRegisters),
836         * src/mcs51/main.c (asmLineNodeFromLineNode),
837         * src/xa51/ralloc.c (checkRegMask),
838         * src/xa51/gen.c (emitcode),
839         * src/z80/gen.c (_emit2),
840         * src/SDCCast.c (searchLitOp),
841         * src/SDCCglobl.h,
842         * support/packihx/packihx.c,
843         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
844         * src/ds390/gen.c (aopPutUsesAcc),
845         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
846         * support/regression/tests/libmullong.c (mullong_wrapper),
847         * src/SDCCsymt.c (powof2),
848         * src/SDCCast.c,
849         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
850         * src/SDCCsymt.h: added TYPE_TARGET_*
851         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
852         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
853         SDCCast because 1) header problems 2) this is the right place
854         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
855         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
856         prototype
857
858 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
859
860         * src/SDCCicode.h: removed buggy semicolon in unused macro
861         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
862         search for previous definiton of auto symbols too,
863         (findPrevUse): fixed logic of emitWarnings
864
865 2006-06-26 Raphael Neider <rneider AT web.de>
866
867         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
868           PCLATH and PCLATU on interrupts, potentially fixes #1505141
869
870 2006-06-25 Raphael Neider <rneider AT web.de>
871
872         * device/lib/pic/libm: NEW, added math library functions
873         * device/lib/pic/libsdcc: NEW; added float support functions
874         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
875         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
876           NEW, added math related headers
877         * device/include/asm/pic/features.h: NEW
878         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
879           (popGet): allow larger offsets for AOP_PCODE,
880           (genDataPointerSet): handle literals explicitly, more debug output,
881           (genAssign): fixed for float using aopLiteral ;-)
882         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
883           GOTO initialisation routine
884         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
885           flag on registers, fixes #1469043 (local variables do not work)
886         * src/pic/main.c (_pic14_do_link),
887         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
888           available
889
890 2006-06-25 Borut Razem <borut.razem AT siol.net>
891
892         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
893           characters printed (not including the trailing '\0' used to end
894           output to strings). Problem detected in regression test bug-927659.c.
895           NOTE: printf() family functions should return int instead
896           unsigned int!
897         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
898           specifier are printed as themselves
899         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
900           support flags, width and precision specifiers
901
902 2006-06-24 Borut Razem <borut.razem AT siol.net>
903
904         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
905           to the list of sdcc tagrets not supporting bit type
906         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
907           testfor pic16 due to bug:
908           [ 1511794 ] pic16: regression test bug-895992.c fails
909
910 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
911
912         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
913         * src/SDCCglue.c (initPointer), fixed bug 1496419
914         * support/regression/tests/bug1496419.c: new, added
915
916 2006-06-22 Borut Razem <borut.razem AT siol.net>
917
918         * support/regression/ports/pic16/support.c: use gpsim usart module from
919           libgpsim_modules library
920
921 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
922
923         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
924         IP0H to IPH0.
925
926 2006-06-19 Raphael Neider <rneider AT web.de>
927
928         * src/pic/glue.h,src/pic16/glue.h: added prototypes
929         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
930           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
931           (pic14printExterns,pic14printPublics,pic16printPublics,
932           pic16_printExterns): use new functions to emit symbols
933           (picglue,pic16glue): emit publics before emitting externs
934         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
935           locally defined functions to avoid bug #1443651
936         * support/regression/tests/bug-716242.c: removed pic16 workaround
937         * support/regression/ports/pic16/spec.mk: ignore errors during build
938
939 2006-06-19 Raphael Neider <rneider AT web.de>
940
941         * src/pic/glue.h: added pic14aopLiteral prototype
942         * src/pic/glue.c (pic14aopLiteral): return unsigned int
943         * src/pic/gen.c: removed stdint.h dependency
944           (aopGet): use Safe_strdup()
945           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
946           (genDataPointerSet): use pic14aopLiteral()
947         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
948           for pic16; thanks to Bernhard and Maarten
949
950 2006-06-18 Borut Razem <borut.razem AT siol.net>
951
952         * support/regression/tests/structflexarray.c: flexible array members
953           not supported by gcc < 3
954         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
955           GUI tool by default
956         * src/pic/gen.c: don't include [p]strdin.h on solaris
957         * support/Util/pstdint.h: addad svn attributes
958         * support/regression/tests/constantRange.c,
959           support/regression/tests/rotate.c: include inttypes.h instead
960           stdint.h on solaris, addad svn attributes
961
962 2006-06-18 Raphael Neider <rneider AT web.de>
963
964         * src/SDCCsymt.c (initCSupport): change return type of divschar to
965           int for PIC16
966         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
967           (pic16_genMinusBits): simplified sign-extension
968           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
969             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
970             adjusted to correctly handle mixed-signed operands, disabled
971             now unused multiplciation routines
972         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
973           (assignResultValue): added argument denoting the size of the result
974             as returned by the function (fixes upcasts in assigning from
975             function calls: char foo(); int i = foo();)
976           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
977             function result to assignResultValue
978           (genMult): disabled inlined multiplication code
979           (genDiv): augmented to also handle the modulus operator, fixed to
980             handle mixed-signed operands correctly
981           (genMod): simply call genDiv, disabled unused code
982           (genAssign): fixed missing (sign-)extension on result
983         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
984             valid char operands, allow signed operands for native code, added
985             division and modulo operator handling
986         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
987
988         As a consequence, onebyte.c (if split into two files) and muldiv.c
989         pass regression tests.
990
991 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
992
993         * doc/Makefile.in: two runs of makeindex seem needed to get
994         correct page references in the index of sdccman.pdf
995         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
996
997 2006-06-17 Borut Razem <borut.razem AT siol.net>
998
999         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1000
1001 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1002
1003         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1004         mentioned ec2drv and paulmon
1005
1006 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1007
1008         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1009           consecutive abs areas
1010           (find_empty_space, allocate_space): added map to handle codemap or
1011            xdatamap,
1012           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1013            absolute idata and xdata
1014         * as/mcs51/lkmem.c (summary2): updated legend
1015
1016 2006-06-16 Raphael Neider <rneider AT web.de>
1017
1018         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1019
1020 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1021
1022         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1023           1208515
1024         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1025
1026 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1027
1028         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1029         value of generic pointers,
1030         * src/avr/main.c,
1031           src/ds390/main.c,
1032           src/hc08/main.c,
1033           src/izt/i186.c,
1034           src/izt/tlcs900h.c,
1035           src/mcs51/main.c,
1036           src/pic/main.c,
1037           src/pic16/main.c,
1038           src/xa51/main.c,
1039           src/z80/main.c: PORT structure, added elements for gp_tags field,
1040         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1041         fields in the PORT structure of each port,
1042         * src/SDCCast.c (decorateType): allow processing of generic pointers
1043         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1044         S_FIXED symbols
1045
1046 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1047
1048         * link/z80/lkgb.c,
1049         * link/z80/lkgg.c,
1050         * src/pic16/gen.c,
1051         * src/pic16/main.c,
1052         * src/pic16/pcode.c,
1053         * src/pic/main.c,
1054         * src/pic/pcoderegs.c,
1055         * src/SDCCicode.c,
1056         * src/SDCCmain.c,
1057         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1058           bug 1504689 on minGW
1059
1060 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1061
1062         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1063
1064 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1065
1066         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1067
1068 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1069
1070         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1071           for optimization
1072
1073 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1074
1075         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1076         to a char variable. Fixed bug #1504211
1077         * device/include/pic16/adc.h,
1078         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1079         and fixed bug #1364390
1080
1081 2006-06-10 Borut Razem <borut.razem AT siol.net>
1082
1083         * CVSROOT: removed the CVS left-over
1084
1085 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1086
1087         * as/hc08/asmain.c (asexit),
1088         * as/hc08/lkmain.c (lkexit),
1089         * as/mcs51/asmain.c (asexit),
1090         * as/mcs51/lkmain.c (lkexit),
1091         * src/SDCCglue.c (DEFSETFUNC),
1092         * src/SDCCmain.c (linkEdit, assemble),
1093         * support/librarian/sdcclib.c (AddRel),
1094           replaced unlink() by standard C remove()
1095         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1096         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1097           gatherImplicitVariables): new, added to fix bug 608752,
1098           (createFunction): added gatherImplicitVariables()
1099         * src/SDCCast.h: added createRMW prototype
1100         * src/SDCCsymt.h (struct symbol): added infertype
1101         * support/regression/tests/bug608752.c: new, added
1102
1103 2006-06-10 Raphael Neider <rneider AT web.de>
1104
1105         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1106           multibyte dummy reads (fixes #1503234)
1107
1108 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1109
1110         * device/include/mcs51/compiler.h: new, added header file to enable
1111           creating common sfr definition header files for different compilers
1112
1113 2006-06-05 Raphael Neider <rneider AT web.de>
1114
1115         * src/pic16/{pcode.h,genarith.c}:
1116           introduced pCodeOp combining any two pCodeOps (previously only
1117           two register operands could be combined), removed pcop2 from
1118           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1119         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1120         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1121           rewritten to use new PO_TWO_OPS
1122         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1123         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1124           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1125           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1126           (pic16_get_op): embraced return arg to allow #define return(x),
1127             added new case for combined opcodes
1128           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1129           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1130            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1131
1132 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1133
1134         * src/SDCCval.c (checkConstantRange): added
1135         * src/SDCCval.h: added checkConstantRange
1136         * support/Util/SDCCerr.c,
1137         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1138         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1139         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1140         * src/SDCCast.c (decorateType): added checkConstantRange,
1141         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1142         can be emitted with the correct always true/false warning,
1143         added optimization for double '!';
1144         result of decorateType() must be assigned back to the tree, because
1145         decorateType() can change the tree
1146         * src/SDCCicode.c (geniCodeLogic),
1147         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1148         (checkConstantRange): removed, it was only a fragment which never
1149         emitted a warning
1150         * src/SDCCsymt.c (computeType): fixed promotion for
1151         "-1 < (unsigned bit) b"
1152         * src/pic/ralloc.c (packRegsForAssign),
1153         * src/pic16/ralloc.c (packRegsForAssign),
1154         * src/hc08/ralloc.c (packRegsForAssign),
1155         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1156         from mcs51
1157         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1158         * support/regression/tests/constantRange.c: added
1159         * support/valdiag/tests/constantRange.c: added
1160         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1161
1162 2006-06-02 Borut Razem <borut.razem AT siol.net>
1163
1164         * support/regression/ports/pic16/support.c: increase stack size
1165           to 255 bytes
1166         * support/regression/Makefile.in: sort tests by name so that the
1167           resutlts can be compared on different machines / platforms
1168
1169 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1170
1171         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1172         * src/ds390/gen.c (emitLabel): new, added,
1173           (genDjnz): fixed stack overflow bug,
1174           (throughout): cosmetic changes to sync with mcs51/gen.c,
1175           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1176         * src/mcs51/gen.c (genEndFunction): small optimization,
1177           (throughout): cosmetic changes to sync with ds390/gen.c
1178
1179 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1180
1181         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1182           (_print_format): fixed printing pointers
1183         * src/mcs51/gen.c (emitLabel, movb): new, added,
1184           (genAssign): small optimization,
1185           (genDjnz): fixed stack overflow bug,
1186           (throughout): replaced sprintf with SNPRINTF,
1187           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1188           replaced emitcode("mov", "b,...") with MOVB(...),
1189           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1190           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1191         * src/mcs51/peeph.def: added rules 140 and 264
1192         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1193           so they may get optimized into registers
1194
1195 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1196
1197         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1198           immediately when encountered,
1199           (printUsage): always use stderr even on windows
1200
1201 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1202
1203         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1204         (processParms): fixed bug #1247551
1205         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1206         parseCmdLine, main): print '--version' to stdout,
1207         print 'help' to stdout if --help is given,
1208         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1209         arguments are given; fixed --help
1210
1211 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1212
1213         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1214         * support/regression/tests/bug-1493710.c: added
1215
1216 2006-05-27 Borut Razem <borut.razem AT siol.net>
1217
1218         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1219           static instead auto
1220         * support/regression/ports/pic16/support.c: increase stack size
1221           from default 64 bytes to 128 bytes
1222         * support/regression/tests/staticinit.c,
1223           support/regression/tests/float.c: regression tests fully enabled
1224           for pic16 port by putting the initialized data arrays into the code
1225           section
1226         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1227           This was changed by mistake in the previous version.
1228
1229 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1230
1231         * src/pic16/gen.c (genFunction, genEndFunction): some
1232         beautifications, fixed bug with falsely restoring FSR2 in large
1233         stack model, thanks to Beau E. Cox for reporting the bug
1234
1235 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1236
1237         * debugger/mcs51/break.c,
1238         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1239           use %p to print pointers, made address variables unsigned
1240         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1241         * debugger/mcs51/symtab.c (parseSymbol): must return something
1242         * src/mcs51/gen.c (aopForSym): small optimization,
1243            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1244           (freeAsmop): added missing break,
1245           (aopPut): removed parameter bvolatile, determine it inside the function,
1246           (saveRegisters, unsaveRegisters): small optimization,
1247           (genIpush): removed pointless check,
1248           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1249           replaced sprintf with SNPRINTF,
1250           replaced strcpy with strncpyz,
1251           updated aopPut calls,
1252           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1253         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1254
1255 2006-05-24 Borut Razem <borut.razem AT siol.net>
1256
1257         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1258           modification of test for the pic16 port, put the array to the code
1259           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1260
1261 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1262
1263         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1264         * support/Util/pstdint.h: added
1265
1266 2006-05-22 Borut Razem <borut.razem AT siol.net>
1267
1268         * src/regression/Makefile: removed bool2.c test, added -q linker option
1269         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1270           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1271           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1272           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1273           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1274           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1275           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1276           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1277           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1278
1279 2006-05-22 Raphael Neider <rneider AT web.de>
1280
1281         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1282           bug #1492360 (problematic due to generic pointers, see code)
1283
1284 2006-05-22 Borut Razem <borut.razem AT siol.net>
1285
1286         * support/regression/ports/pic16/specs.mk: removed stack size linker
1287           directive
1288         * support/regression/tests/array.c,
1289           support/regression/tests/bitopcse.c,
1290           support/regression/tests/bug-908454.c,
1291           support/regression/tests/malloc.c: modified for pic16 regression test
1292         * support/regression/tests/bitfields.c:
1293           pic16 - excluded bitfileds of size > 8
1294         * support/regression/tests/bp.c: pic16 - reduced data size
1295         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1296         * support/regression/tests/bug-460010.c:
1297           pic16 - used the absolute address the fits in memory
1298         * support/regression/tests/bug-716242.c:
1299           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1300         * support/regression/tests/float.c:
1301           pic16 - excluded - data size too big
1302         * support/regression/tests/onebyte.c:
1303           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1304         * support/regression/tests/shifts.c:
1305           pic16 - function names probably have to differ in first X characters
1306           (gpasm limitation?)
1307         * support/regression/tests/staticinit.c:
1308           pic16 - excluded some tests due error: no target memory available for
1309           section ".idata"
1310
1311 2006-05-22 Borut Razem <borut.razem AT siol.net>
1312
1313         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1314           second try. Thanks Stas Sergeev once more.
1315
1316 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1317
1318         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1319           (genLeftShift, genRightShift): fixed bug 1491627
1320         * src/hc08/peeph.def (rules 7, 8.x): added
1321         * support/regression/tests/shifts.c (ShiftLeftByParam,
1322           ShiftRightByParam, testShiftByParam): added to test variable shifting
1323
1324 2006-05-20 Raphael Neider <rneider AT web.de>
1325
1326         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1327         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1328           (allocReg): add only new registers to dynAllocRegs,
1329           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1330             #1489055, #1445850, and probably #1483693
1331
1332 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1333
1334         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1335         bug in for-loop that didn't emit the last of CONFIG and ID registers
1336
1337 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1338
1339         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1340           with offset
1341         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1342           1489016, 1434401 and 1490124
1343         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1344           1489016, 1434401 and 1490124
1345
1346 2006-05-17 Borut Razem <borut.razem AT siol.net>
1347
1348         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1349           thanks Stas Sergeev
1350
1351 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1352
1353         * device/include/mcs51/P89c51RD2.h,
1354         * device/include/mcs51/P89LPC901.h,
1355         * device/include/mcs51/P89LPC922.h,
1356         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1357
1358 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1359
1360         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1361         to fix missing stack pragma in compiled binary object file,
1362
1363 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1364
1365         * support/packihx/configure.in,
1366         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1367         determine sizeof basic types even while cross compiling
1368
1369 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1370
1371         * src/avr/gen.c (aopop),
1372         * src/ds390/gen.c (aopOp),
1373         * src/hc08/gen.c (aopOp),
1374         * src/mcs51/gen.c (aopop),
1375         * src/pic16/gen.c (pic16_aopOp),
1376         * src/pic/gen.c (aopOp),
1377         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1378         if size of operand is smaller than spill location
1379
1380 2006-05-12 Borut Razem <borut.razem AT siol.net>
1381
1382         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1383           have to have CR/LF line endings even if they are checked out on *nix
1384           or on WIN32 in cygwin binmode
1385
1386 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1387
1388         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1389         * device/include/ds80c390.h: added sfr16 definitions
1390         * src/ds390/gen.c,
1391         * src/ds390/gen.h,
1392         * src/ds390/main.c,
1393         * src/ds390/ralloc.c,
1394         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1395           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1396           bit returning functions
1397         * support/regression/tests/sfr16.c: enabled test on ds390
1398
1399 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1400
1401         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1402         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1403
1404 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1405
1406         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1407         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1408           (cl_address_space constructor): removed expensive initialization,
1409           (cl_address_space::get_cell): extended for late initialization,
1410           (cl_address_space::*): use late initialization,
1411           (cl_address_decoder::activate): removed expensive initialization,
1412           This reduced regression test running time by 25%
1413
1414 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1415
1416         * packihx/,
1417         * configure.in,
1418         * configure,
1419         * sdcc.dsw,
1420         * Makefile.bcc,
1421         * Makefile.in,
1422         * support/packihx/Makefile.in,
1423         * support/packihx/clean.mk,
1424         * support/packihx/Makefile.bcc,
1425         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1426
1427 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1428
1429         * src/SDCCval.c (valNot): fix for regression test failure
1430           of not.c on big endian hosts
1431
1432 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1433
1434         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1435
1436 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1437
1438         * device/lib/mcs51/Makefile.in: changed string comparison operator
1439           to = for POSIX compliance; == is bash extension
1440
1441 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1442
1443         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1444           kosmonaut_pirx
1445
1446 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1447
1448         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1449         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1450         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1451         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1452         bug report #1478657,
1453
1454 2006-05-05 Borut Razem <borut.razem AT siol.net>
1455
1456         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1457           making the html
1458
1459 2006-05-02 Borut Razem <borut.razem AT siol.net>
1460
1461         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1462           create *.ind, which made make to fail if invoked with -j 2
1463
1464 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1465
1466         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1467           Hubert Sack for patch 1479782
1468
1469 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1470
1471         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1472
1473 2006-05-01 Raphael Neider <rneider AT web.de>
1474
1475         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1476           (create_pic): store only prefix-free device name,
1477           (init_pic): check for device names with "16" prefix,
1478           (list_valid_pics),
1479         * src/pic/device.h (struct PIC_device),
1480         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1481             stored device name,
1482         * device/include/pic/pic12f{635,675,629,683}.h,
1483         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1484         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1485         * device/include/pic/pic16f505.h,
1486         * device/lib/pic/libdev/pic16f505.c: removed
1487         * device/include/pic/pic14devices.txt: added support for pic12f
1488             devices, removed unsupported non 16-bit devices
1489             [above changes provided by patch from Zik Saleeba]
1490         * src/pic/*, src/pic16/*, device/include/pic16/*,
1491           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1492
1493 2006-05-01 Borut Razem <borut.razem AT siol.net>
1494
1495         * configure.in, configure, doc/Makefile.in:
1496           sync with nightly build makefile - latex, dvipdf and dvips
1497           not needed any more
1498
1499 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1500
1501         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1502         in the library source
1503
1504 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1505
1506         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1507
1508 2006-04-28 Raphael Neider <rneider AT web.de>
1509
1510         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1511         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1512           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1513         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1514
1515 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1516
1517         * device/lib/pic/libdev/Makefile.in,
1518         * device/lib/hc08/Makefile.in,
1519         * device/lib/gbz80/Makefile.in,
1520         * device/lib/z80/Makefile.in,
1521         * device/lib/ds390/Makefile.in,
1522         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1523         thanks to Borut for the bug report
1524         * configure.in,
1525         * configure: always create doc/Makefile independent from --enable-doc
1526         * Makefile.in: always install from directory doc independent from
1527         --enable-doc
1528         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1529         removed
1530         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1531         * doc/Makefile.in: install *.txt if present
1532         * device/include/Makefile.in (install): added installation of pic/*.inc
1533         and pic/*.txt files again, they were erroneously removed
1534
1535 2006-04-28 Raphael Neider <rneider AT web.de>
1536
1537         * src/pic/{gen.c,main.h,pcode.c},
1538         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1539             concerning signedness with casts
1540
1541 2006-04-28 Raphael Neider <rneider AT web.de>
1542
1543         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1544             definition of an interrupt handler,
1545         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1546             interrupt handler stuff from picglue() to separate routine,
1547           (picglue): enabled definition of intr handlers in files w/o main()
1548
1549 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1552           compilation with MSVC 2005 Express Edition (VC8)
1553
1554 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1555
1556         * device/lib/Makefile: fixed build of gbz80 lib
1557
1558 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1559
1560         * support/regression/tests/bug-460010.c,
1561         * support/regression/tests/bug-524691.c,
1562         * support/regression/tests/bug-716242.c: removed conditional defines
1563           that are already in testfwk.h
1564
1565 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1566
1567         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1568           (AccAXRsh1): added, shift right by 1,
1569           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1570            AccAXLrl1
1571         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1572
1573 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1574
1575         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1576         remove cast to same type
1577         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1578         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1579         * as/z80/Makefile,
1580         * link/z80/Makefile: removed, they have moved to
1581         Makefile.in files
1582         * configure,
1583         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1584         * install-sh: fix bug #1204398 by setting umask 0022
1585         * device/lib/Makefile: separate build of z80 and gbz80 lib
1586
1587 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1588
1589         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1590         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1591
1592         One basic decision: e.g. src/clean.mk includes further files. In order
1593         to make this work there are two solutions:
1594         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1595           run configure on them. This way they can use
1596           'include $(srcdir)/port-clean.mk'
1597         - always include clean.mk by the Makefile at the same level. To avoid
1598           that `make clean` tries to include and build Makefile.dep the
1599           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1600           implemented, because now even `make uninstall` doesn't create
1601           Makefile.in. clean.mk could be eliminated by pasting it in
1602           Makefile.in.
1603
1604         * debugger/mcs51/Makefile.in: build own objects from library sources
1605         (SLIB, SDCC) in current directory
1606
1607         * configure, configure.in: renamed --disable-device-lib-build in
1608         --disable-device-lib; added --enable-doc, the required tools are
1609         searched by configure; added result message; the toolchain for the
1610         belonging ports are now only built, if the port is enabled.
1611
1612         * support/regression/*: all output is written in directory gen, because
1613         the fwk and ports directories don't livet in the build tree using vpath
1614
1615         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1616         --disable-device-lib, added --enable-doc, added section VPATH
1617
1618         * sim/ucsim/configure.in,
1619         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1620         z80 are enabled by default
1621
1622 2006-04-24 Raphael Neider <rneider AT web.de>
1623
1624         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1625             to config word, "pic14_"-prefixed some extern functions
1626           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1627             config word has been found
1628         * src/pic/device.h: added prototypes
1629         * src/pic/pcode.c: added "pic14_"-prefix where needed
1630         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1631             fixup
1632         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1633             words,
1634           (pic14emitRegularMap): ignore config words,
1635           (pic14createInterruptVect): moved generating __config directives away
1636           (picglue): have __config directives emitted
1637
1638 2006-04-24 Borut Razem <borut.razem AT siol.net>
1639
1640         * doc/Makefile: sync with nightly build makefile
1641
1642 2006-04-24 Raphael Neider <rneider AT web.de>
1643
1644         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1645             registers that have not been assigned proper liveranges,
1646             fixes #1469504 and #1474602,
1647           (pCodeRegOptimizeRegUsage): fixed typo in comment
1648
1649 2006-04-24 Borut Razem <borut.razem AT siol.net>
1650
1651         * device/examples/main8051.c: deleted - it was removed from CVS
1652           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1653           after the transition to Subversion
1654         * src/SDCCalloc.h: deleted - it was removed  from CVS
1655           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1656           after the transition to Subversion
1657         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1658           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1659           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1660           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1661
1662 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1663
1664         * as/asx8051.dsp: added mcs51/strcmpi.h
1665         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1666         * as/hc08/aslink.h: updated lnksect prototype
1667         * as/hc08/asm.h,
1668         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1669         * as/hc08/asmain.c,
1670         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1671           (newdot): handle A_ABS
1672         * as/hc08/asout.c,
1673         * as/mcs51/asout.c (outarea): output address
1674         * as/hc08/lkaomf51.c,
1675         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1676         * as/hc08/m08pst.c,
1677         * as/mcs51/i51pst.c,
1678         * as/z80/z80pst.c: "ABS" is not A_OVR
1679         * as/hc08/lkarea.c (newarea): read a_addr,
1680           (lnkarea): added codemap array, sort absolute areas to the front,
1681            combine all GSINITx/GSFINAL,
1682           (find_empty_space, allocate_space): new functions,
1683           (lnksect): return next address, handle absolute sections
1684         * as/mcs51/lkarea.c (newarea): read a_addr,
1685           lnksect2 prototype changed,
1686           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1687           (find_empty_space, allocate_space): new, factored out of lnksect2,
1688           (lnksect2): return next address, handle absolute sections
1689         * as/hc08/lkhead.c,
1690         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1691         * as/hc08/lklibr.c (addfile, fndsym),
1692         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1693           index out of range and detect both '\' and '/'
1694         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1695         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1696           regression tests (ds390 cannot return bool yet)
1697         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1698           document critical interrupts on z80, document changed SDCC define
1699         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1700           (_a390_mapping): added .org directive
1701         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1702           (genMultOneByte): fixed warnings
1703         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1704           ones
1705         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1706         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1707           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1708         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1709         * src/pic16/main.c: removed newReg prototype
1710         * src/pic16/pcode.c,
1711         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1712           warnings
1713         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1714           ones
1715         * src/pic16/ralloc.c
1716         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1717           to fix warnings
1718         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1719           from short to PIC_OPTYPE
1720         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1721         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1722           optype from short to PIC_OPTYPE
1723         * src/port.h: made int_size unsigned to fix warnings
1724         * src/SDCC.y: fixed warning on MSVC
1725         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1726         * src/SDCCopt.c (convertToFcall): fixed warnings
1727         * src/SDCCsymt.h: removed double prototype for genSymName
1728         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1729           offset int to fix warnings
1730
1731 2006-04-22 Borut Razem <borut.razem AT siol.net>
1732
1733         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1734           references to CVS replaced with Subversion
1735
1736 2006-04-21 Borut Razem <borut.razem AT siol.net>
1737
1738         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1739           references to CVS replaced with Subversion
1740
1741 2006-04-19 Borut Razem <borut.razem AT siol.net>
1742
1743         * src/version.awk: adapted for svn
1744         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1745           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1746           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1747           /binutils-avr/etc/*.vi, *.jin: removed all properties
1748           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1749
1750 2006-04-19 Borut Razem <borut.razem AT siol.net>
1751
1752         * CVS to Subversion migration completed
1753
1754 2006-04-18 Borut Razem <borut.razem AT siol.net>
1755
1756         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1757           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1758
1759 2006-04-17 Borut Razem <borut.razem AT siol.net>
1760
1761         * device/include/Makefile.in: added pic/*.inc to the installation
1762
1763 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1764
1765         * support/regression/collate-results.py: fixed output in case of
1766         a valdiag error
1767         * support/regression/generate-cases.py: fixed splitting of pathnames
1768         with dots
1769         * as/hc08/lklibr.c (addfile),
1770         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1771
1772 2006-04-11 Raphael Neider <rneider AT web.de>
1773
1774         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1775         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1776         * src/pic16/pcode.c (assignValnums): fixed #1460578
1777
1778 2006-04-11 Raphael Neider <rneider AT web.de>
1779
1780         * device/lib/pic/libdev/*.c,
1781         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1782           fixes #1468739, enables compilation in --std-c99 mode
1783         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1784
1785 2006-04-11 Raphael Neider <rneider AT web.de>
1786
1787         * src/pic/device.c (find_device): removed debug output
1788           (list_valid_pics): enabled verbose listing of supported devices
1789         * device/include/stdbool.h: define bool as char for pic14/16 as well
1790
1791 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1792
1793         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1794
1795 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1796
1797         * .version: bumped version to 2.5.6
1798         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1799
1800 2006-04-06 Raphael Neider <rneider AT web.de>
1801
1802         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1803         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1804         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1805           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1806             pic14_constructAbsMap
1807           (pic14printPublics): declare absolute global symbols as global
1808           (pic14createInterruptVect),
1809         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1810           (newReg): assume new registers unused, use correct name in
1811             hashtable (reg->name instead of name), more debugLog output
1812         * src/pic/device.h (PIC_device): added fields for verbose output
1813         * src/pic/device.c: moved device definition to pic14devices.txt,
1814             added routines for runtime parsing of pic14devices.txt,
1815             added support for second config word
1816         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1817           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1818           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1819           (_pic14_parseOptions): moved pCodeInitRegisters here
1820           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1821         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1822           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1823             handling the pseudo stack
1824         * device/lib/Makefile.in: ignore failures in objects-pic16,
1825         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1826         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1827         * device/lib/pic/Makefile.subdir,
1828         * device/lib/pic16/Makefile.subdir: improved clean rules
1829         * device/lib/pic/libdev/: NEW, pic14 device libraries
1830         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1831         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1832         * device/include/Makefile.in: create subdir and install pic14 headers
1833         * device/include/pic/p16f_common.inc: removed unused declarations
1834         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1835             PICs from inc2h.pl v1.6,
1836             replaced BIT_AT macros with struct declarations
1837         * device/include/pic/pic14devices.txt: definition of supported devices,
1838             all above improvements contributed by Zik Saleeba, thanks
1839         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1840         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1841             headers
1842
1843 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1844
1845         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1846         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1847           thanks to Charles Olds
1848
1849 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1850
1851         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1852
1853 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1854
1855         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1856         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1857         * support/regression/bug1464657.c: added, new test
1858
1859 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1860
1861         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1862           version number
1863
1864 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1865
1866         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1867           --no-peep and --peep-file <file> are used don't use default rules but
1868           do use the <file>
1869
1870 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1871
1872         * src/mcs51/gen.c (genCall): fixed bug 1457608
1873
1874 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1875
1876         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1877         changes seem to cause (trigger?) problems with the build system.
1878
1879 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1880
1881         * src/SDCCpeeph.c (operandsLiteral): new, added,
1882           (callFuncByName): inserted operandsLiteral
1883         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1884
1885 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1886
1887         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1888         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1889
1890 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1891
1892         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1893           implemented patch 1120823 Thanks to Willy De la Court (normal
1894           interrupts need an interrupt number now if they are made critical),
1895           and enabled nesting of critical functions though not for gbz80
1896           (genCritical, genEndCritical): added functions
1897           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1898         * src/z80/mappings.i: added "ei" to all mappings
1899
1900 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1901
1902         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1903         submitted by the Debian SDCC maintainer Aurelien Jarno:
1904         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1905         archive with gcc 4.1 on mips and wrote the patch"
1906
1907 2006-03-16 Raphael Neider <rneider AT web.de>
1908
1909         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1910           the left operand is shorter than the result (c* = lit-c* + int),
1911           fixes bug #1450796
1912         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1913           OP_SYMBOL
1914
1915 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1916
1917         * src/.version: increased version number to 2.5.5
1918         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1919         linking is done manually in pic16 port's _linkEdit,
1920         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1921         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1922         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1923         allocate asmop as AOP_ACC,
1924         (aopForRemat): added parameter 'bool result' in function declaration,
1925         (pic16_aopGet): return AOP_ACC when accessing WREG,
1926         (pic16_popGetTempReg): minor modification,
1927         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1928         'pic16_allocWithIdx',
1929         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1930         calling function in absolute addresses,
1931         (genAssign): take into account AOP_ACC asmop,
1932         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1933         * src/pic16/pcoderegs.c: some debug functions and lines added,
1934         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1935         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1936         register too,
1937         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1938         call to allocReg, not by manually allocating a new one,
1939         (pic16_assignRegisters): now before going through the register
1940         allocating functions mark all registers as free. This eliminates some
1941         side effects resulting from peephole parser done earlier in the backbone
1942
1943 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1944
1945         * src/SDCCicode.c (geniCodeLogic),
1946         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1947
1948 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1949
1950         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1951           (genSend): bugfix, do not allocate and free twice,
1952           (shiftRLong): handle partially overlapping aops
1953         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1954
1955 2006-03-08 Borut Razem <borut.razem AT siol.net>
1956
1957         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1958           for pic16
1959
1960 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1961
1962         * support/regression/tests/bug1409955.c: new, added
1963         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1964         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1965           (aopForSym, aopOp): increment asmop.allocated if reused,
1966           (freeAsmop): decrement asmop.allocated and check for zero instead of
1967           using asmop.freed,
1968           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1969           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1970            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1971            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1972            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1973            genSignedRightShift, genRightShift, genDataPointerGet,
1974            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1975            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1976             in reverse order from allocation,
1977           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1978             added swappedLR to keep track
1979         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1980           pdata & code for GCC, z80, gbz80 & hc08
1981         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1982
1983 2006-03-08 Raphael Neider <rneider AT web.de>
1984
1985         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1986
1987 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1988
1989         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1990         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1991         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1992
1993 2006-03-06 Borut Razem <borut.razem AT siol.net>
1994
1995         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1996           made the linker quiet
1997
1998 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1999
2000         * src/pic16/gen.c (genPcall): fixed bug #1443644
2001         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2002         which dumps before the function entry point a data byte which represents
2003         the number of the local variables used by the specified function, added
2004         'xinst' for initial support for Extended Instruction Support,
2005         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2006         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2007         port->fun_prefix anymore (may change later),
2008         (genFunction, genEndFunction): do not store/restore local registers for
2009         _main (this should take care the --main-return command line option in
2010         the future),
2011         (genOr): removed some legacy pic-port instructions,
2012         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2013         performing operations with SFR's causes data to be written more than
2014         once to each SFR. Perhaps SFRs should be handled in special cases...
2015         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2016         pcode.h
2017         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2018         into account for stack starting position,
2019         (struct OPTIONS pic16_optionsTable): added command line argument
2020         --extended or -y for Extended Instruction Support,
2021         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2022         (deassignLRs): *** perhaps the most important change, old 'for' code
2023         (commented out for reference), didn't account for some registers which
2024         were left marked 'not free' after a pointer operation. The change
2025         reduces register usage a lot in some cases
2026
2027 2006-03-04 Borut Razem <borut.razem AT siol.net>
2028
2029         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2030           _clean
2031         * support/regression/tests/bug-524697.c: decreased array size for
2032           mcs51 to fit into the internal RAM
2033         * support/regression/Makefile.in: a little bit more verbose
2034
2035 2006-03-03 Borut Razem <borut.razem AT siol.net>
2036
2037         * support/regression/fwk/lib/testfwk.c,
2038           support/regression/fwk/include/testfwk.h: introduced function
2039           _prints(), nonrecursive _printn(), call _initEmu() from main()
2040         * support/regression/ports/gbz80/support.asm,
2041           support/regression/ports/ucz80/support.asm,
2042           support/regression/ports/z80/support.asm,
2043           support/regression/ports/ds390/support.c,
2044           support/regression/ports/hc08/support.c,
2045           support/regression/ports/host/support.c,
2046           support/regression/ports/mcs51/support.c,
2047           support/regression/ports/xa51/support.c: added empty _initEmu()
2048           function
2049         * support/regression/ports/pic16/gpsim.cmd,
2050           support/regression/ports/pic16/spec.mk,
2051           support/regression/ports/pic16/support.c,
2052           support/regression/Makefile.in: added pic16 regression test
2053
2054 2006-03-01 Raphael Neider <rneider AT web.de>
2055
2056         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2057           genConstPointerGet): use safe way of generating MOVFF to cover
2058             literals as well as registers, fixes bug #1440527
2059         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2060             dereference
2061           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2062             more correctly, fixes bug #1232186
2063           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2064         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2065             gplink guess the correct processor in more cases, applied patch
2066             from Till Riedel attached to and fixing bug #1436552
2067
2068 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2069
2070         * support/regression/tests/array.c: added, contains check for #1434401
2071         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2072
2073 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2074
2075         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2076         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2077         * device/include/mcs51/c8051f326.h,
2078         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2079         * device/include/mcs51/c8051f000.h,
2080         * device/include/mcs51/c8051f018.h,
2081         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2082           PCON_IDLE,PCON_STOP and added sfr16 definitions
2083
2084 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2085
2086         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2087           genGetWord): fixed bug 1409955
2088
2089 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2090
2091         * device/include/hc08/mc68hc908gp32.h,
2092         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2093
2094 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2095
2096         * src/SDCCast.c (constExprValue): return NULL if not a value
2097         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2098         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2099         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2100
2101 2006-02-13 Borut Razem <borut.razem AT siol.net>
2102
2103         * src/regression/ptrarg.c: added, fails due to bug #1430967
2104         * src/regression/Makefile: ptrarg.c added, ...
2105
2106 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2107
2108         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2109         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2110
2111 2006-02-11 Borut Razem <borut.razem AT siol.net>
2112
2113         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2114           print "Processor: xxx" message to stdout only if --verbose
2115
2116 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2117
2118         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2119         * support/regression/tests/bug1426356.c: added
2120         * support/regression/tests/bitfields.c: removed 2 tests
2121
2122 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2123
2124         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2125         * device/include/mcs51/c8051f330.h,
2126         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2127           PCON_IDLE,PCON_STOP and added sfr16 definitions
2128         * device/lib/_divsint.c,
2129         * device/lib/_divuint.c,
2130         * device/lib/_divulong.c,
2131         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2132           register bank bug for small stackauto
2133
2134 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2135
2136         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2137
2138 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2139
2140         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2141         * all.dsp: corrected several bin paths
2142         * device/include/mcs51/c8051f120.h,
2143         * device/include/mcs51/c8051f300.h,
2144         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2145           to PCON_IDLE,PCON_STOP
2146         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2147         * device/lib/printf_large.c (output_float): fixed bug 1388703
2148         * support/regression/tests/bug1057979.c: added test for bug 1388703
2149
2150 2006-02-08 Raphael Neider <rneider AT web.de>
2151
2152         * src/pic/pcode.c (pciTRIS): fixed typo,
2153           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2154           (LinkFlow): fixed handling of flows that end in a call,
2155           (ReuseReg): perform safety check earlier
2156         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2157             to work with flows at the beginning of a pBlock,
2158             fixes #1426557 (Symbol not previously defined),
2159           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2160             usage information
2161           (RemoveUnusedRegisters): update register usage info
2162         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2163             created, reuse existing ones instead
2164         * src/pic/gen.c (genPcall): fixed #1424719
2165
2166 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2167
2168         * link/z80/lkmain.c,
2169         * link/z80/lklex.c,
2170         * link/z80/lkdata.c,
2171         * link/z80/aslink.h: fixed build on current cygwin:
2172         replaced getline() by lk_getline()
2173
2174 2006-02-01 Borut Razem <borut.razem AT siol.net>
2175
2176         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2177           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2178           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2179           src/regression/bool1.c, src/regression/bool2.c,
2180           src/regression/bool3.c, src/regression/call1.c,
2181           src/regression/compare.c, src/regression/compare10.c,
2182           src/regression/compare2.c, src/regression/compare3.c,
2183           src/regression/compare4.c, src/regression/compare5.c,
2184           src/regression/compare6.c, src/regression/compare7.c,
2185           src/regression/compare8.c, src/regression/compare9.c,
2186           src/regression/configword.c, src/regression/for.c,
2187           src/regression/inline.c, src/regression/mult1.c,
2188           src/regression/nestfor.c, src/regression/or1.c,
2189           src/regression/pointer1.c, src/regression/ptrfunc.c,
2190           src/regression/rotate1.c, src/regression/rotate2.c,
2191           src/regression/rotate3.c, src/regression/rotate4.c,
2192           src/regression/rotate5.c, src/regression/rotate6.c,
2193           src/regression/rotate7.c, src/regression/string1.c,
2194           src/regression/struct1.c, src/regression/sub.c,
2195           src/regression/sub2.c, src/regression/switch1.c,
2196           src/regression/while.c, src/regression/xor.c,
2197           src/regression/create_stc, src/regression/simulate,
2198           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2199           regression tests
2200         * src/regression/gpsim_assert.h: added
2201
2202 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2203
2204         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2205         ((void (code *) (void)) 0) ();
2206         * as/hc08/aslex.c,
2207         * as/hc08/aslink.h,
2208         * as/hc08/asm.h,
2209         * as/hc08/asmain.c,
2210         * as/hc08/lkdata.c,
2211         * as/hc08/lklex.c,
2212         * as/hc08/lkmain.c,
2213         * as/mcs51/aslex.c,
2214         * as/mcs51/aslink.h,
2215         * as/mcs51/asm.h,
2216         * as/mcs51/asmain.c,
2217         * as/mcs51/lkdata.c,
2218         * as/mcs51/lklex.c,
2219         * as/mcs51/lkmain.c,
2220         * as/z80/aslex.c,
2221         * as/z80/asm.h,
2222         * as/z80/asmain.c: fixed build on current cygwin:
2223         replaced getline() by as_getline()
2224
2225 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2226
2227         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2228         declarator in the symbol chain
2229         * src/SDCCsymt.h,
2230         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2231         parameter list for function pointers
2232         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2233         * support/regression/tests/bug-716242.c: added
2234
2235 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2236
2237         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2238         offset if possible
2239         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2240
2241 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2242
2243         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2244         inifinitely recurseable, added static
2245         * support/regression/tests/bug-1408066.c: added
2246
2247 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2248
2249         * src/SDCCicode.h,
2250         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2251         renamed, added possibility to create "postLoopLbl"-labels
2252         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2253         newiTempLoopHeaderLabel
2254         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2255         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2256         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2257         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2258         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2259         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2260         (basicInduction): fixed bug #136564, made static,
2261         (loopInduction): changed parameter of basicInduction, made static,
2262         (addPostLoopBlock): added
2263         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2264         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2265         findLoopEndSeq
2266         * support/regression/tests/bug-136564.c: added
2267         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2268         --std-sdcc99 to LIBSDCCFLAGS
2269
2270 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2271
2272         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2273         while loop
2274         * support/regression/tests/bug-1406131.c: added
2275
2276 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2277
2278         * src/SDCCast.c (decorateType): fix promotion of unary minus
2279         * src/SDCCsymt.c (computeType): beautified
2280         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2281         (valUnaryPM, valComplement): fix sign and promotion,
2282         (valNot): ANSI: result type is int (SDCC: unsigned char)
2283         * support/regression/tests/uminus.c: speedup by removing superflous
2284         test case 'int'
2285         * support/regression/tests/onebyte.c: added promotion and signedness
2286         tests for unary minus
2287         * support/regressions/tests/bug-477927.c: disable warning about
2288         uninitialized variables
2289         * support/regression/tests/not.c: added
2290
2291 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2292
2293         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2294         * src/mcs51/gen.c (gen51Code): show final register usage after
2295         fillGaps in asm with --i-code-in-asm
2296         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2297         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2298         incUsed, rliveClear, adjustIChain): made static,
2299         (setFromRange): excluded because it's unused,
2300         (findPrevUseSym, markWholeLoop): added,
2301         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2302         through all branches of predecessors enables sdcc to emit the warning
2303         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2304         (rlivePoint): made static, added parameter emitWarnings which is only
2305         true during the first run out of two,
2306         (findRecursiveSucc, findRecursivePred): removed,
2307         (computeLiveRanges): made static, added parameter emitWarnings,
2308         (dumpIcRlive): added for debugging only
2309         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2310         removed prototype of setFromRange()
2311         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2312         in call of computeLiveRanges()
2313         * support/regression/tests/bug-895992.c: added
2314         * support/regression/tests/bug-971834.c: added
2315         * support/valdiag/tests/bug-895992.c: added
2316         * support/valdiag/tests/bug-971834.c: added
2317
2318 2005-12-18 Raphael Neider <rneider AT web.de>
2319
2320         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2321           (genUnpackBits): improved code for direct operands,
2322           (genPackBits): improved code for literal assignment to bitfields
2323             and for direct destination operands (no FSR indirection),
2324             prevented redundant AND, fixes #1362800,
2325           (AccLsh): added parameter to disable masking of the result
2326         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2327           skip instructions with side-effects (like incfsz),
2328           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2329         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2330         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2331           fixes #1375263
2332
2333 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2334
2335         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2336         volatile variables as spill location
2337
2338 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2339
2340         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2341         replacing literals
2342         * support/regression/tests/bug-1376320.c: added
2343
2344 2005-12-08 Raphael Neider <rneider AT web.de>
2345
2346         * src/pic/device.c: renamed is_shared to pic14_is_shared
2347         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2348         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2349           (is_valid_identifier): added for above workaround
2350
2351 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2352
2353         * device/lib/Makefile.in: fixed to enable port-specific-objects
2354         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2355           char, thanks Hubert Sack
2356         * doc/sdccman.lyx: documented --xstack-loc,
2357           elaborated a bit more on interrupts and pitfalls,
2358           removed "setjmp/longjmp unsupported",
2359           documented some unsupported C99 features
2360         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2361         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2362           if, thanks Hubert Sack
2363         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2364         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2365           make make_library
2366         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2367           regression tests can report resource usage (rfe 700441)
2368         * support/regression/collate-results.py: report resource usage
2369         * support/regression/ports/ds390/spec.mk,
2370         * support/regression/ports/hc08/spec.mk,
2371         * support/regression/ports/mcs51/spec.mk,
2372         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2373         * support/regression/ports/ds390/uCsim.cmd,
2374         * support/regression/ports/hc08/uCsim.cmd,
2375         * support/regression/ports/mcs51/uCsim.cmd,
2376         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2377         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2378           library, use the default one
2379         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2380           building the library
2381
2382 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2383
2384         * config.dsp: added dependency on .version and configure_vc.awk
2385         * device/include/setjmp.h: updated for --stack-auto and --xstack
2386         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2387         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2388         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2389         * device/lib/libsdcc.lib: added _setjmp
2390         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2391           (decorateType): fixed bug 1372851,
2392           (optimizeGetHbit): fixed warning
2393         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2394           array initialisation
2395         * support/regression/tests/bug1057979.c: added test for bug 1358192
2396         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2397
2398 2005-12-03 Borut Razem <borut.razem AT siol.net>
2399
2400         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2401           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2402
2403 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2404
2405         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2406         createIval): implement symbol independant "flexible array member",
2407         (createIvalCharPtr): implemented flexible array initialisation with a
2408         string
2409         * src/SDCCsymt.c (copyStruct): removed,
2410         (getSize): fixed misleading comment,
2411         (getAllocSize): removed, the additional allocation size is now in
2412         sym->flexArrayLength,
2413         (checkStructFlexArray): new, syntax checks for flexible array members,
2414         (compStructSize): added syntax checks for "flexible array members"
2415         (copyStruct): removed,
2416         (copyLinkChain): removed inefficient fix for bug 770487
2417         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2418         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2419         symbol->flexArrayLength
2420         * src/SDCCerr.c,
2421         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2422         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2423         * support/regression/tests/structflexarray.c: added
2424         * support/valdiag/tests/structflexiblearray.c: added
2425
2426 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2427
2428         * src/SDCCast.c (decorateType): fixed bug 1368489
2429         * support/Util/SDCCerr.c,
2430         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2431
2432 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2433
2434         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2435           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2436
2437 2005-11-27 Borut Razem <borut.razem AT siol.net>
2438
2439         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2440           support/cpp2/mkdeps.h: added command line option
2441           -obj-ext=<extension> to SDCPP to define object file externion, used
2442           for generation of make dependencies (-M)
2443         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2444
2445 2005-11-26 Borut Razem <borut.razem AT siol.net>
2446
2447         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2448           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2449           added pic and pic16 libraries
2450
2451 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2452
2453         * device/include/float.h: Corrected typo in prototype of __fsgt
2454
2455 2005-11-25 Borut Razem <borut.razem AT siol.net>
2456
2457         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2458           added creation of model-mcs51-stack-auto libraries
2459
2460 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2461
2462         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2463         and fields-list too
2464         * src/SDCCast.c (createIvalArray): removed obsolete comment
2465
2466 2005-11-24 Borut Razem <borut.razem AT siol.net>
2467
2468         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2469           added missing device/lib/mcs51/crt*.asm sources
2470
2471 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2472
2473         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2474
2475 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2476
2477         * device/lib/_fs2schar.c,
2478         * device/lib/_fs2sint.c,
2479         * device/lib/_fs2slong.c: optimized inline asm
2480
2481 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2482
2483         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2484           Better handling of floats between -1.0 and 0.0.
2485
2486 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2487
2488         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2489           (the missing "if"s prohibited removal of redundant labels)
2490
2491 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2492
2493         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2494           Properly convert floats between -1.0 and 0.0 to long, int, and char
2495           types (max integer value of negative floats tends to zero).
2496         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2497           Removed changes made so to work properly with floats between
2498           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2499           and _fs2char.c
2500
2501 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2502
2503         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2504         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2505         (genCast) cosmetic change
2506         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2507         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2508         from mcs51
2509         * support/regression/tests/bitfields (testSignedBitfields): added
2510
2511 2005-11-18 Borut Razem <borut.razem AT siol.net>
2512
2513         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2514         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2515           introduced SILENT option to make building of pic16 libraries less
2516
2517 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2518
2519         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2520           Now they work properly with floats between -1.0 and 0.0
2521         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2522
2523 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2524
2525         * src/SDCCicode.c (printOperand): added missing else
2526
2527 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2528
2529         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2530         reformatted for better readability
2531         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2532         signed bitfields
2533
2534 2005-11-17 Borut Razem <borut.razem AT siol.net>
2535
2536         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2537           introduced SILENT option to make building of pic16 libraries less
2538           verbose - used for nightly snapshot build
2539         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2540           available on Win32 platforms.
2541         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2542           medium, large, pic and pic16
2543
2544 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2545
2546         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2547           printf("%f"...) sets fraction to zero.
2548
2549 2005-11-16 Raphael Neider <rneider AT web.de>
2550
2551         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2552           fixes #1357221
2553         * src/pic/gen.c (genIfx): implemented for CARRY bit
2554         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2555           to generic pointers, fixes #1357332,
2556           (pic16_movLit2f): NEW,
2557           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2558
2559 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2560
2561         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2562
2563 2005-11-11 Raphael Neider <rneider AT web.de>
2564
2565         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2566         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2567           compute pointer's type from operand,
2568           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2569           improved single bit reads, fixes bug #1353379
2570
2571 2005-11-09 Borut Razem <borut.razem AT siol.net>
2572
2573         * support/scripts/sdcc.nsi: added lib/pic to the package
2574
2575 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2576
2577         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2578
2579 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2580
2581         * support/regression/tests/bug1348008.c: added
2582         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2583         * support/regression/tests/bug1337835.c: updated comment
2584
2585 2005-11-06 Borut Razem <borut.razem AT siol.net>
2586
2587         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2588           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2589           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2590           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2591           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2592           dynamic construction of cl_error_class and derivates - 2.nd try
2593
2594 2005-11-05 Borut Razem <borut.razem AT siol.net>
2595
2596         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2597           bug, which caused Bus Errors on sparc solaris
2598
2599 2005-11-04 Borut Razem <borut.razem AT siol.net>
2600
2601         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2602           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2603           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2604           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2605           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2606           and derivates to resolve the initialization problem on OSX
2607
2608 2005-11-02 Borut Razem <borut.razem AT siol.net>
2609
2610         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2611           corrected typo - #include <winsock2.h>
2612
2613 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2614
2615         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2616           (_asxxxx_mapping): added org directive for future enhancements
2617
2618 2005-11-01 Borut Razem <borut.razem AT siol.net>
2619
2620         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2621           enabled sockets on WIN32
2622         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2623
2624 2005-10-31 Borut Razem <borut.razem AT siol.net>
2625
2626         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2627           WIN32 backslash path delimiters should be escaped when used in C strings
2628         * support/regression/tests/bitfields.c: exclude failing assertions for
2629           __CYGWIN32__ and __MINGW32__ hosts
2630
2631 2005-10-30 Borut Razem <borut.razem AT siol.net>
2632
2633         * src/SDCCutil.c: corrected double comparison typo
2634
2635 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2636
2637         * device/lib/medium/Makefile: added for new memory model medium
2638         * device/include/asm/mcs51/features.h: updated for medium/pdata
2639         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2640           added Multiply & Accumulate sbit's and MAC0_PAGE define
2641         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2642         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2643         * device/lib/_mullong.c: update for medium model
2644         * device/lib/incl.mk: added medium model
2645         * doc/sdccman.lyx: documented medium model
2646         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2647         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2648         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2649         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2650           (allocParms): set SCLS and OCLS to pdata for medium model
2651         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2652           for pdata,
2653           (powof2): return <0 if not power of 2
2654         * src/avr/gen.c (genBitWise): use updated powof2
2655         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2656           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2657           (shiftLLeftOrResult): use B if necessary
2658         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2659         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2660         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2661         * support/regression/Makefile.in: added test-mcs51-medium
2662         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2663
2664 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2665
2666         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2667         specifier unsigned
2668         * device/lib/time.c (mktime): fixed bug 1334315
2669
2670 2005-10-28 Raphael Neider <rneider AT web.de>
2671
2672         * device/include/pic/p16f_common.inc: added common declarations
2673         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2674
2675 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2676
2677         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2678           (aopPutUsesAcc): added to predict accumulator use,
2679           (assignResultValue): save acc if necessary,
2680           (genMinusDec): store result if indirectly addressed,
2681           (genDivOneByte):  save acc if necessary,
2682           (movLeft2Result): bugfix if left already in acc,
2683           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2684             attention to accumulator use (esp. pdata),
2685           (genReceive): receive pdata correctly
2686         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2687         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2688
2689 2005-10-27 Raphael Neider <rneider AT web.de>
2690
2691         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2692
2693 2005-10-27 Raphael Neider <rneider AT web.de>
2694
2695         * .version: changed version to 2.5.4
2696         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2697         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2698           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2699             arithmetics support routines
2700         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2701         * device/lib/Makefile.in: also create installdir for pic
2702
2703         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2704           pic14 port as well
2705         * src/pic/device.c (dump_sfr): rewritten to delegate register
2706           placement to the linker (use `extern sym' rather than sym EQU addr),
2707           (validAddress): fixed to check last specified address
2708         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2709           (popGetLit): truncate literal value to 8 bit,
2710           (popGet): moved assert to more appropriate place
2711           (popGetExternal): create pCode operand from and mark the according
2712             symbol as being `extern'
2713           (popGetAddr): added sanity check on immediate's offset, provide
2714             GPOINTER tag on demand
2715           (aopPut): fixed for immediates,
2716           (mov2w_op): move operand's address or contents to WREG (depending on
2717             operand type), safer variant of mov2w,
2718           (movwf,call_libraryfunc): NEW, handy abbreviations,
2719           (get_argument_pcop,get_return_val_pcop,pass_argument,
2720           get_returnvalue): interface for accessing function parameters and
2721             return values,
2722           (assignResultValuei,genRet): use new parameter/return value interface
2723           (pic14_getDataSize): back to old version handling generic pointers,
2724           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2725             provided implementation and/or fixed old one,
2726           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2727             calls, removed legacy 8051 reference code
2728           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2729           (loadSignToC): NEW, move the operands sign bit to CARRY,
2730           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2731             genRightShiftSigned, accepts negative shift counts,
2732           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2733           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2734             generic pointers, __data pointers and __code pointers,
2735           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2736             and signed bitfields, limit bitfields to 8 bit,
2737           (genDataPointerGet): fixed number of bytes read,
2738           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2739           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2740             pointers to constant data are no longer assumed to point to __code
2741             space, removed invalid pointer types,
2742           (bitpatternFromVal): retrieve the PICs representation of an integer
2743             or float literal,
2744           (genDataPointerSet): fixed assigning to po_immediate operands,
2745           (genGenPointerSet): implemented as library call,
2746           (genIfx): fixed incorrect condition,
2747           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2748             provide GPOINTER tag according to destination's storage class,
2749           (genCast): added code to handle casting to generic pointers, added
2750             sign-/zero extension of the result
2751           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2752         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2753         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2754           extend the result
2755         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2756           address/register resides in the shared banks
2757           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2758             put all variables into separate sections (have the linker arrange
2759             them)
2760           (picglue): put init code and interrupt handlers in separate sections
2761         * src/pic/main.c: added port specific options table, modified to PORT
2762           structure to make GPOINTERs 3 byte, added pic14_options
2763           (_pic14_do_link): private linking routine (update paths to libraries,
2764             add libsdcc.lib by default)
2765         * src/pic/main.h: declare pic14_options
2766         * src/pic/pcode.c: fixed instructions i/o relations,
2767           (RegCond): reverted to correct version,
2768           (newpCodeOpLit): truncate literals to 8 bit,
2769           (genericPrint): added debug output,
2770           (getRegFromInstruction): fixed for various operand types, simplified
2771           (BuildFlow): fixed broken handling of isntructions with labels
2772           (LinkFlow): start at last instruction in flow (skip trailing comments),
2773             pass the flow on to the next instruction after CALL
2774           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2775           (insertPCodeInstruction): fixed inserting after a skip instruction,
2776           (DoBankSelect): fixed for labeled instructions
2777           (OptimizepBlock): honor --nopeep switch
2778           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2779         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2780         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2781           (pCodeOptime2pCodes): allow disabling this optimization via
2782             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2783             but is still buggy), started implementation of a dataflow based
2784             pCode optimization (CSE + dead code elimination)
2785           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2786         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2787           names are independant of the stack location and therefore portable across
2788           devices
2789
2790 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2791
2792         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2793           (selectSpil): fixed bug 1337835 by not spilling bit variables
2794         * support/regression/tests/bug1337835.c: added test for this bug
2795         * src/mcs51/peeph.def: restart after rule 3.c,
2796           addded rules 263.x to optimize loading constants
2797
2798 2005-10-26 Raphael Neider <rneider AT web.de>
2799
2800         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2801         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2802           (genAssign): emit warning when casting literals to generic pointer
2803             type, also applies when taking the address of a fixed variable,
2804           (genCast): improved casting to generic pointers
2805         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2806           extern variables, added verbose error message
2807         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2808
2809 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2810
2811         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2812         carry must be complemented too
2813         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2814         could be emitted by genMinus
2815         * src/SDCCval.c (constVal): fixed bug 1305065
2816
2817 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2818
2819         * src/SDCCast.c (addCast): added promotion for bit variables
2820         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2821         promotion casts + optimisation
2822         (optimizeGetWord): fix warning 'i' might be used uninitialized
2823         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2824         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2825
2826 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2827
2828         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2829         all chars are promoted to int; promotion should be handled in SDCCast.c
2830
2831 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2832
2833         * device/lib/_strcmp.c: Fixed bug 1326457
2834
2835 2005-10-11 Raphael Neider <rneider AT web.de>
2836
2837         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2838         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2839
2840 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2841
2842         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2843         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2844
2845 2005-10-04 Raphael Neider <rneider AT web.de>
2846
2847         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2848           device/lib/pic16/pics.all: added pic18f1320
2849         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2850
2851 2005-09-30 Raphael Neider <rneider AT web.de>
2852
2853         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2854         * src/pic16/devices.inc: NEW, provides device descriptions
2855         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2856
2857 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2858
2859         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2860           GETHBIT
2861
2862 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2863
2864         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2865           documented Any Order Bit, Higher Order Byte and Higher Order Word
2866         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2867         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2868           (optimizeGetAbit): new, to get any bit, not only the high bit,
2869           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2870           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2871           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2872           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2873             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2874             GETABIT, GETBYTE, GETWORD: decorate them,
2875           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2876           (ast_print): added GETABIT, GETBYTE, GETWORD
2877         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2878         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2879           (geniCodeBinary): new generic binary icode,
2880           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2881         * src/port.h: updated comment for PORT.hasExtBitOp
2882         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2883           (genGetByte): new, to get a single byte,
2884           (genGetWord): new, to get a word from a long,
2885           (gen51Code): added GETABIT, GETBYTE, GETWORD
2886         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2887
2888 2005-09-23 Raphael Neider <rneider AT web.de>
2889
2890         * configure.in, configure: have device/lib/pic configured
2891         * device/lib/Makefile.in: added model-pic14
2892         * device/lib/clean.mk: added pic/ to clean rule
2893         * device/lib/pic: added rudimentary pic14 library providing support
2894           functions for multiplication/division/generic pointer access
2895         * src/SDCCopt.c (convilong): mark support functions as extern
2896           for pic14 port as well
2897         * src/pic/gen.c (genMult): added assertions,
2898           (genpic14Code): emit warning on unhandled iCodes
2899         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2900         * src/pic/pcode.c (pCodeOpCopy),
2901         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2902           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2903           SFR_REGISTER}), made safe for future extensions
2904         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2905           instructions even if preceeded by SKIP instructions (also remove
2906           them); removed unused code
2907         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2908           prevents leaving parts of the structure uninitialized after copying
2909
2910 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2911
2912         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2913           ago by me
2914         * support/regression/tests/addsub.c: added test for the bug
2915
2916 2005-09-21 Raphael Neider <rneider AT web.de>
2917
2918         * device/include/pic16/pic18f1220.h,
2919           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2920         * device/lib/pic16/Makefile.rules: added missing opening paren
2921         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2922           are provided in genutils.c,
2923           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2924           operand/result sizes,
2925           (genCmp): assert on NULL pointers first, then check deref'ed values
2926         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2927           result size
2928
2929 2005-09-18 Raphael Neider <rneider AT web.de>
2930
2931         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2932           as these are now unused,
2933           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2934         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2935           local, avoids uninitialized pointer dereference on r->name
2936         * src/pic16/ralloc.c (newReg): fixed indentation
2937
2938 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2939
2940         * src/SDCCval.c (constVal): fixed bug 730366
2941         * support/Util/SDCCerr.c,
2942         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2943
2944 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2945
2946         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2947
2948 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2949
2950         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2951
2952 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2953
2954         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2955           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2956         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2957           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2958         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2959         * packihx/packihx.c (hexDigit): made c unsigned char
2960         * as/mcs51/lklibr.c (fndsym),
2961         * link/z80/lkgb.c (gb),
2962         * link/z80/lklibr.c (fndsym),
2963         * link/z80/lkrloc.c (relr),
2964         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2965         * src/SDCC.lex (checkCurrFile, process_pragma),
2966         * src/SDCCglue.c (spacesToUnderscores),
2967         * src/SDCCmain.c (setParseWithComma, processFile),
2968         * src/asm.c (tvsprintf, printCLine),
2969         * src/avr/gen.c (emitcode, aopPut),
2970         * src/ds390/gen.c (emitcode),
2971         * src/hc08/gen.c (emitcode, emitinline),
2972         * src/mcs51/gen.c (emitcode, genInline),
2973         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2974           tokenizeLineNode),
2975         * src/pic/ralloc.c (debugLog),
2976         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2977           tokenizeLineNode),
2978         * src/pic16/ralloc.c (debugLog),
2979         * src/z80/main.c (_process_pragma):
2980            made all ctype.h function calls safe
2981         * src/SDCCopt.c: include math.h for fabs
2982         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2983           and used them throughout the code to make ctype.h function calls safe
2984         * src/ds390/main.c (asmLineNodeFromLineNode),
2985         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2986         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2987            unsigned char*
2988         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2989           (newpCodeAsmDir): made ctype.h function calls safe
2990         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2991           pic16_emitcode):  made lbp unsigned char*
2992         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2993           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2994         * src/xa51/gen.c (emitcode),
2995         * src/z80/gen.c (_emit2): made lbp unsigned char*
2996         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2997            char*
2998
2999 2005-09-05 Raphael Neider <rneider AT web.de>
3000
3001         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3002           access bank splitpoint
3003
3004 2005-09-05 Raphael Neider <rneider AT web.de>
3005
3006         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3007
3008 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3009
3010         * .version: changed to version 2.5.3
3011         * doc/sdccman.lyx: changed version to 2.5.3,
3012           documented --codeseg and --constseg and pragma codeseg and constseg,
3013           documented bit parameters (reentrant) and bit returning
3014         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3015            currFunc->recvSize, but is this ok for all ports?
3016           (ast2iCode): result of ~ on unsigned char must be cast to int for
3017            bool to work
3018         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3019           function pointers in bit space
3020         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3021           (processFuncArgs): call port.reg_parm() with reentrancy info
3022         * src/port.h,
3023         * src/avr/main.c,
3024         * src/ds390/main.c,
3025         * src/hc08/main.c,
3026         * src/pic/main.c,
3027         * src/pic16/main.c,
3028         * src/xa51/main.c,
3029         * src/z80/main.c: port.reg_parm prototype extended with
3030           "bool reentrant" parameter
3031         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3032           options.stackAuto for allocating bit register parameters
3033         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3034           (genSend): set BitBankUsed if it is,
3035           (selectRegBank): factored out of genCall for use in genPcall,
3036           (genCall): removed redundant dtype assignmen, use selectRegBank,
3037           (genPcall): handle returning in Carry properly, save in F0 if needed,
3038           (genReceive): handle bit register parameters
3039         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3040           (mcs51_assignRegisters): enable bit registers for all reentrant
3041            functions and don't set BitBankUsed unconditionally
3042         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3043         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3044         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3045
3046 2005-08-27 Borut Razem <borut.razem AT siol.net>
3047
3048         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3049         ppc-osx (Darwin) does not support -u option. It seems that it is
3050         supported only on Linux - GNU cp
3051
3052 2005-08-25 Borut Razem <borut.razem AT siol.net>
3053
3054         * sim/ucsim/gui.src/serio.src/Makefile.in,
3055           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3056           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3057           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3058           install and strip, since the strip at /usr/ccs/bin should be used
3059           on solaris
3060
3061 2005-08-24 Borut Razem <borut.razem AT siol.net>
3062
3063         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3064
3065 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3066
3067         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3068         ffffffffu
3069
3070 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3071
3072         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3073         * as/mcs51/lkmain.c (link_main): fixed warning
3074         * device/include/stdbool.h: ds390 has no advanced bit support yet
3075         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3076         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3077         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3078           and updated their macros
3079         * src/SDCCval.c (constVal): updated comment for renamed b_long
3080
3081 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3082
3083         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3084         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3085           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3086           (oprio): set priority for '['
3087         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3088            and adb_24_bit
3089         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3090         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3091         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3092         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3093           added overlayable BIT_BANK area
3094         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3095           (summary2): explain 'T' in legenda
3096         * as/mcs51/lkrloc.c: replaced old K&R style,
3097           (relr): added R_BIT processing,
3098           (errmsg): added "Bit-addressable relocation error",
3099           (adb_bit): added for converting from byte- to bit-addressable space,
3100           (adb_24_bit): added for converting from byte- to bit-addressable space
3101         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3102            used in reentrant functions now even as return value
3103         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3104         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3105           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3106         * src/SDCCglobl.h: added indicator BitBankUsed
3107         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3108            the bit registers b0-b7
3109         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3110           (geniCodeCast): fixed bug 1263853,
3111           (geniCodeLogicAndOr): put result in bool or char,
3112           (geniCodeReceive): added parameter func for accessing the return type,
3113           (geniCodeFunctionBody): pass func to geniCodeReceive
3114         * src/SDCCmain.c: added indicator BitBankUsed
3115         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3116         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3117           (checkSClass): don't put automatic bool/bit on stack,
3118           (checkFunction): removed check on function cannot return bit
3119         * src/SDCCsymt.h: added newBoolLink prototype
3120         * src/mcs51/gen.c (rb1regs): added bit registers,
3121           (movc): created for assigning to carry,
3122           (pushReg, popReg): created for pushing registers,
3123           (sameRegs): check both AOP_REG and AOP_CRY types,
3124           (aopOp): handle bit registers,
3125           (aopPut): optimization no self-assign,
3126           (saveRegisters): push reg->base (bits) only once for bit registers,
3127            and use pushReg,
3128           (unsaveRegisters): pop reg->base only once and use popReg,
3129           (assignResultValue): added parameter func and return in carry for bits,
3130           (genIpush): optimization no reload in A if not changed,
3131           (genSend): bit parameters in reentrant functions are passed in bit
3132            registers by first assigning to bits in B, then save registers and
3133            copy B to bits,
3134           (genCall): handle returning in Carry properly, save it in F0 if needed,
3135           (genPcall): updated assignResultValue call, this is not safe yet for bit
3136            returning function !!!
3137           (genFunction): don't generate equ's for bit registers and use pushReg,
3138           (genEndFunction): take care of bit returning functions and use popReg,
3139           (genRet): return bit in Carry,
3140           (genIfx): optimize bit registers and other directly addressable bits,
3141           (genReceive): updated assignResultValue call
3142         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3143           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3144            registers when using stack-auto
3145         * src/mcs51/ralloc.c (_G): added allBitregs,
3146           (regs8051): added the bit registers,
3147           (createStackSpil): use macro IS_BIT,
3148           (getRegBit): added to allocate a bit register, else spill,
3149           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3150           (updateRegUsage): factored out to ease stepping while debugging,
3151           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3152            also allocate bit registers,
3153           (fillGaps): handle bit registers,
3154           (findAllBitregs): added to create bit vector with all bit registers,
3155           (mcs51_allBitregs): returns this bit vector,
3156           (mcs51_assignRegisters): when using stack-auto use bit registers for
3157            passing parameters and creating local variables
3158         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3159
3160 2005-08-22 Borut Razem <borut.razem AT siol.net>
3161
3162         * device/lib/Makefile.in: replaced find option -or with -o
3163           to make it run on solaris
3164
3165 2005-08-22 Raphael Neider <rneider AT web.de>
3166
3167         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3168           fixes #1265442 (crash on Solaris)
3169
3170 2005-08-20 Borut Razem <borut.razem AT siol.net>
3171
3172         * configure, configure.in: added tests for libsocket and libnsl libraries,
3173           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3174           from support/regression/Makefile.in
3175         * support/regression/Makefile.in: added
3176         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3177         * sim/ucsim/libtool: regenerated on sparc-solaris
3178         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3179           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3180           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3181           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3182           sparc-solaris, which doesn't use GNU ld linker
3183         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3184         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3185
3186 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3187
3188         * src/mcs51/peeph.def: updated comments
3189
3190 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3191
3192         * device/lib/_gptrget.c,
3193         * device/lib/_gptrput.c: slightly shorter
3194         * doc/sdccman.lyx: incremented version
3195         * src/mcs51/peeph.def: moved peephole comments to the line of first
3196           change to better keep line correlation, reanimated 186.e
3197         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3198
3199 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3200
3201         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3202           David Saxton with quotes around file name.
3203
3204 2005-08-15 Borut Razem <borut.razem AT siol.net>
3205
3206         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3207           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3208           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3209           make tests run on x86_64 platform
3210
3211 2005-08-13 Raphael Neider <rneider AT web.de>
3212
3213         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3214           as it might be executed DURING a build (parallel make is wonderful)
3215
3216 2005-08-13 Raphael Neider <rneider AT web.de>
3217
3218         * device/lib/Makefile.in (port-specific-objects-pic16):
3219           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3220         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3221           dependency
3222         * device/lib/pic16/Makefile.rules: build subdirs before creating
3223           the library, removed builddir rule, create $(builddir) early in
3224           recurse rule, use empty recurse rule for leaf directories
3225         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3226           mkdir errors (race condition), removed duplicate suffix "hex"
3227           from clean rules
3228         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3229         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3230           prevents mkdir -p from aborting on Alpha
3231
3232 2005-08-12 Raphael Neider <rneider AT web.de>
3233
3234         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3235           db-statements in order to allow for arrays of pointers in code
3236           sections to be placed without interspersed 0-padding, fixes
3237           bug #1256215
3238         * (emitStatistics): fixed division by zero for pic18f1220
3239         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3240           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3241         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3242         * (pic16_pCodeConstString): keep track of already emitted string
3243           literals to prevent "duplicate definitions of symbol _str_NR"
3244         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3245           debug message
3246         * device/lib/Makefile.in: ignore failing PIC16 library builds
3247         * device/lib/pic16/Makefile: do not build if gputils are missing
3248         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3249
3250 2005-08-10 Raphael Neider <rneider AT web.de>
3251
3252         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3253           my last commit)
3254
3255 2005-08-10 Raphael Neider <rneider AT web.de>
3256
3257         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3258           Rokas' patch to add the new fixed point type "__fixed16x16"
3259         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3260           functions for __fixed16x16 arithmetics
3261         * device/lib/pic16: reimplemented the build system to support
3262           a separate build directory, better handling of libio (create
3263           the library in a separate subdir for each architecture) and
3264           easier configuration (centralized in Makefile.common)
3265
3266 2005-08-07 Raphael Neider <rneider AT web.de>
3267
3268         * src/pic16/gen.c (genrshTwo): fixed sign extension
3269         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3270         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3271           added T0CONbits
3272         * device/include/pic16/pic18f4220.h: NEW, header for
3273           pic18f4220 and pic18f4320
3274         * device/include/pic16/pic18fregs.h: added new devices,
3275           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3276         * device/include/pic16/signal.h: resolved name clashes
3277           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3278           to also allow testing for interrupt enable bits, added
3279           comments on how to use the macros
3280         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3281         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3282           register definitions for the devices
3283         * device/lib/pic16/pics.all: added new devices
3284         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3285           allocated memory
3286         * device/lib/pic16/libc/stdlib/memfree: do not count
3287           the block header as free memory
3288         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3289           simplified and added missing end-of-blocklist-marker
3290           (reported by Peter Onion, fixes #1252814)
3291         * (_mergeHeapBlock): fixed loop condition
3292         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3293           len==0, restructured code
3294         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3295           up a bit, reduced bitfield accesses, prevent endless loops
3296           in case of heap corruption
3297         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3298           "unreferenced arguments/must return a value" warnings
3299         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3300           replaced BAUDREG with SPBRG
3301         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3302           device/lib/pic16/debug/gstack/gstack.c: replaced
3303           _naked, _asm, _endasm with __naked, __asm, __endasm
3304
3305 2005-08-05 Raphael Neider <rneider AT web.de>
3306
3307         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3308           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3309
3310 2005-08-05 Borut Razem <borut.razem AT siol.net>
3311
3312         * device/lib/Makefile.in: added missing ';'
3313         * configure: removed ^M characters
3314
3315 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3316
3317         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3318           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3319           License
3320
3321 2005-08-04 Borut Razem <borut.razem AT siol.net>
3322
3323         * configure.in: pic16 libraries build 2nd try - enable running
3324           configure in device/lib/pic16
3325         * configure: regenerated from configure.in
3326         * device/lib/Makefile.in: create $(PORT)/bin directory
3327
3328 2005-08-03 Raphael Neider <rneider AT web.de>
3329
3330         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3331           to get/set values via pointers
3332         * (genUnpackBits,genPackBits): changed detection of
3333           ptr->bitfield vs. sym.bitfield, fixed access via generic
3334           pointers, removed dead (wrong) code for multibyte bitfields
3335         * (genNearPointerGet, genGenPointerGet): removed useless code,
3336           fixed bitfield detection, fixes #1250594
3337         * (genNearPointerSet): removed useless code
3338         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3339           and introduced macro pic16_emitpcode that conditionally emits
3340           the origin of the following pCode (useful for debugging SDCC)
3341         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3342         * (createDefmap): fixed handling of LFSR for --optimize-df
3343
3344 2005-08-02 Borut Razem <borut.razem AT siol.net>
3345
3346         * device/lib/Makefile.in: pic16 libraries build enabled since
3347           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3348
3349 2005-08-02 Raphael Neider <rneider AT web.de>
3350
3351         * src/pic16/gen.c (genPackBits): removed deprecated warning
3352         * (genGenPointerSet): fixed bitfield detection
3353
3354 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3355
3356         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3357
3358 2005-07-31 Raphael Neider <rneider AT web.de>
3359
3360         * device/lib/pic16/libdev/pic18f458.c,
3361           device/include/pic16/pic18f458.h: added missing T0CONbits
3362
3363 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3364
3365         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3366
3367 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3368
3369         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3370
3371 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3372
3373         * device/include/mcs51/at89c51ed2.h: added.
3374
3375 2005-07-23 Raphael Neider <rneider AT web.de>
3376
3377         * src/pic/gen.h: added emitpcode macro for debugging
3378         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3379           and replace by macro adding debug information on demand
3380         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3381         * (gencjne): tried to fix; replaced with correct (slower) code
3382         * (gen{Unp,P}ackBits): fixed single bit access
3383         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3384         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3385           previous instruction
3386         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3387           register has to be handled with care (forbidding movement
3388           of assignments/uses, removing assignments completely, ...)
3389         * (pCodeOptime2pCodes): make use of regIsSpecial
3390         * added lots of debugging output (commented out)
3391         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3392           from being reused as result UNLESS it is known to work
3393
3394 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3395
3396         * support/Util/dbuf.h: include <stddef.h> for size_t
3397         * .version: changed to version 2.5.2
3398
3399 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3400
3401         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3402
3403 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3404
3405         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3406           (genModOneByte): removed needless psha/pula
3407
3408 2005-07-22 Raphael Neider <rneider AT web.de>
3409
3410         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3411           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3412         * src/pic/gen.c (resolveIfx): do not "invent" labels
3413         * (genSkipc): changed to positive logic
3414         * (genSkipCond): removed as no longer needed
3415         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3416           backport from PIC16
3417         * (genLeftShift): check operands are in different registers
3418         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3419           INCF does not update CARRY...
3420         * src/pic/main.c: fixed _linkCmd
3421         * src/pic/pcode.c (unlinkpCode): added inactive code
3422         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3423           alive (do not assign result and operand overlapping registers)
3424
3425 2005-07-22 Raphael Neider <rneider AT web.de>
3426
3427         * src/pic/device.c (dump_sfr): replaced register declaration with
3428           call to emitSymbolToFile() to avoid duplicate symbols
3429         * (assignRelocatableRegisters): do not declare external symbols
3430         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3431           right (take size of type, not etype)
3432         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3433         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3434         * (packRegsForAccUse): disabled assignment of WREG as
3435           the result reg to prevent occurence of just fixed #1235003,
3436           fixes #1242954
3437         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3438           symbols (avoids duplicate symbols in .asm file)
3439         * (pic14emitRegularMap): use emitSymbolToFile()
3440         * src/pic/gen.c (aopOp): fixed spillLocation handling
3441         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3442         * (genDataPointerSet): removed unneccessary variables/output
3443
3444 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3445
3446         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3447         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3448
3449 2005-07-21 Raphael Neider <rneider AT web.de>
3450
3451         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3452           architecture cannot handle them efficiently, fixes bug #1235003
3453         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3454           check for empty sets before using them (fixes bug #1232190)
3455
3456 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3457
3458         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3459           (lnksect2): generate warnings for memory overlap
3460         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3461           constseg to set the name of these segments so you can instruct the linker
3462           to place them in banks
3463         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3464         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3465           added code_seg and const_seg to options
3466         * src/SDCCglue.c (emitMaps): use options.const_seg,
3467           (createInterruptVect): put interrupt vectors in segment HOME,
3468           (glue): put HOME before static segment and put the main glue in HOME,
3469           (glue): use options.code_seg
3470         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3471         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3472           these segments so you can instruct the linker to place them in banks
3473           (linkEdit): use code_loc for HOME segment which should be the first
3474           segment in code memory now
3475         * src/SDCCmem.c: fixed more stuff like bug 1238386
3476         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3477           (changePointer): don't change function pointers to code pointers for
3478           banked functions,
3479           (compareType): added exceptional check for banked function pointers
3480         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3481         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3482           after static in code memory
3483         * src/mcs51/gen.c: added aopLiteralLong prototype,
3484           (aopForSym): use getSize for functions,
3485           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3486           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3487           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3488           the segment,
3489           (genPcall): use call for literal function pointers and generate banked
3490           calls over the one trampoline so there's only one place for the user to
3491           modify according to his/hers hardware,
3492           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3493           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3494         * src/mcs51/main.c: added keyword banked,
3495           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3496         * support/Util/SDCCerr.c,
3497         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3498           needed for passing the bank and address to the trampoline
3499         * device/lib/mcs51/crtbank.asm: added for bankswitching
3500         * device/lib/mcs51/Makefile: added crtbank
3501
3502 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3503
3504         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3505           for fields at offset 0 of a struct or union as reported
3506           on 2005-07-07 in the developer mailing list.
3507
3508 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3509
3510         * src/SDCCmem.c: fixed bug 1238386
3511
3512 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3513
3514         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3515           (patch #1144962), added peephole 300, enabled 259.x
3516         * doc/sdccman.lyx: removed screenshot and provided link instead
3517
3518 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3519
3520         * doc/sdccman.lyx: added section about debugging with ddd
3521         * doc/figures/ddd_example.eps: screenshot of debugging session
3522
3523 2005-07-04 Raphael Neider <rneider AT web.de>
3524
3525         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3526           like CODE pointers, fixes #1115683
3527         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3528           call, fixes bugs #1232211, #1228110,
3529           fixed wrong casts to pCodeFlow from pCodeInstructions
3530
3531 2005-07-04 Raphael Neider <rneider AT web.de>
3532
3533         * src/pic/gen.c (popGet): changed assert to allow for
3534           bit operands
3535         * (popGetAddr): changed signature to provide
3536           an additional index, patched all call sites
3537         * (genCmpEq): handle literal-like operands correctly
3538         * (genAddrOf): added sanity checks on __code/__data pointers
3539         * (genAssign): added handling of symbols from __code section
3540         * (gencjne): do not generate code for comparisons whose result
3541           is neither stored nor used, fixes bug #1171114
3542         * (AccLsh, AccRsh): operate on operand instead of WREG
3543         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3544           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3545           by known count
3546         * rewrote complete shift-by-literal logic, commented unused
3547           functions out
3548         * (genConstPointerGet): get multiple bytes (if result size > 1),
3549           fixed handling of non-immediate addresses
3550         * (genPointerGet): handle CODE pointers like CONST pointers
3551         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3552         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3553           operand is to be treated as a literal or not
3554         * (mov2w,genPcall,genCmpEq),
3555           src/pic/genarith.c: use aop_isLitLike() to decide between
3556           literal/register contents
3557         * (addSign): added missing offset
3558         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3559           only emit comment in debug-mode,
3560           use {aop,op}_isLitLike throughout the file
3561         * src/pic/glue.c: fix initializers for pointers (work in progress)
3562         * src/pic/pcode.c (get_op): honor index on _const symbols
3563         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3564         * (dumppBlock): added pCode size estimation
3565         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3566           check for IS_SYMOP before OP_SYMBOL'ing
3567         * fixed indentation, compacted switch-statements
3568         * (allocReg): find free register and allocate it instead of
3569           allocating new registers all the time
3570         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3571           registers as its operands (necessary only for multibyte GETs)
3572
3573 2005-07-01 Raphael Neider <rneider AT web.de>
3574
3575         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3576           debugging .asm-output macros FENTRY + FEXIT
3577         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3578           way... I wonder...
3579         * (emitpComment): NEW, printf to pCode
3580         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3581           offset handling
3582         * (popGetAddr): NEW, variant of popGet to access an immediates
3583           high(er) bytes instead of the n'th byte of memory they reference,
3584           replaced popGet with popGetAddr where neccessary
3585         * (genDataPointerGet): reactivated and fixed implementation
3586         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3587           accesses
3588         * (genDataPointerSet): fixed multibyte assignments
3589         * (genpic14Code): fixed --i-code-in-asm handling
3590         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3591         * (genPlus): fixed index-out-of-bounds error
3592         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3593         * src/pic/ralloc.c: added debugging output macro FENTRY2
3594         * (spillThis): fixed indentation, enbraced for-body for clarity
3595         * (rematStr): commented out as now unused
3596         * (regTypeNum): commented out special spill case (overwrites
3597           arbitrary values)
3598         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3599
3600 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3601
3602         * doc/sdccman.lyx: documented sfr16/sfr32,
3603           added example for using storage class with function pointers
3604         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3605
3606 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3607
3608         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3609         * device/lib/_itoa.c,
3610         * device/lib/_ltoa.c: optimized codesize
3611         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3612           but don't know how to suppress the double warning.
3613         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3614         * support/Util/SDCCerr.c,
3615         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3616
3617 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3618
3619         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3620           fixed old K&R prototypes
3621         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3622         * device/lib/_gptrget.c,
3623         * device/lib/_gptrgetc.c,
3624         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3625           also new versions for small generic pointers and banked generic pointers
3626         * src/port.h: added const_name
3627         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3628         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3629         * src/SDCCcse.c (findPrevIc): check all associative operators
3630         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3631         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3632         * src/SDCCmem.c: updated comments,
3633           set far-space to 0 for pdata, results in optimized code
3634         * src/SDCCmem.h: added macro CONST_NAME
3635         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3636           moving the info into the highest bits, see also gptrget/gptrput
3637         * src/src.dsp: added sdcc.ico to project files
3638         * src/avr/gen.c (genCast): fixed bug 0x%d
3639         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3640         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3641           relation between ptr_type and DCL_TYPE,
3642           (genCast): fixed bug 0x%d
3643         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3644           (CODE)" for const_name
3645         * src/hc08/gen.c (genCast): fixed bug 0x%d
3646         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3647           (hc08_port): added "CONST (CODE)" for const_name
3648         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3649           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3650           between ptr_type and DCL_TYPE,
3651           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3652           operand* and took AOP() inside function so sfr-ness can be checked,
3653           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3654           new prototype,
3655           (genFunction, genEndFunction): optimized stack setup,
3656           (genMinus): optimized for literals with ending zeroes (in bytes),
3657           (genCast): fixed bug 0x%d
3658         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3659           (mcs51_port): added "CONST (CODE)" for const_name
3660         * src/mcs51/peeph.def: made rule 226 more generic
3661         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3662         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3663         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3664         * src/z80/main.c (z80_port): added NULL for const_name,
3665           (gbz80_port): added NULL for const_name
3666         * support/regression/tests/bug663539.c,
3667         * support/regression/tests/sfr16.c: new tests
3668
3669 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3670
3671         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3672
3673 2005-06-24 Raphael Neider <rneider AT web.de>
3674
3675         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3676           corrected typos...
3677         * device/include/pic16/signal.h: added USBIF
3678           and SIG_USB
3679
3680 2005-06-24 Raphael Neider <rneider AT web.de>
3681
3682         * device/lib/pic16/libdev/pic18f2455.c,
3683           device/include/pic16/pic18f2455.h: NEW
3684         * device/include/pic16/pic18fregs.h,
3685           device/lib/pic16/pics.all,
3686           src/pic16/device.c: added 18f2455
3687         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3688           device/include/pic16/{pic18f[68][567].h,usart.h}:
3689           replaced MULTIPLE_USARTS define with more relaible
3690           compatibility sfrs (for USART access)
3691
3692 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3693
3694         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3695           and the output asm file line is printed on two lines.
3696
3697 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3698
3699         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3700           BGT, BLE, BHI, and BLS instructions
3701         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3702           genCmpEq): removed
3703         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3704           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3705           fixes bug #1216342
3706         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3707
3708 2005-06-15 Raphael Neider <rneider AT web.de>
3709
3710         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3711         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3712         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3713           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3714           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3715
3716 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3717
3718         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3719           Marcel Telka in bug #1215704
3720
3721 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3722
3723         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3724           located in shared memory bank.
3725
3726 2005-05-31 Raphael Neider <rneider AT web.de>
3727
3728         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3729           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3730           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3731
3732 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3733
3734         * device/lib/_strncpy.c: fixed the fix
3735
3736 2005-05-26 Raphael Neider <rneider AT web.de>
3737
3738         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3739           initializers with \0, bug #1208187
3740         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3741           intializers with \0, bug #1208187
3742
3743 2005-05-26 Raphael Neider <rneider AT web.de>
3744
3745         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3746           initializers with \0, bug #1208187
3747         * src/pic16/main.c (_process_pragma): added sanity checks
3748           for stack position and size, emit warnings when appropriate
3749
3750 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3751
3752         * device/lib/_strncpy.c: fixed not filling with \0
3753
3754 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3755
3756         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3757           createFunction),
3758         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3759           compound_statement),
3760         * src/SDCCsymt.h,
3761         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3762
3763 2005-05-24 Raphael Neider <rneider AT web.de>
3764
3765         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3766
3767 2005-05-24 Raphael Neider <rneider AT web.de>
3768
3769         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3770           TRISE definitions, closes bug #1162453
3771
3772 2005-05-22 Raphael Neider <rneider AT web.de>
3773
3774         * src/pic16/main.c (_process_pragma): check for missing
3775           arguments to pragmas code and udata
3776         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3777           consistency fixes to match other headers (thanks to Jim Paris)
3778         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3779
3780 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3781
3782         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3783
3784 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3785
3786         * support/regression/tests/bug1198642.c: new test
3787         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3788         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3789         * support/scripts/resource.h,
3790         * support/scripts/resource.rc,
3791         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3792         * support/scripts/sdcc.ico: added 32x32 icon
3793
3794 2005-05-18 Raphael Neider <rneider AT web.de>
3795
3796         * device/lib/pic16/libdev/pic18f*.c,
3797         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3798           keywords to "__sfr" and "__at (X)"
3799         * device/include/pic16/pic18fregs.h: added pic18f4520
3800         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3801           #1203088 (MPLAB compatibility)
3802
3803 2005-05-17 Raphael Neider <rneider AT web.de>
3804
3805         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3806         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3807         * device/lib/pic16/pics.all: added new devices
3808         * src/pic16/device.c: added support for pic18f4520
3809
3810 2005-05-16 Raphael Neider <rneider AT web.de>
3811         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3812         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3813         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3814           convenience function for bit access
3815
3816 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3817
3818         * device/lib/printf_large.c: fixed bug 1193299
3819         * support/regression/tests/bug1057979.c: added test %3.3s
3820
3821 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3822
3823         * device/include/mcs51/8051.h,
3824         * device/include/mcs51/8052.h: made parseable with lint
3825         * device/include/mcs51/lint.h: added include file for (sp)lint
3826         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3827         * doc/cdbfileformat.lyx,
3828         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3829
3830 2005-05-14 Raphael Neider <rneider AT web.de>
3831
3832         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3833         * device/lib/pic16/libc/stdlib/itoa.c (new)
3834         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3835         * device/lib/pic16/libio/Makefile: exclude subdir according to
3836           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3837         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3838         * src/pic16/gen.c (genFunction): prevent annoying warning
3839         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3840           nameclashes on BeOS
3841         * support/cpp2/cppmain.c (cpp_output_string): new
3842         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3843           fixes bug 1116802
3844
3845 2005-05-13 Borut Razem <borut.razem AT siol.net>
3846
3847         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3848
3849 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3850
3851         * .version: changed to version 2.5.1; back to bleeding edge development
3852
3853 2005-05-11 Borut Razem <borut.razem AT siol.net>
3854
3855         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3856           generate PDF version 1.3 documents
3857
3858 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3859
3860         * .version: changed to version 2.5.0
3861
3862 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3863
3864         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3865
3866 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3867
3868         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3869         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3870         well as many smaller updates.
3871         * .version: changed to version 2.5.0-pre1
3872
3873 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3874
3875         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3876
3877 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3878
3879         * support/regression/tests/bug1185672.c: added
3880         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3881           bug 1185672
3882         * src/mcs51/gen.c (genCall): added comments, made it look safer
3883         * src/mcs51/gen.c (genEndFunction): simplified
3884
3885 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3886
3887         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3888
3889 2005-04-14 Borut Razem <borut.razem AT siol.net>
3890
3891         * fixed bug 1045046 - SIGSEGV with really simple code?:
3892           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3893           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3894
3895 2005-04-14 Borut Razem <borut.razem AT siol.net>
3896
3897         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3898           src/pic16/device.h: temporarily disabled experimental #inline pragma
3899           for 2.5.0 release
3900
3901 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3902
3903         * device/include/z80/stdio.h,
3904         * device/include/z80/string.h: removed these highly incomplete files so
3905           SDCC can use the default ones in device/include/
3906
3907 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3908
3909         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3910         gcc warning.
3911         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3912         fix sdcpp warnings.
3913
3914 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3915
3916         * device/include/malloc.h: removed redundant __reentrant prototypes
3917         * device/lib/_mullong.c: added working xstack variant in asm (C version
3918           doesn't pass regression tests)
3919         * device/lib/bpx.c: used __data and made bpx char for mcs51
3920         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3921           (createFunction): fixed bug with xstackPtr
3922         * src/SDCCcse.c: corrected comments
3923         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3924           (killDeadCode, eBBlockFromiCode): removed unused code
3925         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3926           corrected comments
3927         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3928           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3929           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3930           (genModOneByte): fixed warning in MSVC
3931         * src/mcs51/main.c (): added comments
3932         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3933
3934 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3935
3936         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3937
3938 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3939
3940         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3941
3942 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3943
3944         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3945         characters arrays of larger size than the declared one.
3946
3947 2005-04-10 Borut Razem <borut.razem AT siol.net>
3948
3949         * src/pic/gen.c (genInline),
3950           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3951           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3952           (findNextInstruction), (findPrevInstruction),
3953           (findInstructionUsingLabel),
3954           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3955         * src/pic/pcode.c (findLabel): added missing '\n'
3956         * src/src.dsp: added SDCCdwarf2.c to the project
3957
3958 2005-04-09 Borut Razem <borut.razem AT siol.net>
3959
3960         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3961
3962 2005-04-08 Raphael Neider <rneider AT web.de>
3963
3964         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3965           into the chain after a given one) and mergeDefmapSymbols (combine
3966           defmap entries for each symbol per pcode)
3967         * (createDefmap): have defmap entries merged in the end
3968         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3969           a symbol before replacing one access type's symbol, merge symbols in
3970           the end (replacement symbol might already have an entry)
3971         * (assignValnums): keep reference to written WREG intact
3972
3973 2005-04-08 Raphael Neider <rneider AT web.de>
3974
3975         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3976           Alpha)
3977
3978 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3979
3980         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3981         bytes
3982
3983 2005-04-07 Raphael Neider <rneider AT web.de>
3984
3985         * device/include/pic16/usart.h: added compatibility defines for
3986           devices with more than one USART
3987         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3988
3989 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3990
3991         * device/lib/Makefile.in: updated for port specific include
3992
3993 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3994
3995         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3996
3997 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3998
3999         * device/include/8051.h,
4000         * device/include/8052.h,
4001         * device/include/at89S8252.h,
4002         * device/include/at89c55.h,
4003         * device/include/at89x051.h,
4004         * device/include/at89x51.h,
4005         * device/include/at89x52.h,
4006         * device/include/mcs51reg.h,
4007         * device/include/reg51.h,
4008         * device/include/reg764.h,
4009         * device/include/regc515c.h,
4010         * device/include/sab80515.h: (re)moved these 12 files
4011         * device/include/mcs51/8051.h,
4012         * device/include/mcs51/8052.h,
4013         * device/include/mcs51/at89S8252.h,
4014         * device/include/mcs51/at89c55.h,
4015         * device/include/mcs51/at89x051.h,
4016         * device/include/mcs51/at89x51.h,
4017         * device/include/mcs51/at89x52.h,
4018         * device/include/mcs51/mcs51reg.h,
4019         * device/include/mcs51/reg51.h,
4020         * device/include/mcs51/reg764.h,
4021         * device/include/mcs51/regc515c.h,
4022         * device/include/mcs51/sab80515.h: and added them here
4023
4024 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4025
4026         * device/include/stdarg.h: changed SDCC specific keywords to double
4027           underlined form.
4028         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4029           mcs51 and ds390.
4030         * device/include/hc08/mc68hc908gp32.h,
4031         * device/include/hc08/mc68hc908jb8.h,
4032         * device/include/hc08/mc68hc908jkjl.h,
4033         * device/include/hc08/mc68hc908qy.h: fixed comments
4034         * device/include/mcs51/README: updated
4035         * device/include/mcs51/c8051f120.h: added PINRSF
4036         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4037         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4038           amidst code. Also inline is not supported.
4039
4040 2005-04-06 Raphael Neider <rneider AT web.de>
4041
4042         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4043         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4044           callers stack/frame pointers
4045
4046 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4047
4048         * device/include/pic16/usart.h: added, missing in previous commit,
4049         * device/include/pic16/adc.h: fixed typo,
4050         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4051         commit,
4052         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4053         <p18fxxx.inc>
4054         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4055         uninitialized because a bug appears with gplink
4056         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4057         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4058         complains for unrecognised option
4059
4060 2005-04-05 Raphael Neider <rneider AT web.de>
4061
4062         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4063           structs as well (using memcpy)
4064         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4065           on ISRs (GOTO has no label)
4066         * src/pic16/device.h: added OF_OPTIMIZE_DF
4067         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4068           new data flow analysis/optimization
4069         * src/pic16/pcode.c: added (prototypes for and implementation of)
4070           dataflow analysis functions, fixed pCodeInstructions' inCond and
4071           outCond values, made RCALL a branch instruction
4072         * (pic16_unlinkpCode): keep C line if possible
4073         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4074           C line moved if possible
4075         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4076         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4077           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4078         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4079           new flow)
4080         * (pic16_getJumptabpCode): NEW, needed in...
4081         * (LinkFlow): fixed handling of jumptables, calls and conditional
4082           branches
4083         * (pic16_InsertCommentAfter): NEW
4084         * (pic16_pCodeReplace): made verbose and flow preserving
4085         * (AnalyzeFlow): added call to data flow analysis
4086         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4087         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4088         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4089
4090 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4091
4092         * src/SDCCast.c (decorateType): fixed bug #1105626
4093
4094 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4095
4096         * device/include/asm/pic16/features.h,
4097         * pic18f*.h headers,
4098         * device/include/pic16/adc.h,
4099         * device/include/pic16/delay.h,
4100         * device/include/pic16/i2c.h,
4101         * device/include/pic16/malloc.h,
4102         * device/include/pic16/stdio.h,
4103         * device/include/pic16/stdlib.h,
4104         * device/include/pic16/string.h,
4105         * device/lib/pic16/libc/stdio/printf_tiny.c,
4106         * device/lib/pic16/libc/stdio/printf_small.c,
4107         * device/lib/pic16/libc/stdio/strmgpsim.c,
4108         * device/lib/pic16/libc/stdio/strmmssp.c,
4109         * device/lib/pic16/libc/stdio/strmusart.c,
4110         * device/lib/pic16/libc/stdio/vfprintf.c,
4111         * device/lib/pic16/libc/stdlib/ltoa.c,
4112         * device/lib/pic16/libc/stdlib/putchar.c,
4113         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4114         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4115         * device/lib/pic16/libc/stdlib/memchrram.c,
4116         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4117         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4118         * device/lib/pic16/libio/adc/adcbusy.c,
4119         * device/lib/pic16/libio/adc/adcread.c,
4120         * device/lib/pic16/libio/adc/adcsetch.c,
4121         * device/lib/pic16/libio/usart/ubaud.c,
4122         * device/lib/pic16/libio/usart/ubusy.c,
4123         * device/lib/pic16/libio/usart/udrdy.c,
4124         * device/lib/pic16/libio/usart/uopen.c,
4125         * device/lib/pic16/libio/usart/uputc.c,
4126         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4127         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4128         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4129         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4130         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4131         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4132         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4133         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4134         specific keywords to double underlined form,
4135         * device/lib/pic16/libc/Makefile.rules,
4136         * device/lib/pic16/libsdcc/Makefile.rules,
4137         * device/lib/pic16/libm/Makefile,
4138         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4139         to compile with C standard set in Makefile.common
4140         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4141         rand.c and crc.c in compilation process,
4142         * device/lib/pic16/libsdcc/int/divuint.c,
4143         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4144         `c' from signed to unsigned,
4145         * device/lib/pic16/startup/crt0.c,
4146         * device/lib/pic16/startup/crt0i.c,
4147         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4148         keywords to double underlined form, bug fixes in _do_cinit function
4149         which prevented the correct initialization of the .idata segment,
4150         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4151         core to enter a infinite loop
4152         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4153
4154 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4155
4156         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4157
4158 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4159
4160         * device/include/Makefile.in: add support for hc08 subdirectory
4161         * device/include/hc08/: new subdirectory
4162         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4163         Lucas Loizaga, thanks!
4164         * device/include/hc08/mc68hc908qy.h,
4165         * device/include/hc08/mc68hc908gp32.h,
4166         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4167         their own directory. Changed internal macro names to use the compiler
4168         reserved namespace. Changed SDCC specific keywords to double
4169         underlined form.
4170         * device/include/math.h,
4171         * device/include/malloc.h,
4172         * device/include/stdarg.h,
4173         * device/include/stdbool.h
4174         * device/include/string.h,
4175         * device/include/tinibios.h,
4176         * device/include/ds400rom.h,
4177         * device/include/8051.h,
4178         * device/include/8052.h,
4179         * device/include/80c51xa.h,
4180         * device/include/at89c55.h,
4181         * device/include/at89S8252.h,
4182         * device/include/at89x51.h,
4183         * device/include/at89x52.h,
4184         * device/include/ds80c390.h,
4185         * device/include/reg764.h,
4186         * device/include/regc515c.h,
4187         * device/include/sab80515.h,
4188         * device/include/mcs51/c8051f000.h,
4189         * device/include/mcs51/c8051f018.h,
4190         * device/include/mcs51/c8051f020.h,
4191         * device/include/mcs51/c8051f040.h,
4192         * device/include/mcs51/c8051f060.h,
4193         * device/include/mcs51/c8051f120.h,
4194         * device/include/mcs51/c8051f300.h,
4195         * device/include/mcs51/c8051f310.h,
4196         * device/include/mcs51/c8051f320.h,
4197         * device/include/mcs51/c8051f330.h,
4198         * device/include/mcs51/c8051f350.h,
4199         * device/include/z180.h: Changed SDCC specific keywords to double
4200         underlined form.
4201
4202 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4203
4204         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4205         18F4455,
4206         * (pic16_assignConfigWordValue): disable testing of configuration
4207         register value with config mask,
4208         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4209         function with port->fun_prefix,
4210         * (genFunction): when generating a naked interrupt function never
4211         create an absolute segment placed in interrupt vector address, place
4212         the actual interrupt function at IVA instead, when an interrupt
4213         function is generated with unspecified interrupt then do not create
4214         the absolute section,
4215         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4216         code for generating a call to generic pointer get/put function with
4217         a call to function pic16_callGenericPointer(),
4218         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4219         the call to the generic pointer get/put functions with prefixing the
4220         function name with port->fun_prefix,
4221         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4222         * src/pic16/main.c (_process_pragma): prefix function with
4223         port->fun_prefix,
4224         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4225         calling assembler, old 18Fxxxx macro is deprecated,
4226         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4227         PC_ASMDIR in while condition,
4228         * (findInstruction): add PC_ASMDIR in while condition,
4229         * (buildCallTree): prefix main with port->fun_prefix,
4230         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4231         identifier for variable with banked access in instructions BTFSS,
4232         BTFSC, BCF, BSF, BTG
4233         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4234         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4235         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4236         perform optimization when enviroment variable NO_REG_OPT is set,
4237         * (insideLRBlock): NEW, return 1 if register is inside an
4238         INF_LOCALREGS block,
4239         * (RemoveRegFromLRBlock): remove a register that is completely
4240         eliminated by register optimization, but it is still left in local
4241         register store/restore in/from stack block,
4242         * (Remove2pcodes): after removing register, check to see if it
4243         should be removed from local register store/restore in/from stack
4244         block,
4245         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4246         DUMMY_READ_VOLATILE,
4247
4248         * device/include/pic16/adc.h: minor prototype modifications and
4249         update,
4250         * device/include/pic16/malloc.h: added GPL notice various
4251         modifications,
4252         * device/include/pic16/stdint.h: NEW, standard header for ints
4253         * device/include/pic16/delay.h: NEW, header for delay functions,
4254         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4255         delay1mtcy,
4256         * device/include/pic16/signal.h: NEW, header providing helper macros
4257         for implementing signal handlers,
4258         * device/include/pic16/stdio.h: added prototypes for functions,
4259         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4260         prototypes for stdin and stdout, added macro PUTCHAR to
4261         automatically implement putchar function prototype,
4262         * device/include/pic16/usart.h: modified and updated USART library,
4263         * device/lib/pic16/libio/adc/,
4264         * device/lib/pic16/libio/i2c: some modifications to improve library
4265         performance,
4266         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4267         family of functions,
4268         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4269         family of functions and other sources,
4270         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4271         of the PIC18Fxx[28] devices,
4272         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4273         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4274         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4275         _do_cinit function, because the previous failed when local variables
4276         where not placed in the same memory bank,
4277         * device/lib/pic16/libsdcc/char/: various modifications to improve
4278         library performance,
4279         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4280         information on the new functions of the c library and more...
4281
4282 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4283
4284         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4285
4286 2005-03-26 Raphael Neider <rneider AT web.de>
4287
4288         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4289           if condition == CARRY)
4290         * (genCmp): adapted to new genSkipc semantics
4291         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4292           on rIfx (genCmp was broken)
4293
4294 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4295
4296         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4297         * src/z80/main.c (_keywords[]),
4298         * src/SDCCglobal.h (struct options),
4299         * src/SDCC.y,
4300         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4301         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4302         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4303         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4304         always available in leading double underscore form. The C99 support is
4305         mostly missing, but it's a start.
4306         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4307         reserved identifier "__data".
4308
4309 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4310
4311         * src/mcs51/peeph.def: fixed bug 1170013
4312
4313 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4314
4315         * device/include/mcs51reg.h: fixed bug 842007
4316
4317 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4318
4319         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4320         last time.
4321
4322 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4323
4324         * src/port.h (struct PORT),
4325         * src/avr/ralloc.c (avr_assignRegisters),
4326         * src/avr/main.c,
4327         * src/ds390/ralloc.c (ds390_assignRegisters),
4328         * src/ds390/main.c,
4329         * src/hc08/ralloc.c (hc08_assignRegisters),
4330         * src/hc08/main.c,
4331         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4332         * src/mcs51/main.c,
4333         * src/pic/ralloc.c (pic14_assignRegisters),
4334         * src/pic/main.c,
4335         * src/pic16/ralloc.c (pic16_assignRegisters),
4336         * src/pic16/main.c,
4337         * src/xa51/ralloc.c (xa51_assignRegisters),
4338         * src/xa51/main.c,
4339         * src/z80/ralloc.c (z80_assignRegisters),
4340         * src/z80/ralloc.h,
4341         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4342         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4343         * src/SDCCcse.h,
4344         * src/SDCCdflow.c (computeDataFlow),
4345         * src/SDCCdflow.h,
4346         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4347         * src/SDCCloop.h,
4348         * src/SDCCcflow.c (*),
4349         * src/SDCCcflow.h,
4350         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4351         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4352         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4353         immedDom() returning wrong block; probably fixes bug #1160833)
4354
4355 2005-03-20 Borut Razem <borut.razem AT siol.net>
4356
4357         * support/scripts/inc2h.pl: WIN32 port
4358
4359 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4360
4361         * device/lib/makefile.in: added abs.c and labs.c
4362
4363 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4364
4365         * device/include/stdint.h: added
4366         * device/lib/abs.c: added
4367         * device/lib/labs.c: added
4368         * device/include/stdlib.h: added abs() and labs() prototypes
4369         * device/lib/libsdcc.lib: added abs and labs
4370         * device/include/float.h,
4371         * device/lib/_fsmul.c,
4372         * device/lib/printf_fast.c,
4373         * device/lib/printf_tiny.c: updated comments
4374
4375 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4376
4377         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4378         bug #1164313
4379
4380 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4381
4382         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4383         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4384
4385 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4386
4387         * device/lib/printf_large.c: removed inline assembly for portability and
4388           readability. Use printf_fast if speed or size are more important.
4389         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4390         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4391
4392 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4393
4394         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4395         prevent compiler warning
4396
4397 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4398
4399         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4400         moved to level 0 and declared as static. Also they are explicit
4401         placed in access bank. This was necessery because some times they
4402         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4403         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4404         optimizations. Currently only compare to unsigned char is implemented,
4405         * src/pic16/gen.c: added fReturnIdx array,
4406         * (struct resolvedIfx) is moved to gen.h and made public,
4407         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4408         * (aopForSym): added an optimization to directly store in stack of
4409         the operand of a SEND iCode,
4410         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4411         but as registers instead (AOP_REG) using the fReturnIdx array,
4412         * (pic16_freeAsmop): remove the freed register from the
4413         _G.sregsAlloc field,
4414         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4415         a compare of 'WREG',
4416         * (pic16_popGetTempRegCond): changed function prototype, now
4417         function takes also a bitVector argument v which holds the current
4418         set of registers that are allocated for stack access by aopForSym,
4419         registers allocated in aopForSym for accessing stack symbols are not
4420         any more part of the functions usedRegs field,
4421         * (genCall): some times aopOp is called for a stack variable to be
4422         send, aopForSym might perform the push, if this is true make sure
4423         that genCall doesn't push the variable twice by testing _G.resDirect,
4424         * (genFunction): changed testing for unspecified interrupt number
4425         from 256 to INTNO_UNSPEC,
4426         * modified selection scheme of frame pointer generation. Previously
4427         if function did use local registers a frame pointer was generated,
4428         now a frame pointer is generated only if function has arguments
4429         (that need PLUSW2 register access), or has stack arguments, or the
4430         compiler is not instructed to omit the frame pointer,
4431         * (genEndFunction): before restoring local registers that were saved
4432         in the function preamble, also restore the registers that *might*
4433         have been allocated for stack access,
4434         * (genRet): removed some old comments,
4435         * (genCmp, the active (RN's) version): added a call to the
4436         pic16_genCmp_special function to perform the compare with a more
4437         robust and optimized way,
4438         * (genInline): a feature has been added in inline code generation,
4439         which allows a wildcard variable substitution when writing inline
4440         assembly. Code is incomplete and experimental therefore undocumented,
4441         * (genCast): changed order of aopOp for result and right to allow
4442         aopForSym to directly load the result if possible,
4443         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4444         perform an optimized compare on some selected special occasions,
4445         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4446         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4447         generate an IVT any more,
4448         * src/pic16/main.c (pic16_optionsTable): added command line option
4449         --optimize-cmp,
4450         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4451         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4452         macros,
4453         * src/pic16/NOTES: Raphael Neider added in list of active developers
4454         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4455         jumptable_end to prevent bug #,
4456         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4457         inCond and outCond fields,
4458         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4459         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4460         turn off register spilling,
4461         * (packRegsForOneUse): synced with other ports' versions although it
4462         is not used currently,
4463         * (pic16_packRegisters): added an optimization while reading
4464         structure bitfields, some registers may be saved (malloc code is
4465         decreased by 80 bytes)
4466
4467 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4468
4469         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4470         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4471         this can be optimized more?
4472
4473 2005-03-10 Raphael Neider <rneider AT web.de>
4474
4475         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4476           genNearPointerGet): (hopefully) fixed access to bitfields via
4477           pointers (p->bitN = x; and x = p->bitN; failed)
4478
4479 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4480
4481         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4482
4483 2005-03-09 Raphael Neider <rneider AT web.de>
4484
4485         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4486
4487 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4488
4489         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4490         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4491           (regTypeNum): set REG_BIT type if necessary
4492         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4493         * support/regression/tests/critical.c: check bug 1144613
4494
4495 2005-03-02 Raphael Neider <rneider AT web.de>
4496
4497         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4498
4499 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4500
4501         * src/avr/ralloc.c (serialRegAssign),
4502         * src/ds390/ralloc.c (serialRegAssign),
4503         * src/hc08/ralloc.c (serialRegAssign),
4504         * src/mcs51/ralloc.c (serialRegAssign),
4505         * src/pic/ralloc.c (serialRegAssign),
4506         * src/pic16/ralloc.c (serialRegAssign),
4507         * src/xa51/ralloc.c (serialRegAssign),
4508         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4509
4510 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4511
4512         * src/SDCCast.c (decorateType): fixed bug 1124787
4513
4514 2005-02-20 Hubert Sack <sack AT digiplan.de>
4515         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4516
4517         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4518         patch #1121755
4519
4520 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4521
4522         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4523         to keep the correct label reference count when adding/removing references
4524         to labels. A peephole file using this is appended to patch #1144962.
4525
4526 2005-02-14 Raphael Neider <rneider AT web.de>
4527
4528         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4529         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4530         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4531           retrievals of result operand's value on assignment
4532
4533 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4534
4535         * device/include/pic16/string.h: modified prototype for memccpy()
4536         to memccpy(void *, void *, char, size_t)
4537         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4538         check whether to omit frame pointer or not,
4539         * (genInline): convert all occurences of "\n" to LF in inline
4540         assembler blocks, this helps formatting the inline text,
4541         * (pic16_loadFSR0): modified prototype,
4542         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4543         removed some 8051 legacy code,
4544         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4545         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4546         before allocating temporary registers in functions,
4547
4548 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4549
4550         * support/regression/tests/bitvars.c: corrected the "fix"
4551
4552 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4553
4554         * support/regression/tests/bitvars.c,
4555         * support/regression/tests/bitwise.c,
4556         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4557
4558 2005-02-10 Raphael Neider <rneider AT web.de>
4559
4560         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4561           different size for Alpha
4562         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4563
4564 2005-02-09 Raphael Neider <rneider AT web.de>
4565
4566         * src/SDCC.lex(doPragma) : save and restore warning options as well
4567           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4568         * have #pragma less_pedantic set the errorlevel to WARNING
4569           (fixes #1117001)
4570         * (cloneOptimize) : fixed wrong malloc's size
4571         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4572           facilitate correct handling of #pragma (save|restore)
4573
4574 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4575
4576         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4577
4578 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4579
4580         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4581
4582 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4583
4584         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4585
4586 2005-02-02 Raphael Neider <rneider AT web.de>
4587
4588         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4589         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4590         * (pic16_storeForReturn): fixed to allow returning function pointers
4591         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4592         * device/include/pic16/{stddef.h,stdbool.h}: added
4593
4594 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4595
4596         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4597
4598 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4599
4600         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4601         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4602          appeared to be required
4603
4604 2005-01-31 Borut Razem <borut.razem AT siol.net>
4605
4606         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4607           include/mcs51 and include/z80 directories to the package
4608
4609 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4610
4611         * src/hc08/gen.c (genFunction): fixed bug #1112752
4612
4613 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4614
4615         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4616
4617 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4618
4619         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4620
4621 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4622
4623         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4624
4625 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4626
4627         * device/include/c8051fxxx.h: removed these 6 files
4628         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4629
4630 2005-01-26 Raphael Neider <rneider AT web.de>
4631
4632         * src/pic16/gen.c (genAssign): fixed assignment from longs
4633           in codespace (were cut to three bytes)
4634         * (genDummyRead): implemented (except for CODESPACE...),
4635           fixed bug #1108575
4636         * src/pic16/glue.c (emitStatistics): beautified
4637         * device/lib/pic16/libm/Makefile: added include path
4638
4639 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4640
4641         * src/z80/gen.c (aopPut): fixed bug #1103902
4642
4643 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4644
4645         * device/lib/expf.c: fixed bug #1095792
4646
4647 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4648
4649         * device/lib/pic16/libm: added Math library sources
4650
4651 2005-01-24 Raphael Neider <rneider AT web.de>
4652
4653         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4654           to enable upcast to pCodeOpReg2 (there is no type tag to
4655           differenciate the two and pic16_popGet2p cast into PCOR2)
4656         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4657           (sizeof(sectNames) changed to sizeof(sectName))
4658           Both patches fix segfaults under MinGW.
4659
4660 2005-01-23 Raphael Neider <rneider AT web.de>
4661
4662         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4663           Safe_[mc]?alloc()'ed variables
4664         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4665           of (byte sized) temporaries (assign them to WREG for now)
4666         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4667           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4668           this might fix SIGSEGVs on MinGW...
4669         * src/SDCCopt.c (killDeadCode): restored original behaviour
4670           (volatile operands might get thrown away though)
4671
4672 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4673
4674         * src/pic16/gen.c: fixed bug #1106975,
4675         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4676         pointer update, INTCON is saved, global interrupts are disabled and
4677         restored after updateing TOS.
4678         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4679         * added function attribute 'shadowregs' to take advantage of shadow
4680         registers,
4681         * added function attribute 'wparam' as an alternative to the wparam
4682         pragma,
4683         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4684         user declares a non-ISR function as 'shadowregs',
4685         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4686
4687 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4688
4689         * .version: bumped version number to 2.4.8
4690         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4691         pic16 port,
4692         * device/lib/pic16/libio/i2c/: I2C module support library,
4693         * device/include/pic16/i2c.h: I2C support library header,
4694         * device/lib/pic16/libc/stdio/: standard IO support sources,
4695         * (printf_small.c): printf_small() source, supports float print,
4696         * (printf_tiny.c): printf_tiny() source, does not support floats,
4697         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4698         enable global optimizations for entire library source, other
4699         Makefiles in the source tree are also modified to reflect this,
4700         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4701         function,
4702         * doc/sdccman.lyx: updated to reflect new changes,
4703         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4704         sym->onStack if-case,
4705         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4706         sbit, idata, _idata, xdata, _xdata,
4707         * added pragma library, to link an external library, (see doc),
4708         * removed command line options, --pomit-config-words, --pomit-ivt,
4709         --pleave-reset-vector,
4710         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4711         when calling assembler to reflect memory model used, also define
4712         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4713         reflect stack model used,
4714         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4715         on stack return NULL,
4716
4717 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4718
4719         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4720           of the operands is volatile. Fixes #1020220
4721
4722 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4723
4724         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4725         * (OptimizeRegUsage): make sure that there is really no other flow where
4726           the first pCode is used
4727
4728 2005-01-22 Raphael Neider <rneider AT web.de>
4729
4730         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4731           to fix #1106967 (pCode->seq are not set up correctly)
4732
4733 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4734
4735         * src/SDCCglue.c (glue): make sure code area is declared before the
4736         static initialization area.
4737
4738 2005-01-21 Raphael Neider <rneider AT web.de>
4739
4740         * device/lib/Makefile.in: fixed test for pic16 install dir
4741         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4742           optimizations
4743         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4744           added --optimize-goto compiler switch and pragma wparam documentation
4745         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4746         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4747           and PRODH closing bug #1071770 (peephole optimizer)
4748
4749 2005-01-19 Raphael Neider <rneider AT web.de>
4750
4751         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4752           cmdLine buffers (used when calling sdcpp...) are large enough
4753           (MAX_PATH=256 truncates arguments leading to system halts when
4754           used in MinGW...)
4755         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4756         * (genUminus): rewritten to for efficiency
4757         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4758           used uninitialized in some cases)
4759         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4760           copy the third byte from the int -- now assumes 0x80 (data memory)
4761         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4762           operands (genAddLit expects the iCode's operands to swapped as
4763           well), fixed leftover bytes (crashed for short left operands)
4764         * (pic16_genMinusDec): performance improvements, removed false
4765           PIC14 emitSKPNCs
4766         * (pic16_genMinus): fixed to cope with differently sized operands
4767         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4768           for --obanksel > 1
4769         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4770         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4771           new banksel optimization
4772         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4773           analysis for temporary registers (segfaults...)
4774         * src/pic16/peeph.def: added rule
4775
4776 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4777
4778         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4779         which converts a float number to its ASCII representation
4780         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4781         functions to convert the fractional and integer part of a float to ASCII,
4782         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4783         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4784         ram
4785         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4786         _STATMEM macros,
4787         * device/include/pic16/adc.h: added GPL info,
4788         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4789         a pCodeOp as tested operand,
4790         * (genNearPointerGet): optimized bit testing, does not use
4791         intermediate register for bit value, test directly instead with
4792         BTFSS, BTFSC, works only for single bits,
4793         * (genpic16Code): dump the name of the iCode in the asm,
4794         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4795         renamed to pic16_decodeOp,
4796         * (serialRegAssign): do not allocate a temporary register for iCode
4797         sequences that test a single bit for 1/0
4798
4799 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4800
4801         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4802         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4803         access stack and frame pointers. They are initially assigned to
4804         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4805         accessing SFRs. Updated all occurences of modification of stack or
4806         frame pointer in gen.c and pcode.c,
4807         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4808         assigning of a literal value to pointers,
4809         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4810         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4811         selected
4812
4813 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4814
4815         * doc/sdccman.lyx: update documentation about stack pragma, added
4816         some info for stack memory models
4817
4818 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4819
4820         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4821
4822 2005-01-08 Raphael Neider <rneider AT web.de>
4823
4824         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4825           udata sections to fix bug #1097823
4826
4827 2005-01-05 Raphael Neider <rneider AT web.de>
4828
4829         * src/pic16/gen.c (genGenericShift): added handling of differently
4830           sized left operand and result
4831
4832 2005-01-04 Raphael Neider <rneider AT web.de>
4833
4834         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4835         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4836           to hold the condition bit)
4837         * added new version of genCmp (old code available via #define)
4838         * added new version of genShiftLeft/genShiftRight in a generic
4839           way, now supports shifting by negative values
4840         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4841           shiftCount (expected by genGenericShift)
4842         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4843         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4844           dump
4845         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4846           is an invalid literal too...)
4847
4848 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4849
4850         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4851         from Raphael Neider,
4852         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4853         for 8-bit literals. This fixes some literal operands which are sign
4854         extended to 16-bits ints when instruction needs only 8-bits.
4855
4856 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4857
4858         * device/lib/logf.c: added mcs51 assembly version
4859         * device/lib/expf.c: added mcs51 assembly version
4860         * device/lib/_logexpf.c: new shared asm code for expf and logf
4861         * device/include/math.h: add defines for assembly math library
4862         * device/lib/Makefile.in: build new _logexpf.c
4863         * device/lib/libfloat.lib: use new _logexpf.c
4864
4865 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4866
4867         * src/pic/device.c
4868         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4869           device types which have less than 0x7f registers.
4870
4871 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4872
4873         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4874
4875 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4876
4877         * device/lib/printf_fast.c: only build on supported arch.
4878         * device/lib/printf_tiny.c: only build on supported arch.
4879         * device/lib/printf_fast_f.c: only build if asm float lib
4880         * device/lib/_fsget1arg.c: only build if asm float lib
4881         * device/lib/_fsget2args.c: only build if asm float lib
4882         * device/lib/_fsnormalize.c: only build if asm float lib
4883         * device/lib/_fsreturnval.c: only build if asm float lib
4884         * device/lib/_fsrshift.c: only build if asm float lib
4885         * device/lib/_fsswapargs.c: only build if asm float lib
4886         * device/include/stdio.h: don't provide print_fast,
4887           print_fast_f, print_tiny prototypes if --xstack used
4888
4889 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4890
4891         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4892         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4893           to the SOURCES
4894
4895 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4896
4897         * device/lib/printf_fast_f.c: same as printf_fast, but
4898           with floating point enabled
4899         * device/lib/printf_fast.c: minor tweaks
4900         * device/include/stdio.h: add printf_fast_f
4901
4902 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4903
4904         * src/SDCCmain.c: make --float-reent default for mcs51
4905         * device/lib/_fsadd.c: added mcs51 assembly version
4906         * device/lib/_fssub.c: added mcs51 assembly version
4907         * device/lib/_fsmul.c: added mcs51 assembly version
4908         * device/lib/_fsdiv.c: added mcs51 assembly version
4909         * device/lib/_fseq.c: added mcs51 assembly version
4910         * device/lib/_fsneq.c: added mcs51 assembly version
4911         * device/lib/_fsgt.c: added mcs51 assembly version
4912         * device/lib/_fslt.c: added mcs51 assembly version
4913         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4914         * device/lib/Makefile.in: add _fscmp to build
4915         * device/lib/libfloat.lib: add _fscmp to build
4916
4917 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4918
4919         * device/lib/_fs2slong.c: added mcs51 assembly version
4920         * device/lib/_fs2sint.c: added mcs51 assembly version
4921         * device/lib/_fs2schar.c: added mcs51 assembly version
4922         * device/lib/_fs2ulong.c: added mcs51 assembly version
4923         * device/lib/_fs2uint.c: added mcs51 assembly version
4924         * device/lib/_fs2uchar.c: added mcs51 assembly version
4925         * device/lib/_slong2fs.c: added mcs51 assembly version
4926         * device/lib/_sint2fs.c: added mcs51 assembly version
4927         * device/lib/_schar2fs.c: added mcs51 assembly version
4928         * device/lib/_ulong2fs.c: added mcs51 assembly version
4929         * device/lib/_uint2fs.c: added mcs51 assembly version
4930         * device/lib/_uchar2fs.c: added mcs51 assembly version
4931         * device/include/float.h: added #define to select asm vs c
4932
4933 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4934
4935         * device/lib/printf_fast.c: improvements to float output
4936         * device/include/float.h: add defines for assembly float library
4937         * device/lib/_fsget1arg.c: receive 1 float arg
4938         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4939         * device/lib/_fsnormalize.c: normalize a float
4940         * device/lib/_fsreturnval.c: return float, various helper routines
4941         * device/lib/_fsrshift.c: right shift a float's mantissa
4942         * device/lib/_fsswapargs.c: swap 2 floats
4943         * device/lib/Makefile.in: build these 6 new files for mcs51
4944         * device/lib/libfloat.lib: add these 6 files to the library
4945
4946 2004-12-26 Borut Razem <borut.razem AT siol.net>
4947
4948         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4949           built by gcc 3.4.2
4950
4951 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4952
4953         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4954           and fully reentrant and register bank neutral.
4955         * device/lib/printf_fast.c: added float (not enabled by default),
4956           added compact/slower integer (also not enabled by default),
4957           improved size/speed of fast integer code, other minor changes
4958         * device/include/stdio.h, device/lib/Makefile.in,
4959           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4960
4961 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4962
4963         * src/pic16/pcode.c: declaring variables other than at the start of a
4964           block is not supported in C by VC6.
4965
4966 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4967
4968         * applied a previous patch from Raphael Neider that wasn't included
4969         in the previous commits, which fixes infinite loops within jumptable
4970         improvements,
4971         * made some fixes that previous patches introduced
4972
4973 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4974
4975         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4976         that fixes an issue with AOP_PCODE asmop's offset,
4977         * (pic16_popCopyReg): update instance field too,
4978         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4979         function of pic port,
4980         * (genCmp, genAnd, genAssign),
4981         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4982
4983 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4984
4985         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4986         variables initial values to idata section,
4987         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4988         variables in some functions. This utilizes parmBytes field of iCode
4989         structure to hold the offset of the variable in stack. (might be
4990         able to use the stack field too?)
4991         * applied patch from Raphael Neider # ### , # ###
4992         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4993         variable initial values in idata section,
4994         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4995         for static variables with initial value
4996         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4997         applied fix in while loop from Raphael Neider.
4998
4999 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5000
5001         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5002         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5003         * src/ds390/ralloc.c (serialRegAssign): spill bits
5004         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5005         * support/Util/SDCCerr.c,
5006         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5007         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5008         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5009
5010 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5011
5012         * device/include/sdcc-lib.h: inserted LGPL, added includes
5013           asm/ds390/features.h and asm/mcs51/features.h
5014         * device/include/asm/default/features.h,
5015         * device/include/asm/gbz80/features.h,
5016         * device/include/asm/z80/features.h: added empty _AUTOMEM
5017           and _STATMEM
5018         * device/include/asm/ds390/features.h,
5019         * device/include/asm/mcs51/features.h: added files with defines for
5020           _AUTOMEM and _STATMEM indicating automatic and static storage class
5021         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5022         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5023         * src/SDCCicode.c (geniCodeCast),
5024         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5025         * src/SDCCloop.c (loopInduction): removed unused variable lr
5026         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5027           to convertToFcall to include char modulo (RFE 1065037), added check
5028           if left operand is unsigned and use abs of literal value
5029         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5030           as it doesn't work after conversion from peephole.def to peephole.rul
5031         * src/mcs51/gen.c (toBoolean): added check for size,
5032           (genModOneByte): optimized code for signed char modulo a literal
5033           power of 2 (thanks to Hubert Sack),
5034           (genRRC): removed unnecessary "clr c",
5035           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5036         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5037           jump optimization,
5038           swapped rules 256.c and 256.d,
5039           extended 256.d by using new multiple checks (thanks Erik),
5040           added rules 256.e and 256.f,
5041           updated rule 261.a and 261.b to new generated code
5042         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5043
5044 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5045
5046         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5047           induction related bugs, including first part of bug #1074377
5048
5049 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5050
5051         * applied patch from bug-report #1076292,
5052         * applied patches for genAnd and Goto-optimizations for Raphael
5053         Neider,
5054         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5055         dump a less iCode information,
5056         * src/pic16/device.h (pic16_options_t): added field debgen,
5057         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5058         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5059         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5060         puclic,
5061         * (various functions): added macros FENTRY and FENTRY2 to functions,
5062         to emit function prologue,
5063         * (various functions): fixed indentation,
5064         * (genNearPointerGet): fixed loading of FSR0,
5065         * (genPackBits): applied patch from Raphael Neider to fix updating
5066         of FSR0 and touching only the modified bits,
5067         * src/pic16/genarith.c (various functions): added macros FENTRY to
5068         emit function prologue in comments,
5069         * src/pic16/pcode.h: added functions debugf2, debugf3,
5070         * src/pic16/ralloc.c: partial fix for packForPush caused
5071         segmentation fault,
5072
5073 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5074
5075         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5076           <stsp AT users.sourceforge.net> with reversed byte order
5077         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5078
5079 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5080
5081         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5082           bug #1074377
5083         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5084         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5085
5086 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5087
5088         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5089
5090 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5091
5092         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5093           conditions,
5094           (setFromConditionArgs): friendly operand parser for peephole rules,
5095           (operandBaseName, operandsNotRelated): new peephole condition
5096           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5097           architecture specific register naming into account, handles n-way
5098           comparisons, and supports quoted literals
5099         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5100
5101 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5102
5103         * src/mcs51/peeph.def: fixed bug #1076940
5104
5105 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5106
5107         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5108
5109 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5110
5111         Adding support for replacing ljmps with sjmps in jumptables
5112         generated for switch statements. For now you need to set the
5113         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5114         Now 4 algorithms for mcs51 jumptable generation are used:
5115         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5116         addresses loaded pc-relative for up to 112 cases and stack-pushing
5117         target addresses loaded with offset from dptr for up to 256 cases.
5118
5119         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5120         * src/mcs51/main.c: adapted constants for switch table generation
5121         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5122
5123 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5124
5125         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5126         * support/regression/tests/bug1057979.c: added test for bug 1073386
5127
5128 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5129
5130         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5131         compilers
5132
5133 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5134
5135         * src/pic16/device.h,
5136         * src/pic16/genarith.c,
5137         * src/pic16/glue.c,
5138         * src/pic16/main.c,
5139         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5140
5141 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5142
5143         Large cummulative patch for pic16 port.
5144         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5145         to call when a stack overflow occurs,
5146         * (malloc.h): added CVS Id tag,
5147         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5148         variable,
5149         * added libc directory. The current version of LibC contains string
5150         functions, ctype functions and macros and some functions of the
5151         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5152         be extensively tested in the future. Standard disclaimer here.
5153         Library is not automatically build yet. But one can build it by
5154         invoking 'make' inside the libc directory.
5155         * added ADC library under libio. Preliminary version yet.
5156
5157         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5158         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5159         aopForRemat() now and not by pic16_aopOp(),
5160         * (pic16_popGetTempReg): removed warning messgae when allocating
5161         temporary registers, its a buggy feature and will be removed,
5162         * (pic16_popGet): set register instance field in AOP_CRY,
5163         * (pic16_outBitC): fixed for results in size greater than 1,
5164         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5165         * (pic16_storeForReturn): optimized return of 0,
5166         * (genCmp): experimental code for new genCmp which uses PIC18's
5167         special compare&skip instructions. Initial tests fail some times
5168         with variables grater than 1 byte in size, so new code is disabled,
5169         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5170         a single bit,
5171         * (genCast): began a fix to optimize the casting of a bit to another
5172         bit, now assigning a bitfield to another bitfield will fail, sorry,
5173         * src/pic16/main.c: disabled the use of lr-support feature,
5174         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5175         * added some function prototypes, added function _debugf prototype,
5176         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5177         bits with offset (case PO_GPR_BIT),
5178         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5179         command line,
5180         * (isBankInstruction): modified to return 0 for no banking instruction,
5181         and 1 for banking instruction,
5182         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5183         caused stop processing pCodes after a inline assembly block,
5184         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5185         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5186         registers when it shouldn't,
5187         * src/pic16/ralloc.c (allocReg): add preliminary support for
5188         supporting a limited set of temporary registers,
5189
5190 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5191
5192         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5193           genDataPointerSet): ensure assignments always copy in MSB to LSB
5194           order,
5195           (loadRegFromAop): recognize CLRH optimization,
5196           (genFunction): optimize RECEIVE iCodes in reentrant functions
5197
5198 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5199
5200         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5201           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5202           selected.
5203         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5204         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5205           contiguous with data
5206
5207 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5208
5209         * device/lib/_gptrget.c (_gptrget),
5210         * device/lib/_gptrgetc.c (_gptrgetc),
5211         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5212           instead of sjmp to ret
5213         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5214           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5215
5216 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5217
5218         * .version: bumped version to 2.4.7
5219         * device/lib/_gptrget.c (_gptrget): is now _naked
5220         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5221         * device/lib/_gptrput.c (_gptrput): is now _naked
5222         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5223           (createFunction): fixed xstack
5224         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5225         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5226           or bit either,
5227           (geniCodeCritical): store original interrupt state in an iTemp bit
5228           var unless stack-auto
5229         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5230         * src/SDCCmain.c (setIncludePath): added include/target to search path
5231         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5232         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5233           prototype,
5234           (processFuncArgs): put bit vars in bit area
5235         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5236           unsaveRBank): fixed xstack,
5237           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5238           (genFunction, genEndFunction): fixed xstack,
5239           (genAssign): optimization don't walk backwards through mem
5240         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5241         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5242         * support/regression/Makefile: also make library (for stack-auto) when
5243           making "all" and added "test-mcs51-xstack-auto"
5244         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5245         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5246         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5247         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5248         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5249           make-library by MAKE_LIBRARY
5250         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5251           regression tests for xstack
5252         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5253         * support/regression/tests/critical.c: test for critical on mcs51
5254
5255 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5256
5257         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5258           built version of sdcc instead of installed version
5259
5260 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5261
5262         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5263         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5264           vprintf.c now
5265         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5266         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5267           WARNING: remove device/lib/build/z80/printf.o by hand when
5268           updating from previous build!
5269         * device/lib/z80/printf.c: updated comment
5270         * support/regression/tests/bug1057979.c: test all ports now
5271         * support/regression/tests/bug1065458.c: file added
5272
5273 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5274
5275         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5276           *_start and *_end symbols for static functions
5277
5278 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5279
5280         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5281           and search crt0.o in all library paths,
5282           (setIncludePath): proper handling of --nostdinc,
5283           (setLibPath): proper handling of --nostdlib
5284         * support/regression/Makefile,
5285         * support/regression/ports/ds390/spec.mk,
5286         * support/regression/ports/gbz80/spec.mk,
5287         * support/regression/ports/hc08/spec.mk,
5288         * support/regression/ports/mcs51/spec.mk,
5289         * support/regression/ports/mcs51-large/spec.mk,
5290         * support/regression/ports/mcs51-stack-auto/spec.mk,
5291         * support/regression/ports/z80/spec.mk: use include and lib files from
5292           built version of sdcc instead of installed version
5293         * doc/sdccman.lyx: fixed typo in --nostdinc
5294
5295 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5296
5297         * src/pic/pcode.c,
5298         * src/pic/device.c,
5299         * src/pic/ralloc.c,
5300         * src/pic/gen.c : added support to generate code for struct bit fields.
5301
5302 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5303
5304         * as/xa51/xa_version.h,
5305         * device/include/errno.h,
5306         * device/include/regc515c.h,
5307         * device/lib/_itoa.c,
5308         * device/lib/_ltoa.c,
5309         * device/lib/ser_ir_cts_rts.c,
5310         * sim/ucsim/xa.src/glob.cc,
5311         * sim/ucsim/xa.src/inst_gen.cc,
5312         * sim/ucsim/xa.src/xa_bit.cc,
5313         * sim/ucsim/xa.src/xa_sfr.cc,
5314         * sim/ucsim/z80.src/inst_dd.cc,
5315         * sim/ucsim/z80.src/inst_fdcb.cc,
5316         * support/scripts/keil2sdcc.pl,
5317         * src/pic16/pic16.dsp,
5318         * src/pic16/pic16a.dsp: corrected cvs line endings
5319         * device/lib/printf_large.c: fixed bug 1057979
5320         * src/pic16/gen.c: fixed non-C standard code
5321         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5322         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5323         * support/regression/ports/mcs51/support.c: reload T1 asap
5324         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5325           pdata use and clear idata startup behaviour
5326         * support/regression/tests/bug1057979.c: added
5327
5328 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5329
5330         * device/examples/ds390/ow390/ad26.h,
5331         * device/examples/ds390/ow390/cnt1d.h,
5332         * device/examples/ds390/ow390/crcutil.c,
5333         * device/examples/ds390/ow390/ownet.h,
5334         * device/examples/ds390/ow390/owsesu.c,
5335         * device/examples/ds390/ow390/swt12.h,
5336         * device/examples/ds390/ow390/swtoper.c,
5337         * device/examples/ds390/ow390/temp10.h,
5338         * device/examples/ds390/ow390/thermodl.c,
5339         * device/examples/ds390/tinitalk/tinitalk.dsp,
5340         * device/examples/ds390/tinitalk/tinitalk.dsw,
5341         * device/examples/mcs51/clock/hw.h,
5342         * device/examples/mcs51/simple2/go.bat,
5343         * device/examples/serialcomm/windows/serial.h,
5344         * device/examples/xa51/dummy.c,
5345         * device/examples/xa51/hello.c,
5346         * device/include/80c51xa.h,
5347         * device/include/at89x051.h: corrected cvs line endings
5348
5349 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5350
5351         * src/pic16/main.c (options): added command line --gstack, to trace
5352         stack over/under flows,
5353         * added pragma 'wparam' to allow passing first byte of function
5354         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5355         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5356         call to __gstack_test function and sets up the symbol as extern,
5357         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5358         * popaop): added call to pic16_testStackOverflow,
5359         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5360         wparamList list,
5361         * (genCall, genPcall): now all parameters are passed via stack
5362         except in functions that are pass to wparam pragma in which WREG is
5363         used too,
5364         * (genPcall): REENTRANT flag is checked to see if variable prototype
5365         contains reentrant keyword, don't call a non-reentrant function, via
5366         a reentrant function pointer or vice versa, functions are never
5367         passed via WREG,
5368         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5369         D.Winkler,
5370         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5371         SIGSEGV when accessing a NULL register stucture,
5372         * (pic16_printGPointerType): modified to handle UPPER modifier for
5373         function initializers, changed prototype of function to simpler one,
5374         * (pic16_printIvalFuncPtr): check to see if function is already
5375         added in externs list,
5376         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5377         optimized a move from W to SFR with a move to the same register
5378         later after a CALL,
5379         * device/lib/pic16/debug: NEW directory, contains debug features
5380         which are enabled when linking with libdebug.lib, currently command
5381         line option --gstack enables stack pointer tracing for over/under
5382         flow, corresponding sources are in debug/gstack
5383
5384 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5385
5386         * doc/sdccman.lyx: updated SDCC version,
5387         * (PIC16 port): update list of command line options,
5388         * src/pic16/device.h (structure pic16_options_t): added field gstack
5389         to enable stack overflow tracing on push/pops,
5390         * src/pic16/device.c (statistics structure): added statistics
5391         structure,
5392         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5393         pic16_dump_int_registers): increase statistics counters for each
5394         * variable which is encountered
5395         * (pic16_dump_usection): emit each .udata variable to its own udata
5396         section,
5397         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5398         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5399         parameters via stack, otherwise use old scheme,
5400         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5401         assembler output file,
5402         * src/pic16/main.c: added command line options --gstack to enable
5403         push/pop tracing for stack overflow,
5404         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5405         instructions): added size of each instruction,
5406         * (pic16_countInstruction): estimate size of instructions in
5407         the_pFile list, inline assembly blocks are not counted,
5408         * (pic16_FixRegisterBanking): trace previous register usage, when
5409         banksel optimizations is greater than 0, don't emit a redudant
5410         banksel directive,
5411
5412 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5413
5414         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5415         * src/pic16/ralloc.c : applied same fix for pic16.
5416         * src/pic/gen.c : tidied it up a little.
5417
5418 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5419
5420         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5421         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5422
5423 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5424
5425         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5426
5427 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5428
5429         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5430         non-reentrant function __modsint in the interrupt function (thus
5431         corrupting math operations during serial I/O)
5432         * device/lib/ser_ir.c: as above, changed buffersize
5433         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5434         256.c,d for zeroing
5435         * doc/Makefile: added option -t for rsync
5436
5437 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5438
5439         * src/SDCCast.h (struct ast),
5440         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5441
5442 2004-10-20 Borut Razem <borut.razem AT siol.net>
5443
5444         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5445         package
5446
5447 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5448
5449         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5450         makefile targets,
5451         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5452         support functions to replace long sequences of MOVFF's from access
5453         bank registers to stack and vice versa,
5454         * src/pic16/device.h: added new field opt_flags, where optimization
5455         flags can be set to enable certain features,
5456         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5457         * pBlock, (genFunction, genEndFunction): surroung loop for
5458         saving/loading used registers in stack with PC_INFO pCodes,
5459         INF_LREGS. Code in between can then be optimized by pCode optimizer
5460         to support function calls,
5461         * (genDataPointerSet): fixed bug which loaded float fields in
5462         structures with corrupt data,
5463         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5464         in a standard way debug info on stderr. Feature used for developing
5465         and debugging only,
5466         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5467         obsolete chunks of code,
5468         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5469         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5470         * pic16/src/pcode.c (pic16_newpCodeInfo,
5471         * (pic16_newpCodeOpLocalRegs),
5472         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5473         feature,
5474         * (pic16_pCodeConstString): printing of the initial value of a
5475         symbol as a comment is inhibited since parsing was already done by
5476         copyStr and output is corrupt,
5477         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5478
5479 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5480
5481         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5482
5483 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5484
5485         * as/mcs51/lkarea.c: removed old K&R style,
5486           (lnksect): changed check on boundary error,
5487           (lnksect2): changed check on boundary error,
5488           (lnksect2): extend XSTK to end of page if size = 1
5489         * as/mcs51/lkmain.c: removed old K&R style,
5490           (Areas51): create l_IRAM symbol
5491         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5492         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5493           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5494         * device/lib/_mullong.c: added version to be compiled with xstack
5495         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5496         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5497         * device/lib/mcs51/crtxstack.asm: fixed comment
5498         * src/SDCCglue.c: maxInterrupts defaults to 0,
5499           (emitMaps): added pdata,
5500           (createInterruptVect): (re)moved default,
5501           (glue): added pdata,
5502           (glue): moved __start__xstack to XSTK with default size 1
5503         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5504           and options.float_rent when options.stackAuto is set,
5505           (linkEdit): only write XDATA_NAME if provided on command line
5506         * src/SDCCmem.h,
5507         * src/SDCCmem.c: added pdata
5508         * src/port.h: added pdata_name to PORT
5509         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5510           (saveRegisters, unsaveRegisters): removed usage of B,
5511           (genMinus): fixed accumulator clash,
5512           (genJumpTab): added comment, this needs another look
5513         * src/mcs51/gen.c: added check for "B in use" paranoia,
5514           added pushB() and popB()
5515         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5516           chance
5517         * src/avr/main.c,
5518         * src/ds390/main.c,
5519         * src/hc08/main.c,
5520         * src/mcs51/main.c,
5521         * src/pic/main.c,
5522         * src/pic16/main.c,
5523         * src/xa51/main.c,
5524         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5525           added PSEG (PAG,XDATA) or NULL to port specifier
5526         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5527         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5528           (_mcs51_genInitStartup): removed __start__xstack equ,
5529           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5530         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5531         * src/z80/gen.c (_rleAppend): fixed warnings
5532         * support/regression/tests/zeropad.c: added pdata test
5533         * .version: bumped to 2.4.6
5534
5535 2004-10-17 Borut Razem <borut.razem AT siol.net>
5536
5537         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5538         as a part of nightly build
5539
5540 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5541
5542         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5543         WREG holds the first byte function parameters,
5544         * (aopForSym): take special case for symbols which are in FARSPACE
5545         but in CODESPACE too,
5546         * (assignResultValue): modified to take into account _G.useWreg,
5547         * (genCall): don't use wreg for parameter passing when function is
5548         declared as reentrant, too, added optimization INCF to stack
5549         pointer when stack parameter count is 1,
5550         * (genFunction, genEndFunction): refurnished and fixed to not using
5551         wreg for passing parameters when function has varargs or is
5552         reentrant, fixed bug with symbol name compare for generating
5553         functions in absolute address,
5554         * (pic16_storeForReturn): refurnished,
5555         * (genCmp): began writing a new version of the function, not ready
5556         yet, therefore it is disabled,
5557         * (genAssign): do not read code memory when assigning a function to
5558         a pointer function,
5559         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5560         array of characters, not pointer,
5561         * (pic16initialComments): in debug mode emit an .ident directive for
5562         the assembler,
5563         * (_process_pragma): emit a new warning type (internal to pic16)
5564         when setting stack to default length, emit a similar warning when
5565         placing a function at absolute address and address is not word aligned
5566         * (_pic16_parseOptions): added 'return TRUE' statement,
5567         * (_pic16_linkEdit): if compiling a source, then add the source's
5568         file object, first in the list of objects to link,
5569
5570 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5571
5572         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5573         * src/pic/main.c : removed VC warning.
5574         * src/pic/gen.c : changed comment.
5575
5576 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5577
5578         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5579         reference to a deprecated symbol _GPTRREG was causing failure to
5580         link. Thanks G. M. Gallant for the info.
5581
5582 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5583
5584         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5585         comments for Bugs item #954788.
5586
5587 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5588
5589         * src/pic16/device.c (pic16_dump_gsection,
5590         * pic16_groupRegistersInSection): handle symbols declared to be in
5591         access bank differently,
5592         * src/pic16/gen.c (struct _G): added field resDirect,
5593         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5594         send values read from stack directly to result and don't allocate
5595         temporary values,
5596         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5597         same registers,
5598         * (pic16_sameRegsOfs): NEW,
5599         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5600         free because they were not allocated from temporary pool,
5601         * pic16_popRegFromString): workaround to fix a problem with
5602         allocating variables twice or never,
5603         * (genGenPointerGet): using PRODL instead of FSR0H,
5604         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5605         instead of FSR0H,
5606         * (genAssign): take advantage of the _G.resDirect flag,
5607         * (genCast): around line 11844, use mov2f instead of directly
5608         MOVFF'ing between operands to account for literal values,
5609         * src/pic16/genutils.c: some new debug functions for gpsim have been
5610         added,
5611         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5612         float with integer part only,
5613         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5614         place variables in access bank
5615         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5616         updated sources to reflect recent changes in gen.c
5617
5618 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5619
5620         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5621         sources that searched for headers in installation path, now the
5622         device/include/pic16 is used,
5623         * src/pic16/glue.c (pic16glue),
5624         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5625         .line directives if not in debug mode, this suppresses assembler's
5626         warnings for ignored directives
5627
5628 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5629
5630         * src/port.h: made reset_regparms prototype void parameter explicit.
5631         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5632         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5633         * doc/sdccman.lyx: documented warning disabling and how to use
5634           printf_large to make it print floats.
5635         * device/include/stdbool.h: NEW
5636         * device/lib/_atof.c,
5637         * device/lib/_divuint.c,
5638         * device/lib/_divulong.c,
5639         * device/lib/expf.c,
5640         * device/lib/printf_large.c,
5641         * device/lib/sincosf.c,
5642         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5643         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5644           a completely reentrant lib.
5645
5646 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5647
5648         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5649         * device/include/pic16/stdio.h: fixed bug with colon
5650
5651 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5652
5653         * device/include/pic16/stdio.h,
5654         * device/include/pic16/stdlib.h,
5655         * device/include/pic16/math.h: NEW
5656         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5657         declared as _naked to reduce overhead
5658         * device/lib/Makefile.in (target port-specific-objects-pic16):
5659         changed * to *.* so to ignore the CVS directory,
5660         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5661         stacked variables back in stack,
5662         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5663         corruption
5664
5665 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5666
5667         * .version: bumped version number to 2.4.5
5668         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5669         * support/Util/SDCCerr.c (messages structure): added entry for
5670         W_POSSBUG2
5671
5672         Large cumulative patch for pic16 port and libraries.
5673         * device/include/pic16/sdcc-lib.h,
5674         * device/include/pic16/stdarg.h,
5675         * device/include/asm/pic16/features.h,
5676         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5677         * device/include/pic16/float.h: changes reentrant keyword with
5678         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5679         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5680         updated target build-libraries to include objects from gptr,
5681         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5682         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5683         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5684         all function headings,
5685         * src/SDCCmain.c: added global parameter userIncDirsSet,
5686         * (parseCmdLine): when option -I is encountered add directory to
5687         userIncDirsSet too,
5688         * src/version.awk: added space between control and long,
5689         * src/pic16/NOTES: added some notes for the port,
5690         * src/pic16/gen.c: added prototype for mov2fp function,
5691         * (fReturnpic16[]): properly named return value registers,
5692         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5693         * (aopForSym): added code to handle symbols with onStack flag set,
5694         symbols onStack are allocated PTRSIZE bytes,
5695         * (aopFreeAsmop): handles special case where asmops are stack objects,
5696         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5697         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5698         added argument lock to trace flaws in allocating temporary registers
5699         when developing port,
5700         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5701         * (pic16_popRegFromString): reenabled allocating a direct register
5702         from string,
5703         * (assignResultValue): various beautifications,
5704         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5705         referenced function argument,
5706         * (genIpush): reenabled to allow stacked arguments, handles only
5707         ic->parmPush iCodes,
5708         * (genCall, genPcall): major changes to allow for variable argument
5709         functions, fixed a bug with falsely restoring stack pointer after
5710         returning from call,
5711         * (genFunction): pending code for critical function,
5712         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5713         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5714         * (genNearPointerGet): fixed bug with indirect reading, was always
5715         reading from INDF0
5716         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5717         pointers,
5718         * (genAddrOf): rewrote code to take address of a stacked function parameter
5719         * (genCast): fixed casting to generic pointer type,
5720         * src/pic16/gen.h: added AOP_STA,
5721         * (struct asmop): added field stk,
5722         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5723         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5724         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5725         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5726         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5727         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5728         generic pointers,
5729         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5730         and library paths,
5731         * (pic16_port structure): generic pointer size is set to 3,
5732         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5733         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5734         compiler warning,
5735         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5736         operand is an iTemp,
5737
5738 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5739
5740         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5741         * debugger/mcs51/simi.c: addapt new syntax of s51
5742
5743 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5744
5745         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5746         * src/pic16/pcode.c: commented out some calls to free() in order to
5747         fix bug #989576,
5748
5749 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5750
5751         * src/SDCCicode.h,
5752         * src/SDCCicode.c (isiCodeInFunctionCall),
5753         * src/avr/ralloc.c (selectSpil),
5754         * src/pic/ralloc.c (selectSpil),
5755         * src/pic16/ralloc.c (selectSpil),
5756         * src/ds390/ralloc.c (selectSpil),
5757         * src/hc08/ralloc.c (selectSpil),
5758         * src/xa51/ralloc.c (selectSpil),
5759         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5760         stack in the middle of a function call sequence (fixes bug #1020268)
5761         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5762         costs associated with the minimum switch case.
5763
5764 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5765
5766         * src/SDCC.lex: fixed bug #1030549
5767
5768 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5769
5770         * src/SDCCcse.h (struct cseDef),
5771         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5772         over a function call if the CSE is derived from a symbol whose
5773         address has been taken (fixes bug #1029883)
5774         * support/regression/tests/bug-1029883: a new regression test for
5775         this bug
5776
5777 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5778
5779         * src/hc08/gen.c (emitinline): fixed bug #1029778
5780         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5781         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5782         and starts toward RFE #905167)
5783
5784 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5785
5786         * src/pic16/gen.c (mov2f): New function to move an operand to
5787         another without considering if it is a literal or a register,
5788         * (pic16_sameRegs): don't check if they are both AOP_REG,
5789         * (AccRsh): removed andmask=0 lines,
5790         * (genLeftShift): duplicated to be improved in future versions,
5791         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5792         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5793         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5794         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5795         * (insertBankSwitch): fixed inserting banksel directives algorithm
5796         for instructions that follow a skip instruction, this fixes a report
5797         for broken subtraction code generation,
5798         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5799         iCode is a left op, just in case result and right share the same
5800         registers
5801
5802 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5803
5804         * src/hc08/main.c,
5805         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5806         preservation of HX
5807         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5808         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5809         on 2004-09-12; it was buggy
5810
5811 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5812
5813         * src/SDCCsymt.h: removed RESULT_CHECK
5814         * src/SDCCast.c,
5815         * src/SDCCglue.c,
5816         * src/SDCCval.c,
5817         * src/pic/glue.c,
5818         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5819
5820 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5821
5822         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5823         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5824         configuration values no more rejected by compiler, they are assigned
5825         to configuration registers with a warning message instead,
5826         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5827         the for-loop so last conf register is emitted too,
5828         * (_pic16_initPaths): link library libsdcc.lib by default,
5829         * (_hasNativeMulFor): modified test for multiplication according to
5830         Raphael Neider's remarks. Integer multiplication is also done with
5831         support functions,
5832         * device/include/pic16/pic18fregs.h: corrected type error in while
5833         testing and including 18f6720 header file
5834
5835 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5836
5837         * src/pic16/device.h (pic16_options): removed field use_crt,
5838         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5839         until an optimization to handle single bits is added,
5840         * (pic16_loadFSR0): moved before genUnpackBits,
5841         * (genAnd): some white lines removed,
5842         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5843         leave_reset flags in pic16_options when using crt modules,
5844
5845 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5846
5847         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5848           for bugs 898889 & 979599. Also used some safer print instructions.
5849
5850 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5851
5852         * src/pic16/device.h (pic16_options_t): added field use_crt,
5853         crt_name, no_crt,
5854         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5855         catch a probable future bug,
5856         * src/pic16/gen.c: aopIdx function commented out,
5857         * (genAssign): commented out old code which used aopIdx,
5858         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5859         code, added if conditionals to take into account the --use-crt
5860         command line options,
5861         * src/pic16/main.c (pic16_optionsTable): added new command line
5862         options, --use-crt= and --no-crt,
5863         * (_pic16_linkEdit): now the proper crt object is added in the
5864         linker command line except than when --no-crt is specified,
5865         * src/pic16/pcode.c,
5866         * src/pic16/pcode.h: added some structures and functions for a new
5867         optimization scheme to compansate for instruction overhead between
5868         same iCodes, this scheme is currently under development and is not
5869         working in any way,
5870         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5871         to && operator,
5872         * device/lib/pic16/startup/crt0i.c,
5873         * device/lib/pic16/startup/crt0iz.c: added global char variable
5874         __uflags to force the generation of an idata section
5875
5876 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5877
5878         * doc/Makefile,
5879         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5880         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5881
5882 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5883
5884         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5885         Frieder) and clarified the default code optimization mode
5886
5887 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5888
5889         * src/SDCC.lex (doPragma, process_pragma),
5890         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5891         "opt_code_size", and "opt_code_balanced"
5892         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5893         regrouped options by category, added support for category headers
5894         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5895         and "--opt-code-size"
5896         * doc/sdccman.lyx: documented these new options and pragmas
5897         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5898         preference into account
5899
5900 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5901
5902         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5903           geniCodePreDec): Fixed bug 904237 by generating a warning
5904         * src/SDCCerr.h,
5905         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5906
5907 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5908
5909         * src/pic/device.c : When no max ram set validate full memory range.
5910         * src/pic/pcode.c,
5911         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5912
5913 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5914
5915         * device/lib/_gptrget.c,
5916         * device/lib/_gptrput.c: updated comment
5917         * device/lib/calloc.c,
5918         * device/lib/free.c,
5919         * device/lib/malloc.c,
5920         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5921         * src/SDCCcse.c (cseBBlock),
5922         * src/SDCCicode.c (printOperand, geniCodeArray),
5923         * src/SDCCicode.h (struct operand): fixed bug 868103
5924         * support/regression/tests/bug-868103.c: added
5925         * src/SDCCast.c (searchLitOp),
5926         * src/SDCCcse.h (struct cseDef),
5927         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5928         * src/SDCCicode.h (struct operand),
5929         * src/SDCCsymt.h (struct sym_link),
5930         * src/avr/gen.c (hasInc),
5931         * src/ds390/gen.c (hasInc),
5932         * src/hc08/gen.c (genPlusIncr, hasInc),
5933         * src/mcs51/gen.c (hasInc),
5934         * src/pic16/glue.c (pic16_printIvalChar),
5935         * src/pic16/ralloc.c (regWithIdx),
5936         * src/xa51/gen.c (hasInc) : removed warnings
5937         * src/SDCCast.c (createBlock): added comment ???
5938         * src/hc08/ralloc.c: updated comments
5939
5940 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5941
5942         * doc/sdccman.lyx: updated section on switch statements, added
5943         section about semaphore locking
5944         * doc/Makefile: added option -info for latex2html
5945         * device/lib/_gptrget.c,
5946         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5947
5948 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5949
5950         * src/pic/device.h,
5951         * src/pic/device.c,
5952         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5953          maxram is less than 0x100.
5954
5955 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5956
5957         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5958
5959 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5960
5961         * src/port.h,
5962         * src/mcs51/main.c,
5963         * src/ds390/main.c,
5964         * src/z80/main.c,
5965         * src/hc08/main.c,
5966         * src/pic/main.c,
5967         * src/pic16/main.c,
5968         * src/avr/main.c,
5969         * src/xa51/main.c
5970         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5971         a jump table is the best form for a switch statement, including
5972         automatic insertion of missing cases to make the case range
5973         continuous. Developed in collaboration with Frieder Ferlemann.
5974
5975 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5976
5977         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5978         accumulator result if it needs sign extension
5979
5980 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5981
5982         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5983
5984 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5985
5986         * device/lib/gbz80/printf.c,
5987         * device/lib/z80/printf.c: removed define for NULL
5988
5989 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5990
5991         * as/xa51/xa_link.c,
5992         * device/examples/ds390/ow390/ad26.c,
5993         * device/examples/ds390/ow390/cnt1d.c,
5994         * device/examples/ds390/ow390/counter.c,
5995         * device/examples/ds390/ow390/ds2480.h,
5996         * device/examples/ds390/ow390/ds2480ut.c,
5997         * device/examples/ds390/ow390/findtype.c,
5998         * device/examples/ds390/ow390/gethumd.c,
5999         * device/examples/ds390/ow390/owllu.c,
6000         * device/examples/ds390/ow390/ownetu.c,
6001         * device/examples/ds390/ow390/swt12.c,
6002         * device/examples/ds390/ow390/swtloop.c,
6003         * device/examples/ds390/ow390/temp.c,
6004         * device/examples/ds390/ow390/temp10.c,
6005         * device/examples/ds390/ow390/thermo21.c,
6006         * device/examples/ds390/ow390/tinilnk.c,
6007         * device/examples/ds390/ow390/tstfind.c,
6008         * device/examples/serialcomm/windows/serial.cpp,
6009         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6010         * device/include/reg51.h: fixed line endings for cvs
6011
6012 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6013
6014         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6015         packRegsForAccUse, packRegisters): new accumulator register
6016         packing algorithm
6017         * support/regression/ports/hc08/support.c (_putchar): suppress
6018         warning of unused variable
6019         * src/SDCCicode.c: added SWAP entry to codeTable
6020
6021 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6022
6023         * device/lib/sprintf.c: forgot to add this file before previous commit
6024
6025 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6026
6027         * src/pic16/gen.c (genPackBits): added operand right in function
6028         parameters, load result directly if p_type is POINTER (that is
6029         called by genNearPointerSet)
6030         * (genUnPackBits): added operand left in function parameters,
6031         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6032         FSR0 if accessing bitfields,
6033
6034 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6035
6036         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6037           _print_format; updated printf, sprintf, vsprintf
6038         * device/include/asm/default/features.h: corrected comment/define
6039         * device/lib/Makefile.in: added sprintf.c
6040         * device/lib/libsdcc.lib: added sprintf module
6041         * device/lib/printf_large.c,
6042         * device/lib/vprintf.c,
6043         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6044           into these 3 files
6045         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6046         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6047         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6048           hc08 test
6049         * support/regression/tests/zeropad.c: define idata as data for hc08
6050
6051 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6052
6053         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6054         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6055         labels are referenced at least once (even if a reference is not found)
6056         * src/hc08/gen.c (emitcode): set isComment flag for comments
6057         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6058         loads), rules 6a..6b (optimize jumps to return)
6059
6060 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6061
6062         * device/lib/acosf.c (acosf),
6063         * device/lib/asinf.c (asinf),
6064         * device/lib/atanf.c (atanf),
6065         * device/lib/ceilf.c (ceilf),
6066         * device/lib/cosf.c (cosf),
6067         * device/lib/coshf.c (coshf),
6068         * device/lib/cotf.c (cotf),
6069         * device/lib/fabsf.c (fabsf),
6070         * device/lib/floorf.c (floorf),
6071         * device/lib/log10f.c (log10f),
6072         * device/lib/logf.c (logf),
6073         * device/lib/sinf.c (sinf),
6074         * device/lib/sinhf.c (sinhf),
6075         * device/lib/sqrtf.c (sqrtf),
6076         * device/lib/tanf.c (tanf),
6077         * device/lib/tanhf.c (tanhf),
6078         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6079         replaced all instances of "reentrant" in the library functions
6080         defined in math.h with this macro.
6081         * support/regression/tests/float_trans.c: reenabled test for hc08
6082
6083 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6084
6085         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6086         erroneously deleted
6087
6088 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6089
6090         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6091         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6092         multi-byte volatile operands are used
6093         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6094         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6095         initialization to area GSINIT0 so that it would always precede
6096         any static initializers in GSINIT
6097         * support/regression/tests/zeropad.c: fixed idata define for hc08
6098         * support/regression/tests/bug-927659.c,
6099         * support/regression/tests/float_trans.c: disabled tests for hc08
6100         pending missing library routines
6101         * .version: increased version number to 2.4.4 - hc08 port now passes
6102         regression tests
6103
6104
6105 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6106
6107         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6108         * Makefile.common.in,
6109         * as/Makefile,
6110         * as/hc08/Makefile.in,
6111         * as/mcs51/Makefile.in,
6112         * as/z80/Makefile.in,
6113         * debugger/mcs51/Makefile.in,
6114         * device/include/Makefile.in,
6115         * device/lib/Makefile.in,
6116         * doc/Makefile,
6117         * link/Makefile,
6118         * link/z80/Makefile.in,
6119         * packihx/Makefile.in,
6120         * sim/ucsim/main_in.mk,
6121         * sim/ucsim/avr.src/Makefile.in,
6122         * sim/ucsim/doc/Makefile.in,
6123         * sim/ucsim/gui.src/serio.src/Makefile.in,
6124         * sim/ucsim/hc08.src/Makefile.in,
6125         * sim/ucsim/s51.src/Makefile.in,
6126         * sim/ucsim/xa.src/Makefile.in,
6127         * sim/ucsim/z80.src/Makefile.in,
6128         * src/Makefile.in,
6129         * support/cpp2/Makefile.in,
6130         * support/librarian/Makefile,
6131         * support/makebin/Makefile: added DESTDIR to the install path proposed
6132         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6133         * doc/sdccman.lyx: added DESTDIR documentation
6134
6135 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6136
6137         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6138         instruction for interrupt handlers, use fast returns when returning
6139         from high priority interrupts
6140
6141 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6142
6143         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6144         code generation
6145         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6146         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6147         bugs, ported much of Bernhard's code from mcs51
6148         * src/mcs51/gen.c (genSend),
6149         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6150         than one when calling a reentrant function
6151         * device/lib/_mullong.c: defined an alternate struct layout for big
6152         endian ports (hc08)
6153
6154 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6155
6156         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6157         test
6158
6159 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6160
6161         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6162         are sane and complete before asking the port its prefered parameter
6163         passing method (fixes bug #1017633)
6164         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6165         and _ret3
6166
6167 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6168
6169         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6170         problem in bitfields >= 8 bits.
6171
6172 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6173
6174         * src/SDCCsymt.c: undid changes that were not meant to be committed
6175
6176 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6177
6178         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6179
6180 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6181
6182         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6183           copied and wrong bit got inverted
6184
6185 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6186
6187         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6188         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6189         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6190         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6191         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6192         assignments to bitfields at known addresses
6193         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6194         reads from bitfields at known addresses
6195         * src/hc08/ralloc.c (packRegisters),
6196         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6197         genhc08Code): optimize pointer get values used as conditionals
6198         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6199         and branch
6200
6201 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6202
6203         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6204         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6205         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6206         as conditionals
6207
6208 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6209
6210         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6211
6212 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6213
6214         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6215         related problems
6216
6217 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6218
6219         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6220
6221 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6222
6223         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6224         mcs51 port
6225
6226 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6227
6228         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6229
6230 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6231
6232         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6233         cases use more compact code.
6234
6235 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6236
6237         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6238
6239 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6240
6241         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6242
6243 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6244
6245         * src/SDCCsymt.h,
6246         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6247         parameter of changePointer() from symbol* to sym_link*
6248         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6249         * src/SDCCsymt.c (compareType): void* type is castable to other
6250         pointers, but not necesarily an exact match.
6251         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6252         is no longer blindly treated as an exact match.
6253         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6254
6255 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6256
6257         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6258
6259 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6260
6261         * src/pic/gen.c,
6262         * src/pic/pcode.c,
6263         * src/pic/ralloc.h,
6264         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6265
6266 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6267
6268         * src/pic/device.c,
6269         * src/pic/device.h,
6270         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6271
6272 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6273
6274         * src/mcs51/gen.c (emitcode): fixed bug #992819
6275
6276 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6277
6278         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6279           there's no need to make it worse
6280
6281 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6282
6283         * src/mcs51/ralloc.c (deassignLR),
6284         * src/ds390/ralloc.c (deassignLR),
6285         * src/hc08/ralloc.c (deassignLR),
6286         * src/z80/ralloc.c (deassignLR),
6287         * src/pic/ralloc.c (deassignLR),
6288         * src/pic16/ralloc.c (deassignLR),
6289         * src/avr/ralloc.c (deassignLR),
6290         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6291         rlivePoint): fixed another part of bug #971834
6292
6293 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6294
6295         * src/z80/main.c: enabled "critical" keyword
6296         * src/z80/mappings.i,
6297         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6298         functions (fixes bug #979646)
6299         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6300
6301 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6302
6303         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6304           such as c:\mydir.
6305
6306 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6307
6308         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6309           doesn't disable too much optimizations
6310
6311 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6312
6313         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6314
6315 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6316
6317         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6318
6319 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6320
6321         * src/pic/gen.c tidied up tabs
6322         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6323         * src/pic/main.c tidied up tabs
6324         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6325         * src/pic/pcoderegs.c tidied up tabs
6326         * src/pic/ralloc.c tidied up tabs
6327
6328 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6329
6330         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6331         to S_FIXED for pic16 port and when symbol is not in level 0,
6332         allocate for S_REGISTER storage class and pic16 port, too,
6333         * src/pic16/device.h: prototype for checkSym,
6334         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6335         * (pic16_assignConfigWordValue): test the value and the mask to
6336         validate that the value is suitable for the configuration word,
6337         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6338         collect extern declared symbols, don't emit symbol twice, check
6339         first if symbol is in publics set first,
6340         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6341         * added command line '--fstack' which enables an experimental
6342         feature for stack access, too buggy to be used yet...
6343         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6344         * (pic16_allocDirReg): when register has storage class S_REGISTER
6345         allocate in pic16_dynAccessRegs,
6346         * device/include/pic16/pic18f????.h: modified configuration word
6347         naming convention, words started as CONFIG0H but should be CONFIG1H
6348
6349 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6350
6351         * device/include/mcs51reg.h: fixed bug 970993
6352
6353 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6354
6355         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6356         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6357         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6358         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6359         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6360         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6361           error/warning numbers,
6362           added function setWarningDisabled()
6363         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6364         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6365           _memcmp.c _memmove.c calloc.c realloc.c free.c
6366         * support/regression/tests/malloc.c: added tests for new functionality
6367         * support/regression/tests/zeropad.c: added tests for truncated initializers
6368           and initialized char arrays starting with '\x0'
6369         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6370
6371 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6372
6373         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6374
6375 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6376
6377         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6378         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6379         peephole 177.e. Thanks to anonymous
6380
6381 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6382
6383         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6384         function isn't used in the source but referenced as a
6385         variable initializer then declare it as extern in .asm file
6386
6387 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6388
6389         * .version: increased version number to 2.4.3
6390
6391         Adding version extension according to ChangeLog CVS revision
6392         * src/Makefile.in (target all): added dependency 'version.h'
6393         * (rule version.h): added rule to create version.h from ChangeLog,
6394         * (rule dep): added dependency version.h,
6395         * src/version.awk: AWK script to create version.h
6396         * src/SDCCdwarf2.c (dwWriteModule),
6397         * src/SDCCglue.c (initialComments),
6398         * src/SDCCmain.c (printVersionInfo): modified to write after
6399         version string the version extension number,
6400         * src/SDCCutil.c: included "version.h"
6401         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6402         number,
6403         * src/SDCCutil.h: added prototype for getBuildNumber
6404
6405         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6406         includeDirsSet, too,
6407         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6408         const char [] is found in function prototype...
6409
6410         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6411         moving to WREG with source is already in WREG,
6412         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6413         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6414         * (aopForSym): stack'ed symbols are partially supported, added
6415         if-clause to support symbols in FARSPACE,
6416         * (sameRegs): added test for AOP_ACC to see if registers are same,
6417         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6418         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6419         * (pic16_popRegFromString): will not allocate a new register if it
6420         doesn't find one by name, bug may have introduced...
6421         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6422         * (genIpush): revived to use pic16 port's stack,
6423         * (genAddrOf): added incomplete case for stack'ed operand,
6424         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6425         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6426         can handle multibyte operands,
6427         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6428         * (pic16initialComments): added message for MPLAB compatibility
6429         mode enabled,
6430         * src/pic16/main.h: prototype for pic16_mplab_comp,
6431         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6432         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6433         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6434         because of increased complexity of procedure,
6435         * (_process_pragma): stack pragma changed to format 'stack pos len',
6436         emit symbol '_stack_end' to conform with gplink,
6437         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6438         to search for register,
6439         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6440         PO_GPR_REGISTER,
6441         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6442         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6443         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6444         case for PO_GPR_REGISTER,
6445         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6446         dies, the new era is ahead !...
6447         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6448         pic16_dynInternalRegs,
6449         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6450         * (pic16_allocDirReg): minor optimizations and bug fixes,
6451         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6452
6453         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6454         load stack and frame pointer with address of 'stack_end' symbol
6455
6456 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6457
6458         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6459         without source code but only variable initializers
6460
6461 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6462
6463         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6464         external are not declared as extern to reduce overhead while linking
6465
6466 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6467
6468         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6469
6470 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6471
6472         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6473           Yee Keat for the patch
6474         * src/SDCCast.c (decorateType): fixed bug #979599
6475         * src/ds390/gen.h: removed local fReturnSizeDS390
6476         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6477         * src/ds390/gen.c (genAnd, genOr, genXor),
6478         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6479
6480 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6481
6482         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6483         add relFilesSet to $3, manipulate $2 to handle linking of object
6484         files without source files in command line,
6485         * device/include/pic16 (all headers): added ID location macros,
6486         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6487         entries for ID location bytes,
6488         * (pic16_assignIdByteValue): NEW,
6489         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6490         added field dumpcalltree to pic16_options_t,
6491         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6492         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6493         emitting rFalseIfx label after check_carry label,
6494         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6495         pic16_emitDIRegs), NEW
6496         * (pic16glue): dump .calltree file when option --calltree found,
6497         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6498         * (_pic16_genAssemblerPreamble): emit ID locations after
6499         configuration registers,
6500         * (pic16_linkCmd): modifications of the link command,
6501         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6502         * (pic16_pCodeInitRegisters): don't init stack registers,
6503         * (pic16_findPrevInstruction): fixed bug,
6504         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6505         bug with immediate registers,
6506         * (buildCallTree): traces stack push and pop,
6507         * (pct2): dump also stack usage for each function,
6508         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6509         * (pic16_allocDirReg): various modifications,
6510         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6511         fixed to 1,
6512
6513 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6514
6515         * src/pic16/pcode.c: removed buggy double colon
6516
6517 2004-07-01 Borut Razem <borut.razem AT siol.net>
6518
6519         * support/scripts/sdcc.nsi: added include/pic16 to setup
6520
6521 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6522
6523         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6524         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6525         target 'clean',
6526         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6527         specific command line arguments. Also added sample lkr script
6528         for placing a variable at a specific memory bank.
6529         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6530         at a specific memory bank,
6531         * (pic16_dump_isection): fixed bug which caused string literals to
6532         be omitted when dumping idata section,
6533         * (pic16_groupRegistersInSection): added code to handle registers
6534         in specific memory banks,
6535         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6536         public, all references are renamed too,
6537         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6538         AOP_DPTR2,
6539         * (pic16_storeForReturn): added case to handle when dest is WREG,
6540         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6541         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6542         pic16_rel_udata, check to see if that register is marked as being
6543         a member of a specific memory bank,
6544         * (pic16_printIvalCharPtr): added code to add string literals either
6545         to code or the idata sections,
6546         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6547         also accept the 'udata' pragma,
6548         * src/pic16/main.h: new structure types sectName and sectSym
6549         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6550         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6551         * (pic16_findPrevInstruction): fixed, it returned nothing,
6552         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6553         instruction combinations,
6554         * (pic16_FixRegisterBanking): heavily reorganised,
6555         * (pic16_AnalyzeBanking): if generating banksel directives is
6556         disabled, then don't call FixRegisterBanking at all,
6557         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6558         completely removed,
6559         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6560
6561 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6562
6563         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6564         Phuah Yee Keat <yk.phuah AT nestac.com>
6565
6566 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6567
6568         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6569         correctly the IVT even if it is relocated to some other location
6570
6571 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6572
6573         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6574         * device/include/pic16/pic18f2220.h: NEW,
6575         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6576         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6577         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6578         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6579         nodefaultlibs, ivt_loc is the location of the interrupt vector
6580         table, and nodefaultlibs signs that default libraries should not be
6581         linked in link stage,
6582         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6583         according to --ivt-loc argument,
6584         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6585         when pragma stack is found,
6586
6587 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6588
6589         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6590         256 (range check), 257 (do while), 258.a-f (bit banging
6591         f.e. on 3-wire SPI bus)
6592
6593 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6594
6595         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6596         variables used exclusively within a loop
6597
6598 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6599
6600         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6601
6602 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6603
6604         * src/SDCClrange.c (computeClash): fixed bug #971834
6605
6606 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6607
6608         * src/mcs51/gen.c (genCmp): fixed bug #975903
6609         * src/hc08/gen.c (operandsEqu),
6610         * src/ds390/gen.c (operandsEqu),
6611         * src/z80/gen.c (operandsEqu),
6612         * src/pic/gen.c (operandsEqu),
6613         * src/pic16/gen.c (operandsEqu),
6614         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6615         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6616
6617 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6618
6619         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6620
6621 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6622
6623         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6624         default case in switch statement,
6625         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6626         to eliminate problem with initialisation of pointers, but problem
6627         still exists,
6628         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6629         * (emitStaticSegment): removed various lines emitting debug info,
6630         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6631         added processor registers for utilizing EEPROM,
6632         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6633         configurable and set 8
6634
6635 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6636
6637         * .version: increased version number to 2.4.2,
6638
6639         Cumulative patch for pic16 port
6640         * src/pic16/device.c: changed scheme to dump initial values for
6641         variables in idata segment, all print_idata* functions were removed,
6642         now the pic16_printIval* will be called,
6643         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6644         * _pic16_printPointerType, pic16_printPointerType,
6645         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6646         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6647         NEW, similar to the respective functions in SDCCglue.c,
6648         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6649         way, emitting hex bytes,
6650         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6651
6652 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6653
6654         * src/avr/ralloc.c (serialRegAssign),
6655         * src/xa51/ralloc.c (serialRegAssign),
6656         * src/pic/ralloc.c (serialRegAssign),
6657         * src/pic16/ralloc.c (serialRegAssign),
6658         * src/hc08/ralloc.c (serialRegAssign),
6659         * src/z80/ralloc.c (serialRegAssign),
6660         * src/ds390/ralloc.c (serialRegAssign),
6661         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6662
6663 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6664
6665         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6666         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6667
6668 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6669
6670         Cumulative patch for pic16 port:
6671         * src/pic16/device.h (typedef PIC16_device) modified fields for
6672         defining microcontrollers,
6673         * src/pic16/device.c: added new info for all devices in Pics16 array,
6674         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6675         to be optimised out by the pCode optimiser,
6676         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6677         specially, bug reported by G.M. Gallant,
6678         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6679         as force'd so that cannot be optimised out by pCode optimiser,
6680         * src/pic16/pcode.c,
6681         * src/pic16/pcodepeeph.c,
6682         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6683         they are disabled by default, but can be enabled explicit with
6684         command argument --denable-peeps, for testing,
6685         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6686         --pomit-ivt in COMPILE_FLAGS
6687
6688 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6689
6690         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6691           compilation on MSVC
6692
6693 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6694
6695         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6696
6697 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6698
6699         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6700         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6701
6702 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6703
6704         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6705         would only assign 0x300001 register.
6706
6707 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6708
6709         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6710         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6711
6712 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6713
6714         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6715         for ds80c400
6716         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6717         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6718         added peephole 254 (left shift), 255 (jump table)
6719
6720 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6721
6722         * device/lib/Makefile.in: removed comment line with model-pic16,
6723         * (target port-specific-objects-pic16): the libraries and objects
6724         are copied to the build directory form the device/lib/pic16/bin
6725         directory
6726
6727         Cumulative patch concerning pic16 port:
6728         * library directory has been re-organized,
6729         * added support for PIC18F1220,
6730         * added headers and library sources for chips 18f1220,18f6520,
6731         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6732
6733         * configuration registers setting has changed, now each supported
6734         device has a complete description of the registers it uses,
6735         * all initialisations are moved to idata sections, these section
6736         can be absolute or relocatable,
6737         * fixed initialisation of codespace variables,
6738         * fixed warning about PCLATU and gpsim,
6739         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6740         * (genAssign): use table reads when assigning from variables in codespace,
6741         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6742         char/int variables placed in codespace,
6743         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6744         registers set in .asm file, no need for --pomit-config-words anymore,
6745         * (pic16glue): some 8051 legacy segments are commented out
6746         (to be removed completely),
6747         * added support for alternative assembler and linker with --asm=
6748         and --link= command line arguments,
6749         * peepholes are disabled automatically in the port, no need to
6750         specify on command line,
6751         * port supports natively char/int/long multiplication, but converts
6752         all divisions to support functions,
6753         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6754         to the file set in variable $2,
6755         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6756         strings in ASCII format and not in hex,
6757         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6758         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6759         allocate proper register if iCodes aren't temporary,
6760
6761 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6762
6763         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6764
6765 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6766
6767         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6768         is commented out
6769
6770 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6771
6772         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6773         computed address is reused
6774         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6775         multi-byte bitfields
6776
6777 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6778
6779         * src/z80/gen.c: (genArrayInit): must check for pointers too
6780
6781 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6782
6783         * support/regression/tests/zeropad.c: never meant to commit the
6784           nestedstruct test: removed, added check for GCC version
6785
6786 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6787
6788         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6789         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6790         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6791           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6792           bugs 928906 and 954082 half-empty initializers
6793         * src/SDCCsymt.h,
6794         * src/SDCCsymt.c (getAllocSize): added for above fix
6795         * src/z80/gen.c (genArrayInit): fixed bug 741044
6796         * support/regression/tests/zeropad.c: added tests
6797
6798 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6799
6800         * src/pic16/device.c (pic16_dump_section): corrected bug which
6801         caused some symbols of the libraries to be misplaced
6802
6803 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6804
6805         * src/pic16/glue.c,
6806         * src/pic16/ralloc.h,
6807         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6808         to fix conflict with pic port
6809
6810 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6811
6812         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6813         externs configuration variables,
6814         * src/pic16/ralloc.h,
6815         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6816         prototype in header, commented out some debug messages
6817
6818 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6819
6820         * src/pic16/glue.c,
6821         * src/pic16/main.c,
6822         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6823         for gpasm COFF object generation. Thanks to D. Hawkins for
6824         his patch info
6825
6826 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6827
6828         * src/ds390/main.c,
6829         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6830         Brock for spotting this)
6831         * src/ds390/gen.c (genEndFunction),
6832         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6833         interrupt handler and critical. Disable push/pop optimizations when
6834         peephole optimizations disabled.
6835
6836 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6837
6838         Updated pic16 library sources and headers.
6839         * device/lib/pic16/pic18f*/ ,
6840         * device/include/pic16/*.h: modified to handle structured SFR
6841         definitions
6842
6843 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6844
6845         * src/port.h (PORT structure): added hook initPaths, now each
6846         port can declare its own default search paths,
6847         which can been seen with the --print-search-dirs option,
6848         see pic16 port for example,
6849         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6850         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6851         * (doPrintSearchDirs): NEW, replaces in a central manner the
6852         printing of search dirs which was split in set*Paths functions,
6853         * (main): added call to port->initPaths and doPrintSearchDirs,
6854         * src/avr/main.c,
6855         * src/ds390/main.c,
6856         * src/hc08/main.c,
6857         * src/izt/i186.c,
6858         * src/izt/tlcs900h.c,
6859         * src/mcs51/main.c,
6860         * src/pic/main.c,
6861         * src/pic16/main.c: modified port structures to reflect addition of
6862         initPaths hook,
6863
6864         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6865         * (pic16_dump_section): for registers in same address reserve memory once,
6866         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6867         to no_banksel,
6868         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6869         result is greater in size than right or left,
6870         * (pic16_genUMult8X8_8): there are some cases where the result can
6871         be 16 bits size, so handle these,
6872         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6873         * (pic16_outBitC): modified to emit pcodes,
6874         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6875         or not,
6876         * (genDivOneByte): implemented algorithm to divide 8-bits,
6877         * (genCmp): uncommented goto, but issues still exist,
6878         * (genAnd): fixed a bug with variables >8bits,
6879         * (genPackBits): optimization added that uses BCF/BSF to change a
6880         single bit,
6881         * (genAssign): fixed bug when assigning floating point literals,
6882         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6883         __sdcc_gsinit_startup label,
6884         * src/pic16/main.c (_pic16_init): removed search directory
6885         initialisations,
6886         * (_pic16_initPaths): NEW, used to initialise search directories,
6887         * (_hasNativeMulFor): support functions for all except char/int
6888         multiplication, and char division,
6889         * (PIC16_port struct): modified entry for native mul support,
6890         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6891         no_banksel option,
6892         * (buildCallTree): call to register_usage is ifdef'ed out,
6893
6894 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6895
6896         * device/include/string.h: applied Stas Sergeev's patch to make this
6897         header file compatible with the preprocessor -Wundef option
6898         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6899         failure (fixes bug #941458)
6900
6901 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6902
6903         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6904         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6905         that the variable, not the function, should be static
6906         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6907         to be consistent with non-literal case
6908
6909 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6910
6911         * src/SDCCast.c (isConformingBody): fixed bug #949967
6912         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6913         convilong): fixed bug #952086
6914
6915 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6916
6917         * src/SDCCmem.c (allocVariables): fixed bug #955321
6918
6919 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6920
6921         * src/hc08/main.c (_hc08_genAssemblerEnd),
6922         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6923         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6924         completely eliminated the use of a temporary file
6925         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6926         when more than one file linked
6927         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6928
6929 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6930
6931         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6932         which fixes bug #543481
6933         * support/regression/tests/bug-751703.c: fixed comments left from a
6934         cut and paste error
6935         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6936         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6937         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6938         scopes
6939         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6940         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6941         are now changed to underscores in moduleName
6942
6943 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6944
6945         * as/mcs51/lkmem.c: better fix for bug #954173
6946
6947 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6948         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6949
6950         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6951         * device/include/c8051f000.h,
6952         * device/include/c8051f120.h,
6953         * device/include/c8051f300.h,
6954         * device/include/c8051f310.h,
6955         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6956         PWM16) and detab'ed
6957
6958 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6959
6960         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6961         and mailing lists, doc'ed --no-peep-comments, removed reference
6962         to knoppix (newest version has no LyX/LaTeX), other minor changes
6963         * src/SDCCglue.c (glue): save 2 bytes stack space with
6964         option --main-return. The ljmp could probably be avoided too
6965
6966 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6967
6968         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6969
6970 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6973         * src/SDCCopt.c (isLocalWithoutDef),
6974         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6975         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6976         (credit to Maarten Brock for patch #949363, on which this is based)
6977         * support/regression/tests/bug-751703.c: some test cases of extern used
6978         within inner scopes.
6979
6980 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6981
6982         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6983         SPEC_STRUCT
6984         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6985         struct definitions
6986         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6987         dwWriteLabel): fix to create valid debugger symbols even when
6988         the module name has non-alphanumeric symbols in it
6989         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6990         when a variable's allocation has been optimized away
6991
6992
6993 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6994
6995         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6996         * src/hc08/main.c,
6997         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6998         * src/mcs51/main.c,
6999         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7000         * src/ds390/main.c,
7001         * src/z80/gen.c (z80_emitDebuggerSymbol),
7002         * src/z80/main.c,
7003         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7004         * src/pic/main.c,
7005         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7006         * src/pic16/main.c,
7007         * src/avr/gen.c (avr_emitDebuggerSymbol),
7008         * src/avr/main.c,
7009         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7010         * src/xa51/main.c,
7011         * src/SDCCdebug.c (emitDebuggerSymbol),
7012         * src/SDCCdebug.h,
7013         * src/port.h: added a debugger struct to the port struct. Added a
7014         callback for defining debugger symbols
7015
7016         * src/SDCCast.c (createLabel),
7017         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7018         with isitmp = 1
7019         * src/SDCCicode.h,
7020         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7021         iCode back to the ast for the function
7022
7023         * src/hc08/ralloc.c (hc08_assignRegisters),
7024         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7025         unneeded fields from the regs struct.
7026         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7027         pushReg() & pullReg() functions instead of emitcode()
7028
7029         * src/hc08/gen.c (genLabel, genhc08Code),
7030         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7031
7032         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7033         debugger hooks
7034
7035         * src/hc08/gen.c (genEndFunction, genhc08Code),
7036         * src/hc08/gen.h,
7037         * src/mcs51/gen.c (genEndFunction, gen51Code),
7038         * src/mcs51/gen.h,
7039         * src/ds390/gen.c (genEndFunction, gen390Code),
7040         * src/ds390/gen.h,
7041         * src/z80/gen.c (genEndFunction, genZ80Code),
7042         * src/z80/gen.h,
7043         * src/z80/z80.h,
7044         * src/pic/gen.c (genEndFunction, genpic14Code),
7045         * src/pic/gen.h,
7046         * src/pic16/gen.c (genEndFunction, genpic16Code),
7047         * src/pic16/gen.h,
7048         * src/avr/gen.c (genEndFunction, genAVRCode),
7049         * src/avr/gen.h,
7050         * src/xa51/gen.c (genEndFunction, genXA51Code),
7051         * src/xa51/gen.h,
7052         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7053         specific code to cdbFile.c and out of the backend code generators
7054
7055         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7056         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7057         starting address is now 0
7058
7059         * as/hc08/asm.h,
7060         * as/hc08/m08pst.c,
7061         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7062         assembler directive for DWARF support
7063         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7064
7065         * src/src.dsp,
7066         * src/Makefile.in,
7067         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7068
7069 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7070
7071         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7072         and inappropriate peephole optimization in jump tables
7073
7074 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7075
7076         * as/hc08/m08pst.c,
7077         * src/SDCCglue.c: sdccopt works for the hc08 port now
7078
7079 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7080
7081         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7082
7083 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7084
7085         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7086
7087 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7088
7089         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7090         rules
7091         * src/SDCCmain.c,
7092         * src/SDCCglobl.h,
7093         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7094         comments from the peephole optimizer replacement rules
7095         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7096         symbols
7097         * src/SDCCcse.c (updateSpillLocation),
7098         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7099         equivalents
7100         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7101         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7102         objects far pointers
7103
7104 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7105
7106         * src/SDCCsymt.h: a missing part of my last change
7107         * src/pic/ralloc.c (regTypeNum),
7108         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7109
7110 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7111
7112         * src/SDCCicode.h,
7113         * src/SDCCicode.c (aggrToPtrDclType),
7114         * src/SDCCptropt.h,
7115         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7116         ptrPseudoSymConvert),
7117         * src/pic/ralloc.c (regTypeNum),
7118         * src/pic16/ralloc.c (regTypeNum),
7119         * src/hc08/ralloc.c (regTypeNum),
7120         * src/ds390/ralloc.c (regTypeNum),
7121         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7122         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7123
7124 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7125
7126         * link/z80/lkmain.c (afile),
7127         * as/hc08/lkmain.c (afile),
7128         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7129         prevent a pointer problem when a filename has no directory and
7130         no extension specified.
7131
7132 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7133
7134         * link/z80/lkmain.c (afile): allow periods in directory names
7135         * link/z80/lkmain.c (afile),
7136         * as/mcs51/lkmain.c (afile),
7137         * as/hc08/lkmain.c (afile): allow linker script file to have an
7138         extension other than ".lnk"
7139         * link/z80/lklex.c (getfid),
7140         * link/z80/lkmain.c (parse),
7141         * as/mcs51/lklex.c (getfid),
7142         * as/mcs51/lkmain.c (parse),
7143         * as/hc08/lklex.c (getfid),
7144         * as/hc08/lkmain.c (parse): Support comments in the linker script
7145         file on lines by themselves and after filenames
7146
7147 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7148
7149         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7150
7151 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7152
7153         * src/z80/peeph-z80.def: removed some peephole rules that don't
7154         work with multibyte arithmetic (fixed bug #937126)
7155         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7156         to registers and not global variables
7157         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7158         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7159         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7160         checking for assignments not internally generated (fixed bug #931895)
7161         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7162         structure member (fixed bug #930072)
7163
7164 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7165
7166         * src/SDCCmain.c (linkEdit),
7167         * src/hc08/main.c (_hc08_parseOptions),
7168         * as/hc08/Makefile.in,
7169         * as/hc08/aslink.h,
7170         * as/hc08/asm.h,
7171         * as/hc08/m08pst.c,
7172         * as/hc08/lkrloc.c (relr, rele),
7173         * as/hc08/lkarea.c (lnkarea)
7174         * as/hc08/lkmain.c (afile, parse),
7175         * as/hc08/lkelf.c: support for ELF output
7176         * as/hc08/lks19.c (s19),
7177         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7178
7179 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7180
7181         * as/mcs51/lkihx.c: Fixed bug #899105.
7182
7183 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7184
7185         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7186         .dsp files from Unix to DOS.
7187
7188 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7189
7190         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7191         function pointers; we have been compliant for several months now.
7192         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7193         change that was accidently commented out
7194         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7195         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7196         bug #922319
7197
7198 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7199
7200         * src/hc08/gen.c: output of all of the internal debugging information
7201         is now controlled by the D() macro; it is disabled by default
7202
7203 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7204
7205         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7206         harder to keep the same registers during a CAST iCode
7207         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7208         long via int can be done in a single cast, if the signedness is
7209         correct.
7210         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7211         putchar() in tinibios.c in ds390's library
7212
7213 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7214
7215         * src/SDCCast.c (decorateType): fixed bug #898889,
7216         cast result of a literal complement too
7217         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7218         fixed check for bitfields
7219
7220 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7221
7222         * src/SDCCicode.c (geniCodeLogic): made it static,
7223         (geniCodeLogicAndOr): added in order to fix bug #905492,
7224         (ast2iCode): fixed bug #905492
7225         * support/regression/tests/bug-905492.c: added
7226         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7227         (processParms): fixed bug #927659: don't copy parms, this will clear
7228         decorated flag
7229         * support/regression/tests/bug-927659.c: added
7230
7231 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7232
7233         * src/SDCCast.c (addCast): don't cast float to char
7234         * device/lib/libsdcc.lib: added _memmove
7235
7236 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7237
7238         * device/lib/large/Makefile: fixed parallel execution by
7239         replacing `make` by `$(MAKE)`
7240
7241 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7242
7243         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7244         offsets (fixes bug #923936)
7245
7246 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7247
7248         * device/lib/small/Makefile: fixed parallel execution by
7249         replacing `make` by `$(MAKE)`
7250
7251 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7252
7253         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7254
7255 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7256
7257         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7258         * src/regression/Makefile: Regression test was not running.
7259
7260 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7261
7262         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7263         complement if possible
7264         * src/SDCCval.c (valComplement),
7265         * src/SDCCicode.c (operandOperation): fixed complement of literal
7266         * support/regression/tests/onebyte.c (testComplement): added
7267
7268 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7269
7270         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7271         return an optimized tree; actually replace actParm with the new tree
7272         * src/SDCCast.h: added some parantheses to remove side effects
7273         * support/regression/tests/bug-920866.c
7274
7275 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7276         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7277         Bit operands were not being handled properly in the pic14 port.
7278         (now src/regression/add.c passes again).
7279
7280 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7281
7282         * src/SDCC.y (labeled_statement): case and default no longer require
7283         a following statement (RFE #893037)
7284
7285 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7286
7287         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7288         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7289         disabled (fixes bug #916294)
7290         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7291         "mov a,acc"; patch provided by Lenny Story
7292         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7293
7294 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7295
7296         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7297         functions
7298         * src/ds390/gen.c (genFunction, genEndFunction),
7299         * src/ds390/ralloc.c (ds390_assignRegisters),
7300         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7301         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7302         pushed if there are parameters passed on the stack. Also, a cleaner
7303         way to decide if r0/r1 should be pushed/popped. (Together they fix
7304         bug #918693)
7305
7306 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7307
7308         * doc/sdccman.lyx,
7309         * device/lib/mcs51/crtpagesfr.asm,
7310         * device/lib/mcs51/crtxinit.asm,
7311         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7312         to avoid confusion with Si Lab's SFRPAGE register.
7313
7314 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7315
7316         * src/SDCCglue.c (emitMaps): allow public sfr variables
7317         * src/SDCCglue.c (initialComments): include compiler build date
7318         with compiler version and put the timestamp of the generated
7319         assembly file on a serperate line to be less confusing.
7320         * src/port.h: added genInitStartup hook
7321         * src/avr/main.c,
7322         * src/ds390/main.c,
7323         * src/hc08/main.c,
7324         * src/pic/main.c,
7325         * src/pic16/main.c,
7326         * src/xa51/main.c,
7327         * src/z80/main.c: genInitStartup initialize as NULL (default to
7328         historical behaviour)
7329         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7330         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7331         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7332         library instead of hard coding it into the compiler.
7333         * support/regression/ports/mcs51-stack-auto/spec.mk,
7334         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7335         * device/lib/mcs51/Makefile,
7336         * device/lib/small/Makefile,
7337         * device/lib/large/Makefile,
7338         * device/lib/mcs51/crtpagesfr.asm,
7339         * device/lib/mcs51/crtstart.asm,
7340         * device/lib/mcs51/crtxclear.asm,
7341         * device/lib/mcs51/crtxinit.asm,
7342         * device/lib/mcs51/crtclear.asm,
7343         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7344         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7345         and into user configurable files.
7346         * device/lib/clean.mk: clean mcs51 directory too
7347         * support/regression/tests/longlit.c: added static to T1 declaration
7348         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7349         accesses in the initialization code
7350
7351 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7352
7353         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7354         OSCTRIMVAL as noted in bug #916008
7355
7356 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7357
7358         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7359         in loops with multiple exits (reported as incorrect registers
7360         used by Martin Helmling in Sdcc-user list)
7361
7362 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7363
7364         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7365         made ds390 register extensions look less like error messages
7366
7367 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7368
7369         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7370         reported by Adam Wozniak in Sdcc-user list
7371
7372 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7373
7374         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7375         arithmetic optimizations, added debug output
7376
7377 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7378
7379         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7380         * sdcc.spec: updated and split sdcc into 3 rpms
7381         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7382         needed for literals of LEFT_OP and '+'
7383         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7384         introduced RESULT_TYPE_NOPROM
7385         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7386         left shift
7387         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7388         limited promotion to int only for '*'
7389         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7390
7391 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7392
7393         * src/pic16/gen.c (genSkip),
7394         (genc16bit2lit), (gencjneshort): commented out
7395         (is_LitOp): new helper function, checks operand type
7396         (genCmpEq): rewritten
7397
7398 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7399
7400         * support/regression/tests/bug-908454.c: added
7401
7402 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7403
7404         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7405         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7406         (geniCodeCast): cosmetic, don't preserve bit storage class
7407         (geniCodeLeftShift): added promotion
7408         (geniCodeLogic): fixed regression
7409         * src/SDCCsymt.c (computeTypeOr): accept bits too
7410         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7411
7412 2004-03-07  Borut Razem <borut.razem AT siol.net>
7413
7414         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7415
7416 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7417
7418         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7419         version of pic16_genPackRegisters which does not check if ic is a
7420         CAST operator,
7421         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7422         function cause string1.c regression test fails
7423
7424 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7425
7426         * sim/ucsim/configure.in,
7427         * sim/ucsim/configure,
7428         * sim/ucsim/doc/Makefile.in: use docdir
7429         * src/SDCC.y: fixed sbit atrributes
7430         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7431         * src/SDCCast.c (decorateType): |^& need special promotion handling
7432         * src/SDCCast.h,
7433         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7434         * src/SDCCsymt.h (computeType),
7435         * src/SDCCicode.c: computeType() needs op
7436         * src/SDCCsymt.c (checkTypeSanity),
7437         * doc/sddman.lyx: "plain" bitfields are unsigned
7438         * src/SDCCsymt.c (computeTypeOr): added
7439         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7440         |^& ops
7441         * src/SDCCval.c (val*): computeType() needs op
7442         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7443         * support/regression/tests/onebyte.c: added tests for |^&
7444
7445 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7446
7447         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7448         for writing icode into asm output.
7449
7450 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7451
7452         * src/pic16/device.c: added some debug lines enabled
7453         with macro DEBUG_CHECK,
7454         * src/pic16/genarith.c: more debug in genPlus,
7455         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7456         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7457         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7458         * (aopForSym): onStack symbols are re-placed in data memspace,
7459         and onStack flag is cleared,
7460         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7461         copy temporary pcodeop,
7462         * (genPcall): added warning for not updating PCLATU,
7463         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7464         always true for pic16 port,
7465         * (genMultOneWord): NEW, supports integer multiplication,
7466         * (genMult): modified to call genMultOneWord,
7467         * (ifxForOp): added warning when return NULL,
7468         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7469         flag is set before call to operandFromSymbol for implicit
7470         added structures,
7471         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7472         options.intlong_rent are set by default,
7473         * (_hasNativeMulFor): modified to allow port generation of integer
7474         multiplication,
7475         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7476         set regtype to REG_SFR for all registers, restricting seting the
7477         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7478
7479 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7480
7481         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7482         more than 500 times in the regression tests
7483
7484 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7485
7486         * support/Util/SDCCerr.h,
7487         * support/Util/SDCCerr.c,
7488         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7489         enumerator_list),
7490         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7491         for symbol conflicts.
7492         * support/valdiags/tests/enum.c,
7493         * support/valdiags/tests/tentdecl.c,
7494         * support/valdiags/tests/struct.c: expect possible error messages
7495         referring to original symbol definitions.
7496         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7497         * src/SDCCsymt.h,
7498         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7499
7500 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7501
7502         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7503
7504 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7505
7506         * src/pic16/ralloc.c (newReg): fixed bug #908929
7507
7508 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7509
7510         * src/ds390/gen.c: added missing #include "main.h"
7511
7512 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7513
7514         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7515         checking if symbol is already in set,
7516         * src/pic16/device.h: prototype for checkAddSym,
7517         * src/pic16/gen.c: (_G): added entry interruptvector,
7518         * (assignResultValue): removed some commented out lines,
7519         * (genFunction): check for ISR via sym->type, absolute section for
7520         interrupt code is created via a new pBlock, the goto instruction is
7521         placed now correctly at the interrupt vector position, changed all
7522         references from ivec to _G.interruptvector,
7523         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7524         is the interrupt is a high priority one, same for return from ISR,
7525         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7526         externs to calls of checkAddSym,
7527         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7528         pic16_pcode_verbose flag is set,
7529         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7530         * src/pic16/pcoderegs.c: message about how many registers are saved
7531         will only be emitted if pic16_pcode_verbose flag is set,
7532
7533 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7534
7535         * src/ds390/ralloc.h,
7536         * src/ds390/ralloc.c (ds390_regWithIdx),
7537         * src/ds390/gen.c (emitcode),
7538         * src/ds390/main.h,
7539         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7540         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7541         ds390operandCompare, getRegsRead, getRegsWritten,
7542         initializeAsmLineNode): customized instruction size calculation for
7543         ds390, started basis for some register optimizations
7544         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7545         corresponding assembly output
7546         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7547         missing push/pop of r0/r1. Optimized push/pops
7548
7549 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7550
7551         * src/mcs51/main.c (instructionSize): fixed ACALL size
7552         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7553
7554 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7555
7556         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7557         the sorting of rlist with NULL elements
7558         * (print_idataType, print_idata): NEW to create idata sections
7559         * src/pic16/device.h: idataSymSet new variable
7560         * src/pic16/gen.c (genFunction): fixed some bugs in string
7561         comparing, improved the absolute section creation for ISRs,
7562         added FSR0L/FSR0H in registers that are saved in an ISR,
7563         * (genInline): fixed the processing of inline snippets,
7564         now they undergo no process by the peephole optimizer
7565         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7566         are placed in idataSymSet,
7567         * (pic16emitStaticSeg): extern symbols are added in externs,
7568         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7569         switching when aboslute variables are placed in access bank memory
7570         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7571         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7572         commented out with #if,
7573         * (pic16_packRegisters): reintroduce the check for CAST because some
7574         symbols are not correctly handled,
7575         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7576         pCodeInstruction instead of pCode,
7577         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7578         pCodeAsmDir definition,
7579         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7580         directive, then the argument directive is emitted without the leading
7581         tab, hack for inline labels which must be in the first column,
7582         * (compareLabel,pic16_findNextInstruction),
7583         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7584         * (insertBankSwitch): modified for the new pCodeAsmDir,
7585
7586 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7587         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7588
7589         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7590         instance,
7591         * (pushSide): commented out with #if,
7592         * (assignResultValue): fixed some typos in saving
7593         registers,
7594         * (genPcall): FIXED and sync'ed with genCall,
7595         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7596         * (genNearPointerGet): fixed to handle some more cases,
7597         implementation scheme via table reads,
7598         * (genConstPointerGet): modified to access code memory correct,
7599         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7600         and improved to handle some cases
7601         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7602         instead of "RETLW" for init data
7603         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7604         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7605         variables are placed in access bank memory (<0x80 and >=0xf80),
7606         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7607         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7608         TBLWT_POSTDEC,TBLWT_PREINC
7609         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7610         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7611         directives
7612         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7613         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7614         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7615         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7616
7617 2004-02-29  Borut Razem <borut.razem AT siol.net>
7618
7619         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7620         support/Util/findme.h, support/Util/system.h: enhance binary relative
7621         search for lib and include by using findProgramPath()
7622
7623 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7624
7625         * src/SDCCpeeph.h,
7626         * src/SDCCpeeph.c (pcDistance),
7627         * src/port.h,
7628         * src/mcs51/ralloc.h,
7629         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7630         * src/mcs51/main.h,
7631         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7632         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7633         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7634         size calculation port specific, started basis for some register
7635         optimizations
7636         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7637         missing push/pop of r0/r1. Optimized push/pops
7638         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7639         * device/lib/_modsint.c (_modsint),
7640         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7641         and stack version so regression tests pass
7642
7643 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7644
7645         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7646         * src/SDCCast.c (decorateType): catch another small optimization
7647         with '?' operator
7648         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7649         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7650         modified to finally use computeType() all over SDCC,
7651         see Feature Request #877103
7652         * src/SDCCval.h: cosmetic
7653         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7654         valCompare(); regression tested in muldiv.c
7655         * support/regression/tests/muldiv.c (testMod): mod sign follows
7656         dividend only
7657
7658 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7659
7660         * src/SDCCast.c (decorateType): fixed bug #902362
7661         * doc/INSTALL.txt: fixed install instructions for win32
7662
7663 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7664
7665         * device/include/Makefile.in (install): fixed by replacing spaces
7666         by tabs
7667         * doc/README.txt,
7668         * doc/INSTALL.txt: updated for release
7669         * doc/sdccman.lyx: added warning for --xstack being buggy
7670
7671 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7672
7673         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7674         to eliminate build warnings.
7675         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7676
7677 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7678            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7679
7680         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7681         removed -penable-stack, added comment for stack pragma, added
7682         warning for not initializing the stack/frame registers, removed
7683         comment at interrupts section
7684
7685         Stack is made permanent, there is no ability to disable stack usage.
7686         * src/pic16/device.h,
7687         * src/pic16/device.c: removed all references to USE_STACK macro,
7688         * src/pic16/device.c (pic16_dump_section): when no elements in
7689         rlist, free rlist before return,
7690         * (pic16_dump_int_registers): NEW, internal registers are a new set
7691         of general purpose registers reused by each function,
7692         * (checkAddReg): returns 1 if registers is added to set,
7693         * (pic16_groupRegistersInSection): when a registers is of type
7694         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7695         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7696         SRCASECMP macro is moved here from device.c
7697         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7698         PO_PCLATU, PO_PRODL, PO_PRODH,
7699         * (pic16_pCodeOpType, genMinus,
7700         changed compares to "a" register, with AOP_ACC,
7701         * (pic16_genPlus): fixed some bugs and indented properly,
7702         * (pic16_addSign): changed size to size+offset in the MOVWF
7703         instruction,
7704         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7705         multiply 8-bit operand by literal, result is 8-bit,
7706         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7707         multiply 2 8-bit operand, result is 8-bit,
7708         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7709         genUMult8X*_16,
7710         * src/pic16/gen.c: changed accUse to contain WREG only,
7711         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7712         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7713         true, do not use immediate addressing any more unless sym is a
7714         pointer in codespace,
7715         * (aopForRemat): do not use immediate addressing when symbol not in
7716         codespace and when symbol's address is requested,
7717         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7718         accUse size (= 1),
7719         * (aopGet): added case for AOP_ACC and don't return "accumulator
7720         bug" but WREG instead,
7721         * (popGetTempReg): pushes contents of temporary register in stack,
7722         * (popReleaseTempReg): pops contents of temporary register from
7723         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7724         * (pic16_popGet): separated case AOP_ACC to return register WREG
7725         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7726         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7727         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7728         the use of immediate pointers to certain cases only.
7729
7730         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7731         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7732         * (assignResultValue, genCall, genRet): modified to use the new
7733         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7734         genPcall is still broken,
7735         * (genFunction): added code to create 'A' type pBlocks when
7736         interrupt functions are generated, code not extensively tested yet,
7737         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7738         * (genEndFunction): modified so ISRs pop stored registers from stack,
7739         * (genMultOneByte): cleanup,
7740         * (AccRsh): added flag andmask, to and result with appropriate mask,
7741         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7742         * (genDataPointerGet): fixed and reenabled its use,
7743         * (genNearDataPointerGet): bugs fixed,
7744         * (genDataPointerSet): bugs fixed,
7745         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7746         pic16_DumpSymbol, pic16_DumpOp,
7747         * src/pic16/genutils.h: function prototypes for the above functions,
7748         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7749         pointers,
7750         * (pic16emitRegularMap): many many many improvements, but needs a
7751         major cleanup,
7752         * src/pic16/main.c: enable_stack in pic16_options is removed,
7753         * (_pic16_parseOptions): removed command line options -penable-stack,
7754         * (_process_pragma): emit stack symbol only when stack pragma is
7755         processed,
7756         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7757         redirected to FSR0L/FSR0H pair,
7758         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7759         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7760         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7761         for immediates,
7762         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7763         * (dumpPicOptype): NEW,
7764         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7765         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7766         with movff instruction,
7767         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7768         added pic16_int_regs, some packRegsFor* functions are commented out,
7769         because produce errors,
7770         * src/pic16/NOTES: minor modifications
7771
7772 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7773
7774         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7775         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7776         --pack-iram.
7777         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7778         * as/mcs51/lkaomf51.c: fixed bug #895763
7779
7780 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7781
7782         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7783
7784 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7785
7786         * doc/sdccman.lyx: added details about the HC08 storage classes and
7787         interrupts, fixed the register usage info for z80 & gbz80
7788
7789 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7790
7791         * doc/sdccman.lyx: added more pic16 port documentation
7792         * device/include/pic16/: added header pic18fregs.h
7793
7794 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7795
7796         * doc/sdccman.lyx: added Vangelis' contribution
7797
7798 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7799
7800         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7801         extend to the next CALL or PCALL, not just to the next CALL.
7802
7803 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7804
7805         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7806
7807 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7808
7809         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7810         bug #895752 and a better fix for bug #716790
7811
7812 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7813
7814         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7815
7816 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7817
7818         * doc/sdccman.lyx: minor changes, minor changed
7819
7820 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7821
7822         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7823         which can't handle SDCC_NEWONEBYTEOPS,
7824         (geniCodeMultiply): removed conversion from mult to shift for pic14
7825         and pic16
7826
7827 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7828
7829         * src/hc08/gen.h,
7830         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7831         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7832         thus fixing bug #895406
7833
7834 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7835
7836         * device/lib/_modsint.c,
7837         * device/lib/_modslong.c: sign follows divisor only
7838         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7839         signs or signedness can be ignored
7840         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7841         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7842         added optimization for IFX,
7843         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7844         arguments;
7845         reenabled optimization for IFX, which was removed on 2004-01-11
7846         * src/SDCCast.h: added return type IFX
7847         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7848         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7849         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7850         SDCC_OLDONEBYTEOPS selects the old behaviour
7851         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7852         changed again and commented promotion rule
7853         * src/SDCCval.c (valDiv): promotion no longer necessary
7854         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7855         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7856         rewritten
7857         * support/regression/tests/onebyte.c: added
7858
7859 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7860
7861         * gen.c (genInline): reverted to old code for assemnling inline
7862         code because of bug reported James Chadd
7863
7864 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7865
7866         * ralloc.h: missing declarations from previous patch,
7867         seems that patch for ralloc.h was never applied, fixed
7868
7869 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7870            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7871
7872         * pcode.c,
7873         * pcode.h,
7874         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7875         indirect addressing. Marked FSR0 as deprecated
7876         * gen.c (pointerCode): commented out, not needed now
7877         (pic16_popGet2p): new MOVFF helper function
7878         (genGenPointerGet),
7879         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7880         (shiftRLong): removed duplicate debugging info
7881
7882 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7883
7884         * src/ds390/gen.c (genNearPointerGet),
7885         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7886         optimization with bits, but not bitfields.
7887         * src/ds390/ralloc.c (packRegisters),
7888         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7889
7890 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7891
7892         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7893
7894 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7895
7896         * src/SDCCsymt.h,
7897         * src/SDCCicode.c (operandFromSymbol),
7898         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7899         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7900         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7901         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7902         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7903         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7904         bug #892038
7905         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7906         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7907         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7908         * src/SDCCsymt.c (newSymbol),
7909         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7910         enumerator_list),
7911         * src/SDCCval.h,
7912         * src/SDCCval.c (newiList): fixed bug #885705
7913
7914 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7915
7916         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7917         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7918
7919 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7920
7921         * device/include/c8051f120.h,
7922         * device/include/c8051f300.h,
7923         * device/include/c8051f310.h: added/updated header files for Silicon
7924         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7925         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7926         in new section Submitting patches
7927
7928 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7929
7930         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7931         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7932         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7933         genGenPointerSet),
7934         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7935         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7936         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7937         genGenPointerSet),
7938         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7939         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7940         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7941         genGenPointerSet),
7942         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7943         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7944         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7945         genGenPointerSet): fixed bug #892400
7946         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7947         to eliminate build warnings.
7948         * src/SDCCast.c (processParms),
7949         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7950         fixed bug 751859
7951         * support/valdiag/valdiag.py: added GCC to the list of defines active
7952         when compiling with gcc
7953
7954 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7955
7956         * support/Util/SDCCerr.h,
7957         * support/Util/SDCCerr.c,
7958         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7959         with an incomplete type (fixed bug #883734)
7960         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7961
7962 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7963
7964         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7965
7966 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7967
7968         * src/SDCCast.c (decorateType),
7969         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7970         function pointer implementation
7971         * support/regression/tests/funptrs.c: added tests to verify both forms
7972         of function pointers work correctly. Added tests to verify parameters
7973         are passed in the correct order.
7974
7975 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7976
7977         * device.c (regCompare): registers are sorted by ascending
7978         address and increasing size,
7979         * main.c (_pic16_finaliseOptions): removed the declaration
7980         of compiler macro MCU. Now a macro of the format pic18fxxxx
7981         will be defined from the command line
7982
7983 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7984             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7985
7986         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7987         PCOP_RLCF was overwritten!
7988         * gen.c (genSkip): commented out calls to pic16_emitcode,
7989         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7990         * (genlshTwo),
7991         * (genRRC): added debugging info,
7992         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7993         overwritten while shifting,
7994         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7995         overwritten while shifting,
7996         * (AccLsh),
7997         * (AccRsh),
7998         * (shiftLLeftOrResult),
7999         * (shiftRLeftOrResult),
8000         * (shiftRLong),
8001         * (shiftLLong): Implemented with pic16_emitpcode
8002         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8003         * (genLeftShift): Fixed bug, operand for shift by variable always
8004         was "and"ed with 0x0f,
8005         * (genLeftShiftLiteral),
8006         * (genrshTwo),
8007         * (genRightShiftLiteral): added debugging info,
8008         * (genrshFour): added comment,
8009         * (genRightShift): determined signedness from operand "left"
8010         instead of "result"
8011
8012 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8013
8014         * src/SDCCicode.c (geniCodeParms),
8015         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8016         function pointers, fixed function pointer bugs #861242 and #861896
8017
8018 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8019
8020         * device/include/c8051f000.h,
8021         * device/include/c8051f120.h,
8022         * device/include/c8051f300.h: added header files for Silicon
8023         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8024
8025 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8026
8027         * src/SDCCast.c (processParams): added new type flow and restructured
8028         (gatherAutoInit): added new type flow
8029         (addCast): cosmetic changes
8030         (getLeftResultType): added new type flow for array indices, patch
8031         provided by Stas, see FR #877103
8032         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8033         array index patch by Stas
8034         * src/SDCCast.h: added prototype getResultTypeFromType()
8035         * src/SDCCval.h,
8036         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8037         * src/pic/glue.c (pic14emitStaticSeg),
8038         * src/pic16/glue.c (pic16emitStaticSeg),
8039         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8040         for initialization of symbols
8041         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8042         * support/Util/SDCCerr.h:
8043         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8044         * .version: bumped version number to 2.3.8
8045         * device/include/Makefile.in (install),
8046         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8047         avoid warnings
8048
8049 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8050
8051         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8052         Slade Rich fixed an optimization bug
8053         * src/pic/pcodepeep.c,
8054         * src/pic/pcoderegs.c
8055         * doc/Makefile (install): added test for directory
8056
8057 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8058
8059         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8060         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8061         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8062         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8063         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8064         * as/mcs51/asexpr.c (term),
8065         * as/hc08/asexpr.c (term): fixed bug #887146
8066
8067 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8068
8069         * src/z80/gen.c (genMult): handle single byte result product
8070         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8071         DUMMY_READ_VOLATILE (fixed bug #886367)
8072
8073 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8074
8075         * support/regression/tests/libmullong.c: fixed logic, on little endian
8076         hosts we ended without a mullong_wrapper()
8077
8078 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8079
8080         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8081         virus/worm forged address usage.
8082
8083 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8084
8085         Fixed promotion, it should be done on AST level:
8086         * src/SDCCast.c (addCast): added promotion to int
8087         (decorateType): updated call to upCast()
8088         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8089         usualUnaryConversions()
8090
8091 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8092
8093         * support/regression/tests/literalop.c (mulWrapper): Added a
8094         wrapper to remove integer overflow warnings.
8095
8096         * support/regression/tests/float_trans.c: Made work on host.
8097
8098         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8099         location of sz80.
8100
8101         * support/regression/generate-cases.py (main): Changed from inline
8102         to a main method.
8103
8104         * doc/Makefile (install): Changed to depth first to get rid of
8105         missing directory install warning.
8106
8107         * as/Makefile (install-doc): Made work on Mac.
8108
8109 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8110
8111         * src/SDCCast.c: added an additional type flow in decorateType() of
8112         opposite direction, see feature request #860006; it's enabled at runtime
8113         by setting the environment variable SDCC_NEWTYPEFLOW
8114         * src/SDCCast.h: changed prototype of decorateType()
8115         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8116         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8117         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8118         see feature request #877103
8119         * src/SDCCval.c: updated call of decorateType()
8120         (valBitwise): fixed bug #882876
8121         (valMinus): added promotion
8122         (valLogicAndOr): result is unsigned
8123         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8124         * src/SDCCsymt.c (computeType),
8125         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8126         must not cause an unsigned operation
8127         * src/pic/glue (pic14emitRegularMap),
8128         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8129
8130 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8131
8132         * src/pic/pcode.c (PCodeID): commented out left over debug code
8133
8134 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8135
8136         * support/valdiag/tests/overflow.c: added shift tests
8137         * src/pic/device.c,
8138         * src/pic/gen.c,
8139         * src/pic/gen.h,
8140         * src/pic/glue.c,
8141         * src/pic/main.c,
8142         * src/pic/pcode.c,
8143         * src/pic/pcode.h,
8144         * src/pic/pcodepeep.c,
8145         * src/pic/pcoderegs.c,
8146         * src/pic/ralloc.c,
8147         * src/pic/ralloc.h: applied patch from Slade Rich;
8148         added support for multiple code pages and multiple RAM banks on the
8149         PIC 14 port. The ASM files now no longer simply assume all the
8150         code / RAM are in the same page / bank. This means the linker can
8151         safely allocate code/RAM of separate ASM files to different pages/banks.
8152         * doc/sdccman.lyx: added Slade's tips
8153         * src/mcs51/peeph.def: fixed bug #880768
8154
8155 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8156
8157         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8158         * src/SDCCast.c (decorateType): fixed bug #880197
8159
8160 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8161
8162         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8163         getopt.h.
8164
8165         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8166         strtof is not part of C89 and isn't included with Mac OS X.
8167
8168 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8169
8170         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8171         shiftL2Left2Result): fixed bug #879326
8172         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8173         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8174         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8175         address fetch for clr instruction
8176         * device/lib/hc08/_mulint.c: created optimized assembly version
8177         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8178
8179 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8180
8181         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8182         proposed in FR #877103
8183
8184 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8185
8186         * src/SDCCval.c (cheapestVal): added missing checks
8187         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8188         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8189
8190 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8191
8192         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8193         equal operands
8194
8195 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8196
8197         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8198         loaded with the linker search paths (-L arguments) and the libraries
8199         to be linked with the current source (-l arguments). Changes
8200         currently will affect only the pic16 port.
8201         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8202         include path the port specific paths and port specific libraries,
8203         * gplink command now contains the $3 argument,
8204         * src/pic16/device.h,
8205         * src/pic16/device.c,: structure PIC_device is made public and
8206         renamed to PIC16_device, the same for variable Pics which is renamed
8207         to Pics16. Updated all references to them.
8208         * src/pic16/glue.c (pic16glue): corrected bug with code
8209         initialization which bypassed the variable initializations block.
8210
8211         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8212         COMPILE_FLAGS and added the --nostdinc option
8213
8214 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8215
8216         * device/include/mc68hc908jb8.h: Register defs for another member
8217         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8218
8219 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8220
8221         Documenting changes from previous commits.
8222         * configure.in (version 1.56),
8223         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8224         when generating output files to configure the pic16 library,
8225         but now I've commented it out, since gputils aren't installed in the
8226         SF compile farm, so library won't compile
8227
8228         * device/lib/Makefile.in (version 1.56): initially I've added in
8229         target 'all' the prerequestive 'model-pic16' so it compiled the
8230         pic16 library, but now I've commented it out for the same reasons
8231         above,
8232         * added targets 'model-pic16' and 'objects-pic16' to compile the
8233         library
8234         * added target 'port-specific-objects-pic16' to handle the
8235         generated libraries and copy them into the build/ directory
8236         * added target 'clean-intermediate-pic16' to clean intermediate
8237         files into pic16 directory
8238         * in target 'installdirs' added line to create directory pic16 in
8239         the installation path
8240
8241         * device/include/Makefile.in (version 1.11): in target 'install'
8242         added lines to copy all header files to installation path,
8243         * in target 'installdirs' added line create directory for pic16
8244         headers in the installation path
8245
8246 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8247
8248         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8249          a function call
8250
8251 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8252
8253         * configure,
8254         * device/lib/configure.in,
8255         * device/lib/configure: fixed for autoconf 2.57
8256
8257 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8258
8259         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8260         option so that it actually works. Made it specific to the z80, since
8261         the gbz80 doesn't have these kinds of I/O ports.
8262
8263 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8264
8265         * device/include/z180.h,
8266         * device/lib/_memcpy.c,
8267         * device/lib/_memmove.c,
8268         * device/lib/_mulint.c,
8269         * device/lib/ser_ir.c,
8270         * device/lib/ser_ir_cts_rts.c,
8271         * device/lib/_strcmp.c,
8272         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8273         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8274         portmode; added deprecation warning for bank= and protmode= forms.
8275         Also, guard against buffer overflow.
8276         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8277
8278 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8279
8280         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8281         changed interrupt vector table generation to only emit declared vectors.
8282         * device/include/Makefile.in: added missing backslash
8283         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8284
8285 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8286
8287         Mainly changes to support compilation of the device libraries
8288         * src/pic16/device.c: stack is allocated via symbol and not
8289         via literal number. The symbol is placed in the corresponding
8290         position of the data ram
8291         * (pic16_dump_section): relocatable and absolute uninitialized
8292         data are now emitted in sorted order to reduce section naming,
8293         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8294         weren't marked as being in the access bank,
8295
8296 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8297
8298         Added portion of GNU PIC Library under the directory
8299         device/include/pic16 and device/lib/pic16. These files
8300         contain the declarations of SFRs for the PIC18Fxx2 devices.
8301         The directory is initialized via configure from toplevel.
8302
8303 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8304
8305         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8306         the spilllocations to be compared correctly
8307
8308 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8309
8310         * src/SDCCast.c (decorateType): fixed bug introduced today
8311
8312 2004-01-12  Borut Razem <borut.razem AT siol.net>
8313
8314         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8315         doc/sdccman.lyx: upper case pragmas are deprecated
8316
8317 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8318
8319         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8320         in simpler and even better code
8321
8322 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8323
8324         * src/SDCCicode.c (operandOperation): fixed bug #874819
8325         * src/SDCCast.c (decorateType): fixed
8326         char foo (unsigned long ul) { return ul > 0; }
8327
8328 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8329
8330         * doc/sdccman.lyx: Moved and added some sections, small changes
8331         all over. Telling LaTeX to be less strict with word spacing
8332         to better keep the right margin. Changed some notes about
8333         maintainance of the ports in section 3.2.1 - is it OK like this?
8334
8335 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8336
8337         SDCC source changes:
8338         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8339         convilong): modified to inform the pic16 port that builtin functions
8340         are external
8341
8342         PIC16 PORT specific changes:
8343         * src/pic16/device.c pic16_dump_equates() added,
8344         processor registers declared internally by the port are emitted in
8345         the translation as equates,
8346         * src/pic16/gen.c: inline code is passed unprocessed to the
8347         translation,
8348         * (pic16_popGetLit2): fnuction modified to take second operand as
8349         pCodeOp pointer and not as literal,
8350         * (popRegFromIdx): prefixed with pic16_,
8351         * (pic16_popCombine2): modified to receive already allocated pCode
8352         operands,
8353         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8354         * (genFunction): initializes local stack frame and pushes on stack
8355         all the registers used by this function,
8356         * (genEndFunction): restores all registers from stack and restores
8357         stack frame,
8358         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8359         improvements,
8360         * (pic16glue): changed the program startup sequence,
8361         * added new dbName code 'A' for functions placed in absolute section
8362         * src/pic16/main.c: added function attribute _naked,
8363         * added pragma 'code' to place a fnuction at an absolute address,
8364         * added command line arguments --debug-ralloc and --pcode-verbose,
8365         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8366         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8367         * (pic16_newpCodeOpLit2): modified to take the second operand as
8368         pCodeOp pointer,
8369         * (pic16_printpBlock): modified to emit each function in a separate
8370         section,
8371         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8372         UPPER for immediate operands,
8373         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8374         instruction,
8375         * src/pic16/peeph.def: all peepholes with movff are commented out,
8376         because there is a problem in the pcode peep optimizer,
8377         * src/pic16/ralloc.c: the register allocator can now reuse local
8378         function symbols for another function. This saves register usage.
8379         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8380
8381         Added file src/pic16/NOTES with information about program writing on
8382         the current port version.
8383
8384 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8385
8386         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8387         and peephole 252 (array access)
8388
8389 2004-01-09  Borut Razem <borut.razem AT siol.net>
8390
8391         * src/SDCCmain.c : fixed #872250: -l command line defined library
8392           files are scanned before standard library files
8393
8394 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8395
8396         * src/SDCCast.c (decorateType): fixed bug #874046
8397
8398 2004-01-09  Borut Razem <borut.razem AT siol.net>
8399
8400         * support/scripts/sdcc.nsi: remove previous installation
8401
8402 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8403
8404         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8405         bytes for last interrupt vector (mcs51)
8406         * sdcc.spec: fixed typo
8407
8408 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8409
8410         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8411         gen51Code): more efficient parameter receive for --model-large
8412         ("bug" #845294)
8413
8414 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8415
8416         * src/ds390/main.c,
8417         * src/z80/main.c: added missed needLinkerScript flags (more than
8418         one port structure defined in these file)
8419         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8420         bug #795325
8421
8422 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8423
8424         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8425         * src/port.h: added flag needLinkerScript in port->linker
8426         structure to inform whether to create a .lnk file or not,
8427         * src/avr/main.c,
8428         * src/ds390/main.c,
8429         * src/hc08/main.c,
8430         * src/mcs51/main.c,
8431         * src/pic/main.c,
8432         * src/pic16/main.c,
8433         * src/xa51/main.c,
8434         * src/z80/main.c: changed appropriately to configure
8435         needLinkerScript flag
8436         * src/pic/gen.c,
8437         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8438         * src/pic/glue.c: added variable udata_section_name to
8439         override default uninitialized data segment definition for
8440         devices only with SHAREBANK memory (reported from Erik Epetrich)
8441         * (pic14emitOverlay): modified to emit a commented overlay segment
8442         directive when no overlay data exist
8443         * (picglue): modified to emit uninitialized data segment
8444         according to udata_section_name
8445         * src/pic/main.c (_pic14_parseOptions): added command line
8446         options --udata-section-name=[name] to override default
8447         udata definition name
8448         * modified _linkCmd and _asmCmd to include compiler passed
8449         arguments via -W option
8450         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8451         object file from '.rel' to '.o' in port->linker structure,
8452         changed size of fptr from 2 to 3 in port structure
8453
8454 2004-01-07  Borut Razem <borut.razem AT siol.net>
8455
8456         * support/scripts/sdcc.nsi: update PATH
8457         * support/scripts/sdcc.ico: craeted
8458
8459 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8460
8461         * device/include/Makefile.in: fix install
8462         * doc/Makefile: fix install
8463
8464 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8465
8466         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8467         in bug #860505
8468         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8469         how the function variable allocation summary is displayed; also
8470         include information about variables allocated to the overlay
8471         segment
8472
8473 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8474
8475         * as/mcs51/lkmain.c: Help about -Y option
8476         * as/mcs51/lkarea.c: Fixed gcc warnings
8477
8478 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8479
8480         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8481         fixed warning
8482         * support/valdiag/tests/overflow.c: added
8483         * src/SDCCast.c (decorateType),
8484         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8485         LEFT_OP (left shift)
8486
8487 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8488
8489         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8490         (default behaviour).
8491
8492 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8493
8494         A python script to validate compiler diagnostic messages. It can be
8495         used to verify that sdcc complains about bad c source code and
8496         gives a good location of the error.
8497         * support/valdiag/Makefile,
8498         * support/valdiag/valdiag.py,
8499         * support/valdiag/tests/*
8500
8501 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8502
8503         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8504         * src/SDCCsymt.c (newEnumType),
8505         * src/SDCCsymt.h
8506         * support/Util/SDCCerr.c,
8507         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8508         enum related bugs.
8509         * support/regression/tests/enum.c: added test for enum values that
8510         require at least 2 bytes of storage.
8511
8512 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8513
8514         * src/common.h: added ifndef/define/endif macros
8515         around the header file.
8516         Bug reported from Jesus Calvino-Fraga
8517
8518 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8519
8520         * sdcc.spec: updated
8521         * device/include/Makefile.in: don't install CVS directories
8522         * device/lib/Makefile.in: added removal of CVS directories after install
8523         * doc/Makefile: fixed install, added local_icons
8524         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8525         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8526         * src/ds390/gen.c (genRightShift): fixed bug #870788
8527         * src/SDCCast.c (decorateType): fixed bug #870781
8528
8529 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8530
8531         PIC16 port related changes:
8532         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8533         added variable stackPos,
8534
8535         * gen.c: genCall, assignResultValue: added support for
8536         pushing/retrieving function parameters to/from stack,
8537         genFunction,genEndFunction: setup stack frame for the
8538         generated function,
8539         genAddrOf: will be changed according to bug 863624
8540
8541         * added files genutils.c and genutils.h which contain gen*
8542         debugged and optimised functions extracted from gen.c
8543
8544         * glue.c: added variable 'externs' which holds extern symbols,
8545         pic16emitRegularMap: is modified to properly handle relocatable
8546          symbols under the new scheme,
8547         pic16createInterruptVect: is modified
8548         pic16printPublics: is modified to emit 'global' assembler directives,
8549         added pic16_printExterns to print extern symbols,
8550         pic16glue: initializes stack/frame pointer in the beginning of
8551         the assembly output. Temporary hack, will be corrected later,
8552         because gplink yet does not support stack and SDCC does not
8553         yet support a type of crt0.o object to create the final binary.
8554
8555         * Removed many lines that contain 8051 legacy code.
8556         * The code is finally placed under a 'code' directive.
8557         * Added port specific options.
8558
8559         * _process_pragma: simplified since now we do not need *special*
8560         include file to define SFR registers. But a separate header
8561         will be needed. This will be developed later.
8562         * _pic16_parseOptions: added, parses port specific options:
8563         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8564         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8565         --preplace-udata-with=
8566
8567         * _pic16_setDefaultOptions: modified to initialize section names,
8568         but hack is temporarly out of order since it needs improvement.
8569         * _pic16_genAssemblerPreamble: configuration words are emitted by
8570         their address instead of their name. This part is incomplete and
8571         supports only the 18Fxx2 devices. Other devices will emit an error
8572         during assembly since they do not contain the same set of config
8573         registers
8574         * _pic16_genIVT: is modified,
8575
8576         * pcode.c: added definitions for some hardware registers that are needed
8577         for stack support
8578         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8579         All PCI entries are updated. Now LFSR is supported.
8580         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8581         * added pic16_newpCodeOpLit2 to support instructions with
8582         two literal arguments
8583         * pic16_pCode2str: corrected code that emits assembler instructions
8584         with two literal operands and those that have an access bit modifier
8585         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8586         this fixes a bug which caused some labels to be lost, when an
8587         assembler directive was added, i.e. banksel,
8588         * pic16_FixRegisterBanking: improved logic that causes the insertion
8589         of bank switching,
8590         * InlineFunction: functions that are called once, are not any more
8591         inlined. This can be a port option in the future,
8592
8593         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8594
8595         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8596         hold the corresponding uninitialized symbols,
8597         * pic16_allocProcessorRegister: registers have explicit marked the
8598         accessBank field,
8599         * pic16_allocInternalRegister: registers are explicit marked as
8600         not used,
8601         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8602         processing list, so bit registers were lost,
8603         *
8604
8605         * ralloc.h: added field 'accessBank' and original symbol operand
8606         in register definition,
8607         * removed the field isMapped from register definition,
8608
8609         ** Several functions have been removed from various sources:
8610         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8611         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8612         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8613         pic16_assignRelocatableRegisters
8614
8615         ** others have been introduced:
8616         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8617         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8618
8619 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8620
8621         * support/scripts/inc2h.pl: changed definition of BIT_AT
8622         to emit 'sbit at' instead of 'bit at'. This was a request.
8623
8624         PIC16 port related preliminary changes:
8625         * gen.c: prefixed function popRegFromString with
8626         pic16_ and all references to it corrected
8627         * pcode.c: all pic16_pc_* hardware registers prefixed
8628         with underscore (_),
8629         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8630         * ralloc.c: newReg(): when register is REG_SFR then
8631         set address to rIdx,
8632         pic16_allocProcessorRegister(): marks register wasUsed=0
8633         pic16_writeUsedRegs(): added a call to assign processor
8634         registers via pic16_assignFixedRegisters
8635
8636 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8637
8638         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8639         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8640         variables in unused register banks.  Also the SSEG is placed
8641         wherever there is enough space for it, and IDATA can be anywhere
8642         in internal RAM.  For now compile using -Wl-Y[stack_size].
8643         The mem file is different for this option as well, since it
8644         makes no sense of talking about DSEG lenght.
8645
8646 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8647
8648         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8649         in certain cases, e.g. when ROM assignment, patch provided
8650         from Albert den Haan.
8651
8652 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8653
8654         Many signedness and type propagation fixes:
8655         * src/SDCCicode.c: made geniCodeCast() static
8656         replaced SPEC_ by IS_ (cosmetic)
8657         (operandOperation): fixed div and mod operation
8658         (usualBinaryConversions): added support for promotion of char
8659         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8660         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8661         (geniCodeAdd): an array index will stay unsigned, even if promoted
8662         from char to int
8663         (geniCodeArray): ditto
8664         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8665         * src/SDCCsymt.c (computeType): added more support for char;
8666         promotion of char is selectable by promoteCharToInt, fixed signedness
8667         for all cases
8668         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8669         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8670         * src/SDCCval (val*): replaced signedness calculation by
8671         computeType()
8672         rearranged if-branches (cosmetic)
8673         (valShift): added warning W_SHIFT_CHANGED
8674         (valCompare): fixed problem with different types
8675         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8676         * support/regression/tests/literalop.c: added many cases
8677         * support/regression/tests/ast_constant_folding.c: changed finally to
8678         'unsigned int'
8679         * .version: new year, new version: 2.3.7
8680         * src/SDCCmain.c (main): applied patch #866468
8681         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8682         provided by Scott Bronson
8683         * doc/sdccman.lyx: updated documentation for sdcdb
8684         updated and added chapter tips
8685
8686 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8687
8688         * src/SDCCsymt.h: missing from yesterday's commits
8689
8690 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8691
8692         * src/SDCC.y (struct_or_union_specifier),
8693         * support/Util/SDCCerr.c,
8694         * support/Util/SDCCerr.h: verify that struct & union tags are used
8695         as declared.
8696
8697 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8698
8699         * src/SDCCglobl.h: missing from yesterday's commits
8700
8701 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8702
8703         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8704         sft_attributes, struct_declaration, parameter_declaration,
8705         type_name, start_block, declaration_list),
8706         * src/SDCC.lex (check_type): support redefinition of typedef names
8707
8708 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8709
8710         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8711         aligned xdata arrays. Erik helped me with the if clause.
8712
8713 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8714
8715         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8716         warning
8717
8718 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8719
8720         * src/SDCCast.h,
8721         * src/SDCCast.c (newAst_),
8722         * src/SDCCicode.h,
8723         * src/SDCCicode.c (ast2iCode, newiCode),
8724         * src/SDCCglobl.h,
8725         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8726         expr, statement, expression_statement, selection_statement,
8727         iteration_statement, expr_opt, jump_statement): foundation for tracking
8728         sequence points
8729         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8730         point code too)
8731
8732 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8733
8734         * support/Util/SDCCerr.c,
8735         * src/SDCCast.h,
8736         * src/SDCCast.c (createCase, createDefault, decorateType),
8737         * src/SDCClabel.c (labelUnreach),
8738         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8739         to error messages.
8740         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8741         (with thanks to Stas Sergeev)
8742         * device/include/time.h,
8743         * device/lib/time.c (CheckTime): suppress unreachable code warning
8744
8745 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8746
8747         * src/SDCCast.c (createIvalCharPtr),
8748         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8749         bug #753752)
8750         * support/regression/tests/nullstring.c: tests for these two bugs
8751
8752 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8753
8754         * support/Util/SDCCerr.h,
8755         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8756         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8757         about storage class and 'at' used inside struct or union
8758         * src/SDCCBBlock.c (iCodeFromeBBlock),
8759         * src/SDCCcse.c (ifxOptimize),
8760         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8761         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8762         printIval, emitStaticSeg, emitOverlay),
8763         * src/SDCClabel.c (deleteIfx),
8764         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8765         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8766         gatherAutoInit, processParms),
8767         * support/Util/SDCCerr.h,
8768         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8769         reporting for post-parse errors.
8770
8771 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8772
8773         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8774         implicit casts via union; they don't work on big endian systems
8775         (possible fix for bug #861138)
8776
8777 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8778
8779         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8780         * src/mcs51/main.c: fixed the fix for bug #737001
8781
8782 2003-12-15  Borut Razem <borut.razem AT siol.net>
8783
8784         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8785
8786 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8787
8788         * support/makebin/makebin.c: put output in binary mode
8789
8790 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8791
8792         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8793         xdata and data memory on startup. Set the environment variable
8794         SDCC_NOGENRAMCLEAR to disable this.
8795         * src/mcs51/peephole.def,
8796         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8797         (allows non-interrupt and interrupt code to safely compete for a resource
8798         without the non-interrupt code having to disable interrupts)
8799
8800 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8801
8802         * src/SDCCicode.c (geniCodeAdd),
8803         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8804         with valFromType if type might be a pointer and host is big endian).
8805         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8806         types, not just integer types.
8807         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8808         multiply defined with mismatching "at" address.
8809
8810 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8811
8812         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8813         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8814         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8815         with embedded nulls (fixed bug #753752)
8816
8817 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8818
8819         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8820         Apparently this did not see much testing (endless loop)
8821
8822 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8823
8824         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8825
8826 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8827
8828         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8829         gracefully handle NULL memmap pointers
8830
8831 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8832
8833         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8834         instead of deleting the iCode when an operand is volatile
8835         * src/z80/gen.c (genDummyRead),
8836         * src/mcs51/gen.c (genDummyRead),
8837         * src/ds390/gen.c (genDummyRead),
8838         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8839         not just IC_RIGHT
8840         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8841         * src/SDCC.y: fixed bug #850420
8842
8843 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8844
8845         Applied z80 i/o port patch from Peter Townson and fixed some operators
8846         to better handle operands in A register.
8847         * device/include/z180.h
8848         * src/SDCC.y
8849         * src/SDCCglue.c
8850         * src/z80/gen.c
8851         * src/z80/gen.h
8852         * src/z80/main.c
8853         * src/z80/peeph-z80.def
8854         * src/z80/peeph.def
8855         * src/z80/z80.h
8856
8857 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8858
8859         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8860
8861 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8862
8863         * device/lib/hc08/_mullong.c: Removed extra #endif
8864
8865 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8866
8867         * sim/ucsim/hc08.src/inst.cc,
8868         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8869         carries from x to h
8870         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8871         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8872         * device/include/stdarg.h: fixed varargs for hc08
8873         * device/lib/Makefile.in,
8874         * device/lib/hc08/Makefile,
8875         * device/lib/hc08/_mulint.c,
8876         * device/lib/hc08/_mullong.c: fixed some endian problems
8877
8878 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8879
8880         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8881         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8882         * device/lib/_gptrget.c,
8883         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8884
8885 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8886
8887         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8888         * src/SDCCast.c (astErrors): fixed bug #846007
8889         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8890
8891 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8892
8893         * src/SDCCast.c (decorateType): disabled a transformation I added in
8894         revision 1.188 (access to fields of a structure at an absolute address);
8895         it breaks with bitfields, extern declarations, and gcse analysis.
8896         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8897         could be assigned through a pointer, so don't complain.
8898         * src/SDCCast.c (astErrors),
8899         * src/SDCCast.h,
8900         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8901
8902 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8903
8904         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8905         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8906         output of __config directives, since gpasm now supports them
8907         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8908         pre-processor macro, i.e. -DMCU=p18f452
8909         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8910         and modified to handle 'cast' icode similarly to '=' icode
8911         * src/pic16/device.h (typedef struct PIC_device): added field
8912         'extMIface' to indicate that chip has external memory interface
8913         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8914         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8915         18F8720
8916
8917 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8918
8919         * src/SDCC.y (pointer): fixed bug #846006
8920         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8921         * src/SDCCast.c (decorateType): fixed bug #846009
8922         * src/ds390/peeph.def,
8923         * src/ds390/gen.c (genAnd, genOr),
8924         * src/mcs51/peeph.def,
8925         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8926
8927 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8928
8929         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8930         * src/SDCCdflow.c
8931         * src/SDCCcse.c
8932         * src/SDCCcse.h
8933         * src/SDCCBBlock.h
8934         * src/SDCCBBlock.c
8935
8936 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8937
8938         fixed bug #845089
8939         * src/SDCCbitv.h,
8940         * src/SDCCbitv.c: added function to free a bitvector
8941         * src/SDCClrange.h,
8942         * src/SDCClrange.c: added function to recompute the liveranges
8943         * src/avr/ralloc.c,
8944         * src/ds390/ralloc.c,
8945         * src/hc08/ralloc.c,
8946         * src/mcs51/ralloc.c,
8947         * src/pic/ralloc.c,
8948         * src/pic16/ralloc.c,
8949         * src/xa51/ralloc.c,
8950         * src/z80/ralloc.c: recompute the liveranges after register packing
8951
8952 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8953
8954         * src/SDCCloop.c (newInduction): fixed bug #845630
8955
8956 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8957
8958         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8959         inadvertantly left behind from my 2003-11-12 change
8960
8961 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8962
8963         Updated headers I neglected to commit yesterday.
8964         * src/SDCClrange.h,
8965         * src/SDCCicode.h
8966
8967 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8968
8969         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8970         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8971         * src/SDCCopt.c (eBBlockFromiCode),
8972         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8973         the creation of the key hash table from the sequencing so it can be used
8974         earlier (for some GCSE bug fixes still pending)
8975
8976 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8977
8978         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8979         * support/regression/tests/addsub.c: testing genPlus shortcut
8980
8981 2003-11-15  Borut Razem <borut.razem AT siol.net>
8982
8983         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8984
8985 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8986
8987         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8988         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8989         ordering is immaterial.
8990         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8991
8992 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8993
8994         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8995         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8996         (SIGSEV) of bug #840381
8997         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8998         unlink new file before rename if new and old filenames are the same)
8999
9000 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9001
9002         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9003         uninitialized variables) for the mcs51. Set environment variable
9004         SDCC_GENRAMCLEAR to test.
9005         xdata initialization slightly shorter
9006
9007 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9008
9009         * src/SDCCsymt.h,
9010         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9011         #838241 & 780691 (basicly the same bug)
9012         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9013         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9014
9015 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9016
9017         * src/SDCCmain.c (linkEdit): "fix" #834252
9018
9019 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9020
9021         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9022         * src/SDCCast.h,
9023         * src/SDCC.y: fixed bug #819403
9024
9025 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9026
9027         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9028         the reentrant attribute.
9029         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9030         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9031         simulation
9032         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9033         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9034         erroneously reduced to a literal.
9035         * src/hc08/ralloc.c (packRegisters, rematStr),
9036         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9037         some cases
9038
9039 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9040
9041         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9042         * doc/sdccman.lyx: changed from 'article' to 'book'
9043         * doc/Makefile: readded test_suite_spec and cdbfileformat
9044
9045 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9046
9047         * device/include/stdlib.h: include malloc.h to comply with ANSI
9048         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9049
9050 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9051
9052         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9053         * doc/clean.mk: also remove *.out files
9054         * doc/sdccman.lyx: some additions, larger top/bottom margins
9055
9056 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9057
9058         * src/SDCC.y: fixed bug #837365
9059         * support/regression/tests/bitopcse.c
9060         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9061         a symbol (might be valop instead)
9062         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9063         * device/lib/clean.mk: added hc08 to the cleaning list
9064
9065 2003-11-04  Borut Razem <borut.razem AT siol.net>
9066
9067         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9068           made 2003-11-04
9069         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9070           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9071           malloc is declared in standard stdlib.h
9072
9073 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9074
9075         * device/lib/hc08/Makefile: need to clean .rel not .o files
9076         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9077
9078 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9079
9080         * src/port.h,
9081         * src/hc08/main.c,
9082         * src/mcs51/main.c,
9083         * src/ds390/main.c,
9084         * src/z80/main.c,
9085         * src/avr/main.c,
9086         * src/pic/main.c,
9087         * src/pic16/main.c,
9088         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9089         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9090         tests (which uses the port's oclsExpense function)
9091         * src/SDCC.y,
9092         * src/SDCCast.c,
9093         * src/SDCCicode.c,
9094         * src/hc08/gen.c,
9095         * src/ds390/gen.c,
9096         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9097
9098 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9099
9100         * src/SDCCcse.c (ifxOptimize),
9101         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9102         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9103         deleting the IFX iCode.
9104         * src/hc08/ralloc.c: reduced unneeded slocs
9105         * src/hc08/gen.c: fixed bug in asmopToBoolean
9106
9107 2003-11-04  Borut Razem <borut.razem AT siol.net>
9108
9109         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9110           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9111           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9112           transferred to configure
9113
9114 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9115
9116         Use headers defined in the C[++] standards:
9117         * sim/ucsim/gui.src/serio.src/fileio.cc
9118         * sim/ucsim/gui.src/serio.src/frontend.cc
9119         * sim/ucsim/gui.src/serio.src/main.cc
9120         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9121         * support/Util/NewAlloc.c
9122         * as/hc08/lklibr.c
9123         * as/mcs51/lklibr.c
9124         * as/z80/aslist.c
9125         * as/z80/assym.c
9126
9127 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9128
9129         * Added MSVC projects for hc08 assembler and linker:
9130         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9131         /as/hc08/link_hc08.dsp
9132
9133 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9134
9135         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9136
9137 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9138
9139         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9140
9141 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9142
9143         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9144
9145 2003-10-31  Borut Razem <borut.razem AT siol.net>
9146
9147         * support/cpp2/cpplib.h,
9148           support/cpp2/cpplib.c,
9149           support/cpp2/cpplex.c,
9150           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9151           to switch _asm block preprocessing on / off. Default is
9152           #pragma preproc_asm +
9153
9154 2003-10-31  Borut Razem <borut.razem AT siol.net>
9155
9156         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9157           when outputting comment blocks (when executed with -C option) and
9158           _asm (SDCPP specific) blocks
9159
9160 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9161
9162         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9163
9164 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9165
9166         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9167
9168 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9169
9170         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9171         * src/SDCCast.c (decorateType): fixed bug #832664
9172
9173 2003-10-31  Borut Razem <borut.razem AT siol.net>
9174
9175         * support/cpp2/cpplex.c: fixed for SDCPP:
9176           comments(when executed with -C option) and _asm blocks
9177           were included even if they where in skipped #if block.
9178           Applied solution from GCC cpp 3.3.2
9179
9180 2003-10-31  Borut Razem <borut.razem AT siol.net>
9181
9182         * src/SDCC.lex: sdcc now understands both formats:
9183           '# <line_number> <file_name>' and
9184           '#line <line_number> <file_name>'
9185         * support/cpp2/cppmain.c: sdcpp now generates the standard
9186           '# <line_number> <file_name>' instead of former
9187           '#line <line_number> <file_name>'
9188
9189 2003-10-30  Borut Razem <borut.razem AT siol.net>
9190
9191         * support/cpp2/cpphash.h,
9192         * support/cpp2/cpplib.h
9193         * support/cpp2/cpplex.c,
9194         * support/cpp2/cppmain.c,
9195         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9196
9197 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9198
9199         Fixed a number of problems revealed by bug #827883.
9200         * src/SDCCloop.c (loopInvariants): Spill location of the
9201         result operand should be recomputed if extracted from
9202         a loop. Also, don't extract assignments of an iTemp
9203         from a literal.
9204         * src/SDCCast.c (isConformingBody): loop reversal should
9205         not occur if the control variable is involved with a
9206         relational operator.
9207
9208 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9209
9210         * .version: bumped to 2.3.6 to reflect the big improvements
9211         made by Erik and Klaus. Thanks!
9212
9213 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9214
9215         Replaced the livrange code.
9216         * src/SDCClrange.c: added new LR code
9217         * src/SDCCloop.c,
9218         * src/SDCCBBlock.h: removed remainig parts from old LR code
9219         * src/ds390/ralloc.c,
9220         * src/ds390/gen.c: minor fixes to make it work with new code
9221
9222 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9223
9224         * as/hc08/asm.h,
9225         * as/hc08/lkrloc.c,
9226         * src/hc08/gen.c,
9227         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9228         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9229         (tweaked fix for bug #818696)
9230
9231 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9232
9233         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9234
9235 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9236
9237         * src/SDCCmain.c,
9238         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9239         * src/mcs51/gen.c (gencjneshort),
9240         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9241         more efficient (per Scott Bronson's suggestion)
9242
9243 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9244
9245         Extended the semantics of the critical keyword to include
9246         individual statements. See RFE #827755 and #799831
9247         * src/SDCC.y
9248         * src/SDCCicode.c
9249         * src/SDCCopt.c
9250         * src/SDCCast.c
9251         * support/Util/SDCCerr.c
9252         * support/Util/SDCCerr.h
9253         * src/mcs51/gen.c
9254         * src/ds390/gen.c
9255         * src/hc08/gen.c
9256
9257 2003-10-19  Borut Razem <borut.razem AT siol.net>
9258
9259         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9260
9261 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262
9263         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9264         Fixed bug #818696
9265         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9266         and predecrement operand is displayed
9267
9268 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9269
9270         * src/SDCCval.c (valMinus): fixed bug #826041
9271
9272 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9273
9274         Some hc08 related updates that I missed earlier
9275         * sim/ucsim/stypes.h
9276         * support/regression/ports/hc08/spec.mk
9277
9278 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9279
9280         New target "hc08" for the Motorola 68hc08 family of micros
9281
9282         * configure
9283         * configure.in
9284         * Makefile
9285         * src/hc08/*
9286         * src/SDCCmain.c
9287         * src/port.h
9288         * sim/ucsim/hc08.src/*
9289         * sim/ucsim/configure.in
9290         * src/ucsim/configure
9291         * sim/ucsim/packages_in.mk
9292         * as/hc08/*
9293         * as/Makefile
9294         * device/include/mc68hc908qy.h
9295         * device/lib/hc08/*
9296         * device/lib/Makefile.in
9297         * support/regression/ports/hc08/*
9298         * support/regression/Makefile
9299
9300 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9301
9302         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9303         regression test
9304         * src/ds390/gen.c (genCast): fixed bug #821957
9305
9306 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9307
9308         * device/lib/logf.c: "fixed" overlay bug
9309         * support/regression/ports/host/spec.mk: added m library
9310         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9311         * support/regression/tests/float_trans: added (for Eric)
9312
9313 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9314
9315         * src/mcs51/gen.c (genCpl): fixed bug
9316         http://sf.net/mailarchive/message.php?msg_id=6263915
9317
9318 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9319
9320         * src/SDCCast.c (decorateType): added extended constant folding
9321         * src/SDCCsymt.c (computeType): cleanup
9322         * src/SDCCval.c (valShift): minor optimization
9323         * support/regression/tests/ast_constant_folding.c: added
9324
9325 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9326
9327         * src/SDCCmain.c: removed some unintended changes
9328
9329 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9330
9331         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9332         * src/z80/gen.c: fixed part of bug #817589
9333         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9334
9335 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9336
9337         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9338         * src/SDCCcflow.c
9339         * src/SDCCcse.c
9340         * src/SDCCdflow.c
9341         * src/SDCClabel.c
9342         * src/SDCClrange.c
9343         * src/SDCCmem.c
9344         * src/SDCCopt.c
9345         * src/SDCCpeeph.c
9346         * src/SDCCset.c
9347         * src/avr/ralloc.c
9348         * src/ds390/ralloc.c
9349         * src/izt/ralloc.c
9350         * src/mcs51/ralloc.c
9351         * src/pic/ralloc.c
9352         * src/pic16/ralloc.c
9353         * src/xa51/ralloc.c
9354         * src/z80/ralloc.c
9355         * src/z80/gen.c: removed unused label "release:"
9356
9357 2003-10-06  Borut Razem <borut.razem AT siol.net>
9358
9359         * src/SDCC.lex: removed definition of unused variables
9360           save_optimize and save_options
9361
9362 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9363
9364         * clean.mk: removed '=' in "-maxdepth=1"
9365         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9366         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9367
9368 2003-10-06  Borut Razem <borut.razem AT siol.net>
9369
9370         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9371           my_unput() replaced by unput()
9372
9373 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9374
9375         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9376         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9377         type-punned pointer will break strict-aliasing rules"
9378         Old LR behaviour is again default; Klaus' LR can be choosen by
9379         defining the environment variable LRKLAUS
9380         * src/SDCCBBlock.h
9381         * src/SDCCloop.c
9382         * src/SDCClrange.c
9383         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9384         * clean.mk: fixed removal of files in bin/CVS/
9385         * device/lib/clean.mk: fixed removal of directories small and large
9386         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9387         * src/SDCCicode.c,
9388         * src/SDCCval.c: removed superflous test for pedantic
9389
9390 2003-10-05  Borut Razem <borut.razem AT siol.net>
9391
9392         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9393           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9394           message "unmatched #pragma SAVE and #pragma RESTORE"
9395
9396 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9397
9398         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9399           assembly, critical functions, atomic, nojtbound)
9400
9401 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9402
9403         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9404         * src/SDCCBBlock.h
9405         * src/SDCCloop.c
9406         * src/SDCCloop.h
9407         * src/SDCClrange.c
9408
9409 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9410
9411         * src/z80/gen.h,
9412         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9413         * src/mcs51/gen.h
9414         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9415         * src/ds390/gen.h
9416         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9417         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9418         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9419
9420 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9421
9422         * src/z80/gen.c (genRet): fixed bug #524753
9423         * src/z80/gen.c (genCast): fixed internal error on cast from
9424         pointer to long
9425         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9426         fix for bug #477835 to the z80
9427         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9428         for tracking iCodes in the peephole optimizer for z80
9429
9430 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9431
9432         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9433         the other part of bug #814548
9434         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9435
9436 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9437
9438         * src/SDCCcse.c: fixed part of bug #814548
9439
9440 2003-09-28  Borut Razem <borut.razem AT siol.net>
9441
9442         * src/asm.c: rewrite of printILine() to use temporary file instead
9443           a pipe
9444         * src/xa51/main.c: commented out declaration of int rewinds
9445
9446 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9447
9448         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9449
9450 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9451
9452         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9453         * src/asm.c (printILine): Fixed bug #811015
9454
9455 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9456
9457         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9458         freeing.
9459
9460 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9461
9462         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9463         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9464         to correctly handle general case of AOP_PAIRPTR
9465         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9466
9467 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9468
9469         * src/mcs51/ralloc.c (fillGaps),
9470         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9471         register positioning bug)
9472
9473 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9474
9475         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9476
9477 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9478
9479         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9480         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9481         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9482         (ralloc doesn't intentionally do this now, but perhaps later)
9483         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9484         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9485         register positioning bugs (Fixed bug #762602 and #795325)
9486         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9487         (Fixed bug #808779)
9488         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9489         lines that --i-code-in-asm generates
9490
9491 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9492
9493         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9494         trying to fclose a FILE* that was already closed.
9495
9496 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9497
9498         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9499         of const struct should be treated as if const themselves)
9500
9501 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9502
9503         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9504
9505 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9506
9507         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9508         Unix (/n) and DOS (/r/n) line terminations.
9509
9510 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9511
9512         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9513         bug #613775
9514
9515 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9516
9517         * src/mcs51/gen.c (genFunction, genEndFunction),
9518         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9519         and restore of EA so that stack offsets to parameters are
9520         correct when using both critical and reentrant/stack-auto.
9521         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9522         size (can be triggered in error if sloc is shared between
9523         different sized objects)
9524         * device/include/float.h: fixed macros to explicitly use
9525         unsigned long where needed
9526
9527 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9528
9529         Feature req. 799831: added code to allow nesting of critical functions
9530         * src/mcs51/gen.c (genFunction, genEndFunction)
9531         * src/ds390/gen.c (genFunction, genEndFunction)
9532
9533 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9534
9535         * src/SDCCsymt.c (sclsFromPtr),
9536         * src/SDCCsymt.h,
9537         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9538         support for standard C idiom of memory mapped variables; for
9539         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9540         to xdata int at 0x1234 tempvar = 1.
9541         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9542         provided by Akiya ISHIDA
9543
9544 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9545
9546         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9547         * src/SDCCval.c (constVal): added reduction from int to char
9548         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9549         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9550         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9551         to ignore the sign
9552         * support/regression/tests/shifts.c: fixed
9553
9554 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9555
9556         * src/z80/gen.c (genXor): Fixed bug #805445
9557
9558 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9559
9560         Fixed bug #621531 (const & volatile confusion in the type chain).
9561         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9562         refer to the const or volatile state of the pointer itself.
9563
9564         * src/SDCCast.c
9565         * src/SDCCglue.c
9566         * src/SDCCicode.c
9567         * src/SDCCsymt.c
9568         * src/SDCCval.c
9569         * src/SDCC.y
9570         * src/SDCCsymt.h
9571         * src/pic/gen.c
9572         * src/pic/ralloc.c
9573         * src/pic16/gen.c
9574         * src/pic16/ralloc.c
9575         * support/regression/tests/const.c
9576
9577 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9578
9579         When checking for duplicated modules, use absolute paths
9580         instead of relative paths.  Files changed:
9581
9582         * as/mcs51/lklib.c
9583         * link/z80/lklib.c
9584
9585 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9586
9587         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9588
9589 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9590
9591         * device/include/string.h: added size_t typedef, changed
9592         prototypes to use size_t, eliminated separate reentrant and
9593         non-reentrant declarations, added _memmove declaration
9594         * device/lib/_memcpy.c: changed to use size_t instead of int,
9595         changed /4 to >>2 to avoid division library call
9596         * device/lib/_memcmp.c,
9597         * device/lib/_memset.c,
9598         * device/lib/_strncat.c,
9599         * device/lib/_strncpy.c,
9600         * device/lib/_strncmp.c: changed to use size_t instead of int
9601         * device/lib/_memmove.c: new file (fixed bug #772294)
9602         * device/lib/Makefile.in: added _memmove.c
9603         * device/lib/z80/asm_strings.s: fixed bug #772290
9604         * support/regression/tests/bitfields.c: attempt to fix host assertion
9605         failure on amd64-unknown-linux2.2
9606
9607 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9608
9609         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9610         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9611         * as/z80/asmain.c (main): fixed bug #801766
9612
9613 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9614
9615         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9616         compilers
9617
9618 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9619
9620         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9621         reported in bug #800609
9622
9623 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9624
9625         * Top header beautifications in src/pic16 directory:
9626           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9627           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9628           pcoderegs.h, ralloc.c, ralloc.h
9629         * main.c: added top header and GPL license notice
9630         * pcode.c: fixed the if-conditional warning
9631
9632 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9633
9634         * device/lib/_mullong.c: replaced int by short for gcc
9635
9636 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9637
9638         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9639         and JUMPTABLE iCodes properly now (worked by accident before)
9640         * src/mcs51/gen.c (leftRightUseAcc),
9641         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9642         iCode properly now. Use getSize instead of nRegs since a & b
9643         aren't part of the nRegs tally.
9644
9645 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9646
9647         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9648         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9649           before instructions that use the _STATUS register
9650
9651 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9652
9653         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9654         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9655         fetching of the pointer
9656         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9657         copied from genNearPointerSet()
9658         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9659         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9660         If they pop r0/r1 they must be called in the opposite order than aopOp().
9661         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9662         (resp. --stack-auto), prepared for --xstack
9663
9664 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9665
9666         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9667
9668 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9669
9670         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9671         these ports have their own __sdcc_external_start()
9672
9673 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9674
9675         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9676         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9677         type for bits was changed. It resulted in bit variables becoming
9678         global, which is not permitted in PIC 14 assembly output.
9679
9680 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9681
9682         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9683
9684 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9685
9686         Z80 and MCS51 linkers complaint if a public symbol is defined
9687         in more than one library module:
9688
9689         * as/mcs51/lklib.c
9690         * link/z80/lklib.c
9691         * as/mcs51/Makefile.in
9692
9693 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9694
9695         A few small changes that speed up the peephole optimizer.
9696
9697         * src/SDCCpeeph.c
9698
9699 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9700
9701         Try to make the peephole optimizer smarter by maintaining
9702         an association between the assembly source code and the
9703         iCodes that originated them. Put this information to use
9704         with a new peephole rule condition "notVolatile" so that
9705         the rules can be aggressive yet still safe.
9706
9707         * src/SDCCpeeph.c
9708         * src/SDCCpeeph.h
9709         * src/mcs51/gen.c
9710         * src/mcs51/peeph.def
9711
9712 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9713
9714         Fixed bug #741761
9715
9716         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9717         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9718         if the left or right operand symbols have the accuse flag set.
9719
9720 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9721
9722         Changed the type of the result of the ! (NOT) operator to char;
9723         previously it returned the same type as the source. This allows
9724         us to eliminate all the genFloatNot functions (all of its target
9725         implementations were very buggy) since !float can use the same
9726         code as !long now.
9727
9728         * src/SDCCicode.c (ast2iCode): ! returns char
9729         * src/mcs51/gen.c (genNot, genNotFloat),
9730         * src/ds390/gen.c (genNot, genNotFloat),
9731         * src/z80/gen.c (genNot, genNotFloat),
9732         * src/pic/gen.c (genNot, genNotFloat),
9733         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9734
9735 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9736
9737         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9738         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9739            during interrupts. Ensure WSAVE is located at a shared bank address.
9740         2. Fixed page selection in some places
9741         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9742            the registers name strings.
9743         4. Fixed "signed / unsigned compare" compiler warnings.
9744         5. The PIC port manages its own allocation of the general purpose
9745            registers, but makes no attempt to reuse them. As a result when
9746            compiling it soon runs out of general purpose registers. Some
9747            additional code was added to the files pcode.c and device.c to walk
9748            through the function call tree and rename the registers so that they
9749            get reused.
9750
9751         * src/pic/device.c
9752         * src/pic/gen.c
9753         * src/pic/glue.c
9754         * src/pic/pcode.c
9755         * src/pic/pcode.h
9756         * src/pic/ralloc.c
9757         * src/pic/ralloc.h
9758         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9759         genPlus() & genMinus() when the result is the same as left or right
9760
9761 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9762
9763         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9764
9765 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9766
9767         Made bitfield a distinct type from bit so that bitfields
9768         convert as per ANSI C and bits retain their traditional
9769         boolean style behaviour. Implemented bitfield support in
9770         the z80 port.
9771
9772         * src/SDCCsymt.h,
9773         * src/SDCCsymt.c,
9774         * src/SDCCast.c,
9775         * src/cdbFile.c,
9776         * src/mcs51/gen.c,
9777         * src/ds390/gen.c: bit v bitfield split
9778         * src/z80/gen.c: New support for bitfields
9779         * support/regression/tests/bitfields.c: reenabled z80,
9780         added more tests
9781
9782 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9783
9784         Rules 246.x, 247.x relate to bitfields, the others speed up
9785         access to xdata mapped I/O devices.
9786
9787         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9788
9789 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9790
9791         Cleaned up genPackBits and genUnpackBits and added two helper
9792         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9793         for literal assignments in genPackBits (thanks to Frieder for
9794         reminding me).
9795
9796         * src/mcs51/gen.c
9797         * src/ds390/gen.c
9798
9799 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9800
9801         Fixed bug #748310 (pointer to function type mishandled when the
9802         function name is omitted). Also fixed a SIGSEGV when a function
9803         attribute (reentrant, etc) is used on a non-function or on a
9804         function but misplaced before the parameter list.
9805
9806         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9807         bug #748310
9808         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9809         * support/Util/SDCCerr.h,
9810         * support/Util/SDCCerr.c: Added func attr misuse error msg
9811
9812 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9813
9814         Fixed bug #787649 by anonymous
9815         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9816         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9817
9818 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9819
9820         Fixed numerous bitfield problems.
9821
9822         * src/SDCC.y: More bitfield related error checking
9823         * src/SDCCsymt.h,
9824         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9825         * support/Util/SDCCerr.h,
9826         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9827         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9828         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9829         * support/regression/tests/bitfields.c: tests added
9830
9831 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         Made the constant following the "interrupt" keyword optional. If
9834         omitted, the function will not automatically be given an entry
9835         in the interrupt vector table (similar to #pragma NOIV, but
9836         less syntacticly kludgy). The interrupt number is also now
9837         range checked. Also fixed a bug in the high order bit example
9838         in the manual.
9839
9840         * src/SDCC.y
9841         * src/SDCCmem.c
9842         * src/SDCCglue.c
9843         * src/SDCCsymt.h
9844         * support/Util/SDCCerr.c
9845         * support/Util/SDCCerr.h
9846         * doc/sdccman.lyx
9847
9848 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9849
9850         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9851         * src/SDCCicode.c (operandOperation): rewritten some ops
9852         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9853         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9854         other type
9855         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9856         be re-activated by defining REDUCE_LITERALS)
9857         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9858         unsigned, but are signed by default
9859         * src/SDCCval.c (constVal): rearranged
9860         * src/SDCCval.c (valMod): preliminary fix
9861         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9862         * support/regression/literalop.c: added, work in progress
9863
9864 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9865
9866         Generate warnings for useless declarations like "char data;"
9867         that don't do what new users expect.
9868
9869         * src/SDCC.y
9870         * support/Util/SDCCerr.h
9871         * support/Util/SDCCerr.c
9872
9873 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9874
9875         * src/SDCCval.c (valMult): fix overflow detection of negative int
9876
9877 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9878
9879         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9880
9881         Changes to support big endian targets:
9882
9883         * src/ports.h
9884         * src/SDCCglue.c
9885         * src/avr/main.c
9886         * src/ds390/main.c
9887         * src/izt/i186.c
9888         * src/mcs51/main.c
9889         * src/pic/main.c
9890         * src/pic16/main.c
9891         * src/xa51/main.c
9892         * src/z80/main.c
9893
9894 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9895
9896         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9897         * device/lib/time.c: fixed warning "integer overflow in expression"
9898
9899 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9900
9901         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9902         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9903         constants are unsigned; added recognition of "u" flag for unsigned
9904         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9905         * src/SDCCval.c (valDiv, valMod): fixed signdness
9906         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9907         signedness of modulo, left and right shift
9908         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9909         * support/Util/SDCCerr.h: added warning W_INT_OVL
9910         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9911         * src/SDCCast.c (ast_print): improved output of constants
9912
9913 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9914
9915         Fixed some warnings when building with MSVC:
9916
9917         * as/mcs51/asdata.c
9918         * as/z80/asdata.c
9919         * as/mcs51/asm.h
9920         * as/z80/asm.h
9921         * link/z80/aslink.h
9922         * link/z80/lkdata.c
9923         * link/z80/lkeval.c
9924         * link/z80/lkgb.c
9925         * link/z80/lkihx.c
9926         * link/z80/lks19.c
9927         * link/z80/lksym.c
9928         * support/cpp2/cpplib.c
9929         * src/ds390/gen.c
9930         * src/mcs51/gen.c
9931
9932 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9933
9934         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9935
9936 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9937
9938         * support/librarian/clean.mk: Do not remove Makefile.
9939         * support/librarian/Makefile: added.
9940
9941 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9942
9943         Added librarian to MSVC build:
9944         * all.dsp
9945         * sdcc.dsw
9946         * support/librarian/librarian.dsp
9947
9948         'configure' not needed for librarian, removed:
9949         * support/librarian/configure
9950         * support/librarian/configure.in
9951         * support/librarian/config_in.h
9952         * support/librarian/Makefile.in
9953
9954         Hopefully these ones built the librarian and the rest of sdcc properly:
9955         * Makefile
9956         * Makefile.common.in
9957
9958         Messed up 'configure', so revert to previous version:
9959         * configure
9960         * configure.in
9961
9962 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9963
9964         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9965         there, while the mantissa of a double is "only" 53 bits wide.
9966
9967 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9968
9969         Adding sdcclib to the build.  MSVC project coming soon.
9970         Files added/changed:
9971
9972         * support/librarian/clean.mk
9973         * support/librarian/configure
9974         * support/librarian/configure.in
9975         * support/librarian/config_in.h
9976         * support/librarian/Makefile.bcc
9977         * support/librarian/Makefile.in
9978         * support/librarian/sdcclib.c
9979         * Makefile.bcc
9980         * Makefile
9981         * Makefile.common.in
9982         * configure
9983         * configure.in
9984
9985 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9986
9987         Linker now complaints if linked modules have conflicting options, for
9988         example, one compiled using --model-large and another one compiled with
9989         --model-small.  The following files were modified:
9990
9991         * as/mcs51/asdata.c
9992         * as/mcs51/aslink.h
9993         * as/mcs51/asm.h
9994         * as/mcs51/asmain.c
9995         * as/mcs51/asout.c
9996         * as/mcs51/i51pst.c
9997         * as/mcs51/lkdata.c
9998         * as/mcs51/lklibr.c
9999         * as/mcs51/lkmain.c
10000         * as/z80/asdata.c
10001         * as/z80/asm.h
10002         * as/z80/asmain.c
10003         * as/z80/asout.c
10004         * as/z80/z80pst.c
10005         * link/z80/aslink.h
10006         * link/z80/lkdata.c
10007         * link/z80/lklibr.c
10008         * link/z80/lkmain.c
10009         * src/SDCCglue.c
10010
10011 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10012
10013         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10014         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10015
10016 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10017
10018         * src/z80/mappings.i: fix _mul[us][int,long] entries
10019
10020 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10021
10022         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10023
10024 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10025
10026         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10027         * support/regression/tests/bitopcse.c: added
10028         fixed warning:
10029         * src/avr/gen.c:
10030         * src/pic/gen.c:
10031         * src/pic16/gen.c:
10032         * src/z80/gen.c:
10033         * src/xa51/gen.c:
10034
10035 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10036
10037         added support for new library format to z80, gbz80 linkers:
10038         *link/z80/aslink.h
10039         *link/z80/lklex.c
10040         *link/z80/lklib.c
10041         *link/z80/lklist.c
10042
10043 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10044
10045         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10046         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10047
10048 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10049
10050         added DUMMY_READ_VOLATILE:
10051         * src/SDCC.y:
10052         * src/avr/gen.c:
10053         * src/xa51/gen.c:
10054         * src/z80/gen.c:
10055         * src/pic/gen.c:
10056         * src/pic16/gen.c:
10057         * src/mcs51/gen.c:
10058         * src/ds390/gen.c:
10059         * src/SDCCcse.c (algebraicOpts): many improvements
10060         * src/SDCCcse.h: removed algebraicOpts()
10061         * src/SDCCicode.c (picDummyRead): added
10062
10063 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10064
10065         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10066         "Insufficient space in data memory".
10067
10068 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10069
10070         * src/mcs51/gen.c: fixed bug #771358
10071         * src/z80/gen.c: fixed bug #759087
10072
10073 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10074
10075         * src/pic16/glue.c: minor cleanup by Vangelis
10076
10077 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10078
10079         * device/include/regc515c.h: fixed #758477
10080         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10081         * device/lib/_gptrput.c: saved a few bytes
10082         * my tab spacing is 8, yours too?)
10083         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10084         * device/lib/serial.c: process RX bytes earlier than TX bytes
10085         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10086
10087 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10088
10089         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10090
10091 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10092
10093     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10094
10095 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10096
10097         * device/lib/Makefile.in: bad fix, reverted to 1.43
10098
10099 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10100
10101         * device/lib/Makefile.in: added missing z80 object files
10102
10103 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10104
10105         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10106         pic16 progress by Vangelis:
10107         * src/SDCCglobl.h:
10108         * src/SDCCmain.c:
10109         * src/pic/Makefile:
10110         * src/pic:
10111         * pic/Makefile:
10112         * pic16/device.c:
10113         * pic16/device.h:
10114         * pic16/gen.c:
10115         * pic16/gen.h:
10116         * pic16/genarith.c:
10117         * pic16/glue.c:
10118         * pic16/main.c:
10119         * pic16/pcode.c:
10120         * pic16/pcode.h:
10121         * pic16/pcodepeep.c:
10122         * pic16/peeph.def:
10123
10124 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10125
10126     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10127
10128 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10129
10130     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10131     added gbz80 build to MSVC project.
10132     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10133     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10134     from 8051 stuff and setup so it links using a .lnk file.
10135
10136 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10137
10138     * support/librarian/sdcclib.c: sdcc librarian.
10139     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10140     with sdcclib.
10141
10142 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10143
10144     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10145
10146 2003-07-02  Borut Razem <borut.razem AT siol.net>
10147
10148         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10149         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10150         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10151         src/xa51/main.c, src/z80/main.c:
10152         virtualization of glue() function: each port has it's own glue function,
10153         which is accessed by do_glue function pointer in PORT.general structure
10154
10155 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10156
10157         * DS800C400 fun, improved ROM interface and tinibios.
10158
10159 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10160
10161         * More support for DS80C400. Now includes beginning of interface to ROM.
10162
10163 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10164
10165         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10166
10167 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10168
10169         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10170
10171 2003-06-19  Borut Razem <borut.razem AT siol.net>
10172
10173         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10174
10175 2003-06-19  Borut Razem <borut.razem AT siol.net>
10176
10177         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10178         fixed Z80 port - crt0.o: cannot open.
10179
10180 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10181
10182         * support/Util/MySystem.c (merge_command): revert bad fix
10183
10184 2003-06-18  Borut Razem <borut.razem AT siol.net>
10185
10186         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10187
10188 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10189
10190         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10191         option --use-stdout sends errors to stdout instead of stderr.
10192
10193 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10194
10195         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10196
10197 2003-06-15  Borut Razem <borut.razem AT siol.net>
10198
10199         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10200         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10201         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10202         fixed width array of pointers replaced with sets;
10203         multiple include and lib paths ared transferred to preprocessor and linker
10204         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10205         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10206         fixed width array of pointers
10207         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10208         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10209         fixupPath(), getPathDifference()
10210         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10211         fixed width array of pointers
10212
10213 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10214
10215         * src/pic16/ralloc.c: fix warnings
10216         * src/pic16/pcode.c: fix warning
10217
10218 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10219
10220          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10221         know all the details, but essentially this set of changes enable
10222         the pic16 port to generate movff instructions and generate assembler
10223         directives,
10224         * src/SDCCmain.c:
10225         * src/pic16/gen.c:
10226         * src/pic16/glue.c:
10227         * src/pic16/pcode.c:
10228         * src/pic16/device.c:
10229         * src/pic16/main.c:
10230         * src/pic16/pcode.h:
10231         * src/pic16/pcoderegs.c:
10232         * src/pic16/ralloc.c:
10233         * src/pic16/ralloc.h:
10234
10235 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10236
10237         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10238         added option --vc, so sdcc errors and warnings are compatible with
10239         Microsoft Visual Studio.
10240
10241 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10242
10243         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10244           device/lib/libfloat.lib: added atof function.
10245
10246 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10247
10248         * doc/sdccman.lyx: updated to Lyx 1.3
10249         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10250         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10251         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10252
10253 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10254
10255         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10256
10257 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10258
10259         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10260           additions to the "related tools/documentation" section
10261
10262 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10263
10264         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10265
10266 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10267
10268         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10269         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10270
10271 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10272
10273         * doc/sdccman.lyx: fix double dash and other minor things
10274         * doc/Makefile: fix double dash
10275
10276 2003-05-28  Karl Bongers(patches from Martin Helmling)
10277         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10278           condition and ignore commands.
10279
10280 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10281
10282         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10283           is in parts still quite out of date, I did changes as far as I felt makes sense
10284           for a non-native english speaker.
10285           Please feel free to add to the manual or to correct my changes.
10286         * doc/Makefile: undid touching the date of intermediate tex files.
10287
10288 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10289
10290         * doc/sdccman.lyx: Manual has an index now
10291
10292 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10293
10294         Finalize muluint/mulsint and mululong/mulslong merging:
10295         * device/lib/_mulint.c
10296         * device/lib/_mullong.c
10297         * device/lib/gbz80/mul.s
10298         * device/lib/gbz80/stubs.s
10299         * device/lib/z80/mul.s
10300         * device/lib/z80/stubs.s
10301         * src/SDCCsymt.c (initCSupport)
10302
10303 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10304
10305         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10306         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10307           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10308           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10309           instead of /Zm500.
10310
10311 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10312
10313         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10314           the regression tests I'm not brave enough to enable 245.b, 245.c
10315         * doc/sdccman.lyx: added latex preamble for hyperref package.
10316           Using pdflatex this will give you a hyperlinked pdf file with
10317           bookmarks. (prepend '%' before /usepackage if this breaks something)
10318
10319 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10320
10321          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10322
10323 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10324
10325         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10326
10327 2003-05-21    <johan AT balder>
10328
10329         * src/SDCCglue.c (printIval): fixed bug #739934
10330
10331 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10332
10333         Applied patch from bug 737905 (renamed yylineo to mylineno):
10334         * src/altlex.c
10335         * src/SDCCast.c
10336         * src/SDCglobl.h
10337         * src/SDCC.lex
10338         * src/SDCCsymt.c
10339         * src/SDCCval.c
10340         * src/pic16/pcode.c: Cleaned warnings
10341         * src/pic16/pcodeflow.c: Cleaned warnings
10342         * src/pic16/pcoderegs.c: Cleaned warnings
10343
10344 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10345
10346         * src/pic16/pcode.c: Cleaned warnings
10347         * src/pic16/pcodepeep.c: Cleaned warnings
10348         * src/pic16/ralloc.c: Cleaned warnings
10349
10350 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10351
10352         * doc/sdccman.lyx: fixed bug 739745
10353         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10354
10355 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10356
10357         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10358         it can be defined with CFLAGS when running configure
10359         * src/SDCCmain.c: fixed compiling + linking with object files
10360
10361 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10362
10363         * configure.in: configure for pic16 port,
10364             added --disable-pic16-port
10365         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10366         * src/SDCCmain.c: linkOptions is changed to set *,
10367             added if/endif conditional macros to remove options help
10368             messages from optionsTable when a port is not configured, added
10369             support for the PIc16 port in the ports table, when executing
10370             the compiler with no port specified on command line, a default
10371             port is selected with the new macro DEFAULT_PORT which is
10372             defined in port.h, in setDefaultOptions() linkOptions is removed
10373             from initialization assignment, since now it is a set,
10374             parseCmdLine uses setParseWithComma for linkOptions, in
10375             linkEdit() linkOptions are accessed with new function indexSet()
10376             which returns the i'th item of a set variable. See SDCCset.c, in
10377             linkEdit() when calling buildCmdLine(), added linkOptions as
10378             last argument. Now users can pass arguments to gplink via the
10379             -Wl option, main() uses pic16glue() to glue up pic16 programs
10380         * src/SDCCpeeph.c: various changes to support pic16
10381         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10382             return the i'th item of the set
10383         * src/SDCCset.h: added function prototype for indexSet()
10384         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10385         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10386         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10387             added macro DEFAULT_PORT
10388         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10389         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10390             generated
10391         * src/pic16/glue.c: commented out some error producing lines
10392         * src/pic16/main.c: __config directives are commented out to stop
10393             gpasm complaining and test the linkage with gplink, _linkCmd and
10394             _asmCmd changed to be more gplink and gpasm friendly
10395         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10396             produced an error when parsed, peep rule 12 is added to utilize
10397             movff, but it is commented out since the pCode does not support
10398             yet a command with 2 address arguments
10399
10400 2003-05-18    <johan AT balder>
10401
10402         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10403         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10404 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10405
10406         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10407   Added feature to script commands from file.
10408
10409 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10410
10411         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10412         * src/SDCCutil.c: include ctype.h for win32
10413
10414 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10415
10416         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10417
10418 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10419
10420         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10421   Fixed so you can set breakpoints prior to run, run does not stop
10422   on entry now.  Add tbreak.  Other enhancements and fixes for use
10423   with ddd.
10424
10425 2003-05-12  Borut Razem <borut.razem AT siol.net>
10426
10427         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10428
10429 2003-05-11  Borut Razem <borut.razem AT siol.net>
10430
10431         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10432         the path of bin directory, so that PATH is the only env. variable, which has to be set
10433         in case of standard installation.
10434         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10435         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10436         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10437
10438 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10439
10440         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10441         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10442         temp files are in the port dir; clean the gen/test directory when
10443         generating new test.c
10444         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10445         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10446         * support/regression/tests/zeropad.c: added
10447
10448 2003-05-09    <johan AT balder>
10449
10450         * src/SDCCglue.c: fixed bug #597940
10451
10452 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10453
10454         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10455   cache sfr, optimize next,step, fix off by one sourceline,
10456   support ddd list function.
10457         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10458
10459 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10460
10461         * support/regression/HTMLgen.py: added compare_s2f()
10462         * support/regression/Makefile: redo 1.27
10463         * support/regression/generate-cases.py: redo 1.5
10464
10465 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10466
10467         * support/regression/tests/float.c: workaround 33 bit hex constant
10468         * support/regression/tests/simplefloat.c: fix division for host
10469
10470 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10471
10472         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10473         that tame's the PIC's over-aggressive optimizer.
10474
10475 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10476
10477          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10478          support for MSVC.
10479
10480 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10481
10482         Initial support for DS80C400. "Hello world" runs on TINIm400
10483         (with polled I/O).
10484
10485 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10486
10487          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10488          * Some notes on ddd usage added in debugger/README
10489          Martin Helmling adding more features and fixes for ddd GUI debugger.
10490          Code added for nexti, stepi, up, down, and other adjustments.
10491
10492 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10493
10494         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10495         * src/pic/peeph.def Added two rules to optimize carry manipulation
10496         * src/pic/* removed debug printfs
10497
10498 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10499
10500         * debugger/mcs51/cmd.c: added header newalloc.h
10501
10502 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10503
10504         * as/Makefile: new EXEEXT
10505         * as/z80/Makefile: remove trailing slash of BUILDIR
10506         * as/z80/clean.mk: new EXEEXT
10507         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10508         * support/cpp2/Makefile.in: new EXEEXT
10509         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10510
10511 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10512
10513         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10514         EXEEXT was introduced to fix all related problems with targets
10515         "clean", "install" and "uninstall"; a couple of further flaws
10516         especially with "clean" have been fixed too
10517         * as/mcs51/Makefile.in
10518         * as/mcs51/clean.mk
10519         * as/z80/Makefile
10520         * Makefile
10521         * clean.mk
10522         * debugger/mcs51/Makefile.in
10523         * debugger/mcs51/clean.mk
10524         * link/z80/Makefile
10525         * link/z80/Makefile.in
10526         * link/z80/clean.mk
10527         * link/Makefile
10528         * packihx/Makefile.in
10529         * packihx/clean.mk
10530         * sim/ucsim/Makefile
10531         * sim/ucsim/clean.mk
10532         * sim/ucsim/avr.src/Makefile.in
10533         * sim/ucsim/avr.src/clean.mk
10534         * sim/ucsim/s51.src/Makefile.in
10535         * sim/ucsim/s51.src/clean.mk
10536         * sim/ucsim/xa.src/Makefile.in
10537         * sim/ucsim/xa.src/clean.mk
10538         * sim/ucsim/z80.src/Makefile.in
10539         * sim/ucsim/z80.src/clean.mk
10540         * sim/ucsim/main_in.mk
10541         * sim/ucsim/packages_in.mk
10542         * sim/ucsim/gui.src/Makefile.in
10543         * sim/ucsim/gui.src/serio.src/Makefile.in
10544         * sim/ucsim/gui.src/serio.src/clean.mk
10545         * src/Makefile.in
10546         * src/clean.mk
10547         * support/cpp2/Makefile.in
10548         * support/cpp2/clean.mk
10549         * support/makebin/Makefile
10550         * support/makebin/clean.mk
10551         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10552         * doc/sdccman.lyx: --program-suffix no longer needed
10553
10554 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10555
10556          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10557          Martin Helmling added support for ddd GUI debugger.
10558          Code added to display assembly, set variables, and other commands
10559          to interface to ddd.
10560
10561 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10562
10563         * as/Makefile: fix target clean
10564         * as/clean.mk: fix target clean
10565         * as/z80/clean.mk: fix target clean
10566
10567 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10568
10569         * Makefile.common.in: added  AT EXEEXT AT
10570         * configure.in: removed all mingw32 stuff
10571         * configure: rebuilt from configure.in
10572         * doc/sdccman.lyx: updated section "installation"
10573         * support/scripts/sdcc_mingw32: adapted to configure
10574         * support/scripts/sdcc_cygwin_mingw32: added
10575
10576 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10577
10578         * src/pic Added object file support for the PIC port
10579         * src/pic Applied patch from Craig Franklin (this started the object file support)
10580         * src/regression Updated the PIC regression tests for object files
10581
10582 2003-04-20  Borut Razem <borut.razem AT siol.net>
10583
10584         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10585           lklex.c: In function `getfid':
10586           lklex.c:203: warning: array subscript has type `char'
10587         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10588           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10589         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10590           stack handling macros
10591
10592 2003-04-19  Borut Razem <borut.razem AT siol.net>
10593
10594         * "handling space characters in file path" task:
10595         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10596         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10597         * support/Util/MySystem.h: make it self-sufficient
10598         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10599           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10600           handling space characters in file path
10601         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10602           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10603         * support/Util/MySystem.c: handling space characters in executable's path
10604
10605 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10606
10607         * as/z80/Makefile: fix permanent rebuild of z80
10608         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10609         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10610
10611 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10612
10613         * src/SDCCopt.c: add special case optimization to replace modulo by
10614           a power of two with a bitwise AND.
10615
10616 2003-04-18    <johan AT balder>
10617
10618         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10619
10620 2003-04-17    <johan AT balder>
10621
10622         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10623         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10624
10625 2003-04-13  Borut Razem <borut.razem AT siol.net>
10626
10627         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10628         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10629           fixed mingw problem in adl_NORMALIZE_PATH
10630
10631 2003-04-12  Borut Razem <borut.razem AT siol.net>
10632
10633         * fixed "#pragma SAVE/RESTORE can not be nested":
10634         * src/SDCC.lex: reworked pragma handling functions
10635         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10636         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10637
10638 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10639
10640         * src/SDCCutil.c (pathEquivalent): defined but not used
10641         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10642         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10643         * configure: rebuilt from configure.in
10644         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10645         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10646         * device/include/Makefile.in: replace sdcc_datadir
10647         * device/lib/Makefile.in: replace sdcc_datadir
10648         * Makefile.common.in: add LDFLAGS from configure
10649         * packihx/Makefile.in: use LDFLAGS
10650         * src/Makefile.in: use LDFLAGS
10651         * support/cpp2/Makefile.in: add LDFLAGS from configure
10652         * support/makebin/Makefile: use LDFLAGS
10653         * .version: bumped version number to 2.3.5
10654
10655 2003-04-12  Borut Razem <borut.razem AT siol.net>
10656
10657         * completed "different paths" task:
10658         * src/SDCCmacro.c: fixed bug in handling quotes
10659         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10660         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10661
10662 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10663
10664         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10665
10666 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10667
10668         * ds390/gen.c ds390/peeph.def: fix bug 706781
10669
10670 2003-04-11  Borut Razem <borut.razem AT siol.net>
10671
10672         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10673
10674 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10675
10676         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10677         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10678          set - this bit used to not be set...).
10679         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10680           bad code in PIC Port
10681         * src/regression/and2.c added to test bug 609268
10682         * src/regression/Makefile added and2.c to regression test
10683
10684
10685 2003-04-08    <johan AT CP255758-A>
10686
10687         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10688         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10689         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10690
10691 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10692
10693         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10694         fix bug #487815
10695         * support/cpp2/Makefile.in: fix bug #487815
10696         * configure: rebuilt from configure.in
10697         * Makefile.common.in: docdir changed, new path suffixes
10698         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10699         * sdcc_vc_in.h: reflect changes from sdccconf.h
10700         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10701         * src/SDCCutil.h: remove BINDIR hack
10702         * doc/sdccman.lyx: update new path hierarchy
10703
10704 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10705
10706         * src/SDCCpeeph.c: added okToRemoveSLOC test
10707
10708 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10709
10710         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10711
10712 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10713
10714         * src/SDCCpeeph.c: added labelIsReturnOnly test
10715         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10716
10717 2003-04-05    <johan AT balder>
10718
10719         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10720         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10721         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10722         * src/SDCCast.c: fixed a warning
10723         * src/SDCCast.h: fixed a warning
10724         * src/SDCCicode.c (operandFromAst): fixed a warning
10725
10726 2003-04-04    <johan AT balder>
10727
10728         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10729         * src/SDCCast.c (decorateType): fixed bug #715076
10730         * src/SDCC.y: fixed bug #702907
10731
10732 2003-04-03    <johan AT balder>
10733
10734         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10735         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10736         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10737         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10738         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10739
10740 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10741
10742         * _decdptr.c: fix return values
10743         * _gptrget.c: fix return values
10744         * _gptrgetc.c: fix return values
10745         * _gptrput.c: fix return values
10746         * _mulint.c: fix return values
10747         * as/z80/Makefile: fix 'make -j' problem
10748
10749 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10750
10751         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10752         * configure.in: big cleanup, updated to autoconf 2.5x
10753         * configure: rebuilt from configure.in
10754         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10755         * sdcc_vc_in.h: reflect changes from sdccconf.h
10756         * doc/Makefile: fixed a flaw in "make install"
10757
10758 2003-04-02    <johan AT balder>
10759
10760         * src/ds390/gen.c (genCmp): no comments
10761         * src/mcs51/gen.c (genCmp): no comments
10762         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10763         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10764
10765 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10766
10767         * support/regression/generate-cases.py: place generated file in given sub directory
10768         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10769         * support/regression/Makefile: improvements for 'make -j';
10770         side effect: it's simpler and faster now
10771
10772 2003-03-31  Borut Razem <borut.razem AT siol.net>
10773
10774         * src/z80/main.c: link-{port} and as-{port} defined without path
10775         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10776
10777 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10778
10779         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10780
10781 2003-03-30  Borut Razem <borut.razem AT siol.net>
10782
10783         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10784           changed type of list parameter to set
10785         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10786         * src/port.h: changed type of do_assemble() parameter to set
10787         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10788           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10789           definition of "cppoutfilename" macro with NULL value in preProcess()
10790         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10791         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10792         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10793           replaced with set *binPathSet
10794         * shash_add() deallocates the item, if allready exsists, before adding the new one
10795         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10796
10797 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10798
10799         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10800           a nested for loop bug in the PIC port
10801         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10802           for loops
10803
10804 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10805
10806         * support/Util/dbuf.h: remove C++ stuff to make it portable
10807
10808 2003-03-28  Borut Razem <borut.razem AT siol.net>
10809
10810         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10811           literal strings in stringLiteral()
10812         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10813         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10814           to the project
10815
10816 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10817
10818         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10819
10820 2003-03-26    <johan AT balder>
10821
10822         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10823         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10824         * src/SDCCast.c (decorateType): fixed " -v < 3"
10825
10826 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10827
10828         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10829         Added Lenny Story's debug infrastructure changes:
10830         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10831         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10832         * src/cdbFile.c: added
10833         * src/SDCCdebug.c: added
10834         * src/SDCCdebug.h: added
10835         * src/SDCCast.c (createFunction)
10836         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10837         * src/SDCCmain.c (parseCmdLine, main)
10838         * src/SDCCmem.c (redoStackOffsets)
10839         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10840         * src/SDCCsymt.h
10841         * src/common.h
10842         * src/avr/gen.c (genAVRCode)
10843         * src/ds390/gen.c (gen390Code)
10844         * src/mcs51/gen.c (gen51Code)
10845         * src/pic/gen.c (genpic14Code)
10846         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10847         * src/xa51/gen.c (genXA51Code)
10848         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10849
10850 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10851
10852         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10853         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10854
10855 2003-03-22    <johan AT balder>
10856
10857         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10858
10859 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10860
10861         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10862         * doc/cdbfileformat.lyx: added, written by Lenny Story
10863         * doc/Makefile: added cdbfileformat.lyx
10864         * doc/clean.mk: added cdbfileformat.lyx
10865
10866 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10867
10868         * src/mcs51/peeph.def: fix bug #705773
10869
10870 2003-03-20    <johan AT balder>
10871
10872         An sfr/sbit can have an "at #" AND an initializer
10873         * src/SDCCsymt.c (checkSClass):
10874         * src/SDCCmem.c (allocGlobal):
10875         * src/SDCCmem.c (allocLocal):
10876         * src/SDCCast.c (createBlock):
10877
10878 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10879
10880         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10881
10882 2003-03-16    <johan AT balder>
10883
10884         Undid the hackup of const and volatile, the problem is much bigger
10885         * src/SDCC.y:1.65
10886         * src/SDCCast.c:1.171
10887         * src/SDCCglue.c:1.138
10888         * src/SDCCicode.c:1.146
10889         * src/SDCCsymt.c:1.150
10890         * src/SDCCval.c:1.65
10891
10892 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10893
10894         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10895         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10896
10897 2003-03-13    <johan AT balder>
10898
10899         Hackup const and volatile modifiers in type chains a bit:
10900         * src/SDCC.y:1.63
10901         * src/SDCCast.c:1.169
10902         * src/SDCCglue.c:1.136
10903         * src/SDCCicode.c:1.143
10904         * src/SDCCsymt.c1.146
10905         * src/SDCCsymt.h1.59
10906         * src/SDCCval.c:1.63
10907
10908 2003-03-12    <johan AT balder>
10909
10910         * src/SDCCBBlock.h: more LRH debugging junk
10911         * src/SDCCcflow.h: more LRH debugging junk
10912         * src/SDCCloop.c: more LRH debugging junk
10913         * src/SDCC.y (struct_declaration): fixed bug #697590
10914         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10915         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10916         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10917
10918 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10919         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10920         test function names must now match exactly).
10921         * src/SDCCcse.c: added special case in findCheaperOp to allow
10922         extending a short integer. Makes less awful code for bug 700121 test case.
10923
10924 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10925
10926         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10927         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10928
10929 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10930
10931         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10932         actually called (operandsNotEqual() was called for all
10933         operandsNotEqualX tests).
10934
10935 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10936
10937         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10938         with shorter literals. Fixes bug 700121.
10939
10940 2003-03-11    <johan AT balder>
10941
10942         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10943
10944 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10945
10946         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10947         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10948
10949 2003-03-10  Borut Razem <borut.razem AT siol.net>
10950
10951         * src/SDCCmain.c: pipe preprocessor's output
10952         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10953         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10954         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10955         which closes all pipes in pipeSet set
10956         * src/SDCCset.c: free deleted item in function deleteSetItem()
10957         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10958         moved from z80 to src subproject
10959         * .version: increased version number to 2.3.4
10960
10961 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10962
10963         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10964         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10965         * support/regression/ports/xa51/spec.mk: fix typo
10966
10967 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10968
10969         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10970
10971 2003-03-09  Borut Razem <borut.razem AT siol.net>
10972
10973         * src/SDCCmain.c: pipe preprocessor's output
10974         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10975         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10976         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10977         which closes all pipes in pipeSet set
10978         * src/SDCCset.c: free deleted item in function deleteSetItem()
10979         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10980         moved from z80 to src subproject
10981
10982 2003-03-09  Borut Razem <borut.razem AT siol.net>
10983
10984         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10985         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10986         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10987         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10988         * src/SDCCglobl.h: unification of WIN32 native definitions
10989
10990 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10991
10992         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10993
10994 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10995
10996         * src/configure.in:   check for endianess (even while cross-compiling)
10997         * src/configure:      check for endianess (even while cross-compiling)
10998         * src/configure_in.h: check for endianess (even while cross-compiling)
10999         * src/avr/gen.c:        remove old endianess stuff
11000         * src/mcs51/gen.c:      remove old endianess stuff
11001         * src/ds390/gen.c:      remove old endianess stuff
11002         * src/pic/gen.c:        remove old endianess stuff
11003         * src/pic/genarith.c:   remove old endianess stuff
11004         * src/pic/glue.c:       fix endianess check
11005         * src/pic16/gen.c:      remove old endianess stuff
11006         * src/pic16/genarith.c: remove old endianess stuff
11007         * src/pic16/glue.c:     fix endianess check
11008         * src/xa51/gen.c:       remove old endianess stuff
11009         * src/z80/gen.c:        fix endianess check
11010         * src/SDCCglue.c:       fix endianess check
11011         * src/ds390/peeph.def: fix bug 700036
11012
11013 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11014
11015         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11016         * src/configure: find appropriate data-types on host for SDCC's int and long
11017         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11018         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11019         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11020
11021 2003-03-07    <johan AT balder>
11022
11023         Just a big NOOP:
11024                 some minor cleanups before the big shot
11025                 OP_DEFS and OP_USES now use Kevin's protection
11026                 new option --nolabelopt
11027
11028         * src/SDCCBBlock.c:
11029         * src/SDCCast.c,:
11030         * src/SDCCcflow.c:
11031         * src/SDCCcse.c:
11032         * src/SDCCicode.c:
11033         * src/SDCCicode.h:
11034         * src/SDCClabel.c:
11035         * src/SDCCloop.c:
11036         * src/SDCCmain.c:
11037         * src/ds390/ralloc.c:
11038         * src/mcs51/ralloc.c:
11039         * src/pic/ralloc.c:
11040         * src/xa51/ralloc.c:
11041         * src/z80/ralloc.c:
11042
11043 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11044
11045         * src/pic/pcode.c (get_op): fix 64 bit warnings
11046         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11047         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11048         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11049         * support/regression/tests/malloc.c: fix 64 bit warnings
11050
11051 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11052
11053         * src/mcs51/gen.c (genMinus): fixed bug 696436
11054
11055 2003-03-02  Borut Razem <borut.razem AT siol.net>
11056
11057         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11058
11059 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11060
11061         * configure.in: test for mkstemp
11062         * sdccconf_in.h: add HAVE_MKSTEMP
11063
11064 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11065
11066         * device/include/ctype.h: removed warning while using --stack-auto
11067         * device/include/malloc.h: removed warning while using --stack-auto
11068         * device/include/string.h: removed warning while using --stack-auto
11069
11070 2003-02-23  Borut Razem <borut.razem AT siol.net>
11071
11072         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11073         because NDEBUG is defined (see man assert)
11074         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11075
11076 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11077
11078         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11079         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11080
11081 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11082
11083         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11084         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11085
11086 2003-02-18    <johan AT balder>
11087
11088         * as/mcs51/asmain.c (asmbl): module can start with a digit
11089         * as/z80/asmain.c (asmbl): module can start with a digit
11090
11091 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11092
11093         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11094         * src/asm.c: fix pipe() for Mingw32
11095
11096 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11097
11098         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11099         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11100         make -V work again; --c1mode reads now from stdin
11101         * doc/sdccman.lyx: added --c1mode
11102         * support/Util/SDCCerr.c: new messages for c1 mode
11103         * support/Util/SDCCerr.h: new messages for c1 mode
11104         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11105
11106 2003-02-15    <johan AT balder>
11107
11108         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11109
11110 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11111
11112         * doc/sdccman.lyx: Environment variables, -o and other minor things
11113
11114 2003-02-14    <johan AT balder>
11115
11116         * src/xa51/main.c: before anyone really tries to use it :)
11117
11118         * Install doc's in share/sdcc/doc
11119         * removed some obsolete files
11120         * Do a proper make distclean and uninstall
11121         M Makefile.common.in
11122         R sdccbuild.sh
11123         M as/Makefile
11124         M device/include/Makefile.in
11125         M device/lib/Makefile.in
11126         M doc/sdccman.lyx
11127         M link/Makefile
11128         M sim/ucsim/doc/Makefile.in
11129         M src/clean.mk
11130         R src/avr/peeph.rul
11131         R src/xa51/peeph.rul
11132         M support/cpp2/Makefile.in
11133         M support/makebin/Makefile
11134
11135
11136 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11137
11138         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11139
11140 2003-02-10  Borut Razem <borut.razem AT siol.net>
11141
11142         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11143         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11144         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11145         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11146         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11147         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11148         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11149         src/z80/Makefile.bcc: Borland Makefile cleanup
11150         * as/z80/Makefile.bcc: Added Borland Makefile
11151         * support/cpp2/borland.h: Removed
11152
11153 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11154
11155         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11156         * src/SDCC.lex: new pragma NOIV
11157         * src/SDCCglobl.h: new pragma NOIV
11158         * src/SDCCmem.c: new pragma NOIV
11159
11160 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11161
11162         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11163
11164 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11165
11166         * src/SDCCmain.c: signal handling is switched off by --debug
11167         * doc/Makefile: small fix for install; use clean.mk again
11168         * doc/clean.mk: clean *.pdf and *.html too
11169
11170 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11171
11172         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11173         * device/lib/printfl.c: fix a ds390 bug by making it portable
11174         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11175         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11176         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11177         * debugger/mcs51/cmd.c: converted multi-line string literals
11178         * sim/ucsim/globals.cc: converted multi-line string literals
11179         * src/SDCCmain.c: introduced signal handler to remove temp files
11180         * doc/Makefile: small tweaks, implement clean
11181         * doc: removed generated files
11182
11183 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11184
11185         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11186         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11187         Address Record is not correctly generated for DS390."
11188
11189 2003-02-02  Borut Razem <borut.razem AT siol.net>
11190
11191         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11192         * as/mcs51/asm.h: fixed compilation with Borland C
11193         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11194         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11195         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11196         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11197         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11198         src/z80/Makefile.bcc: delete $(LIB) only if exist
11199         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11200
11201 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11202
11203         * device/include/malloc.h: introduced NULL
11204         * device/include/string.h: introduced NULL
11205         * device/include/stdlib.h: introduced NULL
11206         * device/lib/_memcpy.c: removed NULL
11207         * device/lib/_strcat.c: removed NULL
11208         * device/lib/_strchr.c: removed NULL
11209         * device/lib/_strcmp.c: removed NULL
11210         * device/lib/_strcpy.c: removed NULL
11211         * device/lib/_strcspn.c: removed NULL
11212         * device/lib/_strlen.c: removed NULL
11213         * device/lib/_strncat.c: removed NULL
11214         * device/lib/_strncmp.c: removed NULL
11215         * device/lib/_strncpy.c: removed NULL
11216         * device/lib/_strpbrk.c: removed NULL
11217         * device/lib/_strrchr.c: removed NULL
11218         * device/lib/_strspn.c: removed NULL
11219         * device/lib/_strstr.c: removed NULL
11220         * device/lib/_strtok.c: removed NULL
11221         * device/lib/malloc.c: removed NULL, include own header
11222
11223 2003-02-02    <johan AT balder>
11224
11225         * 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
11226         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11227         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11228         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11229         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11230         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11231
11232 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11233
11234         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11235         area 'DATA'"
11236
11237 2003-02-01    <johan AT balder>
11238
11239         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11240
11241 2003-01-31    <johan AT CP255758-A>
11242
11243         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11244
11245 2003-01-30    <johan AT balder>
11246
11247         * src/SDCCBBlock.c: automatic bug detection
11248         * src/SDCCicode.c: automatic bug detection
11249
11250 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11251
11252         * src/SDCCglobl.h:   now --xram-size 0 works
11253         * src/SDCCmain.c:    now --xram-size 0 works
11254
11255 2003-01-29    <johan AT balder>
11256
11257         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11258
11259 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11260
11261         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11262         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11263         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11264         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11265         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11266         * src/SDCCmain.c:    Added options --xram-size and --code-size
11267
11268 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11269
11270         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11271         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11272
11273 2003-01-27    <johan AT balder>
11274
11275         * src/SDCC.y: fixed bug #613764
11276
11277 2003-01-26    <johan AT balder>
11278
11279         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11280         * src/SDCCsymt.h: fixed bug #673374
11281         * src/SDCCglue.c: fixed bug #661910
11282         * src/SDCCast.c: fixed bug #458099 and 673374
11283
11284 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11285
11286         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11287         * as/mcs51/strcmpi.h: added
11288         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11289         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11290         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11291         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11292         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11293         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11294         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11295         * as/mcs51/Makefile.aslink: new module strcmpi
11296         * as/mcs51/Makefile.asx8051: new module strcmpi
11297         * as/mcs51/Makefil.bcc: new module strcmpi
11298         * as/mcs51/Makefile.in: new module strcmpi
11299         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11300
11301 2003-01-26    <johan AT balder>
11302
11303         * src/SDCCglue.c: reverted back to 1.124
11304         * src/SDCCast.c: reverted back to 1.156
11305         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11306
11307 2003-01-25    <johan AT balder>
11308
11309         * src/SDCCglue.c: A better fix for bug #661910
11310         * src/SDCCast.c: A better fix for bug #661910
11311         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11312
11313 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11314
11315         * src/Makefile.in: remove spawn.o
11316         * src/SDCCmain.c: remove spawn.h
11317         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11318         * src/spawn.c: removed
11319         * src/spawn.h: removed
11320         * support/regression/ports/ds390/spec.mk: link with -r
11321
11322 2003-01-24    <johan AT CP255758-A>
11323
11324         * src/ds390/gen.c (aopOp): fixed bug #667458
11325         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11326         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11327         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11328
11329 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11330
11331         * src/mcs51/peeph.def: better assembler identation by Frieder
11332         * src/mcs51/gen.c: better assembler identation by Frieder
11333
11334 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11335
11336         * as/z80/string.h: removed for gcc 3.2
11337         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11338         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11339
11340 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11341
11342         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11343         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11344         * support/regression/Makefile: separate temp files for ports
11345         * support/regression/generate-cases.py: separate temp files for ports
11346         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11347         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11348
11349 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11350
11351         * moved tinitalk to device/examples/ds390
11352
11353 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11354
11355         * as/mcs51/lkmem.c: rflag is for DS390
11356         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11357         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11358                          (linkEdit): move mem- and map-files the same way as ihx-files
11359         * src/z80/main.c (_setDefaultOptions): removed --generic
11360         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11361         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11362         * src/pic/glue.c (picglue): --c1mode works again
11363         * src/pic16/glue.c (pic16glue): --c1mode works again
11364         * src/asm.c (printCLine): fix #660034
11365
11366 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11367
11368         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11369         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11370         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11371         * as/mcs51/lkmem (summary): better fix for sp problem
11372         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11373         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11374         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11375                                               remove --stack-after-data
11376
11377 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11378
11379         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11380         * src/SDCCutil.c (join): ugly bug: missing '\0'
11381         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11382
11383 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11384
11385         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11386         * src/port.h: typo
11387         * src/pic/main.c (_asmCmd): gpasm supports -o
11388         * src/z80/main.c: more general macros
11389         * device/lib/Makefile.in: remove intermediate files
11390
11391 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11392
11393         * .version: Bumped version number to 2.3.3
11394         * src/SDCCBBlock.c: new option -o
11395         * src/SDCCglobl.h: new option -o
11396         * src/SDCCglue.c: new option -o
11397         * src/SDCCmain.c: new option -o
11398         * src/asm.c: new option -o
11399         * src/ds390/main.c: new option -o
11400         * src/pic/glue.c: new option -o
11401         * src/pic/pcode.c: new option -o
11402         * src/pic/ralloc.c: new option -o
11403         * src/pic16/glue.c: new option -o
11404         * src/pic16/pcode.c: new option -o
11405         * src/pic16/ralloc.c: new option -o
11406         * src/z80/main.c: new option -o
11407         * device/lib/Makefile.in: use -o
11408         * support/regression/ports/ds390/spec.mk: use -o
11409         * support/regression/ports/gbz80/spec.mk: use -o
11410         * support/regression/ports/mcs51/spec.mk: use -o
11411         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11412         * support/regression/ports/z80/spec.mk: use -o
11413         * support/regression/ports/ucz80/spec.mk: use -o
11414         * support/regression/ports/xa51/spec.mk: use -o
11415         * support/regression/fwk/lib/timeout.c: fix usage string
11416
11417 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11418         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11419
11420 2003-01-07    <johan AT balder>
11421
11422         * src/SDCCast.c (decorateType): fixed bug #600035
11423
11424 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11425         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11426         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11427         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11428         * src/pic/pcode.c: outcommented unused variable to remove warnings
11429         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11430
11431 2003-01-06    <karl AT turbobit.com>
11432         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11433    regression tests.
11434
11435 2003-01-06    <johan AT balder>
11436
11437         * src/SDCCicode.c: fixed array add
11438
11439 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11440         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11441         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11442
11443 2003-01-04    <johan AT balder>
11444
11445         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11446
11447 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11448         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11449
11450 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11451         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11452         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11453
11454 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11455         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11456
11457 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11458         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11459
11460 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11461         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11462
11463 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11464
11465     * in /sdcc/as/mcs51/ changed these files in order to create an
11466     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11467     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11468     following files to include the previous two files: aslink.dsp,
11469     Makefile.aslink, Makefile.bcc, and Makefile.in.
11470
11471     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11472     .adb instead of .cdb
11473
11474 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11475
11476         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11477         value from option --iram-size.
11478
11479 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11480
11481         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11482         dram[] array.
11483
11484 2002-09-18    <wiml AT hhhh.org>
11485
11486         * SDCClrange.h: exposed setFromRange() and setToRange()
11487         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11488           packRegsForAccUse() (bug 542397)
11489         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11490           multiple times and emitting the fetch operations more than once
11491           added aopGetUsesAcc() function to allow binary operators to
11492           fetch their operands in the correct order; made genMinus() emit
11493           compact code for X = LITERAL - Y
11494
11495 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11496         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11497         sprintf() in line 1267.
11498
11499 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11500         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11501         like ports.
11502
11503 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11504         Changes to aslink (All the changes are marked with 'JCF'):
11505
11506         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11507         summary().
11508
11509         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11510         area BSEG.  Also moves, if possible, the DATA area down into the internal
11511         ram so more space is available.
11512
11513         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11514         sflag.
11515
11516         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11517         not bytes.  Function summary() which creates a memory usage summary
11518         file with extension .mem.  Reports of overlaping stack and small stack
11519         size.  If the space for the stack is less than 16 bytes aslink trows a
11520         warning.
11521
11522         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11523         the 8051.  Option 'y' for memory summary output file.
11524
11525         Changes to sdcc (All the changes are marked with 'JCF'):
11526
11527         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11528
11529         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11530         overlaying area for it (uses RegBankUsed[4]).
11531
11532         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11533         bank zero as used by default.  By default aslink locates the stack
11534         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11535         the creation of the .mem file.  Delegates the allocation of data area
11536         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11537         the begining of the stack area to aslink.
11538
11539         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11540         glue() in SDCCglue.c creates an area for it.
11541
11542 2002-09-03  Borut Razem <borut.razem AT siol.net>
11543         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11544         sdcc/src/pic/glue.c:
11545         introduced atexit() handler for teporay files removal in case of
11546         errors, assertions, ...
11547
11548 2002-08-29  Borut Razem <borut.razem AT siol.net>
11549         * sdcc/support/cpp2/auto-host_vc_in.h:
11550         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11551         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11552         Maybe there is a similar problem with BORLANDC? It should be checked!
11553
11554         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11555         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11556         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11557         was not executed, and the compiler (cl) launched a warning:
11558         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11559
11560 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11561         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11562
11563 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11564         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11565
11566         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11567           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11568           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11569           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11570           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11571           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11572           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11573         - added Release configuration in VS projects
11574         - review of compiler an linker options
11575         - VC .exe files are generated in bin_vc directory, not to interfere
11576           with binaries generated from other projects (cygwin, mingw, bcc ...)
11577
11578         * sdcc/src/yacc.dsp: added
11579
11580         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11581         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11582         and insert the version number definitions from .version
11583
11584         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11585
11586         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11587         added - genarate auto-host.h using auto-host_vc_in.h as template
11588
11589         * sdcc/sdcc_vc.h,
11590         removed from CVS, generated automatically
11591
11592 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11593         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11594
11595 2002-08-11  Borut Razem <borut.razem AT siol.net>
11596         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11597
11598 2002-08-10  Borut Razem <borut.razem AT siol.net>
11599         * src/SDCCmain.c (main):
11600         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11601         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11602         The consequence was that some temporary files were not removed.
11603
11604         * src/SDCCglue.c:
11605         unification of code in functions tempfilename() and tempfile():
11606         function tempnam() is defined in Visual Studio 6.0 and .NET
11607
11608         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11609
11610         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11611           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11612         - removed compiler command line option /WX: Treats all warnings as errors
11613         - update a list of source files, included into the project
11614
11615         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11616           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11617         changed project type to Generic Project so that can be correcly converted to VS.NET project
11618
11619         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11620
11621         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11622
11623         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11624
11625         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11626         added return 0 statements after assert() to make compiler happy
11627
11628         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11629         added newline in the def file to keep MSC compiler satisfied
11630
11631         * sdcc/src/z80/gen.c:
11632         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11633           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11634         - solved MSC error in function aopDump()
11635
11636         * sdcc_vc.h: define PREFIX as "\\sdcc"
11637
11638 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11639         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11640
11641 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11642         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11643         - Rewrote the register banking algorithm.
11644         - Added pCode live-range analysis to registers (for now, only non-used and
11645         singly-used registers optimized away)
11646
11647         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11648
11649         * 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.
11650
11651 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11652         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11653
11654 2002-04-22  Michael Hope  <michaelh AT vroom>
11655
11656         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11657
11658         * configure.in (DD_COPT): Added include support required for gbdk.
11659
11660         * .version: Bumped version number just to increase it.
11661
11662         * src/SDCCmain.c: Added -nostdinc to the default options.
11663
11664 2002-04-15  Michael Hope  <michaelh AT vroom>
11665
11666         * device/lib/z80/printf.c (sprintf): Added.
11667
11668         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11669
11670         * src/z80/peeph.def: Added transpose redundent load rule.
11671
11672         * src/z80/main.c: Added force callee saves for jaune.
11673
11674         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11675
11676         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11677
11678 2002-03-28  Johan Knol  <johan AT balder>
11679
11680         * src/SDCCval.c: fixed bug #532436
11681
11682 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11683         * /src/port.h:
11684         Added "char *Processor" field to the port structure.
11685
11686         * /src/SDCCmain.c:
11687         Added -p option. Allows port dependent processor to be specified.
11688
11689         * all ports:
11690         Initialized the new field char *Processor field to NULL in all ports
11691
11692         * /src/pic/*:
11693         Compiler generated registers for interrupt context saving
11694         were not getting allocated.
11695
11696 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11697
11698         * /src/SDCCast.c:
11699         Fixed left shift. Will promote the left side of a left shift
11700         if a) left shifting more than size of operand or b) when assigned
11701         to something size > size of left side
11702
11703 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11704         * src/pic/*
11705         tons of changes. Register allocation has been
11706         rewritten. Added customization for the various PICs. Flow
11707         analysis is restructured. ...
11708
11709         * src/pic/device.h:
11710         Added
11711
11712         * src/pic/device.c:
11713         Added. device.c is a PIC port hack to accomodate variations
11714         in PIC devices.
11715
11716 2002-03-13  Michael Hope  <michaelh AT vroom>
11717
11718         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11719
11720 2002-03-04  johanknol  <johanknol AT manik>
11721
11722         * /src/SDCCval.c: fixed
11723
11724         const unsigned char arr[][2] = { { 0, 1 } };
11725         t18.c:1: error: Initializer element is not constant
11726
11727 2002-03-04  bela  <bela AT manik>
11728
11729         * /device/include/mcs51reg.h:
11730         ds89c420 register definition update
11731
11732 2002-03-03    <johan AT FRIJA>
11733
11734         * support/Util/SDCCerr.c: did something, but don't no why anymore
11735
11736         * support/regression/tests/bug-524691.c: made it a little less shy
11737
11738         * src/SDCCast.c (decorateType): fixed bug #524697
11739
11740         * src/SDCCast.c: made some lineno improvements
11741
11742         * src/SDCCval.c (getNelements): changed warning to error
11743
11744         * src/SDCCglue.c (printIvalArray): changed warning to error
11745
11746         * src/SDCCicode.c: fixed a warning for mingw
11747
11748         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11749
11750         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11751
11752 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11753
11754         * src/ds390/peeph.def:
11755         Added some more peephole rules
11756
11757         * src/ds390/gen.c: Various fixes & enhancements
11758
11759         * src/SDCClrange.c, src/SDCClrange.h:
11760         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11761
11762         * src/ds390/ralloc.c:
11763         various fixes & enhancements (ds390) specific
11764
11765         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11766         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11767         from rallocs.
11768
11769         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11770
11771 2002-03-02    <johan AT FRIJA>
11772
11773         * src/SDCCast.c (decorateType): fixed bug #524708
11774
11775         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11776
11777         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11778
11779 2002-03-01  Michael Hope  <michaelh AT vroom>
11780
11781         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11782
11783         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11784
11785 2002-03-01    <johan AT FRIJA>
11786
11787         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11788
11789         * src/SDCCast.c (decorateType): fixed bug #524209
11790
11791         * src/SDCCval.c (valNot): fixed bug #524195
11792
11793 2002-02-26    <johan AT balder>
11794
11795         * src/xa51/gen.c: fixed a warning
11796
11797         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11798
11799         * src/SDCCast.c (decorateType): fixed bug #522534
11800
11801 2002-02-23    <johan AT balder>
11802
11803         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11804
11805 2002-02-22    <johan AT balder>
11806
11807         * src/SDCCast.c: fixed bug #514865
11808
11809         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11810
11811 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11812
11813         * sdcc/src/SDCCloop.c:
11814         Previous fix was not good. basic blocks that have "break" or "return" are
11815         not really partof a loop , but live ranges used in these blocks should
11816         be live thru the entire loop, so set partOfLoop but don't add them to
11817         loop region
11818
11819 2002-02-21    <johan AT FRIJA>
11820
11821         * src/SDCCcse.c: fixed bug #514308
11822
11823 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11824
11825         * src/SDCCloop.c:
11826         Fixed BUG #519583. If a conditional block ended in a return/break
11827         statement inside a loop, it was not being considered part of the loop.
11828
11829         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11830
11831 2002-02-10  Karl Bongers <karl AT turbobit.com>
11832
11833         * debugger/*:
11834         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11835         with lots of comments and notes.
11836
11837         * device/examples/test2.c:
11838         Fix bug, "red" variable not being initialized(compiler complained).
11839
11840         * device/examples/Makefile, examples/test3.c:
11841         Add Makefile in device/examples folder, compiles test3.c
11842         for use as a multiple module SDCDB test case.
11843
11844         * sim/ucsim/cmd.src/cmdset.cc:
11845         Took out debug printfs in ucsim "next" command.
11846
11847         * sim/ucsim/xa.src:
11848         Karl and Johan start ucsim XA support.  Most dissassembly working,
11849         about 75% emulation done(plenty of work remaining).
11850
11851         * sim/ucsim/z80.src:
11852         Add Z80 support to ucsim, add test-ucz80 regression test,
11853         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11854         Notice z80 compiler fails on examples/test3.c/crc code.
11855
11856 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11857
11858         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11859         Added support for --parms-in-bank1
11860
11861         * src/ds390/peeph.def:
11862         added a few more peephole optimzations
11863
11864         * src/ds390/main.c:
11865         1) added __builtin_inp & __builtin_outp used to read in data of given length
11866            from a memory mapped port
11867         2) added __builtin_memcmp
11868         3) added __builtin_swapw swap bytes of a short
11869
11870         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11871         1) handle multiple send & receives from register bank1
11872         2) ralloc can now allocate DPTR1 to some liveRanges
11873
11874         * src/SDCCsymt.c, src/SDCCsymt.h:
11875         changes to handle multiple sends & receives
11876
11877         * src/SDCCptropt.h:
11878         added some pointer arithmetic optimization
11879
11880         * src/SDCCptropt.c:
11881         added some pointer arithmetic optimizations but not stable yet so not
11882         called from anywhere (will get this working shortly)
11883
11884         * src/SDCCopt.c: fixed for multiple sends & receives
11885
11886         * src/SDCCmain.c:
11887         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11888         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11889            set preprocessor defines (depending on options)
11890
11891         * src/SDCCicode.c, src/SDCCicode.h:
11892         changes made to handle multiple sends & receives
11893
11894         * src/SDCCglobl.h:
11895         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11896
11897         * src/SDCCcse.c, src/SDCCcse.h:
11898         added function findbackward def (to be used in upcoming optimization)
11899
11900         * src/SDCCcflow.c, src/SDCCcflow.h:
11901         added function returnAtEnd - to determine if a basic block terminates with
11902         a RETURN iCode
11903
11904         * src/SDCCast.c, src/SDCCast.h:
11905         added option parms-in-bank1
11906
11907         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11908         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11909         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11910         adjusted for --parms-in-bank1 option
11911
11912         * device/include/string.h:
11913         donot redefine "reentrant" keyword
11914
11915         * device/include/ds80c390.h: Added some more SFRs
11916
11917 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11918
11919         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11920
11921 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11922
11923         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11924
11925 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11926
11927         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11928
11929 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11930
11931         * Added --xram-movc option
11932
11933 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11934
11935         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11936
11937 2002-01-11  Johan Knol
11938
11939         * Added math lib of Jesus Calvino-Fraga
11940
11941 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11942
11943         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11944         * support/regression/Makefile: new target test-mcs51-stack-auto
11945         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11946
11947 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11948
11949         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11950
11951 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11952
11953         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11954
11955 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11956
11957         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11958
11959         * src/SDCCglue.h: add definition for printIvalChar()
11960
11961 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11962
11963         * src/SDCCast.c: fix #498138 by Johan
11964
11965         * src/SDCCglue.c: fix #498138 by Johan
11966
11967 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11968
11969         * support/regression/Makefile: fix clean
11970
11971         * support/regression/ports/ds390/support.c: fix transmission of last character
11972
11973 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11974
11975         * /sdcc/src/ds390/gen.c:
11976         a) improved computing address of stack variable
11977         b) took out some #if 0 code
11978         c) improved parmBytes adjustment
11979         d) improved genPlusIncr & genMinusIncr
11980         e) genCmp could generate bad code (when left assigned to DPTR)
11981         f) Fixed bug in hasInc
11982
11983         * /sdcc/src/ds390/ralloc.c:
11984         a) packRegsForSupport could mess up live information (Fixed)
11985         b) packRegsDPTRuse could be incorrect for left & right shift
11986
11987         * /sdcc/src/mcs51/ralloc.c:
11988         packRegsForSupport could mess up the live information (Fixed)
11989
11990         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11991
11992         * /sdcc/src/SDCCast.c:
11993         can reverse a loop even if function call is present as long
11994         as the loop control variable is local & is not passed as parameter
11995
11996 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11997
11998         * /sdcc/ChangeLog: *** empty log message ***
11999
12000         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12001         More builtin function additions for TININative
12002
12003         * /sdcc/src/ds390/ralloc.c:
12004         Had broken the regression testsuite
12005
12006         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12007
12008         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12009         Added funcattr hasStackParms will be set for reentrant functions when there
12010         are paramteres on the stack, this helps in minimizing frame pointer generation
12011         typeFromStr can handle function pointers now
12012
12013         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12014         *** empty log message ***
12015
12016 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12017
12018         * /src/ds390/gen.c, /src/ds390/main.c:
12019         More builtin function additions for TININative
12020
12021         * /src/ds390/ralloc.c:
12022         Had broken the regression testsuite
12023
12024         * /src/SDCCast.c: Fixed a bug in dumptree
12025
12026         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12027         Added funcattr hasStackParms will be set for reentrant functions when there
12028         are paramteres on the stack, this helps in minimizing frame pointer generation
12029         typeFromStr can handle function pointers now
12030
12031         * /doc/builtins.txt, /doc/TININative.txt:
12032         *** empty log message ***
12033
12034
12035 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12036
12037         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12038         ALPHA version for -mTININative
12039
12040         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12041         updated to reflect changes in the port structure
12042
12043         * /src/port.h:
12044         added function do_assemble (similar to do_link) if non-null this function
12045         will be called to do assembly (-mTININative) requires a multi command
12046         assembly
12047         added function genAssemblerEnd will be called to generate assembler Epilogue
12048
12049         * /src/SDCCsymt.c:
12050         added _JavaNative to debug info printing
12051
12052         * /src/SDCCmain.c: added option --tini-libid
12053         added port->do_assemble function (-mTININative) has a multi command assemble
12054
12055         * /src/SDCCglue.c: Disabled "constExpr" check
12056         added port->genAssemblerEnd function
12057
12058         * /src/SDCCglobl.h: Added option --tini-libid value
12059
12060         * /src/SDCCast.h:
12061         tookout optimizeCompare from the header (has no external references)
12062
12063         * /src/SDCCast.c: made one more function "static"
12064
12065 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12066
12067         * src/z80/mappings.i: Added z80asm support.
12068
12069         * src/z80/main.c: Added z80asm support on --asm=z80asm
12070
12071         * src/z80/gen.c: Fixed asm portability issues.
12072
12073         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12074
12075         * src/SDCCglue.c (printExterns): Added global/extern split.
12076
12077 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12078
12079         * support/regression/Makefile: added test for mcs51 model large
12080
12081         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12082
12083         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12084
12085 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12086
12087         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12088
12089 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12090
12091         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12092
12093         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12094
12095 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12096
12097         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12098
12099         * support/regression/tests/simplefloat.c: Port to mcs51.
12100
12101 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12102         * support/regression/tests/bug-485362.c: Added.
12103
12104         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12105
12106         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12107
12108         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12109
12110         * src/z80/gen.c (aopDump): Added a dump function.
12111
12112 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12113         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12114
12115         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12116
12117         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12118
12119         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12120
12121         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12122
12123         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12124
12125         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12126
12127         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12128
12129         * support/regression/ports/ds390/support.c: Use tinibios.
12130
12131         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12132
12133 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12134
12135         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12136         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12137
12138         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12139
12140         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12141
12142 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12143
12144         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12145
12146         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12147         (packRegsForIYUse): Created and optimised.
12148
12149 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12150
12151         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12152 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12153
12154         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12155
12156         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12157
12158         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12159
12160 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12161
12162         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12163
12164         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12165
12166 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12167
12168         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12169
12170         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12171
12172         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12173
12174 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12175
12176         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12177         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12178         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12179
12180         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12181
12182         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12183         (genNotFloat): Added.
12184         (genUminusFloat): Added.
12185
12186         * device/lib/z80/Makefile: Added floating pt stubs.
12187
12188         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12189
12190         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12191
12192         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12193
12194 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12195
12196         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12197
12198         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12199
12200         * sdcc/support/regression/Makefile: Add port ds390.
12201
12202         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12203
12204         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12205
12206         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12207
12208         * sdcc/support/regression/ports/ds390/support.c: Added.
12209
12210         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12211
12212         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12213
12214         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12215
12216 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12217
12218         * device/include/malloc.h: Added z80 and gbz80 support.
12219
12220         * device/lib/gbz80/heap.s: Added.
12221
12222         * device/lib/z80/heap.s: Added.
12223
12224         * device/lib/malloc.c: Added z80 and gbz80 support.
12225
12226         * support/regression/tests/malloc.c (testMalloc): Added.
12227
12228         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12229
12230         * support/regression/tests/bug-478094.c: Added.
12231
12232         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12233
12234 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12235
12236         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12237
12238         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12239
12240         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12241
12242         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12243
12244         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12245
12246 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12247
12248         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12249
12250 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12251
12252         * support/regression/tests/bug-477927.c: Added.
12253
12254         * src/z80/peeph.def: Added minor rules.
12255
12256         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12257
12258         * src/z80/peeph.def: Added jump optimisation modification.
12259
12260 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12261
12262         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12263
12264 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12265
12266         * support/regression/tests/funptrs.c: Added.
12267
12268 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12269
12270         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12271
12272 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12273
12274         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12275
12276         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12277
12278         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12279         (movLeft2ResultLong): Created.
12280
12281         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12282         (joinPushes): Added.  Joins two char pushes into a word push.
12283
12284 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12285
12286         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12287
12288         * support/makebin/Makefile (install): Added creation of dest dir.
12289
12290 2001-10-24 Karl Bongers <karl AT turbobit.com>
12291
12292         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12293
12294 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12295
12296         * src/z80/ralloc.c: Turned off faulty pack for one use.
12297
12298         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12299
12300         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12301
12302 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12303
12304         * support/regression/Makefile: Improved clean
12305
12306         * support/regression/ports/gbz80/spec.mk: Added clean
12307
12308         * support/regression/ports/host/spec.mk: Added clean
12309
12310         * support/regression/ports/z80/spec.mk: Added clean
12311
12312         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12313
12314         * support/regression/ports/mcs51/timeout.c: little improvements
12315
12316 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12317
12318         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12319
12320         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12321
12322         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12323
12324 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12325
12326         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12327
12328         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12329
12330 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12331         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12332
12333         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12334
12335         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12336
12337         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12338
12339         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12340
12341         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12342
12343         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12344
12345         * support/regression/tests/longor.c: Added.
12346
12347 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12348
12349         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12350
12351         * as/mcs51/aslink.h: define PATH_MAX
12352
12353         * as/mcs51/asm.h: define PATH_MAX
12354
12355         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12356
12357         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12358
12359         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12360
12361         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12362
12363         * src/SDCCglobl.h: define PATH_MAX
12364
12365         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12366
12367         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12368
12369 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12370
12371         * src/z80/gen.c (gencjneshort): Fixed
12372
12373         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12374
12375 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12376
12377         * support/regression/tests/bug-469671.c: Added.
12378
12379         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12380
12381 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12382
12383         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12384
12385         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12386
12387 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12388
12389         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12390
12391         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12392
12393         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12394
12395         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12396
12397         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12398
12399         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12400
12401         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12402
12403 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12404
12405         * 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.
12406
12407         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12408
12409         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12410
12411 2001-10-07    <johan AT FRIJA>
12412
12413         * device/lib/gets.c (gets): fixed the return value.
12414
12415 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12416         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12417
12418         * 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.
12419
12420         * 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.
12421
12422         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12423
12424         * src/pic/gen.c: Removed Safe_strdup.
12425
12426         * configure.in: Added option to enable libgc support.
12427
12428         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12429         (bitVectUnion): Optimised.
12430         (bitVectIntersect): Optimised.
12431         (bitVectBitsInCommon): Optimised.
12432         (bitVectCplAnd): Optimised.
12433
12434         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12435
12436 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12437
12438         * src/SDCCmain.c: distinguish between assembler debug and plain options
12439
12440         * src/avr/main.c:   remove standard assembler options
12441
12442         * src/ds390/main.c: remove standard assembler options
12443
12444         * src/mcs51/main.c: remove standard assembler options
12445
12446         * src/port.h: removed "PENDING" comment
12447
12448 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12449
12450         * src/device/lib/_mulint.c  : new, with assember functions
12451
12452         * src/device/lib/_mullong.c : new, with assember functions
12453
12454         * src/device/lib/_divuint.c : with assember functions
12455
12456         * src/device/lib/_divsint.c : with assember functions
12457
12458         * src/device/lib/_divulong.c: with assember functions
12459
12460         * src/device/lib/_divslong.c: with assember functions
12461
12462         * src/device/lib/_moduint.c : with assember functions
12463
12464         * src/device/lib/_modsint.c : with assember functions
12465
12466         * src/device/lib/_modulong.c: with assember functions
12467
12468         * src/device/lib/_modslong.c: with assember functions
12469
12470         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12471
12472         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12473
12474         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12475                                       replaced _mululong.c and _mulslong.c by _mullong.c
12476
12477 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12478
12479         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12480
12481 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12482
12483         * src/SDCCglue.c: test, if win32api is available for MINGW
12484
12485 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12486
12487         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12488         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12489         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12490         * support/regression/ports/host/spec.mk: removed GENERIC
12491         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12492         * support/regression/ports/z80/spec.mk: removed GENERIC
12493
12494 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12495
12496         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12497
12498         * support/regression/tests/bug-467035.c: Created.
12499
12500 2001-10-01    <johan AT FRIJA>
12501
12502         * src/SDCC.y: fixed bug #466586 part 1
12503
12504 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12505
12506         * SDCCicode.c: z80 has no generic pointers
12507         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12508
12509 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12510
12511         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12512
12513 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12514
12515         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12516
12517         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12518
12519 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12520
12521         * configure.in: Fixed up so that ucsim is only configured once.
12522
12523         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12524
12525         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12526         (getPathDifference): As above.
12527
12528         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12529
12530         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12531
12532 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12533         * .version: Updated to 2.3.1
12534
12535         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12536         Added copyright header.
12537
12538         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12539         (assemble): Added support for macro based assembler commands.
12540         (linkEdit): Added support for macro based linker commands.
12541         (preProcess): Changed the pre-processor to use macros.
12542         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12543         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12544
12545         * device/lib/z80/crt0.s: Added module name for debugging.
12546
12547 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12548
12549         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12550
12551         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12552
12553         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12554
12555         * src/Makefile.in: Added SDCCmacro and SDCCutil
12556
12557 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12558
12559         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12560
12561 2001-09-16    <johan AT FRIJA>
12562
12563         * 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.
12564
12565 2001-09-15    <johan AT FRIJA>
12566
12567         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12568         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12569
12570 2001-09-11    <johan AT FRIJA>
12571
12572         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12573
12574 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12575
12576         * support/regression/tests/bug-460444.c: Added test case.
12577
12578         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12579         (genCast): Added justification for all of the asserts.
12580
12581 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12582
12583         * support/regression/support.c: _xdata replaced by xdata
12584
12585         * support/regression/spec.mk: removed _generic
12586
12587 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12588
12589         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12590
12591         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12592         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12593
12594         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12595
12596         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12597
12598         * support/regression/tests/bug-460010.c: Added test case.
12599
12600         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12601
12602 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12603
12604         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12605
12606         * support/regression/testfwk.c: removed workaround for bug #436344
12607
12608         * support/regression/tests/bp.c: use less memory with mcs51
12609
12610         * support/regression/tests/bug-441448.c: use less memory
12611
12612         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12613
12614         * support/regression/collate-results.py: typo
12615
12616 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12617
12618         * support/regression/tests/fetchoverlap.c: Added new test case.
12619
12620         * support/regression/tests/bp.c: Added new test case.
12621
12622         * support/regression/tests/bug-448984.c: Added new test case.
12623
12624         * support/regression/tests/pow2shifts.c: Added new test case.
12625
12626         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12627         (genlshTwo): Fixed right shift for count > 8.
12628
12629         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12630
12631 2001-09-08    <johan AT FRIJA>
12632
12633         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12634
12635 2001-09-07    <johan AT FRIJA>
12636
12637         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12638
12639         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12640
12641 2001-09-06    <johan AT FRIJA>
12642
12643         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12644         * bernhard noted me at this: "() equals to (void)" (1.38)
12645
12646 2001-09-05    <johan AT FRIJA>
12647
12648         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12649
12650 2001-09-04    <johan AT FRIJA>
12651
12652         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12653
12654
12655 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12656
12657         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12658
12659 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12660
12661         * link/z80/aslink.h: Fixed path for PATH_MAX
12662
12663 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12664
12665         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12666
12667         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12668
12669         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12670
12671         * 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.
12672
12673 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12674
12675         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12676         (genCmp): Fixed up genCmp for the GB with longs.
12677
12678         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12679
12680         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12681
12682         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12683
12684         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12685
12686 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12687
12688         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12689
12690 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12691
12692         * 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.
12693
12694         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12695
12696 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12697
12698         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12699
12700         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12701
12702 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12703
12704   * sim/ucsim/configure:    little improvement of Cygwin-detection
12705   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12706   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12707   * support/regression/tests/bug-221100.c: small changes for mcs51
12708   * support/regression/tests/bug-221168.c: small changes for mcs51
12709   * support/regression/tests/bug-227710.c: small changes for mcs51
12710   * support/regression/tests/staticinit.c: small changes for mcs51
12711   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12712   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12713   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12714
12715 $Revision$