1 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
3 * device/lib/serial_io.c: Default putchar() and getchar() for
4 mcs51 uses serial port.
6 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
8 * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
10 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
12 * support/regression/ports/mcs51/support.c: smaller
13 _sdcc_external_startup()
14 * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
16 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
18 * device/lib/gbz80/crt0.s,
19 * device/lib/gbz80/crt0_rle.s,
20 * device/lib/gbz80/div.s,
21 * device/lib/gbz80/fstubs.s,
22 * device/lib/gbz80/heap.s,
23 * device/lib/gbz80/mul.s,
24 * device/lib/gbz80/putchar.s,
25 * device/lib/gbz80/stubs.s,
26 * device/lib/z80/crt0.s,
27 * device/lib/z80/crt0_rle.s,
28 * device/lib/z80/div.s,
29 * device/lib/z80/fstubs.s,
30 * device/lib/z80/heap.s,
31 * device/lib/z80/mul.s,
32 * device/lib/z80/putchar.s,
33 * device/lib/z80/stubs.s: reverted, I was mistaken
35 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
37 * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
38 * support/regression/ports/mcs51/support.c: removed race
39 condition on TI in _putchar allowing to use serial port mode 0
41 2006-10-20 Borut Razem <borut.razem AT siol.net>
43 * sebugger/mcs51/sdcdb.c: replaced isblank() with isspace()
45 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
47 * device/lib/gbz80/crt0.s,
48 * device/lib/gbz80/crt0_rle.s,
49 * device/lib/gbz80/div.s,
50 * device/lib/gbz80/fstubs.s,
51 * device/lib/gbz80/heap.s,
52 * device/lib/gbz80/mul.s,
53 * device/lib/gbz80/putchar.s,
54 * device/lib/gbz80/stubs.s,
55 * device/lib/z80/crt0.s,
56 * device/lib/z80/crt0_rle.s,
57 * device/lib/z80/div.s,
58 * device/lib/z80/fstubs.s,
59 * device/lib/z80/heap.s,
60 * device/lib/z80/mul.s,
61 * device/lib/z80/putchar.s,
62 * device/lib/z80/stubs.s: removed all leading underscores from area names
64 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
66 * support/regression/ports/mcs51/support.c: use highest baudrate so the
67 regression tests are not waiting in the simulator for simulated
68 transmission of debug output
70 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
72 * device/lib/printf_large.c: slightly smaller
73 * doc/sdccman.lyx: do not use spaces within html links
75 2006-10-16 Borut Razem <borut.razem AT siol.net>
77 * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
78 debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
79 debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
80 debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
81 debugger/mcs51/configure:
82 [ 1185668 ] add gnu readline support to sdcdb - enabled
84 2006-10-16 Raphael Neider <rneider AT web.de>
86 * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
87 fixes #1577882, removes close to all banking optimizations
89 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
91 * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
92 variables in code memory
93 * support/regression/tests/absolute.c: added test for this
95 2006-10-15 Raphael Neider <rneider AT web.de>
97 * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
99 (BankSelect): emit BANKSEL before touching linker-placed regs,
102 2006-10-10 Raphael Neider <rneider AT web.de>
104 * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
105 * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
106 * src/pic/main.c (_pic14_parseOptions),
107 * src/pic/main.h: mostly reverted to previous state, now use results
108 from SDCCmain.c's argument parsing
110 2006-10-10 Borut Razem <borut.razem AT siol.net>
112 * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
113 debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
114 [ 1185668 ] add gnu readline support to sdcdb -
115 prepared for READLINE, not enabled yet,
116 thanks to <tal.bav AT gmail.com>
118 2006-10-10 Raphael Neider <rneider AT web.de>
120 * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
121 * src/pic16/devices.inc,
122 * device/include/pic16 (pic18f[24]620.h),
123 * device/include/pic18fregs.h,
124 * device/lib/pic16/pics.all,
125 * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
126 18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
127 Gary Plumbridge and Anton Strobl
129 2006-10-10 Raphael Neider <rneider AT web.de>
131 * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
132 --stack-siz=NUM options to configure the argument passing stack
133 * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
134 * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
135 (pic14_getSharebankSize): obey --stack-siz=NUM,
136 (pic14_getSharebankAddress): obey --stack-loc=NUM
138 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
140 * doc/sdccman.lyx: added to the manual
141 * doc/figures/ddd_example.png: added (neither pdflatex nor
142 most browsers seem to like the .eps file)
144 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
146 * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
147 to /tmp and /var/tmp acc. LSB
148 * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
150 * support/regression/tests/onebyte.c: added test
152 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
154 * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
156 2006-10-05 Borut Razem <borut.razem AT siol.net>
158 * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
160 - sdcc.dsw: changed property eol-style to CRLF
161 - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
163 2006-10-04 Raphael Neider <rneider AT web.de>
165 * device/include/pic/{pic16f84.h,pic16f84a.h},
166 * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
167 from patch #1522504, thanks to Robas Teodor
169 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
171 * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
174 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
176 * src/pic16/glue.c (pic16emitMaps),
177 * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
178 * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
179 * device/lib/pic16/libc/string/memcpypgm2ram.c,
180 * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
182 * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
183 * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
185 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
187 * support/librarian/sdcclib.c: Added option -l.
188 * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
190 * device/lib/make51lib.bat: added. Allows building mcs51 libraries easily
191 using Windows command prompt.
193 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
195 * device/lib/libsdcc.lib: added module rand
196 * src/ds390/ralloc.c (rematStr),
197 * src/hc08/ralloc.c (rematStr),
198 * src/mcs51/ralloc.c (rematStr),
199 * src/z80/ralloc.c (rematStr): made output more consistent
200 * src/mcs51/gen.c: cosmetic changes
202 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
204 * src/port.h: added mem.cabs_name to PORT
211 * src/z80/main.c: added cabs_name initializers
212 * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
214 (emitMaps): emit absolutes in code memory into cabs_name
216 * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
217 * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
218 * support/regression/fwk/include/testfwk.h: added define for at
219 * support/regression/tests/absolute.c: added, new
221 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
223 * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
224 optimizations, see also patch 887161 by Stas Sergeev
225 * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
226 to be necessary anymore,
227 (102, 103, 104, 127): renamed all occurances of bp to _bp
229 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
231 * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
232 thanks Weston T. Schmidt for patch 1555221
233 * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
234 * src/SDCCicode.c(geniCodeMultiply): small optimization
236 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
238 * device/include/stdlib.h: added rand prototypes
239 * device/lib/rand.c: new, added
240 * device/lib/Makefile.in: added rand.c
242 * src/z80/peeph-gbz80.def,
243 * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
245 2006-09-20 Raphael Neider <rneider AT web.de>
247 * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
249 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
251 * as/link/aslink.h: cosmetic changes
252 * as/link/mcs51/Makefile.in,
253 * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
255 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
258 * as/link/mcs51/aslink.h,
259 * as/link/z80/aslink.h: merged and moved to as/link/
261 * as/link/mcs51/lkstore.c: moved to as/link/
262 * as/link/clean.mk: remove *.o
263 * as/link/mcs51/alloc.h: deleted
264 * as/link/mcs51/lkarea.c: added lnksect prototype
265 * as/link/mcs51/lkdata.c,
266 * as/link/mcs51/lklex.c,
267 * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
268 * as/link/mcs51/lkmem.c,
269 * as/link/mcs51/lknoice.c: removed include strcmpi.h
270 * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
271 * as/link/mcs51/aslink.dsp,
272 * as/link/mcs51/Makefile.aslink,
273 * as/link/mcs51/Makefile.bcc,
274 * as/link/mcs51/Makefile.in: updated for moved files
275 * as/link/z80/lkarea.c,
276 * as/link/z80/lkhead.c,
277 * as/link/z80/lklex.c,
278 * as/link/z80/lklibr.c,
279 * as/link/z80/lklist.c,
280 * as/link/z80/lkmain.c,
281 * as/link/z80/lkrloc.c,
282 * as/link/z80/lksym.c: synced with mcs51
283 * as/link/z80/lkdata.c,
284 * as/link/z80/lkeval.c,
285 * as/link/z80/lkihx.c,
286 * as/link/z80/lks19.c: cosmetic changes
287 * as/link/z80/Makefile.in,
288 * as/link/z80/linkgbz80.dsp,
289 * as/link/z80/linkz80.dsp: updated for moved files
291 2006-09-16 Borut Razem <borut.razem AT siol.net>
293 * debugger/mcs51/sdcdb.c: partially fixed
294 [ 1203664 ] sdcdb fails to open files w. two "." periods
295 * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
296 debugger/mcs51/symtab.h: fixed indenting
297 * configure.in, configure: up to date with latest Maarten's changes
299 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
302 as/aslink.dsp, as/link/mcs51/aslink.dsp,
303 as/link/mcs51/aslink.h, as/mcs51/aslink.h,
304 as/link/mcs51/aslink.mak, as/mcs51/aslink.mak,
305 as/link/mcs51/lkaomf51.c, as/mcs51/lkaomf51.c,
306 as/link/mcs51/lkarea.c, as/mcs51/lkarea.c,
307 as/link/mcs51/lkdata.c, as/mcs51/lkdata.c,
308 as/link/mcs51/lkeval.c, as/mcs51/lkeval.c,
309 as/link/mcs51/lkhead.c, as/mcs51/lkhead.c,
310 as/link/mcs51/lkihx.c, as/mcs51/lkihx.c,
311 as/link/mcs51/lklex.c, as/mcs51/lklex.c,
312 as/link/mcs51/lklibr.c, as/mcs51/lklibr.c,
313 as/link/mcs51/lklist.c, as/mcs51/lklist.c,
314 as/link/mcs51/lkmain.c, as/mcs51/lkmain.c,
315 as/link/mcs51/lkmem.c, as/mcs51/lkmem.c,
316 as/link/mcs51/lknoice.c, as/mcs51/lknoice.c,
317 as/link/mcs51/lkrloc.c, as/mcs51/lkrloc.c,
318 as/link/mcs51/lks19.c, as/mcs51/lks19.c,
319 as/link/mcs51/lkstore.c, as/mcs51/lkstore.c,
320 as/link/mcs51/lksym.c, as/mcs51/lksym.c,
321 as/link/mcs51/Makefile.aslink, as/mcs51/Makefile.aslink,
322 as/link/mcs51/alloc.h,
323 as/link/mcs51/clean.mk,
324 as/link/mcs51/conf.mk,
325 as/link/mcs51/Makefile.bcc,
326 as/link/mcs51/Makefile.in,
327 as/link/mcs51/readme.390,
328 as/link/mcs51/strcmpi.c,
329 as/link/mcs51/strcmpi.h,
331 as/mcs51/Makefile.bcc,
332 as/mcs51/Makefile.in,
335 sdcc.dsw: moved mcs51 linker to as/link/mcs51
337 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
340 * as/link/Makefile.in,
341 * as/link/z80/linkgbz80.dsp,
342 * as/link/z80/linkz80.dsp,
352 * link/z80/linkgbz80.dsp,
353 * link/z80/linkz80.dsp,
368 * link/z80/Makefile.in,
370 * sdcc.dsw: moved link/ to as/link/
372 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
374 * as/mcs51/i51mch.c (machine): fixed warning
376 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
378 * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
380 2006-09-09 Borut Razem <borut.razem AT siol.net>
382 * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
383 sdcdb WIN32 native port
384 * src/clean.mk: fixed
386 2006-09-08 Borut Razem <borut.razem AT siol.net>
388 * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
390 2006-09-08 Raphael Neider <rneider AT web.de>
392 * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
393 * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
394 to gplink to disable processor mismatch warning and to allow
395 the use of devices with only aliased (shared) memory banks,
396 (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
398 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
400 * doc/sdccman.lyx: Some re-formating plus example on using
401 #pragma preproc_asm +/-
403 2006-09-07 Borut Razem <borut.razem AT siol.net>
405 * support/scripts/sdcc.nsi: added SDCDB executables in a separate
408 2006-09-06 Borut Razem <borut.razem AT siol.net>
410 * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
412 * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
414 2006-09-05 Borut Razem <borut.razem AT siol.net>
416 * configure.in, configure: support for winsock2
417 * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
418 debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
419 debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
420 debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
421 debugger/mcs51/symtab.h: sdcdb WIN32 native port
423 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
425 * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
427 * support/regression/tests/bug1551947.c: new, added
428 * src/SDCCsymt.h: strings are char* not byte*
430 2006-09-05 Raphael Neider <rneider AT web.de>
432 * device/lib/pic16/libdev/pic18f4550.c,
433 device/include/pic16/pic18f4550.h: added PORTD/TRISD
434 declarations/definitions from patch #1520949
436 2006-09-05 Raphael Neider <rneider AT web.de>
438 * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
439 byte-aligned bitfields, fixes #1539278
441 2006-09-05 Raphael Neider <rneider AT web.de>
443 * src/pic/gen.c (genReceive): skip unreferenced arguments,
446 2006-09-04 Borut Razem <borut.razem AT siol.net>
448 * support/scripts/sdcc.nsi: move ucSim executables to a separate section
449 * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
450 -mno-cygwin is a part of the compiler name
451 * support/scripts/sdcc_mingw32: don't disable ucsim
453 2006-09-03 Borut Razem <borut.razem AT siol.net>
455 * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
456 * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
458 2006-09-03 Raphael Neider <rneider AT web.de>
461 * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
462 indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
465 2006-09-01 Borut Razem <borut.razem AT siol.net>
467 * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
468 to make ppc-osx happy
470 2006-08-31 Borut Razem <borut.razem AT siol.net>
472 * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
473 * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
474 * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
475 * support/regression/ports/ds390/spec.mk,
476 support/regression/ports/mcs51/spec.mk,
477 support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
478 To run regression tests in mingw environment:
479 make DEV_NULL=NUL CC=gcc
481 2006-08-30 Borut Razem <borut.razem AT siol.net>
483 * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
484 sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
485 sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
486 sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
487 sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
488 sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
489 sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
490 sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
491 sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
492 sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
493 sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
494 sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
495 sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
496 sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
497 sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
498 sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
499 sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
500 sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
501 sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
502 sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
503 sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
504 sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
505 sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
506 sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
507 sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
508 sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
509 sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
510 sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
511 sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
512 sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
513 sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
514 sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
515 sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
516 sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
517 sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
518 sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
519 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
520 sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
521 sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
522 ucsim WIN32 native port
524 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
526 * doc/sdccman.lyx: added note on dynamic memory heap initialization
528 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
530 * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
531 * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
533 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
535 * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
536 * support/regression/tests/bug1546986.c: new, added
537 * as/mcs51/.cvsignore,
538 * debugger/mcs51/.cvsignore,
539 * src/.cvsignore: deleted
541 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
543 * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
546 2006-08-20 Borut Razem <borut.razem AT siol.net>
548 * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
549 removed cl_listen_console::match(), cl_console::match(),
550 restructured cl_commander::proc_input()
552 2006-08-16 Borut Razem <borut.razem AT siol.net>
554 * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
555 sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
556 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
558 2006-08-14 Borut Razem <borut.razem AT siol.net>
560 * support/regression/Makefile.in,
561 support/regression/ports/pic14/gpsim.cmd,
562 support/regression/ports/pic14/spec.mk,
563 support/regression/ports/pic14/support.c:
564 added pic14 regression test
566 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
568 * as/doc/asxhtm.html: documented changed ABS behaviour
569 * as/doc/README: fixed some typos
571 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
573 * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
576 2006-08-12 Borut Razem <borut.razem AT siol.net>
578 * support/regression/fwk/include/testfwk.h,
579 support/regression/fwk/lib/testfwk.c,
580 support/regression/generate-cases.py,
581 support/regression/Makefile.in:
582 regression test framework does not depend on function pointers and
585 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
587 * device/include/stddef.h: c temporary hack to fix bug 1518273
589 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
591 * device/include/mcs51/cc2510fx.h: added
592 * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
595 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
597 * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
598 * as/z80/Makefile.in: added strcmpi.c
599 * as/z80/z80adr.c: added upper case registers and lower case conditionals
600 * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
602 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
604 * device/lib/gbz80/asm_strings.s,
605 * device/lib/gbz80/crt0_rle.s,
606 * device/lib/gbz80/div.s,
607 * device/lib/gbz80/mul.s,
608 * device/lib/gbz80/shift.s,
609 * device/lib/z80/asm_strings.s,
610 * device/lib/z80/crt0_rle.s,
611 * device/lib/z80/div.s,
612 * device/lib/z80/mul.s,
613 * device/lib/z80/shift.s: changed to all lower case menmonics except the
614 flags which are all upper case
616 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
618 * as/z80/asm.h: made CASE_SENSITIVE 1
619 * link/z80/aslink.h: made CASE_SENSITIVE 1
620 * src/z80/gen.c (throughout): made all conditionals upper case
621 * support/regression/tests/bug1503067.c: new
623 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
625 * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
626 (shiftIntoPair): added case 2 for PAIR_IY,
627 (setupToPreserveCarry): replaced parameters with iCode and check if
628 PAIR_DE is in use to fix bug 1399290,
629 (genPlus, genMinus): updated call to setupToPreserveCarry
630 * support/regression/tests/bug1399290.c: new
632 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
634 * device/lib/Makefile.in (Z80SOURCES): enabled float support
635 * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
636 * src/ds390/gen.c (shiftRLong),
637 * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
638 * src/mcs51/gen.c (sameReg): changed to sameByte,
640 (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
641 shiftRLong): fixed bug 1533966
642 * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
643 genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
644 * support/regression/Makefile.in: disabled z80, enabled ucz80
645 * support/regression/tests/float_trans.c: enabled test for z80 and host
646 * support/regression/tests/shifts2.c: new, for testing bug 1533966
648 2006-08-01 Borut Razem <borut.razem AT siol.net>
650 * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
651 comparison is always false due to limited range of data type
652 on PPC64 machine (openpower-linux1) where "char = unsigned char"
654 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
656 * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
657 * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
658 * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
659 * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
661 2006-07-31 Borut Razem <borut.razem AT siol.net>
663 * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
664 sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
665 sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
666 sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
667 sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
668 sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
669 sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
670 sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
671 enable ucsim mingw compilation. Serial port is disabled,
672 since it uses termios.h API, which is not available on native
675 2006-07-31 Borut Razem <borut.razem AT siol.net>
677 * Small Device C Compiler 2.6.0 released
678 * support/scripts/sdcc.nsi: added FULL_DOC option
679 * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
681 2006-07-28 Borut Razem <borut.razem AT siol.net>
683 * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
684 * doc/INSTALL.txt: updated
686 2006-07-27 Borut Razem <borut.razem AT siol.net>
688 * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
689 device/lib/pic/libdev/Makefile.in: fixed bug
690 [ 1438354 ] pic libsdcc: distclean doesn't work
691 * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
692 device/lib/pic16/libio/Makefile.in: fixed bug
693 [ 1438344 ] pic16 lib: clean doesn't work properly
694 * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
696 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
698 * device/lib/pic/libsdcc/fsdiv.c,
699 * device/lib/pic/libsdcc/fsmul.c,
700 * device/lib/pic16/libsdcc/float/fsdiv.c,
701 * device/lib/pic16/libsdcc/float/fsmul.c,
702 * device/lib/_fsdiv.c,
703 * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
704 * support/regression/tests/bug1520966.c: added
705 * doc/knownbugs.html: removed [ 1520966 ] from the list
707 2006-07-25 Borut Razem <borut.razem AT siol.net>
709 * configure.in, configure, sdccconf_in.h: fixed bug
710 [ 1519095 ] regression test onebyte.c fails on ppc64 host
711 * doc/knownbugs.html: removed [ 1519095 ] from the list
713 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
715 * doc/knownbugs.html: added, contains list of known bugs at release
716 * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
718 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
720 * device/include/mcs51/compiler.h: added SFRX for xdata based special
721 function registers and corrected defaults with additional warning
722 * device/lib/malloc.c: cosmetic changes
723 * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
724 * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
725 (fillGaps): and used it
727 2006-07-20 Raphael Neider <rneider AT web.de>
729 * src/pic/device.c (addMemRange,assignRegister): suppress verbose
730 output unless SDCCPICDEBUG is set
731 * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
732 output if SILENT is set
734 2006-07-11 Borut Razem <borut.razem AT siol.net>
736 * doc/README.txt: updated
738 2006-07-10 Borut Razem <borut.razem AT siol.net>
740 * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
741 device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
742 in WIN32 installation
743 * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
746 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
748 * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
749 * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
751 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
753 * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
755 2006-07-06 Borut Razem <borut.razem AT siol.net>
757 * support/regression/tests/bitfields.c:
758 fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
759 * support/regression/tests/constantRange.c:
760 fixed bug [ 1518317 ] regression test constantRange fails on alpha host
762 2006-07-04 Borut Razem <borut.razem AT siol.net>
764 * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
766 src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
767 src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
768 src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
769 reverted changes from 2006-07-03
770 * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
771 * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
772 added CPPFLAGS, used by the host port
774 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
776 * support/regression/valdiag/tests/switch.c,
777 * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
778 * support/regression/tests/libmullong.c: fixed for host
779 * support/regression/ports/host/spec.mk: disable all warnings for host,
780 SDCC runs with --less-pedantic too
782 2006-07-03 Borut Razem <borut.razem AT siol.net>
784 * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
786 * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
787 * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
788 src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
789 src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
791 * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
792 sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
793 sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
794 sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
796 2006-07-02 Raphael Neider <rneider AT web.de>
798 * src/pic16/devices.inc,
799 * device/include/pic16/pic18fregs.h,
800 * device/include/pic16/pic18f4550.h,
801 * device/lib/pic16/pics.all,
802 * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
804 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
806 * as/hc08/lkaomf51.c (OutputName),
807 * as/mcs51/lkaomf51.c (OutputName),
808 * as/z80/asmain.c (asmbl),
809 * src/ds390/main.c (asmLineNodeFromLineNode),
810 * src/hc08/ralloc.c (hc08_assignRegisters),
811 * src/mcs51/main.c (asmLineNodeFromLineNode),
812 * src/xa51/ralloc.c (checkRegMask),
813 * src/xa51/gen.c (emitcode),
814 * src/z80/gen.c (_emit2),
815 * src/SDCCast.c (searchLitOp),
817 * support/packihx/packihx.c,
818 * support/Util/MySystem.c (split_command): fix gcc 4 warnings
819 * src/ds390/gen.c (aopPutUsesAcc),
820 * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
821 * support/regression/tests/libmullong.c (mullong_wrapper),
822 * src/SDCCsymt.c (powof2),
824 * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
825 * src/SDCCsymt.h: added TYPE_TARGET_*
826 * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
827 * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
828 SDCCast because 1) header problems 2) this is the right place
829 * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
830 * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
833 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
835 * src/SDCCicode.h: removed buggy semicolon in unused macro
836 * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
837 search for previous definiton of auto symbols too,
838 (findPrevUse): fixed logic of emitWarnings
840 2006-06-26 Raphael Neider <rneider AT web.de>
842 * src/pic16/gen.c (genFunction, genEndFunction): also preserve
843 PCLATH and PCLATU on interrupts, potentially fixes #1505141
845 2006-06-25 Raphael Neider <rneider AT web.de>
847 * device/lib/pic/libm: NEW, added math library functions
848 * device/lib/pic/libsdcc: NEW; added float support functions
849 * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
850 * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
851 NEW, added math related headers
852 * device/include/asm/pic/features.h: NEW
853 * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
854 (popGet): allow larger offsets for AOP_PCODE,
855 (genDataPointerSet): handle literals explicitly, more debug output,
856 (genAssign): fixed for float using aopLiteral ;-)
857 * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
858 GOTO initialisation routine
859 * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
860 flag on registers, fixes #1469043 (local variables do not work)
861 * src/pic/main.c (_pic14_do_link),
862 * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
865 2006-06-25 Borut Razem <borut.razem AT siol.net>
867 * device/lib/pic16/libc/stdio/sprintf.c: return the number of
868 characters printed (not including the trailing '\0' used to end
869 output to strings). Problem detected in regression test bug-927659.c.
870 NOTE: printf() family functions should return int instead
872 * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
873 specifier are printed as themselves
874 * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
875 support flags, width and precision specifiers
877 2006-06-24 Borut Razem <borut.razem AT siol.net>
879 * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
880 to the list of sdcc tagrets not supporting bit type
881 * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
882 testfor pic16 due to bug:
883 [ 1511794 ] pic16: regression test bug-895992.c fails
885 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
887 * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
888 * src/SDCCglue.c (initPointer), fixed bug 1496419
889 * support/regression/tests/bug1496419.c: new, added
891 2006-06-22 Borut Razem <borut.razem AT siol.net>
893 * support/regression/ports/pic16/support.c: use gpsim usart module from
894 libgpsim_modules library
896 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
898 * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
901 2006-06-19 Raphael Neider <rneider AT web.de>
903 * src/pic/glue.h,src/pic16/glue.h: added prototypes
904 * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
905 pic1x_emitSymbolIfNew): NEW, check for a string in a set,
906 (pic14printExterns,pic14printPublics,pic16printPublics,
907 pic16_printExterns): use new functions to emit symbols
908 (picglue,pic16glue): emit publics before emitting externs
909 * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
910 locally defined functions to avoid bug #1443651
911 * support/regression/tests/bug-716242.c: removed pic16 workaround
912 * support/regression/ports/pic16/spec.mk: ignore errors during build
914 2006-06-19 Raphael Neider <rneider AT web.de>
916 * src/pic/glue.h: added pic14aopLiteral prototype
917 * src/pic/glue.c (pic14aopLiteral): return unsigned int
918 * src/pic/gen.c: removed stdint.h dependency
919 (aopGet): use Safe_strdup()
920 (bitpatternFromVal): removed, replaced use with pic14aopLiteral
921 (genDataPointerSet): use pic14aopLiteral()
922 * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
923 for pic16; thanks to Bernhard and Maarten
925 2006-06-18 Borut Razem <borut.razem AT siol.net>
927 * support/regression/tests/structflexarray.c: flexible array members
928 not supported by gcc < 3
929 * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
931 * src/pic/gen.c: don't include [p]strdin.h on solaris
932 * support/Util/pstdint.h: addad svn attributes
933 * support/regression/tests/constantRange.c,
934 support/regression/tests/rotate.c: include inttypes.h instead
935 stdint.h on solaris, addad svn attributes
937 2006-06-18 Raphael Neider <rneider AT web.de>
939 * src/SDCCsymt.c (initCSupport): change return type of divschar to
941 * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
942 (pic16_genMinusBits): simplified sign-extension
943 (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
944 pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
945 adjusted to correctly handle mixed-signed operands, disabled
946 now unused multiplciation routines
947 * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
948 (assignResultValue): added argument denoting the size of the result
949 as returned by the function (fixes upcasts in assigning from
950 function calls: char foo(); int i = foo();)
951 (genCall,genPcall,genGenPointerGet,genReceive): pass size of
952 function result to assignResultValue
953 (genMult): disabled inlined multiplication code
954 (genDiv): augmented to also handle the modulus operator, fixed to
955 handle mixed-signed operands correctly
956 (genMod): simply call genDiv, disabled unused code
957 (genAssign): fixed missing (sign-)extension on result
958 * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
959 valid char operands, allow signed operands for native code, added
960 division and modulo operator handling
961 * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
963 As a consequence, onebyte.c (if split into two files) and muldiv.c
964 pass regression tests.
966 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
968 * doc/Makefile.in: two runs of makeindex seem needed to get
969 correct page references in the index of sdccman.pdf
970 * doc/sdccman.lyx: mentioned cmon51, added links, small changes
972 2006-06-17 Borut Razem <borut.razem AT siol.net>
974 * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
976 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
978 * doc/sdccman.lyx: updated, added (porting source code, debugging),
979 mentioned ec2drv and paulmon
981 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
983 * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
984 consecutive abs areas
985 (find_empty_space, allocate_space): added map to handle codemap or
987 (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
988 absolute idata and xdata
989 * as/mcs51/lkmem.c (summary2): updated legend
991 2006-06-16 Raphael Neider <rneider AT web.de>
993 * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
995 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
997 * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
999 * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1001 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1003 * src/port.h (struct PORT): added field gp_tags, to hold the tag
1004 value of generic pointers,
1014 src/z80/main.c: PORT structure, added elements for gp_tags field,
1015 * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1016 fields in the PORT structure of each port,
1017 * src/SDCCast.c (decorateType): allow processing of generic pointers
1018 for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1021 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1027 * src/pic16/pcode.c,
1029 * src/pic/pcoderegs.c,
1032 * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1033 bug 1504689 on minGW
1035 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1037 * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1039 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1041 * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1043 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1045 * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1048 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1050 * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1051 to a char variable. Fixed bug #1504211
1052 * device/include/pic16/adc.h,
1053 device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1054 and fixed bug #1364390
1056 2006-06-10 Borut Razem <borut.razem AT siol.net>
1058 * CVSROOT: removed the CVS left-over
1060 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1062 * as/hc08/asmain.c (asexit),
1063 * as/hc08/lkmain.c (lkexit),
1064 * as/mcs51/asmain.c (asexit),
1065 * as/mcs51/lkmain.c (lkexit),
1066 * src/SDCCglue.c (DEFSETFUNC),
1067 * src/SDCCmain.c (linkEdit, assemble),
1068 * support/librarian/sdcclib.c (AddRel),
1069 replaced unlink() by standard C remove()
1070 * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1071 * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1072 gatherImplicitVariables): new, added to fix bug 608752,
1073 (createFunction): added gatherImplicitVariables()
1074 * src/SDCCast.h: added createRMW prototype
1075 * src/SDCCsymt.h (struct symbol): added infertype
1076 * support/regression/tests/bug608752.c: new, added
1078 2006-06-10 Raphael Neider <rneider AT web.de>
1080 * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1081 multibyte dummy reads (fixes #1503234)
1083 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1085 * device/include/mcs51/compiler.h: new, added header file to enable
1086 creating common sfr definition header files for different compilers
1088 2006-06-05 Raphael Neider <rneider AT web.de>
1090 * src/pic16/{pcode.h,genarith.c}:
1091 introduced pCodeOp combining any two pCodeOps (previously only
1092 two register operands could be combined), removed pcop2 from
1093 pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1094 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1095 * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1096 rewritten to use new PO_TWO_OPS
1097 * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1098 * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1099 (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1100 (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1101 (pic16_get_op): embraced return arg to allow #define return(x),
1102 added new case for combined opcodes
1103 (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1104 (pic16_pCode2str,pic16_getRegFrompCodeOp,
1105 pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1107 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1109 * src/SDCCval.c (checkConstantRange): added
1110 * src/SDCCval.h: added checkConstantRange
1111 * support/Util/SDCCerr.c,
1112 * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1113 W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1114 * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1115 * src/SDCCast.c (decorateType): added checkConstantRange,
1116 added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1117 can be emitted with the correct always true/false warning,
1118 added optimization for double '!';
1119 result of decorateType() must be assigned back to the tree, because
1120 decorateType() can change the tree
1121 * src/SDCCicode.c (geniCodeLogic),
1122 (geniCodeAssign): replaced new checkConstantRange, added warnings,
1123 (checkConstantRange): removed, it was only a fragment which never
1125 * src/SDCCsymt.c (computeType): fixed promotion for
1126 "-1 < (unsigned bit) b"
1127 * src/pic/ralloc.c (packRegsForAssign),
1128 * src/pic16/ralloc.c (packRegsForAssign),
1129 * src/hc08/ralloc.c (packRegsForAssign),
1130 * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1132 * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1133 * support/regression/tests/constantRange.c: added
1134 * support/valdiag/tests/constantRange.c: added
1135 * support/valdiag/valdiag.py: added -DPORT_HOST=1
1137 2006-06-02 Borut Razem <borut.razem AT siol.net>
1139 * support/regression/ports/pic16/support.c: increase stack size
1141 * support/regression/Makefile.in: sort tests by name so that the
1142 resutlts can be compared on different machines / platforms
1144 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1146 * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1147 * src/ds390/gen.c (emitLabel): new, added,
1148 (genDjnz): fixed stack overflow bug,
1149 (throughout): cosmetic changes to sync with mcs51/gen.c,
1150 replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1151 * src/mcs51/gen.c (genEndFunction): small optimization,
1152 (throughout): cosmetic changes to sync with ds390/gen.c
1154 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1156 * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1157 (_print_format): fixed printing pointers
1158 * src/mcs51/gen.c (emitLabel, movb): new, added,
1159 (genAssign): small optimization,
1160 (genDjnz): fixed stack overflow bug,
1161 (throughout): replaced sprintf with SNPRINTF,
1162 replaced mcs51_regWithIdx with REG_WITH_INDEX,
1163 replaced emitcode("mov", "b,...") with MOVB(...),
1164 replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1165 replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1166 * src/mcs51/peeph.def: added rules 140 and 264
1167 * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1168 so they may get optimized into registers
1170 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1172 * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1173 immediately when encountered,
1174 (printUsage): always use stderr even on windows
1176 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1178 * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1179 (processParms): fixed bug #1247551
1180 * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1181 parseCmdLine, main): print '--version' to stdout,
1182 print 'help' to stdout if --help is given,
1183 print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1184 arguments are given; fixed --help
1186 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1188 * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1189 * support/regression/tests/bug-1493710.c: added
1191 2006-05-27 Borut Razem <borut.razem AT siol.net>
1193 * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1195 * support/regression/ports/pic16/support.c: increase stack size
1196 from default 64 bytes to 128 bytes
1197 * support/regression/tests/staticinit.c,
1198 support/regression/tests/float.c: regression tests fully enabled
1199 for pic16 port by putting the initialized data arrays into the code
1201 * support/regression/ports/pic16/spec.mk: don't link default libraries.
1202 This was changed by mistake in the previous version.
1204 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1206 * src/pic16/gen.c (genFunction, genEndFunction): some
1207 beautifications, fixed bug with falsely restoring FSR2 in large
1208 stack model, thanks to Beau E. Cox for reporting the bug
1210 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1212 * debugger/mcs51/break.c,
1213 * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1214 use %p to print pointers, made address variables unsigned
1215 * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1216 * debugger/mcs51/symtab.c (parseSymbol): must return something
1217 * src/mcs51/gen.c (aopForSym): small optimization,
1218 moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1219 (freeAsmop): added missing break,
1220 (aopPut): removed parameter bvolatile, determine it inside the function,
1221 (saveRegisters, unsaveRegisters): small optimization,
1222 (genIpush): removed pointless check,
1223 (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1224 replaced sprintf with SNPRINTF,
1225 replaced strcpy with strncpyz,
1226 updated aopPut calls,
1227 replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1228 * src/mcs51/ralloc.h: added declarations mcs51_ptrRegReq and mcs51_nRegs
1230 2006-05-24 Borut Razem <borut.razem AT siol.net>
1232 * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1233 modification of test for the pic16 port, put the array to the code
1234 memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1236 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1238 * src/pic/gen.c: MSC 6 does not have <stdint.h>. Use pstdint.h instead.
1239 * support/Util/pstdint.h: added
1241 2006-05-22 Borut Razem <borut.razem AT siol.net>
1243 * src/regression/Makefile: removed bool2.c test, added -q linker option
1244 * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1245 src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1246 src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1247 src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1248 src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1249 src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1250 src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1251 src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1252 define SUPPORT_BIT_TYPES 0, removed unused bit variables
1254 2006-05-22 Raphael Neider <rneider AT web.de>
1256 * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1257 bug #1492360 (problematic due to generic pointers, see code)
1259 2006-05-22 Borut Razem <borut.razem AT siol.net>
1261 * support/regression/ports/pic16/specs.mk: removed stack size linker
1263 * support/regression/tests/array.c,
1264 support/regression/tests/bitopcse.c,
1265 support/regression/tests/bug-908454.c,
1266 support/regression/tests/malloc.c: modified for pic16 regression test
1267 * support/regression/tests/bitfields.c:
1268 pic16 - excluded bitfileds of size > 8
1269 * support/regression/tests/bp.c: pic16 - reduced data size
1270 * support/regression/tests/bug-221100.c: pic16 - reduced data size
1271 * support/regression/tests/bug-460010.c:
1272 pic16 - used the absolute address the fits in memory
1273 * support/regression/tests/bug-716242.c:
1274 bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1275 * support/regression/tests/float.c:
1276 pic16 - excluded - data size too big
1277 * support/regression/tests/onebyte.c:
1278 pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1279 * support/regression/tests/shifts.c:
1280 pic16 - function names probably have to differ in first X characters
1282 * support/regression/tests/staticinit.c:
1283 pic16 - excluded some tests due error: no target memory available for
1286 2006-05-22 Borut Razem <borut.razem AT siol.net>
1288 * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1289 second try. Thanks Stas Sergeev once more.
1291 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1293 * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1294 (genLeftShift, genRightShift): fixed bug 1491627
1295 * src/hc08/peeph.def (rules 7, 8.x): added
1296 * support/regression/tests/shifts.c (ShiftLeftByParam,
1297 ShiftRightByParam, testShiftByParam): added to test variable shifting
1299 2006-05-20 Raphael Neider <rneider AT web.de>
1301 * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1302 * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1303 (allocReg): add only new registers to dynAllocRegs,
1304 (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1305 #1489055, #1445850, and probably #1483693
1307 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1309 * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1310 bug in for-loop that didn't emit the last of CONFIG and ID registers
1312 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1314 * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1316 * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1317 1489016, 1434401 and 1490124
1318 * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1319 1489016, 1434401 and 1490124
1321 2006-05-17 Borut Razem <borut.razem AT siol.net>
1323 * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1326 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1328 * device/include/mcs51/P89c51RD2.h,
1329 * device/include/mcs51/P89LPC901.h,
1330 * device/include/mcs51/P89LPC922.h,
1331 * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1333 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1335 * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1336 to fix missing stack pragma in compiled binary object file,
1338 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1340 * support/packihx/configure.in,
1341 * support/packihx/configure: removed warning, autoconf >= 2.5x can
1342 determine sizeof basic types even while cross compiling
1344 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1346 * src/avr/gen.c (aopop),
1347 * src/ds390/gen.c (aopOp),
1348 * src/hc08/gen.c (aopOp),
1349 * src/mcs51/gen.c (aopop),
1350 * src/pic16/gen.c (pic16_aopOp),
1351 * src/pic/gen.c (aopOp),
1352 * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1353 if size of operand is smaller than spill location
1355 2006-05-12 Borut Razem <borut.razem AT siol.net>
1357 * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1358 have to have CR/LF line endings even if they are checked out on *nix
1359 or on WIN32 in cygwin binmode
1361 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1363 * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1364 * device/include/ds80c390.h: added sfr16 definitions
1368 * src/ds390/ralloc.c,
1369 * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1370 fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1371 bit returning functions
1372 * support/regression/tests/sfr16.c: enabled test on ds390
1374 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1376 * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1377 * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1379 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1381 * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1382 * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1383 (cl_address_space constructor): removed expensive initialization,
1384 (cl_address_space::get_cell): extended for late initialization,
1385 (cl_address_space::*): use late initialization,
1386 (cl_address_decoder::activate): removed expensive initialization,
1387 This reduced regression test running time by 25%
1389 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1397 * support/packihx/Makefile.in,
1398 * support/packihx/clean.mk,
1399 * support/packihx/Makefile.bcc,
1400 * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1402 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1404 * src/SDCCval.c (valNot): fix for regression test failure
1405 of not.c on big endian hosts
1407 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1409 * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1411 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1413 * device/lib/mcs51/Makefile.in: changed string comparison operator
1414 to = for POSIX compliance; == is bash extension
1416 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1418 * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1421 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1423 * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1424 allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1425 * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1426 * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1427 bug report #1478657,
1429 2006-05-05 Borut Razem <borut.razem AT siol.net>
1431 * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1434 2006-05-02 Borut Razem <borut.razem AT siol.net>
1436 * doc/Makefile.in: removed *.ind dependency since there is no rule to
1437 create *.ind, which made make to fail if invoked with -j 2
1439 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1441 * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1442 Hubert Sack for patch 1479782
1444 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1446 * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1448 2006-05-01 Raphael Neider <rneider AT web.de>
1450 * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1451 (create_pic): store only prefix-free device name,
1452 (init_pic): check for device names with "16" prefix,
1454 * src/pic/device.h (struct PIC_device),
1455 * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1457 * device/include/pic/pic12f{635,675,629,683}.h,
1458 * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1459 * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1460 * device/include/pic/pic16f505.h,
1461 * device/lib/pic/libdev/pic16f505.c: removed
1462 * device/include/pic/pic14devices.txt: added support for pic12f
1463 devices, removed unsupported non 16-bit devices
1464 [above changes provided by patch from Zik Saleeba]
1465 * src/pic/*, src/pic16/*, device/include/pic16/*,
1466 device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1468 2006-05-01 Borut Razem <borut.razem AT siol.net>
1470 * configure.in, configure, doc/Makefile.in:
1471 sync with nightly build makefile - latex, dvipdf and dvips
1474 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1476 * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1477 in the library source
1479 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1481 * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1483 2006-04-28 Raphael Neider <rneider AT web.de>
1485 * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1486 * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1487 (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1488 * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1490 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1492 * device/lib/pic/libdev/Makefile.in,
1493 * device/lib/hc08/Makefile.in,
1494 * device/lib/gbz80/Makefile.in,
1495 * device/lib/z80/Makefile.in,
1496 * device/lib/ds390/Makefile.in,
1497 * device/lib/ds400/Makefile.in: added srcdir to include search path,
1498 thanks to Borut for the bug report
1500 * configure: always create doc/Makefile independent from --enable-doc
1501 * Makefile.in: always install from directory doc independent from
1503 * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1505 * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1506 * doc/Makefile.in: install *.txt if present
1507 * device/include/Makefile.in (install): added installation of pic/*.inc
1508 and pic/*.txt files again, they were erroneously removed
1510 2006-04-28 Raphael Neider <rneider AT web.de>
1512 * src/pic/{gen.c,main.h,pcode.c},
1513 * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1514 concerning signedness with casts
1516 2006-04-28 Raphael Neider <rneider AT web.de>
1518 * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1519 definition of an interrupt handler,
1520 * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1521 interrupt handler stuff from picglue() to separate routine,
1522 (picglue): enabled definition of intr handlers in files w/o main()
1524 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1526 * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1527 compilation with MSVC 2005 Express Edition (VC8)
1529 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1531 * device/lib/Makefile: fixed build of gbz80 lib
1533 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1535 * support/regression/tests/bug-460010.c,
1536 * support/regression/tests/bug-524691.c,
1537 * support/regression/tests/bug-716242.c: removed conditional defines
1538 that are already in testfwk.h
1540 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1542 * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1543 (AccAXRsh1): added, shift right by 1,
1544 (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1546 * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1548 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1550 * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1551 remove cast to same type
1552 * src/SDCCast.c (decorateType): fix for RFE 1475742,
1553 optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1555 * link/z80/Makefile: removed, they have moved to
1558 * configure.in: replaced duplicate message about ucsim by missing sdcpp
1559 * install-sh: fix bug #1204398 by setting umask 0022
1560 * device/lib/Makefile: separate build of z80 and gbz80 lib
1562 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1564 Enabled VPATH feature: changed nearly all Makefiles (149 files).
1565 See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1567 One basic decision: e.g. src/clean.mk includes further files. In order
1568 to make this work there are two solutions:
1569 - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1570 run configure on them. This way they can use
1571 'include $(srcdir)/port-clean.mk'
1572 - always include clean.mk by the Makefile at the same level. To avoid
1573 that `make clean` tries to include and build Makefile.dep the
1574 MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1575 implemented, because now even `make uninstall` doesn't create
1576 Makefile.in. clean.mk could be eliminated by pasting it in
1579 * debugger/mcs51/Makefile.in: build own objects from library sources
1580 (SLIB, SDCC) in current directory
1582 * configure, configure.in: renamed --disable-device-lib-build in
1583 --disable-device-lib; added --enable-doc, the required tools are
1584 searched by configure; added result message; the toolchain for the
1585 belonging ports are now only built, if the port is enabled.
1587 * support/regression/*: all output is written in directory gen, because
1588 the fwk and ports directories don't livet in the build tree using vpath
1590 * doc/sdccman.lyx: renamed --disable-device-lib-build to
1591 --disable-device-lib, added --enable-doc, added section VPATH
1593 * sim/ucsim/configure.in,
1594 * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1595 z80 are enabled by default
1597 2006-04-24 Raphael Neider <rneider AT web.de>
1599 * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1600 to config word, "pic14_"-prefixed some extern functions
1601 (pic14_emitConfigWord): emit __config directive(s) if assignment to
1602 config word has been found
1603 * src/pic/device.h: added prototypes
1604 * src/pic/pcode.c: added "pic14_"-prefix where needed
1605 * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1607 * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1609 (pic14emitRegularMap): ignore config words,
1610 (pic14createInterruptVect): moved generating __config directives away
1611 (picglue): have __config directives emitted
1613 2006-04-24 Borut Razem <borut.razem AT siol.net>
1615 * doc/Makefile: sync with nightly build makefile
1617 2006-04-24 Raphael Neider <rneider AT web.de>
1619 * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1620 registers that have not been assigned proper liveranges,
1621 fixes #1469504 and #1474602,
1622 (pCodeRegOptimizeRegUsage): fixed typo in comment
1624 2006-04-24 Borut Razem <borut.razem AT siol.net>
1626 * device/examples/main8051.c: deleted - it was removed from CVS
1627 24.mar.2000 and after that modified 18.feb.2001, so it reappered
1628 after the transition to Subversion
1629 * src/SDCCalloc.h: deleted - it was removed from CVS
1630 3.feb.2001 and after that modified 18.feb.2001, so it reappered
1631 after the transition to Subversion
1632 * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1633 sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1634 sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1635 sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1637 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1639 * as/asx8051.dsp: added mcs51/strcmpi.h
1640 * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1641 * as/hc08/aslink.h: updated lnksect prototype
1643 * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1645 * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1646 (newdot): handle A_ABS
1648 * as/mcs51/asout.c (outarea): output address
1649 * as/hc08/lkaomf51.c,
1650 * as/mcs51/lkaomf51.c: disabled unused array UsageType
1652 * as/mcs51/i51pst.c,
1653 * as/z80/z80pst.c: "ABS" is not A_OVR
1654 * as/hc08/lkarea.c (newarea): read a_addr,
1655 (lnkarea): added codemap array, sort absolute areas to the front,
1656 combine all GSINITx/GSFINAL,
1657 (find_empty_space, allocate_space): new functions,
1658 (lnksect): return next address, handle absolute sections
1659 * as/mcs51/lkarea.c (newarea): read a_addr,
1660 lnksect2 prototype changed,
1661 (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1662 (find_empty_space, allocate_space): new, factored out of lnksect2,
1663 (lnksect2): return next address, handle absolute sections
1665 * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1666 * as/hc08/lklibr.c (addfile, fndsym),
1667 * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1668 index out of range and detect both '\' and '/'
1669 * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1670 * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1671 regression tests (ds390 cannot return bool yet)
1672 * doc/sdccman.lyx: changed version number, document changed --no-peep,
1673 document critical interrupts on z80, document changed SDCC define
1674 * src/asm.c (_asxxxx_mapping): fixed .org directive,
1675 (_a390_mapping): added .org directive
1676 * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1677 (genMultOneByte): fixed warnings
1678 * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1680 * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1681 * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1682 (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1683 * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1684 * src/pic16/main.c: removed newReg prototype
1685 * src/pic16/pcode.c,
1686 * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1688 * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1690 * src/pic16/ralloc.c
1691 * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1693 * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1694 from short to PIC_OPTYPE
1695 * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1696 * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1697 optype from short to PIC_OPTYPE
1698 * src/port.h: made int_size unsigned to fix warnings
1699 * src/SDCC.y: fixed warning on MSVC
1700 * src/SDCCicode.c (getArraySizePtr): return unsigned int
1701 * src/SDCCopt.c (convertToFcall): fixed warnings
1702 * src/SDCCsymt.h: removed double prototype for genSymName
1703 * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1704 offset int to fix warnings
1706 2006-04-22 Borut Razem <borut.razem AT siol.net>
1708 * doc/sdccman.lyx, */Makefile, */Makefile.in:
1709 references to CVS replaced with Subversion
1711 2006-04-21 Borut Razem <borut.razem AT siol.net>
1713 * doc/sdccman.lyx, */Makefile, */Makefile.in:
1714 references to CVS replaced with Subversion
1716 2006-04-19 Borut Razem <borut.razem AT siol.net>
1718 * src/version.awk: adapted for svn
1719 * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1720 sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1721 sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1722 /binutils-avr/etc/*.vi, *.jin: removed all properties
1723 support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1725 2006-04-19 Borut Razem <borut.razem AT siol.net>
1727 * CVS to Subversion migration completed
1729 2006-04-18 Borut Razem <borut.razem AT siol.net>
1731 * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1732 ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1734 2006-04-17 Borut Razem <borut.razem AT siol.net>
1736 * device/include/Makefile.in: added pic/*.inc to the installation
1738 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1740 * support/regression/collate-results.py: fixed output in case of
1742 * support/regression/generate-cases.py: fixed splitting of pathnames
1744 * as/hc08/lklibr.c (addfile),
1745 * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1747 2006-04-11 Raphael Neider <rneider AT web.de>
1749 * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1750 * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1751 * src/pic16/pcode.c (assignValnums): fixed #1460578
1753 2006-04-11 Raphael Neider <rneider AT web.de>
1755 * device/lib/pic/libdev/*.c,
1756 * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1757 fixes #1468739, enables compilation in --std-c99 mode
1758 * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1760 2006-04-11 Raphael Neider <rneider AT web.de>
1762 * src/pic/device.c (find_device): removed debug output
1763 (list_valid_pics): enabled verbose listing of supported devices
1764 * device/include/stdbool.h: define bool as char for pic14/16 as well
1766 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1768 * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1770 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1772 * .version: bumped version to 2.5.6
1773 * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1775 2006-04-06 Raphael Neider <rneider AT web.de>
1777 * .version: bumped version to 2.5.6 (pic14 ABI changed)
1778 * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1779 * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1780 pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1781 pic14_constructAbsMap
1782 (pic14printPublics): declare absolute global symbols as global
1783 (pic14createInterruptVect),
1784 * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1785 (newReg): assume new registers unused, use correct name in
1786 hashtable (reg->name instead of name), more debugLog output
1787 * src/pic/device.h (PIC_device): added fields for verbose output
1788 * src/pic/device.c: moved device definition to pic14devices.txt,
1789 added routines for runtime parsing of pic14devices.txt,
1790 added support for second config word
1791 * src/pic/main.c (_process_pragma): removed #pragma maxram,
1792 (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1793 (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1794 (_pic14_parseOptions): moved pCodeInitRegisters here
1795 (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1796 * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1797 (pCodeInitRegisters): rewrapped comments, perpared new approach to
1798 handling the pseudo stack
1799 * device/lib/Makefile.in: ignore failures in objects-pic16,
1800 * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1801 * device/lib/pic/NEWS: document new dependency on picXXX.lib
1802 * device/lib/pic/Makefile.subdir,
1803 * device/lib/pic16/Makefile.subdir: improved clean rules
1804 * device/lib/pic/libdev/: NEW, pic14 device libraries
1805 * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1806 * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1807 * device/include/Makefile.in: create subdir and install pic14 headers
1808 * device/include/pic/p16f_common.inc: removed unused declarations
1809 * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1810 PICs from inc2h.pl v1.6,
1811 replaced BIT_AT macros with struct declarations
1812 * device/include/pic/pic14devices.txt: definition of supported devices,
1813 all above improvements contributed by Zik Saleeba, thanks
1814 * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1815 * support/scripts/sdcc.nsi: also install pic14 device libraries and
1818 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1820 * device/include/mcs51/c8051f410.h: added interrupt numbers,
1821 * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1822 thanks to Charles Olds
1824 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1826 * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1828 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1830 * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1831 * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1832 * support/regression/bug1464657.c: added, new test
1834 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1836 * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1839 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1841 * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1842 --no-peep and --peep-file <file> are used don't use default rules but
1845 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1847 * src/mcs51/gen.c (genCall): fixed bug 1457608
1849 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1851 * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1852 changes seem to cause (trigger?) problems with the build system.
1854 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1856 * src/SDCCpeeph.c (operandsLiteral): new, added,
1857 (callFuncByName): inserted operandsLiteral
1858 * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1860 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1862 * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1863 * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1865 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1867 * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1868 implemented patch 1120823 Thanks to Willy De la Court (normal
1869 interrupts need an interrupt number now if they are made critical),
1870 and enabled nesting of critical functions though not for gbz80
1871 (genCritical, genEndCritical): added functions
1872 (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1873 * src/z80/mappings.i: added "ei" to all mappings
1875 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1877 * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1878 submitted by the Debian SDCC maintainer Aurelien Jarno:
1879 "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1880 archive with gcc 4.1 on mips and wrote the patch"
1882 2006-03-16 Raphael Neider <rneider AT web.de>
1884 * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1885 the left operand is shorter than the result (c* = lit-c* + int),
1887 * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1890 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1892 * src/.version: increased version number to 2.5.5
1893 * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1894 linking is done manually in pic16 port's _linkEdit,
1895 * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1896 PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1897 * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1898 allocate asmop as AOP_ACC,
1899 (aopForRemat): added parameter 'bool result' in function declaration,
1900 (pic16_aopGet): return AOP_ACC when accessing WREG,
1901 (pic16_popGetTempReg): minor modification,
1902 (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1903 'pic16_allocWithIdx',
1904 (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1905 calling function in absolute addresses,
1906 (genAssign): take into account AOP_ACC asmop,
1907 * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1908 * src/pic16/pcoderegs.c: some debug functions and lines added,
1909 * src/pic16/ralloc.c (decodeRegType): added but commented out,
1910 * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1912 * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1913 call to allocReg, not by manually allocating a new one,
1914 (pic16_assignRegisters): now before going through the register
1915 allocating functions mark all registers as free. This eliminates some
1916 side effects resulting from peephole parser done earlier in the backbone
1918 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1920 * src/SDCCicode.c (geniCodeLogic),
1921 * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1923 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1925 * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1926 (genSend): bugfix, do not allocate and free twice,
1927 (shiftRLong): handle partially overlapping aops
1928 * support/regression/tests/bitopcse.c: fixed warning redefined idata
1930 2006-03-08 Borut Razem <borut.razem AT siol.net>
1932 * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1935 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1937 * support/regression/tests/bug1409955.c: new, added
1938 * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1939 * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1940 (aopForSym, aopOp): increment asmop.allocated if reused,
1941 (freeAsmop): decrement asmop.allocated and check for zero instead of
1943 (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1944 (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1945 genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1946 genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1947 genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1948 genSignedRightShift, genRightShift, genDataPointerGet,
1949 genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1950 genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1951 in reverse order from allocation,
1952 (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1953 added swappedLR to keep track
1954 * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1955 pdata & code for GCC, z80, gbz80 & hc08
1956 * support/regression/tests/zeropad.c: moved defines to testfwk.h
1958 2006-03-08 Raphael Neider <rneider AT web.de>
1960 * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1962 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1964 * device/include/mcs51/c8051f410.h: new SiLabs mcu
1965 * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1966 * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1968 2006-03-06 Borut Razem <borut.razem AT siol.net>
1970 * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1971 made the linker quiet
1973 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1975 * src/pic16/gen.c (genPcall): fixed bug #1443644
1976 * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1977 which dumps before the function entry point a data byte which represents
1978 the number of the local variables used by the specified function, added
1979 'xinst' for initial support for Extended Instruction Support,
1980 * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1981 (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1982 port->fun_prefix anymore (may change later),
1983 (genFunction, genEndFunction): do not store/restore local registers for
1984 _main (this should take care the --main-return command line option in
1986 (genOr): removed some legacy pic-port instructions,
1987 * src/pic16/genarith.c (genAddLit): re-enabled old code because
1988 performing operations with SFR's causes data to be written more than
1989 once to each SFR. Perhaps SFRs should be handled in special cases...
1990 * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1992 * src/pic16/main.c (_process_pragma): stack bound checking did not take
1993 into account for stack starting position,
1994 (struct OPTIONS pic16_optionsTable): added command line argument
1995 --extended or -y for Extended Instruction Support,
1996 * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1997 (deassignLRs): *** perhaps the most important change, old 'for' code
1998 (commented out for reference), didn't account for some registers which
1999 were left marked 'not free' after a pointer operation. The change
2000 reduces register usage a lot in some cases
2002 2006-03-04 Borut Razem <borut.razem AT siol.net>
2004 * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2006 * support/regression/tests/bug-524697.c: decreased array size for
2007 mcs51 to fit into the internal RAM
2008 * support/regression/Makefile.in: a little bit more verbose
2010 2006-03-03 Borut Razem <borut.razem AT siol.net>
2012 * support/regression/fwk/lib/testfwk.c,
2013 support/regression/fwk/include/testfwk.h: introduced function
2014 _prints(), nonrecursive _printn(), call _initEmu() from main()
2015 * support/regression/ports/gbz80/support.asm,
2016 support/regression/ports/ucz80/support.asm,
2017 support/regression/ports/z80/support.asm,
2018 support/regression/ports/ds390/support.c,
2019 support/regression/ports/hc08/support.c,
2020 support/regression/ports/host/support.c,
2021 support/regression/ports/mcs51/support.c,
2022 support/regression/ports/xa51/support.c: added empty _initEmu()
2024 * support/regression/ports/pic16/gpsim.cmd,
2025 support/regression/ports/pic16/spec.mk,
2026 support/regression/ports/pic16/support.c,
2027 support/regression/Makefile.in: added pic16 regression test
2029 2006-03-01 Raphael Neider <rneider AT web.de>
2031 * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2032 genConstPointerGet): use safe way of generating MOVFF to cover
2033 literals as well as registers, fixes bug #1440527
2034 * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2036 (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2037 more correctly, fixes bug #1232186
2038 (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2039 * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2040 gplink guess the correct processor in more cases, applied patch
2041 from Till Riedel attached to and fixing bug #1436552
2043 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2045 * support/regression/tests/array.c: added, contains check for #1434401
2046 * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2048 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2050 * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2051 * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2052 * device/include/mcs51/c8051f326.h,
2053 * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2054 * device/include/mcs51/c8051f000.h,
2055 * device/include/mcs51/c8051f018.h,
2056 * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2057 PCON_IDLE,PCON_STOP and added sfr16 definitions
2059 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2061 * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2062 genGetWord): fixed bug 1409955
2064 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2066 * device/include/hc08/mc68hc908gp32.h,
2067 * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2069 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2071 * src/SDCCast.c (constExprValue): return NULL if not a value
2072 * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2073 * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2074 * support/regression/tests/bitfields.c: enabled signed bitfield for all
2076 2006-02-13 Borut Razem <borut.razem AT siol.net>
2078 * src/regression/ptrarg.c: added, fails due to bug #1430967
2079 * src/regression/Makefile: ptrarg.c added, ...
2081 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2083 * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2084 * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2086 2006-02-11 Borut Razem <borut.razem AT siol.net>
2088 * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2089 print "Processor: xxx" message to stdout only if --verbose
2091 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2093 * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2094 * support/regression/tests/bug1426356.c: added
2095 * support/regression/tests/bitfields.c: removed 2 tests
2097 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2099 * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2100 * device/include/mcs51/c8051f330.h,
2101 * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2102 PCON_IDLE,PCON_STOP and added sfr16 definitions
2103 * device/lib/_divsint.c,
2104 * device/lib/_divuint.c,
2105 * device/lib/_divulong.c,
2106 * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2107 register bank bug for small stackauto
2109 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2111 * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2113 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2115 * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2116 * all.dsp: corrected several bin paths
2117 * device/include/mcs51/c8051f120.h,
2118 * device/include/mcs51/c8051f300.h,
2119 * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2120 to PCON_IDLE,PCON_STOP
2121 * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2122 * device/lib/printf_large.c (output_float): fixed bug 1388703
2123 * support/regression/tests/bug1057979.c: added test for bug 1388703
2125 2006-02-08 Raphael Neider <rneider AT web.de>
2127 * src/pic/pcode.c (pciTRIS): fixed typo,
2128 (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2129 (LinkFlow): fixed handling of flows that end in a call,
2130 (ReuseReg): perform safety check earlier
2131 * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2132 to work with flows at the beginning of a pBlock,
2133 fixes #1426557 (Symbol not previously defined),
2134 (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2136 (RemoveUnusedRegisters): update register usage info
2137 * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2138 created, reuse existing ones instead
2139 * src/pic/gen.c (genPcall): fixed #1424719
2141 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2143 * link/z80/lkmain.c,
2145 * link/z80/lkdata.c,
2146 * link/z80/aslink.h: fixed build on current cygwin:
2147 replaced getline() by lk_getline()
2149 2006-02-01 Borut Razem <borut.razem AT siol.net>
2151 * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2152 src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2153 src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2154 src/regression/bool1.c, src/regression/bool2.c,
2155 src/regression/bool3.c, src/regression/call1.c,
2156 src/regression/compare.c, src/regression/compare10.c,
2157 src/regression/compare2.c, src/regression/compare3.c,
2158 src/regression/compare4.c, src/regression/compare5.c,
2159 src/regression/compare6.c, src/regression/compare7.c,
2160 src/regression/compare8.c, src/regression/compare9.c,
2161 src/regression/configword.c, src/regression/for.c,
2162 src/regression/inline.c, src/regression/mult1.c,
2163 src/regression/nestfor.c, src/regression/or1.c,
2164 src/regression/pointer1.c, src/regression/ptrfunc.c,
2165 src/regression/rotate1.c, src/regression/rotate2.c,
2166 src/regression/rotate3.c, src/regression/rotate4.c,
2167 src/regression/rotate5.c, src/regression/rotate6.c,
2168 src/regression/rotate7.c, src/regression/string1.c,
2169 src/regression/struct1.c, src/regression/sub.c,
2170 src/regression/sub2.c, src/regression/switch1.c,
2171 src/regression/while.c, src/regression/xor.c,
2172 src/regression/create_stc, src/regression/simulate,
2173 src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2175 * src/regression/gpsim_assert.h: added
2177 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2179 * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2180 ((void (code *) (void)) 0) ();
2189 * as/mcs51/aslink.h,
2191 * as/mcs51/asmain.c,
2192 * as/mcs51/lkdata.c,
2194 * as/mcs51/lkmain.c,
2197 * as/z80/asmain.c: fixed build on current cygwin:
2198 replaced getline() by as_getline()
2200 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2202 * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2203 declarator in the symbol chain
2205 * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2206 parameter list for function pointers
2207 * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2208 * support/regression/tests/bug-716242.c: added
2210 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2212 * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2214 * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2216 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2218 * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2219 inifinitely recurseable, added static
2220 * support/regression/tests/bug-1408066.c: added
2222 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2225 * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2226 renamed, added possibility to create "postLoopLbl"-labels
2227 * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2228 newiTempLoopHeaderLabel
2229 * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2230 isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2231 addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2232 hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2233 findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2234 (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2235 (basicInduction): fixed bug #136564, made static,
2236 (loopInduction): changed parameter of basicInduction, made static,
2237 (addPostLoopBlock): added
2238 * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2239 loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2241 * support/regression/tests/bug-136564.c: added
2242 * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2243 --std-sdcc99 to LIBSDCCFLAGS
2245 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2247 * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2249 * support/regression/tests/bug-1406131.c: added
2251 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2253 * src/SDCCast.c (decorateType): fix promotion of unary minus
2254 * src/SDCCsymt.c (computeType): beautified
2255 * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2256 (valUnaryPM, valComplement): fix sign and promotion,
2257 (valNot): ANSI: result type is int (SDCC: unsigned char)
2258 * support/regression/tests/uminus.c: speedup by removing superflous
2260 * support/regression/tests/onebyte.c: added promotion and signedness
2261 tests for unary minus
2262 * support/regressions/tests/bug-477927.c: disable warning about
2263 uninitialized variables
2264 * support/regression/tests/not.c: added
2266 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2268 * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2269 * src/mcs51/gen.c (gen51Code): show final register usage after
2270 fillGaps in asm with --i-code-in-asm
2271 * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2272 markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2273 incUsed, rliveClear, adjustIChain): made static,
2274 (setFromRange): excluded because it's unused,
2275 (findPrevUseSym, markWholeLoop): added,
2276 (findPrevUse): rewritten; fixes bug 895992; now a complete search
2277 through all branches of predecessors enables sdcc to emit the warning
2278 W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2279 (rlivePoint): made static, added parameter emitWarnings which is only
2280 true during the first run out of two,
2281 (findRecursiveSucc, findRecursivePred): removed,
2282 (computeLiveRanges): made static, added parameter emitWarnings,
2283 (dumpIcRlive): added for debugging only
2284 * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2285 removed prototype of setFromRange()
2286 * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2287 in call of computeLiveRanges()
2288 * support/regression/tests/bug-895992.c: added
2289 * support/regression/tests/bug-971834.c: added
2290 * support/valdiag/tests/bug-895992.c: added
2291 * support/valdiag/tests/bug-971834.c: added
2293 2005-12-18 Raphael Neider <rneider AT web.de>
2295 * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2296 (genUnpackBits): improved code for direct operands,
2297 (genPackBits): improved code for literal assignment to bitfields
2298 and for direct destination operands (no FSR indirection),
2299 prevented redundant AND, fixes #1362800,
2300 (AccLsh): added parameter to disable masking of the result
2301 * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2302 skip instructions with side-effects (like incfsz),
2303 (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2304 * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2305 * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2308 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2310 * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2311 volatile variables as spill location
2313 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2315 * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2317 * support/regression/tests/bug-1376320.c: added
2319 2005-12-08 Raphael Neider <rneider AT web.de>
2321 * src/pic/device.c: renamed is_shared to pic14_is_shared
2322 * src/pic/gen.c (genIfx): re-enabled handling of sbits
2323 * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2324 (is_valid_identifier): added for above workaround
2326 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2328 * device/lib/Makefile.in: fixed to enable port-specific-objects
2329 * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2330 char, thanks Hubert Sack
2331 * doc/sdccman.lyx: documented --xstack-loc,
2332 elaborated a bit more on interrupts and pitfalls,
2333 removed "setjmp/longjmp unsupported",
2334 documented some unsupported C99 features
2335 * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2336 * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2337 if, thanks Hubert Sack
2338 * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2339 * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2341 * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2342 regression tests can report resource usage (rfe 700441)
2343 * support/regression/collate-results.py: report resource usage
2344 * support/regression/ports/ds390/spec.mk,
2345 * support/regression/ports/hc08/spec.mk,
2346 * support/regression/ports/mcs51/spec.mk,
2347 * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2348 * support/regression/ports/ds390/uCsim.cmd,
2349 * support/regression/ports/hc08/uCsim.cmd,
2350 * support/regression/ports/mcs51/uCsim.cmd,
2351 * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2352 * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2353 library, use the default one
2354 * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2355 building the library
2357 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2359 * config.dsp: added dependency on .version and configure_vc.awk
2360 * device/include/setjmp.h: updated for --stack-auto and --xstack
2361 * device/include/mcs51/at89c51snd1c.h: corrected line endings
2362 * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2363 * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2364 * device/lib/libsdcc.lib: added _setjmp
2365 * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2366 (decorateType): fixed bug 1372851,
2367 (optimizeGetHbit): fixed warning
2368 * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2369 array initialisation
2370 * support/regression/tests/bug1057979.c: added test for bug 1358192
2371 * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2373 2005-12-03 Borut Razem <borut.razem AT siol.net>
2375 * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2376 command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2378 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2380 * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2381 createIval): implement symbol independant "flexible array member",
2382 (createIvalCharPtr): implemented flexible array initialisation with a
2384 * src/SDCCsymt.c (copyStruct): removed,
2385 (getSize): fixed misleading comment,
2386 (getAllocSize): removed, the additional allocation size is now in
2387 sym->flexArrayLength,
2388 (checkStructFlexArray): new, syntax checks for flexible array members,
2389 (compStructSize): added syntax checks for "flexible array members"
2390 (copyStruct): removed,
2391 (copyLinkChain): removed inefficient fix for bug 770487
2392 * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2393 * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2394 symbol->flexArrayLength
2396 * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2397 E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2398 * support/regression/tests/structflexarray.c: added
2399 * support/valdiag/tests/structflexiblearray.c: added
2401 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2403 * src/SDCCast.c (decorateType): fixed bug 1368489
2404 * support/Util/SDCCerr.c,
2405 * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2407 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2409 * device/include/mcs51/at89c51snd1c.h: added file submitted by
2410 Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2412 2005-11-27 Borut Razem <borut.razem AT siol.net>
2414 * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2415 support/cpp2/mkdeps.h: added command line option
2416 -obj-ext=<extension> to SDCPP to define object file externion, used
2417 for generation of make dependencies (-M)
2418 * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2420 2005-11-26 Borut Razem <borut.razem AT siol.net>
2422 * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2423 added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2424 added pic and pic16 libraries
2426 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2428 * device/include/float.h: Corrected typo in prototype of __fsgt
2430 2005-11-25 Borut Razem <borut.razem AT siol.net>
2432 * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2433 added creation of model-mcs51-stack-auto libraries
2435 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2437 * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2439 * src/SDCCast.c (createIvalArray): removed obsolete comment
2441 2005-11-24 Borut Razem <borut.razem AT siol.net>
2443 * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2444 added missing device/lib/mcs51/crt*.asm sources
2446 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2448 * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2450 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2452 * device/lib/_fs2schar.c,
2453 * device/lib/_fs2sint.c,
2454 * device/lib/_fs2slong.c: optimized inline asm
2456 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2458 * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2459 Better handling of floats between -1.0 and 0.0.
2461 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2463 * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2464 (the missing "if"s prohibited removal of redundant labels)
2466 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2468 * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2469 Properly convert floats between -1.0 and 0.0 to long, int, and char
2470 types (max integer value of negative floats tends to zero).
2471 * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2472 Removed changes made so to work properly with floats between
2473 -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2476 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2478 * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2479 * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2480 (genCast) cosmetic change
2481 * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2482 * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2484 * support/regression/tests/bitfields (testSignedBitfields): added
2486 2005-11-18 Borut Razem <borut.razem AT siol.net>
2488 * sdcc/device/lib/Makefile.in: remove all unnecessary files
2489 * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2490 introduced SILENT option to make building of pic16 libraries less
2492 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2494 * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2495 Now they work properly with floats between -1.0 and 0.0
2496 * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2498 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2500 * src/SDCCicode.c (printOperand): added missing else
2502 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2504 * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2505 reformatted for better readability
2506 * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2509 2005-11-17 Borut Razem <borut.razem AT siol.net>
2511 * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2512 introduced SILENT option to make building of pic16 libraries less
2513 verbose - used for nightly snapshot build
2514 * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2515 available on Win32 platforms.
2516 * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2517 medium, large, pic and pic16
2519 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2521 * device/lib/printf_large.c: Temporary patch for bug 1358192:
2522 printf("%f"...) sets fraction to zero.
2524 2005-11-16 Raphael Neider <rneider AT web.de>
2526 * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2528 * src/pic/gen.c (genIfx): implemented for CARRY bit
2529 * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2530 to generic pointers, fixes #1357332,
2531 (pic16_movLit2f): NEW,
2532 (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2534 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2536 * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2538 2005-11-11 Raphael Neider <rneider AT web.de>
2540 * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2541 * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2542 compute pointer's type from operand,
2543 (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2544 improved single bit reads, fixes bug #1353379
2546 2005-11-09 Borut Razem <borut.razem AT siol.net>
2548 * support/scripts/sdcc.nsi: added lib/pic to the package
2550 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2552 * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2554 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2556 * support/regression/tests/bug1348008.c: added
2557 * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2558 * support/regression/tests/bug1337835.c: updated comment
2560 2005-11-06 Borut Razem <borut.razem AT siol.net>
2562 * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2563 sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2564 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2565 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2566 sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2567 dynamic construction of cl_error_class and derivates - 2.nd try
2569 2005-11-05 Borut Razem <borut.razem AT siol.net>
2571 * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2572 bug, which caused Bus Errors on sparc solaris
2574 2005-11-04 Borut Razem <borut.razem AT siol.net>
2576 * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2577 sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2578 sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2579 sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2580 sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2581 and derivates to resolve the initialization problem on OSX
2583 2005-11-02 Borut Razem <borut.razem AT siol.net>
2585 * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2586 corrected typo - #include <winsock2.h>
2588 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2590 * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2591 (_asxxxx_mapping): added org directive for future enhancements
2593 2005-11-01 Borut Razem <borut.razem AT siol.net>
2595 * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2596 enabled sockets on WIN32
2597 * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2599 2005-10-31 Borut Razem <borut.razem AT siol.net>
2601 * support/regression/generate-cases.py: escape backslashes in {testcase}:
2602 WIN32 backslash path delimiters should be escaped when used in C strings
2603 * support/regression/tests/bitfields.c: exclude failing assertions for
2604 __CYGWIN32__ and __MINGW32__ hosts
2606 2005-10-30 Borut Razem <borut.razem AT siol.net>
2608 * src/SDCCutil.c: corrected double comparison typo
2610 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2612 * device/lib/medium/Makefile: added for new memory model medium
2613 * device/include/asm/mcs51/features.h: updated for medium/pdata
2614 * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2615 added Multiply & Accumulate sbit's and MAC0_PAGE define
2616 * device/include/mcs51/c8051f300.h: added sfr16 definitions
2617 * device/include/mcs51/c8051f310.h: added sfr16 definitions
2618 * device/lib/_mullong.c: update for medium model
2619 * device/lib/incl.mk: added medium model
2620 * doc/sdccman.lyx: documented medium model
2621 * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2622 * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2623 * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2624 * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2625 (allocParms): set SCLS and OCLS to pdata for medium model
2626 * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2628 (powof2): return <0 if not power of 2
2629 * src/avr/gen.c (genBitWise): use updated powof2
2630 * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2631 (shiftR2Left2Result): small optimization in setup, save acc when storing,
2632 (shiftLLeftOrResult): use B if necessary
2633 * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2634 * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2635 * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2636 * support/regression/Makefile.in: added test-mcs51-medium
2637 * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2639 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2641 * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2643 * device/lib/time.c (mktime): fixed bug 1334315
2645 2005-10-28 Raphael Neider <rneider AT web.de>
2647 * device/include/pic/p16f_common.inc: added common declarations
2648 * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2650 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2652 * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2653 (aopPutUsesAcc): added to predict accumulator use,
2654 (assignResultValue): save acc if necessary,
2655 (genMinusDec): store result if indirectly addressed,
2656 (genDivOneByte): save acc if necessary,
2657 (movLeft2Result): bugfix if left already in acc,
2658 (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2659 attention to accumulator use (esp. pdata),
2660 (genReceive): receive pdata correctly
2661 * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2662 * src/SDCCicode.h: added isOperandInPagedSpace prototype
2664 2005-10-27 Raphael Neider <rneider AT web.de>
2666 * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2668 2005-10-27 Raphael Neider <rneider AT web.de>
2670 * .version: changed version to 2.5.4
2671 * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2672 * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2673 (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2674 arithmetics support routines
2675 * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2676 * device/lib/Makefile.in: also create installdir for pic
2678 * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2680 * src/pic/device.c (dump_sfr): rewritten to delegate register
2681 placement to the linker (use `extern sym' rather than sym EQU addr),
2682 (validAddress): fixed to check last specified address
2683 * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2684 (popGetLit): truncate literal value to 8 bit,
2685 (popGet): moved assert to more appropriate place
2686 (popGetExternal): create pCode operand from and mark the according
2687 symbol as being `extern'
2688 (popGetAddr): added sanity check on immediate's offset, provide
2689 GPOINTER tag on demand
2690 (aopPut): fixed for immediates,
2691 (mov2w_op): move operand's address or contents to WREG (depending on
2692 operand type), safer variant of mov2w,
2693 (movwf,call_libraryfunc): NEW, handy abbreviations,
2694 (get_argument_pcop,get_return_val_pcop,pass_argument,
2695 get_returnvalue): interface for accessing function parameters and
2697 (assignResultValuei,genRet): use new parameter/return value interface
2698 (pic14_getDataSize): back to old version handling generic pointers,
2699 (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2700 provided implementation and/or fixed old one,
2701 (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2702 calls, removed legacy 8051 reference code
2703 (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2704 (loadSignToC): NEW, move the operands sign bit to CARRY,
2705 (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2706 genRightShiftSigned, accepts negative shift counts,
2707 (setup_fsr): load FSR and adjust IRP (indirect memory access),
2708 (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2709 generic pointers, __data pointers and __code pointers,
2710 (genUnpackBits,genPackBits): rewritten to work with generic pointers
2711 and signed bitfields, limit bitfields to 8 bit,
2712 (genDataPointerGet): fixed number of bytes read,
2713 (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2714 (genPointerGet,genPointerSet): fixed handling of __code pointers,
2715 pointers to constant data are no longer assumed to point to __code
2716 space, removed invalid pointer types,
2717 (bitpatternFromVal): retrieve the PICs representation of an integer
2719 (genDataPointerSet): fixed assigning to po_immediate operands,
2720 (genGenPointerSet): implemented as library call,
2721 (genIfx): fixed incorrect condition,
2722 (genAddrOf): limit generic pointers' addresses to 2 bytes,
2723 provide GPOINTER tag according to destination's storage class,
2724 (genCast): added code to handle casting to generic pointers, added
2725 sign-/zero extension of the result
2726 (aop_isLitLike,op_isLitLike): fixed handling of immediates
2727 * src/pic/gen.h: added macros to access IRP bit in STATUS register
2728 * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2730 * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2731 address/register resides in the shared banks
2732 (emitSymbolToFile): improved to handle global and `pinned' symbols,
2733 put all variables into separate sections (have the linker arrange
2735 (picglue): put init code and interrupt handlers in separate sections
2736 * src/pic/main.c: added port specific options table, modified to PORT
2737 structure to make GPOINTERs 3 byte, added pic14_options
2738 (_pic14_do_link): private linking routine (update paths to libraries,
2739 add libsdcc.lib by default)
2740 * src/pic/main.h: declare pic14_options
2741 * src/pic/pcode.c: fixed instructions i/o relations,
2742 (RegCond): reverted to correct version,
2743 (newpCodeOpLit): truncate literals to 8 bit,
2744 (genericPrint): added debug output,
2745 (getRegFromInstruction): fixed for various operand types, simplified
2746 (BuildFlow): fixed broken handling of isntructions with labels
2747 (LinkFlow): start at last instruction in flow (skip trailing comments),
2748 pass the flow on to the next instruction after CALL
2749 (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2750 (insertPCodeInstruction): fixed inserting after a skip instruction,
2751 (DoBankSelect): fixed for labeled instructions
2752 (OptimizepBlock): honor --nopeep switch
2753 (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2754 * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2755 * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2756 (pCodeOptime2pCodes): allow disabling this optimization via
2757 --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2758 but is still buggy), started implementation of a dataflow based
2759 pCode optimization (CSE + dead code elimination)
2760 (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2761 * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2762 names are independant of the stack location and therefore portable across
2765 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2767 * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2768 (selectSpil): fixed bug 1337835 by not spilling bit variables
2769 * support/regression/tests/bug1337835.c: added test for this bug
2770 * src/mcs51/peeph.def: restart after rule 3.c,
2771 addded rules 263.x to optimize loading constants
2773 2005-10-26 Raphael Neider <rneider AT web.de>
2775 * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2776 * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2777 (genAssign): emit warning when casting literals to generic pointer
2778 type, also applies when taking the address of a fixed variable,
2779 (genCast): improved casting to generic pointers
2780 * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2781 extern variables, added verbose error message
2782 * device/include/pic16/{string.h,errno.h}: added #pragma library c
2784 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2786 * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2787 carry must be complemented too
2788 * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2789 could be emitted by genMinus
2790 * src/SDCCval.c (constVal): fixed bug 1305065
2792 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2794 * src/SDCCast.c (addCast): added promotion for bit variables
2795 (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2796 promotion casts + optimisation
2797 (optimizeGetWord): fix warning 'i' might be used uninitialized
2798 * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2799 * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2801 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2803 * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2804 all chars are promoted to int; promotion should be handled in SDCCast.c
2806 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2808 * device/lib/_strcmp.c: Fixed bug 1326457
2810 2005-10-11 Raphael Neider <rneider AT web.de>
2812 * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2813 * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2815 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2817 * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2818 * support/regression/tests/sfr16.c: added test for the sfr32 bug
2820 2005-10-04 Raphael Neider <rneider AT web.de>
2822 * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2823 device/lib/pic16/pics.all: added pic18f1320
2824 * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2826 2005-09-30 Raphael Neider <rneider AT web.de>
2828 * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2829 * src/pic16/devices.inc: NEW, provides device descriptions
2830 * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2832 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2834 * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2837 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2839 * doc/sdccman.lyx: updated Highest Order Bit documentation,
2840 documented Any Order Bit, Higher Order Byte and Higher Order Word
2841 * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2842 * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2843 (optimizeGetAbit): new, to get any bit, not only the high bit,
2844 (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2845 (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2846 (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2847 (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2848 RIGHT_OP: also try GETBYTE, GETWORD optimization,
2849 GETABIT, GETBYTE, GETWORD: decorate them,
2850 (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2851 (ast_print): added GETABIT, GETBYTE, GETWORD
2852 * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2853 * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2854 (geniCodeBinary): new generic binary icode,
2855 (ast2iCode): added GETABIT, GETBYTE, GETWORD
2856 * src/port.h: updated comment for PORT.hasExtBitOp
2857 * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2858 (genGetByte): new, to get a single byte,
2859 (genGetWord): new, to get a word from a long,
2860 (gen51Code): added GETABIT, GETBYTE, GETWORD
2861 * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2863 2005-09-23 Raphael Neider <rneider AT web.de>
2865 * configure.in, configure: have device/lib/pic configured
2866 * device/lib/Makefile.in: added model-pic14
2867 * device/lib/clean.mk: added pic/ to clean rule
2868 * device/lib/pic: added rudimentary pic14 library providing support
2869 functions for multiplication/division/generic pointer access
2870 * src/SDCCopt.c (convilong): mark support functions as extern
2871 for pic14 port as well
2872 * src/pic/gen.c (genMult): added assertions,
2873 (genpic14Code): emit warning on unhandled iCodes
2874 * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2875 * src/pic/pcode.c (pCodeOpCopy),
2876 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2877 pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2878 SFR_REGISTER}), made safe for future extensions
2879 * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2880 instructions even if preceeded by SKIP instructions (also remove
2881 them); removed unused code
2882 * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2883 prevents leaving parts of the structure uninitialized after copying
2885 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2887 * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2889 * support/regression/tests/addsub.c: added test for the bug
2891 2005-09-21 Raphael Neider <rneider AT web.de>
2893 * device/include/pic16/pic18f1220.h,
2894 device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2895 * device/lib/pic16/Makefile.rules: added missing opening paren
2896 * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2897 are provided in genutils.c,
2898 (genUminusFloat,genUminus,genCmpEq): added asserts on different
2899 operand/result sizes,
2900 (genCmp): assert on NULL pointers first, then check deref'ed values
2901 * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2904 2005-09-18 Raphael Neider <rneider AT web.de>
2906 * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2907 as these are now unused,
2908 (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2909 * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2910 local, avoids uninitialized pointer dereference on r->name
2911 * src/pic16/ralloc.c (newReg): fixed indentation
2913 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2915 * src/SDCCval.c (constVal): fixed bug 730366
2916 * support/Util/SDCCerr.c,
2917 * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2919 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2921 * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2923 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2925 * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2927 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2929 * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2930 (hex2dec): made hex_digit unsigned char, removed ascii dependance
2931 * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2932 (hex2dec): made hex_digit unsigned char, removed ascii dependance
2933 * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2934 * packihx/packihx.c (hexDigit): made c unsigned char
2935 * as/mcs51/lklibr.c (fndsym),
2936 * link/z80/lkgb.c (gb),
2937 * link/z80/lklibr.c (fndsym),
2938 * link/z80/lkrloc.c (relr),
2939 * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2940 * src/SDCC.lex (checkCurrFile, process_pragma),
2941 * src/SDCCglue.c (spacesToUnderscores),
2942 * src/SDCCmain.c (setParseWithComma, processFile),
2943 * src/asm.c (tvsprintf, printCLine),
2944 * src/avr/gen.c (emitcode, aopPut),
2945 * src/ds390/gen.c (emitcode),
2946 * src/hc08/gen.c (emitcode, emitinline),
2947 * src/mcs51/gen.c (emitcode, genInline),
2948 * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2950 * src/pic/ralloc.c (debugLog),
2951 * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2953 * src/pic16/ralloc.c (debugLog),
2954 * src/z80/main.c (_process_pragma):
2955 made all ctype.h function calls safe
2956 * src/SDCCopt.c: include math.h for fabs
2957 * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2958 and used them throughout the code to make ctype.h function calls safe
2959 * src/ds390/main.c (asmLineNodeFromLineNode),
2960 * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2961 * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2963 * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2964 (newpCodeAsmDir): made ctype.h function calls safe
2965 * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2966 pic16_emitcode): made lbp unsigned char*
2967 * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2968 (pic16_newpCodeAsmDir): made ctype.h function calls safe
2969 * src/xa51/gen.c (emitcode),
2970 * src/z80/gen.c (_emit2): made lbp unsigned char*
2971 * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2974 2005-09-05 Raphael Neider <rneider AT web.de>
2976 * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2977 access bank splitpoint
2979 2005-09-05 Raphael Neider <rneider AT web.de>
2981 * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2983 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2985 * .version: changed to version 2.5.3
2986 * doc/sdccman.lyx: changed version to 2.5.3,
2987 documented --codeseg and --constseg and pragma codeseg and constseg,
2988 documented bit parameters (reentrant) and bit returning
2989 * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2990 currFunc->recvSize, but is this ok for all ports?
2991 (ast2iCode): result of ~ on unsigned char must be cast to int for
2993 * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2994 function pointers in bit space
2995 * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2996 (processFuncArgs): call port.reg_parm() with reentrancy info
3004 * src/z80/main.c: port.reg_parm prototype extended with
3005 "bool reentrant" parameter
3006 * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3007 options.stackAuto for allocating bit register parameters
3008 * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3009 (genSend): set BitBankUsed if it is,
3010 (selectRegBank): factored out of genCall for use in genPcall,
3011 (genCall): removed redundant dtype assignmen, use selectRegBank,
3012 (genPcall): handle returning in Carry properly, save in F0 if needed,
3013 (genReceive): handle bit register parameters
3014 * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3015 (mcs51_assignRegisters): enable bit registers for all reentrant
3016 functions and don't set BitBankUsed unconditionally
3017 * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3018 * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3019 * support/regression/tests/funptrs.c: added tests for BOOL and for return
3021 2005-08-27 Borut Razem <borut.razem AT siol.net>
3023 * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3024 ppc-osx (Darwin) does not support -u option. It seems that it is
3025 supported only on Linux - GNU cp
3027 2005-08-25 Borut Razem <borut.razem AT siol.net>
3029 * sim/ucsim/gui.src/serio.src/Makefile.in,
3030 sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3031 sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3032 sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3033 install and strip, since the strip at /usr/ccs/bin should be used
3036 2005-08-24 Borut Razem <borut.razem AT siol.net>
3038 * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3040 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3042 * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3045 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3047 * as/mcs51/aslink.h: completed lkrloc.c prototypes
3048 * as/mcs51/lkmain.c (link_main): fixed warning
3049 * device/include/stdbool.h: ds390 has no advanced bit support yet
3050 * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3051 * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3052 * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3053 and updated their macros
3054 * src/SDCCval.c (constVal): updated comment for renamed b_long
3056 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3058 * as/mcs51/asdata.c: changed ctype['['] to BINOP
3059 * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3060 (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3061 (oprio): set priority for '['
3062 * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3064 * as/mcs51/asm.h: added defines R_BIT and S_BIT
3065 * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3066 * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3067 * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3068 added overlayable BIT_BANK area
3069 * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3070 (summary2): explain 'T' in legenda
3071 * as/mcs51/lkrloc.c: replaced old K&R style,
3072 (relr): added R_BIT processing,
3073 (errmsg): added "Bit-addressable relocation error",
3074 (adb_bit): added for converting from byte- to bit-addressable space,
3075 (adb_24_bit): added for converting from byte- to bit-addressable space
3076 * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3077 used in reentrant functions now even as return value
3078 * device/lib/_gptrput.c (_gptrput): removed obsolete code
3079 * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3080 (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3081 * src/SDCCglobl.h: added indicator BitBankUsed
3082 * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3083 the bit registers b0-b7
3084 * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3085 (geniCodeCast): fixed bug 1263853,
3086 (geniCodeLogicAndOr): put result in bool or char,
3087 (geniCodeReceive): added parameter func for accessing the return type,
3088 (geniCodeFunctionBody): pass func to geniCodeReceive
3089 * src/SDCCmain.c: added indicator BitBankUsed
3090 * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3091 * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3092 (checkSClass): don't put automatic bool/bit on stack,
3093 (checkFunction): removed check on function cannot return bit
3094 * src/SDCCsymt.h: added newBoolLink prototype
3095 * src/mcs51/gen.c (rb1regs): added bit registers,
3096 (movc): created for assigning to carry,
3097 (pushReg, popReg): created for pushing registers,
3098 (sameRegs): check both AOP_REG and AOP_CRY types,
3099 (aopOp): handle bit registers,
3100 (aopPut): optimization no self-assign,
3101 (saveRegisters): push reg->base (bits) only once for bit registers,
3103 (unsaveRegisters): pop reg->base only once and use popReg,
3104 (assignResultValue): added parameter func and return in carry for bits,
3105 (genIpush): optimization no reload in A if not changed,
3106 (genSend): bit parameters in reentrant functions are passed in bit
3107 registers by first assigning to bits in B, then save registers and
3109 (genCall): handle returning in Carry properly, save it in F0 if needed,
3110 (genPcall): updated assignResultValue call, this is not safe yet for bit
3111 returning function !!!
3112 (genFunction): don't generate equ's for bit registers and use pushReg,
3113 (genEndFunction): take care of bit returning functions and use popReg,
3114 (genRet): return bit in Carry,
3115 (genIfx): optimize bit registers and other directly addressable bits,
3116 (genReceive): updated assignResultValue call
3117 * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3118 (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3119 registers when using stack-auto
3120 * src/mcs51/ralloc.c (_G): added allBitregs,
3121 (regs8051): added the bit registers,
3122 (createStackSpil): use macro IS_BIT,
3123 (getRegBit): added to allocate a bit register, else spill,
3124 (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3125 (updateRegUsage): factored out to ease stepping while debugging,
3126 (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3127 also allocate bit registers,
3128 (fillGaps): handle bit registers,
3129 (findAllBitregs): added to create bit vector with all bit registers,
3130 (mcs51_allBitregs): returns this bit vector,
3131 (mcs51_assignRegisters): when using stack-auto use bit registers for
3132 passing parameters and creating local variables
3133 * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3135 2005-08-22 Borut Razem <borut.razem AT siol.net>
3137 * device/lib/Makefile.in: replaced find option -or with -o
3138 to make it run on solaris
3140 2005-08-22 Raphael Neider <rneider AT web.de>
3142 * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3143 fixes #1265442 (crash on Solaris)
3145 2005-08-20 Borut Razem <borut.razem AT siol.net>
3147 * configure, configure.in: added tests for libsocket and libnsl libraries,
3148 requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3149 from support/regression/Makefile.in
3150 * support/regression/Makefile.in: added
3151 * device/lib/pic16/Makefile.common.in: force make to use bash shell
3152 * sim/ucsim/libtool: regenerated on sparc-solaris
3153 * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3154 sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3155 sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3156 -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3157 sparc-solaris, which doesn't use GNU ld linker
3158 * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3159 * as/Makefile: find on sparc-solaris does not support -maxdepth option
3161 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3163 * src/mcs51/peeph.def: updated comments
3165 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3167 * device/lib/_gptrget.c,
3168 * device/lib/_gptrput.c: slightly shorter
3169 * doc/sdccman.lyx: incremented version
3170 * src/mcs51/peeph.def: moved peephole comments to the line of first
3171 change to better keep line correlation, reanimated 186.e
3172 * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3174 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3176 * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3177 David Saxton with quotes around file name.
3179 2005-08-15 Borut Razem <borut.razem AT siol.net>
3181 * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3182 support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3183 support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3184 make tests run on x86_64 platform
3186 2005-08-13 Raphael Neider <rneider AT web.de>
3188 * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3189 as it might be executed DURING a build (parallel make is wonderful)
3191 2005-08-13 Raphael Neider <rneider AT web.de>
3193 * device/lib/Makefile.in (port-specific-objects-pic16):
3194 revert to cp $(PORT)/bin/*.* $(PORTDIR)
3195 * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3197 * device/lib/pic16/Makefile.rules: build subdirs before creating
3198 the library, removed builddir rule, create $(builddir) early in
3199 recurse rule, use empty recurse rule for leaf directories
3200 * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3201 mkdir errors (race condition), removed duplicate suffix "hex"
3203 * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3204 * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3205 prevents mkdir -p from aborting on Alpha
3207 2005-08-12 Raphael Neider <rneider AT web.de>
3209 * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3210 db-statements in order to allow for arrays of pointers in code
3211 sections to be placed without interspersed 0-padding, fixes
3213 * (emitStatistics): fixed division by zero for pic18f1220
3214 * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3215 unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3216 * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3217 * (pic16_pCodeConstString): keep track of already emitted string
3218 literals to prevent "duplicate definitions of symbol _str_NR"
3219 * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3221 * device/lib/Makefile.in: ignore failing PIC16 library builds
3222 * device/lib/pic16/Makefile: do not build if gputils are missing
3223 * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3225 2005-08-10 Raphael Neider <rneider AT web.de>
3227 * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3230 2005-08-10 Raphael Neider <rneider AT web.de>
3232 * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3233 Rokas' patch to add the new fixed point type "__fixed16x16"
3234 * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3235 functions for __fixed16x16 arithmetics
3236 * device/lib/pic16: reimplemented the build system to support
3237 a separate build directory, better handling of libio (create
3238 the library in a separate subdir for each architecture) and
3239 easier configuration (centralized in Makefile.common)
3241 2005-08-07 Raphael Neider <rneider AT web.de>
3243 * src/pic16/gen.c (genrshTwo): fixed sign extension
3244 * src/pic16/device.c: added pic18f2320, 4220 and 4320
3245 * device/include/pic16/pic18f2220.h: changed some bit definitions,
3247 * device/include/pic16/pic18f4220.h: NEW, header for
3248 pic18f4220 and pic18f4320
3249 * device/include/pic16/pic18fregs.h: added new devices,
3250 embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3251 * device/include/pic16/signal.h: resolved name clashes
3252 on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3253 to also allow testing for interrupt enable bits, added
3254 comments on how to use the macros
3255 * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3256 * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3257 register definitions for the devices
3258 * device/lib/pic16/pics.all: added new devices
3259 * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3261 * device/lib/pic16/libc/stdlib/memfree: do not count
3262 the block header as free memory
3263 * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3264 simplified and added missing end-of-blocklist-marker
3265 (reported by Peter Onion, fixes #1252814)
3266 * (_mergeHeapBlock): fixed loop condition
3267 * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3268 len==0, restructured code
3269 * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3270 up a bit, reduced bitfield accesses, prevent endless loops
3271 in case of heap corruption
3272 * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3273 "unreferenced arguments/must return a value" warnings
3274 * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3275 replaced BAUDREG with SPBRG
3276 * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3277 device/lib/pic16/debug/gstack/gstack.c: replaced
3278 _naked, _asm, _endasm with __naked, __asm, __endasm
3280 2005-08-05 Raphael Neider <rneider AT web.de>
3282 * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3283 AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3285 2005-08-05 Borut Razem <borut.razem AT siol.net>
3287 * device/lib/Makefile.in: added missing ';'
3288 * configure: removed ^M characters
3290 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3292 * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3293 device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3296 2005-08-04 Borut Razem <borut.razem AT siol.net>
3298 * configure.in: pic16 libraries build 2nd try - enable running
3299 configure in device/lib/pic16
3300 * configure: regenerated from configure.in
3301 * device/lib/Makefile.in: create $(PORT)/bin directory
3303 2005-08-03 Raphael Neider <rneider AT web.de>
3305 * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3306 to get/set values via pointers
3307 * (genUnpackBits,genPackBits): changed detection of
3308 ptr->bitfield vs. sym.bitfield, fixed access via generic
3309 pointers, removed dead (wrong) code for multibyte bitfields
3310 * (genNearPointerGet, genGenPointerGet): removed useless code,
3311 fixed bitfield detection, fixes #1250594
3312 * (genNearPointerSet): removed useless code
3313 * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3314 and introduced macro pic16_emitpcode that conditionally emits
3315 the origin of the following pCode (useful for debugging SDCC)
3316 * src/pic16/pcode.c: changed (and disabled) some debug outputs
3317 * (createDefmap): fixed handling of LFSR for --optimize-df
3319 2005-08-02 Borut Razem <borut.razem AT siol.net>
3321 * device/lib/Makefile.in: pic16 libraries build enabled since
3322 gputils-0.13.2 are now localy installed at sourceforge's compile farm
3324 2005-08-02 Raphael Neider <rneider AT web.de>
3326 * src/pic16/gen.c (genPackBits): removed deprecated warning
3327 * (genGenPointerSet): fixed bitfield detection
3329 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3331 * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3333 2005-07-31 Raphael Neider <rneider AT web.de>
3335 * device/lib/pic16/libdev/pic18f458.c,
3336 device/include/pic16/pic18f458.h: added missing T0CONbits
3338 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3340 * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3342 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3344 * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3346 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3348 * device/include/mcs51/at89c51ed2.h: added.
3350 2005-07-23 Raphael Neider <rneider AT web.de>
3352 * src/pic/gen.h: added emitpcode macro for debugging
3353 * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3354 and replace by macro adding debug information on demand
3355 * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3356 * (gencjne): tried to fix; replaced with correct (slower) code
3357 * (gen{Unp,P}ackBits): fixed single bit access
3358 * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3359 * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3360 previous instruction
3361 * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3362 register has to be handled with care (forbidding movement
3363 of assignments/uses, removing assignments completely, ...)
3364 * (pCodeOptime2pCodes): make use of regIsSpecial
3365 * added lots of debugging output (commented out)
3366 * src/pic/rallloc.c (deassignLRs): prevent operand registers
3367 from being reused as result UNLESS it is known to work
3369 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3371 * support/Util/dbuf.h: include <stddef.h> for size_t
3372 * .version: changed to version 2.5.2
3374 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3376 * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3378 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3380 * src/hc08/gen.c (genMinus): fixed bug #1241835,
3381 (genModOneByte): removed needless psha/pula
3383 2005-07-22 Raphael Neider <rneider AT web.de>
3385 * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3386 have PIC14 handled like PIC16, fixes broken pic14 linker calls
3387 * src/pic/gen.c (resolveIfx): do not "invent" labels
3388 * (genSkipc): changed to positive logic
3389 * (genSkipCond): removed as no longer needed
3390 * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3392 * (genLeftShift): check operands are in different registers
3393 * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3394 INCF does not update CARRY...
3395 * src/pic/main.c: fixed _linkCmd
3396 * src/pic/pcode.c (unlinkpCode): added inactive code
3397 * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3398 alive (do not assign result and operand overlapping registers)
3400 2005-07-22 Raphael Neider <rneider AT web.de>
3402 * src/pic/device.c (dump_sfr): replaced register declaration with
3403 call to emitSymbolToFile() to avoid duplicate symbols
3404 * (assignRelocatableRegisters): do not declare external symbols
3405 * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3406 right (take size of type, not etype)
3407 * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3408 * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3409 * (packRegsForAccUse): disabled assignment of WREG as
3410 the result reg to prevent occurence of just fixed #1235003,
3412 * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3413 symbols (avoids duplicate symbols in .asm file)
3414 * (pic14emitRegularMap): use emitSymbolToFile()
3415 * src/pic/gen.c (aopOp): fixed spillLocation handling
3416 * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3417 * (genDataPointerSet): removed unneccessary variables/output
3419 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3421 * as/mcs51/lkarea.c: enlarged codemap for banked memory
3422 * device/lib/mcs51/crtbank.asm: added # to 0x0F
3424 2005-07-21 Raphael Neider <rneider AT web.de>
3426 * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3427 architecture cannot handle them efficiently, fixes bug #1235003
3428 * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3429 check for empty sets before using them (fixes bug #1232190)
3431 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3433 * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3434 (lnksect2): generate warnings for memory overlap
3435 * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3436 constseg to set the name of these segments so you can instruct the linker
3437 to place them in banks
3438 * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3439 * src/SDCCglobl.h: added MODEL_HUGE to enum,
3440 added code_seg and const_seg to options
3441 * src/SDCCglue.c (emitMaps): use options.const_seg,
3442 (createInterruptVect): put interrupt vectors in segment HOME,
3443 (glue): put HOME before static segment and put the main glue in HOME,
3444 (glue): use options.code_seg
3445 * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3446 * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3447 these segments so you can instruct the linker to place them in banks
3448 (linkEdit): use code_loc for HOME segment which should be the first
3449 segment in code memory now
3450 * src/SDCCmem.c: fixed more stuff like bug 1238386
3451 * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3452 (changePointer): don't change function pointers to code pointers for
3454 (compareType): added exceptional check for banked function pointers
3455 * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3456 * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3457 after static in code memory
3458 * src/mcs51/gen.c: added aopLiteralLong prototype,
3459 (aopForSym): use getSize for functions,
3460 (genCall): generate banked calls over one trampoline __sdcc_banked_call
3461 in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3462 -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3464 (genPcall): use call for literal function pointers and generate banked
3465 calls over the one trampoline so there's only one place for the user to
3466 modify according to his/hers hardware,
3467 (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3468 (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3469 * src/mcs51/main.c: added keyword banked,
3470 (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3471 * support/Util/SDCCerr.c,
3472 * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3473 needed for passing the bank and address to the trampoline
3474 * device/lib/mcs51/crtbank.asm: added for bankswitching
3475 * device/lib/mcs51/Makefile: added crtbank
3477 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3479 * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3480 for fields at offset 0 of a struct or union as reported
3481 on 2005-07-07 in the developer mailing list.
3483 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3485 * src/SDCCmem.c: fixed bug 1238386
3487 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3489 * src/mcs51/peeph.def: added labelrefcounting for peepholes
3490 (patch #1144962), added peephole 300, enabled 259.x
3491 * doc/sdccman.lyx: removed screenshot and provided link instead
3493 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3495 * doc/sdccman.lyx: added section about debugging with ddd
3496 * doc/figures/ddd_example.eps: screenshot of debugging session
3498 2005-07-04 Raphael Neider <rneider AT web.de>
3500 * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3501 like CODE pointers, fixes #1115683
3502 * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3503 call, fixes bugs #1232211, #1228110,
3504 fixed wrong casts to pCodeFlow from pCodeInstructions
3506 2005-07-04 Raphael Neider <rneider AT web.de>
3508 * src/pic/gen.c (popGet): changed assert to allow for
3510 * (popGetAddr): changed signature to provide
3511 an additional index, patched all call sites
3512 * (genCmpEq): handle literal-like operands correctly
3513 * (genAddrOf): added sanity checks on __code/__data pointers
3514 * (genAssign): added handling of symbols from __code section
3515 * (gencjne): do not generate code for comparisons whose result
3516 is neither stored nor used, fixes bug #1171114
3517 * (AccLsh, AccRsh): operate on operand instead of WREG
3518 * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3519 replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3521 * rewrote complete shift-by-literal logic, commented unused
3523 * (genConstPointerGet): get multiple bytes (if result size > 1),
3524 fixed handling of non-immediate addresses
3525 * (genPointerGet): handle CODE pointers like CONST pointers
3526 * (genpic14Code): insert C-SRC lines as Cource-pCodes
3527 * ({aop,op}_isLitLike): NEW, single place to decide whether an
3528 operand is to be treated as a literal or not
3529 * (mov2w,genPcall,genCmpEq),
3530 src/pic/genarith.c: use aop_isLitLike() to decide between
3531 literal/register contents
3532 * (addSign): added missing offset
3533 * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3534 only emit comment in debug-mode,
3535 use {aop,op}_isLitLike throughout the file
3536 * src/pic/glue.c: fix initializers for pointers (work in progress)
3537 * src/pic/pcode.c (get_op): honor index on _const symbols
3538 * ({reset,dump}pCodeStatistics): NEW, estimate code size
3539 * (dumppBlock): added pCode size estimation
3540 * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3541 check for IS_SYMOP before OP_SYMBOL'ing
3542 * fixed indentation, compacted switch-statements
3543 * (allocReg): find free register and allocate it instead of
3544 allocating new registers all the time
3545 * (deassignLRs): prevent POINTER_GET's from being assigned the same
3546 registers as its operands (necessary only for multibyte GETs)
3548 2005-07-01 Raphael Neider <rneider AT web.de>
3550 * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3551 debugging .asm-output macros FENTRY + FEXIT
3552 * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3554 * (emitpComment): NEW, printf to pCode
3555 * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3557 * (popGetAddr): NEW, variant of popGet to access an immediates
3558 high(er) bytes instead of the n'th byte of memory they reference,
3559 replaced popGet with popGetAddr where neccessary
3560 * (genDataPointerGet): reactivated and fixed implementation
3561 * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3563 * (genDataPointerSet): fixed multibyte assignments
3564 * (genpic14Code): fixed --i-code-in-asm handling
3565 * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3566 * (genPlus): fixed index-out-of-bounds error
3567 * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3568 * src/pic/ralloc.c: added debugging output macro FENTRY2
3569 * (spillThis): fixed indentation, enbraced for-body for clarity
3570 * (rematStr): commented out as now unused
3571 * (regTypeNum): commented out special spill case (overwrites
3573 * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3575 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3577 * doc/sdccman.lyx: documented sfr16/sfr32,
3578 added example for using storage class with function pointers
3579 * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3581 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3583 * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3584 * device/lib/_itoa.c,
3585 * device/lib/_ltoa.c: optimized codesize
3586 * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3587 but don't know how to suppress the double warning.
3588 * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3589 * support/Util/SDCCerr.c,
3590 * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3592 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3594 * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3595 fixed old K&R prototypes
3596 * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3597 * device/lib/_gptrget.c,
3598 * device/lib/_gptrgetc.c,
3599 * device/lib/_gptrput.c: changed versions for new memory indicator values,
3600 also new versions for small generic pointers and banked generic pointers
3601 * src/port.h: added const_name
3602 * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3603 * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3604 * src/SDCCcse.c (findPrevIc): check all associative operators
3605 * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3606 * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3607 * src/SDCCmem.c: updated comments,
3608 set far-space to 0 for pdata, results in optimized code
3609 * src/SDCCmem.h: added macro CONST_NAME
3610 * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3611 moving the info into the highest bits, see also gptrget/gptrput
3612 * src/src.dsp: added sdcc.ico to project files
3613 * src/avr/gen.c (genCast): fixed bug 0x%d
3614 * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3615 * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3616 relation between ptr_type and DCL_TYPE,
3617 (genCast): fixed bug 0x%d
3618 * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3619 (CODE)" for const_name
3620 * src/hc08/gen.c (genCast): fixed bug 0x%d
3621 * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3622 (hc08_port): added "CONST (CODE)" for const_name
3623 * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3624 (aopForRemat, adjustArithmeticResult): disconnected direct relation
3625 between ptr_type and DCL_TYPE,
3626 (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3627 operand* and took AOP() inside function so sfr-ness can be checked,
3628 (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3630 (genFunction, genEndFunction): optimized stack setup,
3631 (genMinus): optimized for literals with ending zeroes (in bytes),
3632 (genCast): fixed bug 0x%d
3633 * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3634 (mcs51_port): added "CONST (CODE)" for const_name
3635 * src/mcs51/peeph.def: made rule 226 more generic
3636 * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3637 * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3638 * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3639 * src/z80/main.c (z80_port): added NULL for const_name,
3640 (gbz80_port): added NULL for const_name
3641 * support/regression/tests/bug663539.c,
3642 * support/regression/tests/sfr16.c: new tests
3644 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3646 * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3648 2005-06-24 Raphael Neider <rneider AT web.de>
3650 * device/lib/pic16/libdev/pic18f[68][567]20.c:
3652 * device/include/pic16/signal.h: added USBIF
3655 2005-06-24 Raphael Neider <rneider AT web.de>
3657 * device/lib/pic16/libdev/pic18f2455.c,
3658 device/include/pic16/pic18f2455.h: NEW
3659 * device/include/pic16/pic18fregs.h,
3660 device/lib/pic16/pics.all,
3661 src/pic16/device.c: added 18f2455
3662 * device/lib/pic16/libdev/pic18f[68][567]20.c,
3663 device/include/pic16/{pic18f[68][567].h,usart.h}:
3664 replaced MULTIPLE_USARTS define with more relaible
3665 compatibility sfrs (for USART access)
3667 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3669 * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3670 and the output asm file line is printed on two lines.
3672 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3674 * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3675 BGT, BLE, BHI, and BLS instructions
3676 * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3678 * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3679 negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3681 * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3683 2005-06-15 Raphael Neider <rneider AT web.de>
3685 * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3686 * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3687 * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3688 fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3689 OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3691 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3693 * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3694 Marcel Telka in bug #1215704
3696 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3698 * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3699 located in shared memory bank.
3701 2005-05-31 Raphael Neider <rneider AT web.de>
3703 * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3704 "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3705 "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3707 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3709 * device/lib/_strncpy.c: fixed the fix
3711 2005-05-26 Raphael Neider <rneider AT web.de>
3713 * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3714 initializers with \0, bug #1208187
3715 * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3716 intializers with \0, bug #1208187
3718 2005-05-26 Raphael Neider <rneider AT web.de>
3720 * src/pic16/glue.c (pic16_printIvalChar): fixed string
3721 initializers with \0, bug #1208187
3722 * src/pic16/main.c (_process_pragma): added sanity checks
3723 for stack position and size, emit warnings when appropriate
3725 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3727 * device/lib/_strncpy.c: fixed not filling with \0
3729 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3731 * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3733 * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3734 compound_statement),
3736 * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3738 2005-05-24 Raphael Neider <rneider AT web.de>
3740 * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3742 2005-05-24 Raphael Neider <rneider AT web.de>
3744 * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3745 TRISE definitions, closes bug #1162453
3747 2005-05-22 Raphael Neider <rneider AT web.de>
3749 * src/pic16/main.c (_process_pragma): check for missing
3750 arguments to pragmas code and udata
3751 * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3752 consistency fixes to match other headers (thanks to Jim Paris)
3753 * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3755 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3757 * src/SDCCicode.c (isOperandEqual): fixed missing ;
3759 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3761 * support/regression/tests/bug1198642.c: new test
3762 * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3763 * src/SDCCcse.c (findPrevIc): added comment, please have a look
3764 * support/scripts/resource.h,
3765 * support/scripts/resource.rc,
3766 * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3767 * support/scripts/sdcc.ico: added 32x32 icon
3769 2005-05-18 Raphael Neider <rneider AT web.de>
3771 * device/lib/pic16/libdev/pic18f*.c,
3772 * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3773 keywords to "__sfr" and "__at (X)"
3774 * device/include/pic16/pic18fregs.h: added pic18f4520
3775 * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3776 #1203088 (MPLAB compatibility)
3778 2005-05-17 Raphael Neider <rneider AT web.de>
3780 * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3781 * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3782 * device/lib/pic16/pics.all: added new devices
3783 * src/pic16/device.c: added support for pic18f4520
3785 2005-05-16 Raphael Neider <rneider AT web.de>
3786 * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3787 * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3788 * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3789 convenience function for bit access
3791 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3793 * device/lib/printf_large.c: fixed bug 1193299
3794 * support/regression/tests/bug1057979.c: added test %3.3s
3796 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3798 * device/include/mcs51/8051.h,
3799 * device/include/mcs51/8052.h: made parseable with lint
3800 * device/include/mcs51/lint.h: added include file for (sp)lint
3801 * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3802 * doc/cdbfileformat.lyx,
3803 * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3805 2005-05-14 Raphael Neider <rneider AT web.de>
3807 * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3808 * device/lib/pic16/libc/stdlib/itoa.c (new)
3809 * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3810 * device/lib/pic16/libio/Makefile: exclude subdir according to
3811 ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3812 * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3813 * src/pic16/gen.c (genFunction): prevent annoying warning
3814 * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3816 * support/cpp2/cppmain.c (cpp_output_string): new
3817 * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3820 2005-05-13 Borut Razem <borut.razem AT siol.net>
3822 * src/SDCCmain.c (linkEdit): fixed bug 1195202
3824 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3826 * .version: changed to version 2.5.1; back to bleeding edge development
3828 2005-05-11 Borut Razem <borut.razem AT siol.net>
3830 * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3831 generate PDF version 1.3 documents
3833 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3835 * .version: changed to version 2.5.0
3837 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3839 * doc/sdccman.lyx: updated weblinks, index and smaller updates
3841 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3843 * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3844 --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3845 well as many smaller updates.
3846 * .version: changed to version 2.5.0-pre1
3848 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3850 * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3852 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3854 * support/regression/tests/bug1185672.c: added
3855 * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3857 * src/mcs51/gen.c (genCall): added comments, made it look safer
3858 * src/mcs51/gen.c (genEndFunction): simplified
3860 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3862 * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3864 2005-04-14 Borut Razem <borut.razem AT siol.net>
3866 * fixed bug 1045046 - SIGSEGV with really simple code?:
3867 src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3868 src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3870 2005-04-14 Borut Razem <borut.razem AT siol.net>
3872 * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3873 src/pic16/device.h: temporarily disabled experimental #inline pragma
3876 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3878 * device/include/z80/stdio.h,
3879 * device/include/z80/string.h: removed these highly incomplete files so
3880 SDCC can use the default ones in device/include/
3882 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3884 * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3886 * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3889 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3891 * device/include/malloc.h: removed redundant __reentrant prototypes
3892 * device/lib/_mullong.c: added working xstack variant in asm (C version
3893 doesn't pass regression tests)
3894 * device/lib/bpx.c: used __data and made bpx char for mcs51
3895 * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3896 (createFunction): fixed bug with xstackPtr
3897 * src/SDCCcse.c: corrected comments
3898 * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3899 (killDeadCode, eBBlockFromiCode): removed unused code
3900 * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3902 * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3903 assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3904 genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3905 (genModOneByte): fixed warning in MSVC
3906 * src/mcs51/main.c (): added comments
3907 * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3909 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3911 * src/SDCCmain.c (linkEdit): oops, changed one line too many
3913 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3915 * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3917 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3919 * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3920 characters arrays of larger size than the declared one.
3922 2005-04-10 Borut Razem <borut.razem AT siol.net>
3924 * src/pic/gen.c (genInline),
3925 src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3926 (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3927 (findNextInstruction), (findPrevInstruction),
3928 (findInstructionUsingLabel),
3929 src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3930 * src/pic/pcode.c (findLabel): added missing '\n'
3931 * src/src.dsp: added SDCCdwarf2.c to the project
3933 2005-04-09 Borut Razem <borut.razem AT siol.net>
3935 * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3937 2005-04-08 Raphael Neider <rneider AT web.de>
3939 * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3940 into the chain after a given one) and mergeDefmapSymbols (combine
3941 defmap entries for each symbol per pcode)
3942 * (createDefmap): have defmap entries merged in the end
3943 * (defmapReplaceSymRef): split defmap entries covering two accesses to
3944 a symbol before replacing one access type's symbol, merge symbols in
3945 the end (replacement symbol might already have an entry)
3946 * (assignValnums): keep reference to written WREG intact
3948 2005-04-08 Raphael Neider <rneider AT web.de>
3950 * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3953 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3955 * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3958 2005-04-07 Raphael Neider <rneider AT web.de>
3960 * device/include/pic16/usart.h: added compatibility defines for
3961 devices with more than one USART
3962 * device/include/pic16/pic18f[68][567]20.h: activated above defines
3964 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3966 * device/lib/Makefile.in: updated for port specific include
3968 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3970 * support/regression/ports/mcs51/spec.mk: added mcs51 include
3972 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3974 * device/include/8051.h,
3975 * device/include/8052.h,
3976 * device/include/at89S8252.h,
3977 * device/include/at89c55.h,
3978 * device/include/at89x051.h,
3979 * device/include/at89x51.h,
3980 * device/include/at89x52.h,
3981 * device/include/mcs51reg.h,
3982 * device/include/reg51.h,
3983 * device/include/reg764.h,
3984 * device/include/regc515c.h,
3985 * device/include/sab80515.h: (re)moved these 12 files
3986 * device/include/mcs51/8051.h,
3987 * device/include/mcs51/8052.h,
3988 * device/include/mcs51/at89S8252.h,
3989 * device/include/mcs51/at89c55.h,
3990 * device/include/mcs51/at89x051.h,
3991 * device/include/mcs51/at89x51.h,
3992 * device/include/mcs51/at89x52.h,
3993 * device/include/mcs51/mcs51reg.h,
3994 * device/include/mcs51/reg51.h,
3995 * device/include/mcs51/reg764.h,
3996 * device/include/mcs51/regc515c.h,
3997 * device/include/mcs51/sab80515.h: and added them here
3999 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4001 * device/include/stdarg.h: changed SDCC specific keywords to double
4003 * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4005 * device/include/hc08/mc68hc908gp32.h,
4006 * device/include/hc08/mc68hc908jb8.h,
4007 * device/include/hc08/mc68hc908jkjl.h,
4008 * device/include/hc08/mc68hc908qy.h: fixed comments
4009 * device/include/mcs51/README: updated
4010 * device/include/mcs51/c8051f120.h: added PINRSF
4011 * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4012 * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4013 amidst code. Also inline is not supported.
4015 2005-04-06 Raphael Neider <rneider AT web.de>
4017 * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4018 * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4019 callers stack/frame pointers
4021 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4023 * device/include/pic16/usart.h: added, missing in previous commit,
4024 * device/include/pic16/adc.h: fixed typo,
4025 * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4027 * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4029 * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4030 uninitialized because a bug appears with gplink
4031 * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4032 COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4033 complains for unrecognised option
4035 2005-04-05 Raphael Neider <rneider AT web.de>
4037 * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4038 structs as well (using memcpy)
4039 * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4040 on ISRs (GOTO has no label)
4041 * src/pic16/device.h: added OF_OPTIMIZE_DF
4042 * src/pic16/main.c: added compiler switch --optimize-df to enable the
4043 new data flow analysis/optimization
4044 * src/pic16/pcode.c: added (prototypes for and implementation of)
4045 dataflow analysis functions, fixed pCodeInstructions' inCond and
4046 outCond values, made RCALL a branch instruction
4047 * (pic16_unlinkpCode): keep C line if possible
4048 * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4049 C line moved if possible
4050 * (pic16_getRegFrompCodeOp): NEW, improved version of...
4051 * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4052 to use new pic16_getRegFrompCodeOp (works for more SFRs)
4053 * (pic16_BuildFlow): fixed skip instructions with label (did not start
4055 * (pic16_getJumptabpCode): NEW, needed in...
4056 * (LinkFlow): fixed handling of jumptables, calls and conditional
4058 * (pic16_InsertCommentAfter): NEW
4059 * (pic16_pCodeReplace): made verbose and flow preserving
4060 * (AnalyzeFlow): added call to data flow analysis
4061 * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4062 * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4063 * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4065 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4067 * src/SDCCast.c (decorateType): fixed bug #1105626
4069 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4071 * device/include/asm/pic16/features.h,
4072 * pic18f*.h headers,
4073 * device/include/pic16/adc.h,
4074 * device/include/pic16/delay.h,
4075 * device/include/pic16/i2c.h,
4076 * device/include/pic16/malloc.h,
4077 * device/include/pic16/stdio.h,
4078 * device/include/pic16/stdlib.h,
4079 * device/include/pic16/string.h,
4080 * device/lib/pic16/libc/stdio/printf_tiny.c,
4081 * device/lib/pic16/libc/stdio/printf_small.c,
4082 * device/lib/pic16/libc/stdio/strmgpsim.c,
4083 * device/lib/pic16/libc/stdio/strmmssp.c,
4084 * device/lib/pic16/libc/stdio/strmusart.c,
4085 * device/lib/pic16/libc/stdio/vfprintf.c,
4086 * device/lib/pic16/libc/stdlib/ltoa.c,
4087 * device/lib/pic16/libc/stdlib/putchar.c,
4088 * device/lib/pic16/libc/stdlib/x_ftoa.c,
4089 * device/lib/pic16/libc/stdlib/memchrpgm.c,
4090 * device/lib/pic16/libc/stdlib/memchrram.c,
4091 * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4092 * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4093 * device/lib/pic16/libio/adc/adcbusy.c,
4094 * device/lib/pic16/libio/adc/adcread.c,
4095 * device/lib/pic16/libio/adc/adcsetch.c,
4096 * device/lib/pic16/libio/usart/ubaud.c,
4097 * device/lib/pic16/libio/usart/ubusy.c,
4098 * device/lib/pic16/libio/usart/udrdy.c,
4099 * device/lib/pic16/libio/usart/uopen.c,
4100 * device/lib/pic16/libio/usart/uputc.c,
4101 * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4102 * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4103 * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4104 * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4105 * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4106 * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4107 * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4108 * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4109 specific keywords to double underlined form,
4110 * device/lib/pic16/libc/Makefile.rules,
4111 * device/lib/pic16/libsdcc/Makefile.rules,
4112 * device/lib/pic16/libm/Makefile,
4113 * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4114 to compile with C standard set in Makefile.common
4115 * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4116 rand.c and crc.c in compilation process,
4117 * device/lib/pic16/libsdcc/int/divuint.c,
4118 * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4119 `c' from signed to unsigned,
4120 * device/lib/pic16/startup/crt0.c,
4121 * device/lib/pic16/startup/crt0i.c,
4122 * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4123 keywords to double underlined form, bug fixes in _do_cinit function
4124 which prevented the correct initialization of the .idata segment,
4125 * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4126 core to enter a infinite loop
4127 * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4129 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4131 * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4133 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4135 * device/include/Makefile.in: add support for hc08 subdirectory
4136 * device/include/hc08/: new subdirectory
4137 * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4138 Lucas Loizaga, thanks!
4139 * device/include/hc08/mc68hc908qy.h,
4140 * device/include/hc08/mc68hc908gp32.h,
4141 * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4142 their own directory. Changed internal macro names to use the compiler
4143 reserved namespace. Changed SDCC specific keywords to double
4145 * device/include/math.h,
4146 * device/include/malloc.h,
4147 * device/include/stdarg.h,
4148 * device/include/stdbool.h
4149 * device/include/string.h,
4150 * device/include/tinibios.h,
4151 * device/include/ds400rom.h,
4152 * device/include/8051.h,
4153 * device/include/8052.h,
4154 * device/include/80c51xa.h,
4155 * device/include/at89c55.h,
4156 * device/include/at89S8252.h,
4157 * device/include/at89x51.h,
4158 * device/include/at89x52.h,
4159 * device/include/ds80c390.h,
4160 * device/include/reg764.h,
4161 * device/include/regc515c.h,
4162 * device/include/sab80515.h,
4163 * device/include/mcs51/c8051f000.h,
4164 * device/include/mcs51/c8051f018.h,
4165 * device/include/mcs51/c8051f020.h,
4166 * device/include/mcs51/c8051f040.h,
4167 * device/include/mcs51/c8051f060.h,
4168 * device/include/mcs51/c8051f120.h,
4169 * device/include/mcs51/c8051f300.h,
4170 * device/include/mcs51/c8051f310.h,
4171 * device/include/mcs51/c8051f320.h,
4172 * device/include/mcs51/c8051f330.h,
4173 * device/include/mcs51/c8051f350.h,
4174 * device/include/z180.h: Changed SDCC specific keywords to double
4177 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4179 * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4181 * (pic16_assignConfigWordValue): disable testing of configuration
4182 register value with config mask,
4183 * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4184 function with port->fun_prefix,
4185 * (genFunction): when generating a naked interrupt function never
4186 create an absolute segment placed in interrupt vector address, place
4187 the actual interrupt function at IVA instead, when an interrupt
4188 function is generated with unspecified interrupt then do not create
4189 the absolute section,
4190 * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4191 code for generating a call to generic pointer get/put function with
4192 a call to function pic16_callGenericPointer(),
4193 * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4194 the call to the generic pointer get/put functions with prefixing the
4195 function name with port->fun_prefix,
4196 * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4197 * src/pic16/main.c (_process_pragma): prefix function with
4199 * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4200 calling assembler, old 18Fxxxx macro is deprecated,
4201 * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4202 PC_ASMDIR in while condition,
4203 * (findInstruction): add PC_ASMDIR in while condition,
4204 * (buildCallTree): prefix main with port->fun_prefix,
4205 * (pic16_pCode2str): fixed bug that didn't emit the memory access
4206 identifier for variable with banked access in instructions BTFSS,
4207 BTFSC, BCF, BSF, BTG
4208 * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4209 * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4210 * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4211 perform optimization when enviroment variable NO_REG_OPT is set,
4212 * (insideLRBlock): NEW, return 1 if register is inside an
4213 INF_LOCALREGS block,
4214 * (RemoveRegFromLRBlock): remove a register that is completely
4215 eliminated by register optimization, but it is still left in local
4216 register store/restore in/from stack block,
4217 * (Remove2pcodes): after removing register, check to see if it
4218 should be removed from local register store/restore in/from stack
4220 * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4221 DUMMY_READ_VOLATILE,
4223 * device/include/pic16/adc.h: minor prototype modifications and
4225 * device/include/pic16/malloc.h: added GPL notice various
4227 * device/include/pic16/stdint.h: NEW, standard header for ints
4228 * device/include/pic16/delay.h: NEW, header for delay functions,
4229 delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4231 * device/include/pic16/signal.h: NEW, header providing helper macros
4232 for implementing signal handlers,
4233 * device/include/pic16/stdio.h: added prototypes for functions,
4234 printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4235 prototypes for stdin and stdout, added macro PUTCHAR to
4236 automatically implement putchar function prototype,
4237 * device/include/pic16/usart.h: modified and updated USART library,
4238 * device/lib/pic16/libio/adc/,
4239 * device/lib/pic16/libio/i2c: some modifications to improve library
4241 * device/lib/pic16/libc/stdio/: modifications for the new printf*
4242 family of functions,
4243 * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4244 family of functions and other sources,
4245 * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4246 of the PIC18Fxx[28] devices,
4247 * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4248 * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4249 * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4250 _do_cinit function, because the previous failed when local variables
4251 where not placed in the same memory bank,
4252 * device/lib/pic16/libsdcc/char/: various modifications to improve
4253 library performance,
4254 * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4255 information on the new functions of the c library and more...
4257 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4259 * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4261 2005-03-26 Raphael Neider <rneider AT web.de>
4263 * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4264 if condition == CARRY)
4265 * (genCmp): adapted to new genSkipc semantics
4266 * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4267 on rIfx (genCmp was broken)
4269 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4271 * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4272 * src/z80/main.c (_keywords[]),
4273 * src/SDCCglobal.h (struct options),
4275 * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4276 to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4277 std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4278 --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4279 always available in leading double underscore form. The C99 support is
4280 mostly missing, but it's a start.
4281 * support/regression/tests/bug-227710.c: fixed nonconforming use of
4282 reserved identifier "__data".
4284 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4286 * src/mcs51/peeph.def: fixed bug 1170013
4288 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4290 * device/include/mcs51reg.h: fixed bug 842007
4292 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4294 * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4297 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4299 * src/port.h (struct PORT),
4300 * src/avr/ralloc.c (avr_assignRegisters),
4302 * src/ds390/ralloc.c (ds390_assignRegisters),
4304 * src/hc08/ralloc.c (hc08_assignRegisters),
4306 * src/mcs51/ralloc.c (mcs51_assignRegisters),
4308 * src/pic/ralloc.c (pic14_assignRegisters),
4310 * src/pic16/ralloc.c (pic16_assignRegisters),
4312 * src/xa51/ralloc.c (xa51_assignRegisters),
4314 * src/z80/ralloc.c (z80_assignRegisters),
4316 * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4317 * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4319 * src/SDCCdflow.c (computeDataFlow),
4321 * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4323 * src/SDCCcflow.c (*),
4325 * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4326 * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4327 of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4328 immedDom() returning wrong block; probably fixes bug #1160833)
4330 2005-03-20 Borut Razem <borut.razem AT siol.net>
4332 * support/scripts/inc2h.pl: WIN32 port
4334 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4336 * device/lib/makefile.in: added abs.c and labs.c
4338 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4340 * device/include/stdint.h: added
4341 * device/lib/abs.c: added
4342 * device/lib/labs.c: added
4343 * device/include/stdlib.h: added abs() and labs() prototypes
4344 * device/lib/libsdcc.lib: added abs and labs
4345 * device/include/float.h,
4346 * device/lib/_fsmul.c,
4347 * device/lib/printf_fast.c,
4348 * device/lib/printf_tiny.c: updated comments
4350 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4352 * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4355 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4357 * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4358 * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4360 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4362 * device/lib/printf_large.c: removed inline assembly for portability and
4363 readability. Use printf_fast if speed or size are more important.
4364 * src/pic16/gen.c: removed conditions around use of DEBUGpc
4365 * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4367 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4369 * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4370 prevent compiler warning
4372 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4374 * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4375 moved to level 0 and declared as static. Also they are explicit
4376 placed in access bank. This was necessery because some times they
4377 might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4378 * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4379 optimizations. Currently only compare to unsigned char is implemented,
4380 * src/pic16/gen.c: added fReturnIdx array,
4381 * (struct resolvedIfx) is moved to gen.h and made public,
4382 * (struct _G): added sregsAlloc and sregsAllocSet fields,
4383 * (aopForSym): added an optimization to directly store in stack of
4384 the operand of a SEND iCode,
4385 * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4386 but as registers instead (AOP_REG) using the fReturnIdx array,
4387 * (pic16_freeAsmop): remove the freed register from the
4388 _G.sregsAlloc field,
4389 * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4390 a compare of 'WREG',
4391 * (pic16_popGetTempRegCond): changed function prototype, now
4392 function takes also a bitVector argument v which holds the current
4393 set of registers that are allocated for stack access by aopForSym,
4394 registers allocated in aopForSym for accessing stack symbols are not
4395 any more part of the functions usedRegs field,
4396 * (genCall): some times aopOp is called for a stack variable to be
4397 send, aopForSym might perform the push, if this is true make sure
4398 that genCall doesn't push the variable twice by testing _G.resDirect,
4399 * (genFunction): changed testing for unspecified interrupt number
4400 from 256 to INTNO_UNSPEC,
4401 * modified selection scheme of frame pointer generation. Previously
4402 if function did use local registers a frame pointer was generated,
4403 now a frame pointer is generated only if function has arguments
4404 (that need PLUSW2 register access), or has stack arguments, or the
4405 compiler is not instructed to omit the frame pointer,
4406 * (genEndFunction): before restoring local registers that were saved
4407 in the function preamble, also restore the registers that *might*
4408 have been allocated for stack access,
4409 * (genRet): removed some old comments,
4410 * (genCmp, the active (RN's) version): added a call to the
4411 pic16_genCmp_special function to perform the compare with a more
4412 robust and optimized way,
4413 * (genInline): a feature has been added in inline code generation,
4414 which allows a wildcard variable substitution when writing inline
4415 assembly. Code is incomplete and experimental therefore undocumented,
4416 * (genCast): changed order of aopOp for result and right to allow
4417 aopForSym to directly load the result if possible,
4418 * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4419 perform an optimized compare on some selected special occasions,
4420 * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4421 * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4422 generate an IVT any more,
4423 * src/pic16/main.c (pic16_optionsTable): added command line option
4425 * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4426 macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4428 * src/pic16/NOTES: Raphael Neider added in list of active developers
4429 * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4430 jumptable_end to prevent bug #,
4431 * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4432 inCond and outCond fields,
4433 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4434 * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4435 turn off register spilling,
4436 * (packRegsForOneUse): synced with other ports' versions although it
4437 is not used currently,
4438 * (pic16_packRegisters): added an optimization while reading
4439 structure bitfields, some registers may be saved (malloc code is
4440 decreased by 80 bytes)
4442 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4444 * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4445 left is a bitfield, if yes, then don't optimize assignment. Perhaps
4446 this can be optimized more?
4448 2005-03-10 Raphael Neider <rneider AT web.de>
4450 * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4451 genNearPointerGet): (hopefully) fixed access to bitfields via
4452 pointers (p->bitN = x; and x = p->bitN; failed)
4454 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4456 * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4458 2005-03-09 Raphael Neider <rneider AT web.de>
4460 * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4462 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4464 * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4465 * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4466 (regTypeNum): set REG_BIT type if necessary
4467 * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4468 * support/regression/tests/critical.c: check bug 1144613
4470 2005-03-02 Raphael Neider <rneider AT web.de>
4472 * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4474 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4476 * src/avr/ralloc.c (serialRegAssign),
4477 * src/ds390/ralloc.c (serialRegAssign),
4478 * src/hc08/ralloc.c (serialRegAssign),
4479 * src/mcs51/ralloc.c (serialRegAssign),
4480 * src/pic/ralloc.c (serialRegAssign),
4481 * src/pic16/ralloc.c (serialRegAssign),
4482 * src/xa51/ralloc.c (serialRegAssign),
4483 * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4485 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4487 * src/SDCCast.c (decorateType): fixed bug 1124787
4489 2005-02-20 Hubert Sack <sack AT digiplan.de>
4490 committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4492 * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4495 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4497 * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4498 to keep the correct label reference count when adding/removing references
4499 to labels. A peephole file using this is appended to patch #1144962.
4501 2005-02-14 Raphael Neider <rneider AT web.de>
4503 * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4504 * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4505 * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4506 retrievals of result operand's value on assignment
4508 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4510 * device/include/pic16/string.h: modified prototype for memccpy()
4511 to memccpy(void *, void *, char, size_t)
4512 * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4513 check whether to omit frame pointer or not,
4514 * (genInline): convert all occurences of "\n" to LF in inline
4515 assembler blocks, this helps formatting the inline text,
4516 * (pic16_loadFSR0): modified prototype,
4517 * (genNearPointerGet, genNearPointerSet): reorganization of code,
4518 removed some 8051 legacy code,
4519 * (genPackBits): enabled handling bitfields exceeding one byte in size,
4520 * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4521 before allocating temporary registers in functions,
4523 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4525 * support/regression/tests/bitvars.c: corrected the "fix"
4527 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4529 * support/regression/tests/bitvars.c,
4530 * support/regression/tests/bitwise.c,
4531 * support/regression/tests/rotate.c: "fixed" problems on Alpha
4533 2005-02-10 Raphael Neider <rneider AT web.de>
4535 * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4536 different size for Alpha
4537 * src/pic16/gen.c (genCmpEq) : improved compare with 0
4539 2005-02-09 Raphael Neider <rneider AT web.de>
4541 * src/SDCC.lex(doPragma) : save and restore warning options as well
4542 (also added new stack plus clone- and copyAndFreeSDCCERRG())
4543 * have #pragma less_pedantic set the errorlevel to WARNING
4545 * (cloneOptimize) : fixed wrong malloc's size
4546 * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4547 facilitate correct handling of #pragma (save|restore)
4549 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4551 * src/mcs51/gen.c: removed non-standard C nameless struct/union
4553 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4555 * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4557 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4559 * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4561 2005-02-02 Raphael Neider <rneider AT web.de>
4563 * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4564 * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4565 * (pic16_storeForReturn): fixed to allow returning function pointers
4566 * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4567 * device/include/pic16/{stddef.h,stdbool.h}: added
4569 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4571 * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4573 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4575 * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4576 * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4577 appeared to be required
4579 2005-01-31 Borut Razem <borut.razem AT siol.net>
4581 * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4582 include/mcs51 and include/z80 directories to the package
4584 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4586 * src/hc08/gen.c (genFunction): fixed bug #1112752
4588 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4590 * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4592 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4594 * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4596 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4598 * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4600 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4602 * device/include/c8051fxxx.h: removed these 6 files
4603 * device/include/mcs51/c8051fxxx.h: added these 11 new files
4605 2005-01-26 Raphael Neider <rneider AT web.de>
4607 * src/pic16/gen.c (genAssign): fixed assignment from longs
4608 in codespace (were cut to three bytes)
4609 * (genDummyRead): implemented (except for CODESPACE...),
4611 * src/pic16/glue.c (emitStatistics): beautified
4612 * device/lib/pic16/libm/Makefile: added include path
4614 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4616 * src/z80/gen.c (aopPut): fixed bug #1103902
4618 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4620 * device/lib/expf.c: fixed bug #1095792
4622 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4624 * device/lib/pic16/libm: added Math library sources
4626 2005-01-24 Raphael Neider <rneider AT web.de>
4628 * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4629 to enable upcast to pCodeOpReg2 (there is no type tag to
4630 differenciate the two and pic16_popGet2p cast into PCOR2)
4631 * src/pic16/main.c (_process_pragma): fixed another malloc bug
4632 (sizeof(sectNames) changed to sizeof(sectName))
4633 Both patches fix segfaults under MinGW.
4635 2005-01-23 Raphael Neider <rneider AT web.de>
4637 * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4638 Safe_[mc]?alloc()'ed variables
4639 * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4640 of (byte sized) temporaries (assign them to WREG for now)
4641 * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4642 (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4643 this might fix SIGSEGVs on MinGW...
4644 * src/SDCCopt.c (killDeadCode): restored original behaviour
4645 (volatile operands might get thrown away though)
4647 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4649 * src/pic16/gen.c: fixed bug #1106975,
4650 * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4651 pointer update, INTCON is saved, global interrupts are disabled and
4652 restored after updateing TOS.
4653 * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4654 * added function attribute 'shadowregs' to take advantage of shadow
4656 * added function attribute 'wparam' as an alternative to the wparam
4658 * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4659 user declares a non-ISR function as 'shadowregs',
4660 * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4662 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4664 * .version: bumped version number to 2.4.8
4665 * device/lib/pic16/pics.all: list of PIC18F devices supported by
4667 * device/lib/pic16/libio/i2c/: I2C module support library,
4668 * device/include/pic16/i2c.h: I2C support library header,
4669 * device/lib/pic16/libc/stdio/: standard IO support sources,
4670 * (printf_small.c): printf_small() source, supports float print,
4671 * (printf_tiny.c): printf_tiny() source, does not support floats,
4672 * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4673 enable global optimizations for entire library source, other
4674 Makefiles in the source tree are also modified to reflect this,
4675 * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4677 * doc/sdccman.lyx: updated to reflect new changes,
4678 * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4679 sym->onStack if-case,
4680 * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4681 sbit, idata, _idata, xdata, _xdata,
4682 * added pragma library, to link an external library, (see doc),
4683 * removed command line options, --pomit-config-words, --pomit-ivt,
4684 --pleave-reset-vector,
4685 * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4686 when calling assembler to reflect memory model used, also define
4687 macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4688 reflect stack model used,
4689 * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4690 on stack return NULL,
4692 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4694 * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4695 of the operands is volatile. Fixes #1020220
4697 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4699 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4700 * (OptimizeRegUsage): make sure that there is really no other flow where
4701 the first pCode is used
4703 2005-01-22 Raphael Neider <rneider AT web.de>
4705 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4706 to fix #1106967 (pCode->seq are not set up correctly)
4708 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4710 * src/SDCCglue.c (glue): make sure code area is declared before the
4711 static initialization area.
4713 2005-01-21 Raphael Neider <rneider AT web.de>
4715 * device/lib/Makefile.in: fixed test for pic16 install dir
4716 * device/lib/pic16/*/Makefile*: modified compile flags to enable
4718 * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4719 added --optimize-goto compiler switch and pragma wparam documentation
4720 * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4721 * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4722 and PRODH closing bug #1071770 (peephole optimizer)
4724 2005-01-19 Raphael Neider <rneider AT web.de>
4726 * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4727 cmdLine buffers (used when calling sdcpp...) are large enough
4728 (MAX_PATH=256 truncates arguments leading to system halts when
4730 * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4731 * (genUminus): rewritten to for efficiency
4732 * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4733 used uninitialized in some cases)
4734 * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4735 copy the third byte from the int -- now assumes 0x80 (data memory)
4736 * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4737 operands (genAddLit expects the iCode's operands to swapped as
4738 well), fixed leftover bytes (crashed for short left operands)
4739 * (pic16_genMinusDec): performance improvements, removed false
4741 * (pic16_genMinus): fixed to cope with differently sized operands
4742 * src/pic16/glue.c (pic16_glue): added new banksel optimization
4744 * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4745 * src/pic16/graph.[ch]: implementation of directed graphs, used by
4746 new banksel optimization
4747 * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4748 analysis for temporary registers (segfaults...)
4749 * src/pic16/peeph.def: added rule
4751 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4753 * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4754 which converts a float number to its ASCII representation
4755 * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4756 functions to convert the fractional and integer part of a float to ASCII,
4757 * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4758 realloc.c): added _MALLOC_SPEC to explicit place variables in data
4760 * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4762 * device/include/pic16/adc.h: added GPL info,
4763 * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4764 a pCodeOp as tested operand,
4765 * (genNearPointerGet): optimized bit testing, does not use
4766 intermediate register for bit value, test directly instead with
4767 BTFSS, BTFSC, works only for single bits,
4768 * (genpic16Code): dump the name of the iCode in the asm,
4769 * src/pic16/ralloc.c (decodeOp): removed static declaration and
4770 renamed to pic16_decodeOp,
4771 * (serialRegAssign): do not allocate a temporary register for iCode
4772 sequences that test a single bit for 1/0
4774 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4776 * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4777 pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4778 access stack and frame pointers. They are initially assigned to
4779 point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4780 accessing SFRs. Updated all occurences of modification of stack or
4781 frame pointer in gen.c and pcode.c,
4782 * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4783 assigning of a literal value to pointers,
4784 * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4785 flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4788 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4790 * doc/sdccman.lyx: update documentation about stack pragma, added
4791 some info for stack memory models
4793 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4795 * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4797 2005-01-08 Raphael Neider <rneider AT web.de>
4799 * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4800 udata sections to fix bug #1097823
4802 2005-01-05 Raphael Neider <rneider AT web.de>
4804 * src/pic16/gen.c (genGenericShift): added handling of differently
4805 sized left operand and result
4807 2005-01-04 Raphael Neider <rneider AT web.de>
4809 * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4810 * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4811 to hold the condition bit)
4812 * added new version of genCmp (old code available via #define)
4813 * added new version of genShiftLeft/genShiftRight in a generic
4814 way, now supports shifting by negative values
4815 * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4816 shiftCount (expected by genGenericShift)
4817 * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4818 * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4820 * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4821 is an invalid literal too...)
4823 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4825 * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4826 from Raphael Neider,
4827 * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4828 for 8-bit literals. This fixes some literal operands which are sign
4829 extended to 16-bits ints when instruction needs only 8-bits.
4831 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4833 * device/lib/logf.c: added mcs51 assembly version
4834 * device/lib/expf.c: added mcs51 assembly version
4835 * device/lib/_logexpf.c: new shared asm code for expf and logf
4836 * device/include/math.h: add defines for assembly math library
4837 * device/lib/Makefile.in: build new _logexpf.c
4838 * device/lib/libfloat.lib: use new _logexpf.c
4840 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4843 * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4844 device types which have less than 0x7f registers.
4846 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4848 * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4850 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4852 * device/lib/printf_fast.c: only build on supported arch.
4853 * device/lib/printf_tiny.c: only build on supported arch.
4854 * device/lib/printf_fast_f.c: only build if asm float lib
4855 * device/lib/_fsget1arg.c: only build if asm float lib
4856 * device/lib/_fsget2args.c: only build if asm float lib
4857 * device/lib/_fsnormalize.c: only build if asm float lib
4858 * device/lib/_fsreturnval.c: only build if asm float lib
4859 * device/lib/_fsrshift.c: only build if asm float lib
4860 * device/lib/_fsswapargs.c: only build if asm float lib
4861 * device/include/stdio.h: don't provide print_fast,
4862 print_fast_f, print_tiny prototypes if --xstack used
4864 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4866 * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4867 * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4870 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4872 * device/lib/printf_fast_f.c: same as printf_fast, but
4873 with floating point enabled
4874 * device/lib/printf_fast.c: minor tweaks
4875 * device/include/stdio.h: add printf_fast_f
4877 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4879 * src/SDCCmain.c: make --float-reent default for mcs51
4880 * device/lib/_fsadd.c: added mcs51 assembly version
4881 * device/lib/_fssub.c: added mcs51 assembly version
4882 * device/lib/_fsmul.c: added mcs51 assembly version
4883 * device/lib/_fsdiv.c: added mcs51 assembly version
4884 * device/lib/_fseq.c: added mcs51 assembly version
4885 * device/lib/_fsneq.c: added mcs51 assembly version
4886 * device/lib/_fsgt.c: added mcs51 assembly version
4887 * device/lib/_fslt.c: added mcs51 assembly version
4888 * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4889 * device/lib/Makefile.in: add _fscmp to build
4890 * device/lib/libfloat.lib: add _fscmp to build
4892 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4894 * device/lib/_fs2slong.c: added mcs51 assembly version
4895 * device/lib/_fs2sint.c: added mcs51 assembly version
4896 * device/lib/_fs2schar.c: added mcs51 assembly version
4897 * device/lib/_fs2ulong.c: added mcs51 assembly version
4898 * device/lib/_fs2uint.c: added mcs51 assembly version
4899 * device/lib/_fs2uchar.c: added mcs51 assembly version
4900 * device/lib/_slong2fs.c: added mcs51 assembly version
4901 * device/lib/_sint2fs.c: added mcs51 assembly version
4902 * device/lib/_schar2fs.c: added mcs51 assembly version
4903 * device/lib/_ulong2fs.c: added mcs51 assembly version
4904 * device/lib/_uint2fs.c: added mcs51 assembly version
4905 * device/lib/_uchar2fs.c: added mcs51 assembly version
4906 * device/include/float.h: added #define to select asm vs c
4908 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4910 * device/lib/printf_fast.c: improvements to float output
4911 * device/include/float.h: add defines for assembly float library
4912 * device/lib/_fsget1arg.c: receive 1 float arg
4913 * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4914 * device/lib/_fsnormalize.c: normalize a float
4915 * device/lib/_fsreturnval.c: return float, various helper routines
4916 * device/lib/_fsrshift.c: right shift a float's mantissa
4917 * device/lib/_fsswapargs.c: swap 2 floats
4918 * device/lib/Makefile.in: build these 6 new files for mcs51
4919 * device/lib/libfloat.lib: add these 6 files to the library
4921 2004-12-26 Borut Razem <borut.razem AT siol.net>
4923 * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4926 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4928 * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4929 and fully reentrant and register bank neutral.
4930 * device/lib/printf_fast.c: added float (not enabled by default),
4931 added compact/slower integer (also not enabled by default),
4932 improved size/speed of fast integer code, other minor changes
4933 * device/include/stdio.h, device/lib/Makefile.in,
4934 device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4936 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4938 * src/pic16/pcode.c: declaring variables other than at the start of a
4939 block is not supported in C by VC6.
4941 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4943 * applied a previous patch from Raphael Neider that wasn't included
4944 in the previous commits, which fixes infinite loops within jumptable
4946 * made some fixes that previous patches introduced
4948 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4950 * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4951 that fixes an issue with AOP_PCODE asmop's offset,
4952 * (pic16_popCopyReg): update instance field too,
4953 * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4954 function of pic port,
4955 * (genCmp, genAnd, genAssign),
4956 * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4958 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4960 * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4961 variables initial values to idata section,
4962 * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4963 variables in some functions. This utilizes parmBytes field of iCode
4964 structure to hold the offset of the variable in stack. (might be
4965 able to use the stack field too?)
4966 * applied patch from Raphael Neider # ### , # ###
4967 * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4968 variable initial values in idata section,
4969 * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4970 for static variables with initial value
4971 * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4972 applied fix in while loop from Raphael Neider.
4974 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4976 * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4977 * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4978 * src/ds390/ralloc.c (serialRegAssign): spill bits
4979 * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4980 * support/Util/SDCCerr.c,
4981 * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4982 * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4983 * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4985 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4987 * device/include/sdcc-lib.h: inserted LGPL, added includes
4988 asm/ds390/features.h and asm/mcs51/features.h
4989 * device/include/asm/default/features.h,
4990 * device/include/asm/gbz80/features.h,
4991 * device/include/asm/z80/features.h: added empty _AUTOMEM
4993 * device/include/asm/ds390/features.h,
4994 * device/include/asm/mcs51/features.h: added files with defines for
4995 _AUTOMEM and _STATMEM indicating automatic and static storage class
4996 * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4997 * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4998 * src/SDCCicode.c (geniCodeCast),
4999 * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5000 * src/SDCCloop.c (loopInduction): removed unused variable lr
5001 * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5002 to convertToFcall to include char modulo (RFE 1065037), added check
5003 if left operand is unsigned and use abs of literal value
5004 * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5005 as it doesn't work after conversion from peephole.def to peephole.rul
5006 * src/mcs51/gen.c (toBoolean): added check for size,
5007 (genModOneByte): optimized code for signed char modulo a literal
5008 power of 2 (thanks to Hubert Sack),
5009 (genRRC): removed unnecessary "clr c",
5010 (genRLC): replaced "add a,acc" with cheaper "rlc a"
5011 * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5013 swapped rules 256.c and 256.d,
5014 extended 256.d by using new multiple checks (thanks Erik),
5015 added rules 256.e and 256.f,
5016 updated rule 261.a and 261.b to new generated code
5017 * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5019 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5021 * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5022 induction related bugs, including first part of bug #1074377
5024 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5026 * applied patch from bug-report #1076292,
5027 * applied patches for genAnd and Goto-optimizations for Raphael
5029 * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5030 dump a less iCode information,
5031 * src/pic16/device.h (pic16_options_t): added field debgen,
5032 * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5033 DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5034 * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5036 * (various functions): added macros FENTRY and FENTRY2 to functions,
5037 to emit function prologue,
5038 * (various functions): fixed indentation,
5039 * (genNearPointerGet): fixed loading of FSR0,
5040 * (genPackBits): applied patch from Raphael Neider to fix updating
5041 of FSR0 and touching only the modified bits,
5042 * src/pic16/genarith.c (various functions): added macros FENTRY to
5043 emit function prologue in comments,
5044 * src/pic16/pcode.h: added functions debugf2, debugf3,
5045 * src/pic16/ralloc.c: partial fix for packForPush caused
5048 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5050 * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5051 <stsp AT users.sourceforge.net> with reversed byte order
5052 * support/regression/tests/rotate.c: added (ds390 skips some tests)
5054 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5056 * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5058 * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5059 * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5061 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5063 * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5065 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5067 * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5069 (setFromConditionArgs): friendly operand parser for peephole rules,
5070 (operandBaseName, operandsNotRelated): new peephole condition
5071 "operandsNotRelated" -- similar to "operandsNotSame", but takes
5072 architecture specific register naming into account, handles n-way
5073 comparisons, and supports quoted literals
5074 * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5076 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5078 * src/mcs51/peeph.def: fixed bug #1076940
5080 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5082 * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5084 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5086 Adding support for replacing ljmps with sjmps in jumptables
5087 generated for switch statements. For now you need to set the
5088 environment variable SDCC_SJMP_JUMPTABLE to enable this.
5089 Now 4 algorithms for mcs51 jumptable generation are used:
5090 ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5091 addresses loaded pc-relative for up to 112 cases and stack-pushing
5092 target addresses loaded with offset from dptr for up to 256 cases.
5094 * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5095 * src/mcs51/main.c: adapted constants for switch table generation
5096 * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5098 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5100 * device/lib/printf_large.c (_print_format): fixed bug 1073386
5101 * support/regression/tests/bug1057979.c: added test for bug 1073386
5103 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5105 * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5108 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5110 * src/pic16/device.h,
5111 * src/pic16/genarith.c,
5114 * src/pic16/pcode.c: applied patches #1068154 and #1070213
5116 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5118 Large cummulative patch for pic16 port.
5119 * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5120 to call when a stack overflow occurs,
5121 * (malloc.h): added CVS Id tag,
5122 * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5124 * added libc directory. The current version of LibC contains string
5125 functions, ctype functions and macros and some functions of the
5126 stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5127 be extensively tested in the future. Standard disclaimer here.
5128 Library is not automatically build yet. But one can build it by
5129 invoking 'make' inside the libc directory.
5130 * added ADC library under libio. Preliminary version yet.
5132 * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5133 * src/pic16/gen.c (aopForRemat): asmop size is filled by
5134 aopForRemat() now and not by pic16_aopOp(),
5135 * (pic16_popGetTempReg): removed warning messgae when allocating
5136 temporary registers, its a buggy feature and will be removed,
5137 * (pic16_popGet): set register instance field in AOP_CRY,
5138 * (pic16_outBitC): fixed for results in size greater than 1,
5139 * (genUminusFloat): fixed for pic16, ported code from mcs51,
5140 * (pic16_storeForReturn): optimized return of 0,
5141 * (genCmp): experimental code for new genCmp which uses PIC18's
5142 special compare&skip instructions. Initial tests fail some times
5143 with variables grater than 1 byte in size, so new code is disabled,
5144 * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5146 * (genCast): began a fix to optimize the casting of a bit to another
5147 bit, now assigning a bitfield to another bitfield will fail, sorry,
5148 * src/pic16/main.c: disabled the use of lr-support feature,
5149 * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5150 * added some function prototypes, added function _debugf prototype,
5151 * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5152 bits with offset (case PO_GPR_BIT),
5153 * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5155 * (isBankInstruction): modified to return 0 for no banking instruction,
5156 and 1 for banking instruction,
5157 * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5158 caused stop processing pCodes after a inline assembly block,
5159 * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5160 * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5161 registers when it shouldn't,
5162 * src/pic16/ralloc.c (allocReg): add preliminary support for
5163 supporting a limited set of temporary registers,
5165 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5167 * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5168 genDataPointerSet): ensure assignments always copy in MSB to LSB
5170 (loadRegFromAop): recognize CLRH optimization,
5171 (genFunction): optimize RECEIVE iCodes in reentrant functions
5173 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5175 * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5176 --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5178 * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5179 * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5180 contiguous with data
5182 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5184 * device/lib/_gptrget.c (_gptrget),
5185 * device/lib/_gptrgetc.c (_gptrgetc),
5186 * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5187 instead of sjmp to ret
5188 * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5189 by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5191 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5193 * .version: bumped version to 2.4.7
5194 * device/lib/_gptrget.c (_gptrget): is now _naked
5195 * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5196 * device/lib/_gptrput.c (_gptrput): is now _naked
5197 * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5198 (createFunction): fixed xstack
5199 * src/SDCCglue.c (emitMaps): set allocation required for bit area
5200 * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5202 (geniCodeCritical): store original interrupt state in an iTemp bit
5203 var unless stack-auto
5204 * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5205 * src/SDCCmain.c (setIncludePath): added include/target to search path
5206 * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5207 * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5209 (processFuncArgs): put bit vars in bit area
5210 * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5211 unsaveRBank): fixed xstack,
5212 (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5213 (genFunction, genEndFunction): fixed xstack,
5214 (genAssign): optimization don't walk backwards through mem
5215 * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5216 * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5217 * support/regression/Makefile: also make library (for stack-auto) when
5218 making "all" and added "test-mcs51-xstack-auto"
5219 * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5220 * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5221 * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5222 * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5223 * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5224 make-library by MAKE_LIBRARY
5225 * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5226 regression tests for xstack
5227 * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5228 * support/regression/tests/critical.c: test for critical on mcs51
5230 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5232 * support/regression/ports/ucz80/spec.mk: use include and lib files from
5233 built version of sdcc instead of installed version
5235 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5237 * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5238 * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5240 * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5241 * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5242 WARNING: remove device/lib/build/z80/printf.o by hand when
5243 updating from previous build!
5244 * device/lib/z80/printf.c: updated comment
5245 * support/regression/tests/bug1057979.c: test all ports now
5246 * support/regression/tests/bug1065458.c: file added
5248 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5250 * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5251 *_start and *_end symbols for static functions
5253 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5255 * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5256 and search crt0.o in all library paths,
5257 (setIncludePath): proper handling of --nostdinc,
5258 (setLibPath): proper handling of --nostdlib
5259 * support/regression/Makefile,
5260 * support/regression/ports/ds390/spec.mk,
5261 * support/regression/ports/gbz80/spec.mk,
5262 * support/regression/ports/hc08/spec.mk,
5263 * support/regression/ports/mcs51/spec.mk,
5264 * support/regression/ports/mcs51-large/spec.mk,
5265 * support/regression/ports/mcs51-stack-auto/spec.mk,
5266 * support/regression/ports/z80/spec.mk: use include and lib files from
5267 built version of sdcc instead of installed version
5268 * doc/sdccman.lyx: fixed typo in --nostdinc
5270 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5275 * src/pic/gen.c : added support to generate code for struct bit fields.
5277 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5279 * as/xa51/xa_version.h,
5280 * device/include/errno.h,
5281 * device/include/regc515c.h,
5282 * device/lib/_itoa.c,
5283 * device/lib/_ltoa.c,
5284 * device/lib/ser_ir_cts_rts.c,
5285 * sim/ucsim/xa.src/glob.cc,
5286 * sim/ucsim/xa.src/inst_gen.cc,
5287 * sim/ucsim/xa.src/xa_bit.cc,
5288 * sim/ucsim/xa.src/xa_sfr.cc,
5289 * sim/ucsim/z80.src/inst_dd.cc,
5290 * sim/ucsim/z80.src/inst_fdcb.cc,
5291 * support/scripts/keil2sdcc.pl,
5292 * src/pic16/pic16.dsp,
5293 * src/pic16/pic16a.dsp: corrected cvs line endings
5294 * device/lib/printf_large.c: fixed bug 1057979
5295 * src/pic16/gen.c: fixed non-C standard code
5296 * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5297 * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5298 * support/regression/ports/mcs51/support.c: reload T1 asap
5299 * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5300 pdata use and clear idata startup behaviour
5301 * support/regression/tests/bug1057979.c: added
5303 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5305 * device/examples/ds390/ow390/ad26.h,
5306 * device/examples/ds390/ow390/cnt1d.h,
5307 * device/examples/ds390/ow390/crcutil.c,
5308 * device/examples/ds390/ow390/ownet.h,
5309 * device/examples/ds390/ow390/owsesu.c,
5310 * device/examples/ds390/ow390/swt12.h,
5311 * device/examples/ds390/ow390/swtoper.c,
5312 * device/examples/ds390/ow390/temp10.h,
5313 * device/examples/ds390/ow390/thermodl.c,
5314 * device/examples/ds390/tinitalk/tinitalk.dsp,
5315 * device/examples/ds390/tinitalk/tinitalk.dsw,
5316 * device/examples/mcs51/clock/hw.h,
5317 * device/examples/mcs51/simple2/go.bat,
5318 * device/examples/serialcomm/windows/serial.h,
5319 * device/examples/xa51/dummy.c,
5320 * device/examples/xa51/hello.c,
5321 * device/include/80c51xa.h,
5322 * device/include/at89x051.h: corrected cvs line endings
5324 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5326 * src/pic16/main.c (options): added command line --gstack, to trace
5327 stack over/under flows,
5328 * added pragma 'wparam' to allow passing first byte of function
5329 parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5330 * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5331 call to __gstack_test function and sets up the symbol as extern,
5332 * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5333 * popaop): added call to pic16_testStackOverflow,
5334 * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5336 * (genCall, genPcall): now all parameters are passed via stack
5337 except in functions that are pass to wparam pragma in which WREG is
5339 * (genPcall): REENTRANT flag is checked to see if variable prototype
5340 contains reentrant keyword, don't call a non-reentrant function, via
5341 a reentrant function pointer or vice versa, functions are never
5343 * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5345 * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5346 SIGSEGV when accessing a NULL register stucture,
5347 * (pic16_printGPointerType): modified to handle UPPER modifier for
5348 function initializers, changed prototype of function to simpler one,
5349 * (pic16_printIvalFuncPtr): check to see if function is already
5350 added in externs list,
5351 * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5352 optimized a move from W to SFR with a move to the same register
5354 * device/lib/pic16/debug: NEW directory, contains debug features
5355 which are enabled when linking with libdebug.lib, currently command
5356 line option --gstack enables stack pointer tracing for over/under
5357 flow, corresponding sources are in debug/gstack
5359 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5361 * doc/sdccman.lyx: updated SDCC version,
5362 * (PIC16 port): update list of command line options,
5363 * src/pic16/device.h (structure pic16_options_t): added field gstack
5364 to enable stack overflow tracing on push/pops,
5365 * src/pic16/device.c (statistics structure): added statistics
5367 * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5368 pic16_dump_int_registers): increase statistics counters for each
5369 * variable which is encountered
5370 * (pic16_dump_usection): emit each .udata variable to its own udata
5372 * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5373 when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5374 parameters via stack, otherwise use old scheme,
5375 * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5376 assembler output file,
5377 * src/pic16/main.c: added command line options --gstack to enable
5378 push/pop tracing for stack overflow,
5379 * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5380 instructions): added size of each instruction,
5381 * (pic16_countInstruction): estimate size of instructions in
5382 the_pFile list, inline assembly blocks are not counted,
5383 * (pic16_FixRegisterBanking): trace previous register usage, when
5384 banksel optimizations is greater than 0, don't emit a redudant
5387 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5389 * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5390 * src/pic16/ralloc.c : applied same fix for pic16.
5391 * src/pic/gen.c : tidied it up a little.
5393 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5395 * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5396 thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5398 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5400 * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5402 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5404 * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5405 non-reentrant function __modsint in the interrupt function (thus
5406 corrupting math operations during serial I/O)
5407 * device/lib/ser_ir.c: as above, changed buffersize
5408 * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5410 * doc/Makefile: added option -t for rsync
5412 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5414 * src/SDCCast.h (struct ast),
5415 * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5417 2004-10-20 Borut Razem <borut.razem AT siol.net>
5419 * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5422 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5424 * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5426 * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5427 support functions to replace long sequences of MOVFF's from access
5428 bank registers to stack and vice versa,
5429 * src/pic16/device.h: added new field opt_flags, where optimization
5430 flags can be set to enable certain features,
5431 * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5432 * pBlock, (genFunction, genEndFunction): surroung loop for
5433 saving/loading used registers in stack with PC_INFO pCodes,
5434 INF_LREGS. Code in between can then be optimized by pCode optimizer
5435 to support function calls,
5436 * (genDataPointerSet): fixed bug which loaded float fields in
5437 structures with corrupt data,
5438 * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5439 in a standard way debug info on stderr. Feature used for developing
5441 * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5442 obsolete chunks of code,
5443 * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5444 * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5445 * pic16/src/pcode.c (pic16_newpCodeInfo,
5446 * (pic16_newpCodeOpLocalRegs),
5447 * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5449 * (pic16_pCodeConstString): printing of the initial value of a
5450 symbol as a comment is inhibited since parsing was already done by
5451 copyStr and output is corrupt,
5452 * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5454 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5456 * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5458 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5460 * as/mcs51/lkarea.c: removed old K&R style,
5461 (lnksect): changed check on boundary error,
5462 (lnksect2): changed check on boundary error,
5463 (lnksect2): extend XSTK to end of page if size = 1
5464 * as/mcs51/lkmain.c: removed old K&R style,
5465 (Areas51): create l_IRAM symbol
5466 * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5467 * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5468 model-mcs51-stack-auto, added model-mcs51-xstack-auto
5469 * device/lib/_mullong.c: added version to be compiled with xstack
5470 * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5471 * device/lib/mcs51/crtxclear.asm: clear pdata as well
5472 * device/lib/mcs51/crtxstack.asm: fixed comment
5473 * src/SDCCglue.c: maxInterrupts defaults to 0,
5474 (emitMaps): added pdata,
5475 (createInterruptVect): (re)moved default,
5476 (glue): added pdata,
5477 (glue): moved __start__xstack to XSTK with default size 1
5478 * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5479 and options.float_rent when options.stackAuto is set,
5480 (linkEdit): only write XDATA_NAME if provided on command line
5482 * src/SDCCmem.c: added pdata
5483 * src/port.h: added pdata_name to PORT
5484 * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5485 (saveRegisters, unsaveRegisters): removed usage of B,
5486 (genMinus): fixed accumulator clash,
5487 (genJumpTab): added comment, this needs another look
5488 * src/mcs51/gen.c: added check for "B in use" paranoia,
5489 added pushB() and popB()
5490 * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5499 * src/z80/main.c: (reset_regparms) made void parameter explicit and
5500 added PSEG (PAG,XDATA) or NULL to port specifier
5501 * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5502 * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5503 (_mcs51_genInitStartup): removed __start__xstack equ,
5504 (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5505 * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5506 * src/z80/gen.c (_rleAppend): fixed warnings
5507 * support/regression/tests/zeropad.c: added pdata test
5508 * .version: bumped to 2.4.6
5510 2004-10-17 Borut Razem <borut.razem AT siol.net>
5512 * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5513 as a part of nightly build
5515 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5517 * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5518 WREG holds the first byte function parameters,
5519 * (aopForSym): take special case for symbols which are in FARSPACE
5520 but in CODESPACE too,
5521 * (assignResultValue): modified to take into account _G.useWreg,
5522 * (genCall): don't use wreg for parameter passing when function is
5523 declared as reentrant, too, added optimization INCF to stack
5524 pointer when stack parameter count is 1,
5525 * (genFunction, genEndFunction): refurnished and fixed to not using
5526 wreg for passing parameters when function has varargs or is
5527 reentrant, fixed bug with symbol name compare for generating
5528 functions in absolute address,
5529 * (pic16_storeForReturn): refurnished,
5530 * (genCmp): began writing a new version of the function, not ready
5531 yet, therefore it is disabled,
5532 * (genAssign): do not read code memory when assigning a function to
5534 * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5535 array of characters, not pointer,
5536 * (pic16initialComments): in debug mode emit an .ident directive for
5538 * (_process_pragma): emit a new warning type (internal to pic16)
5539 when setting stack to default length, emit a similar warning when
5540 placing a function at absolute address and address is not word aligned
5541 * (_pic16_parseOptions): added 'return TRUE' statement,
5542 * (_pic16_linkEdit): if compiling a source, then add the source's
5543 file object, first in the list of objects to link,
5545 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5547 * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5548 * src/pic/main.c : removed VC warning.
5549 * src/pic/gen.c : changed comment.
5551 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5553 * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5554 reference to a deprecated symbol _GPTRREG was causing failure to
5555 link. Thanks G. M. Gallant for the info.
5557 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5559 * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5560 comments for Bugs item #954788.
5562 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5564 * src/pic16/device.c (pic16_dump_gsection,
5565 * pic16_groupRegistersInSection): handle symbols declared to be in
5566 access bank differently,
5567 * src/pic16/gen.c (struct _G): added field resDirect,
5568 * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5569 send values read from stack directly to result and don't allocate
5571 * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5573 * (pic16_sameRegsOfs): NEW,
5574 * (freeAsmop): if _G.resDirect is set then do not mark registers as
5575 free because they were not allocated from temporary pool,
5576 * pic16_popRegFromString): workaround to fix a problem with
5577 allocating variables twice or never,
5578 * (genGenPointerGet): using PRODL instead of FSR0H,
5579 * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5581 * (genAssign): take advantage of the _G.resDirect flag,
5582 * (genCast): around line 11844, use mov2f instead of directly
5583 MOVFF'ing between operands to account for literal values,
5584 * src/pic16/genutils.c: some new debug functions for gpsim have been
5586 * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5587 float with integer part only,
5588 * src/pic16/main.c (_process_pragma): handle pragma udata access to
5589 place variables in access bank
5590 * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5591 updated sources to reflect recent changes in gen.c
5593 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5595 * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5596 sources that searched for headers in installation path, now the
5597 device/include/pic16 is used,
5598 * src/pic16/glue.c (pic16glue),
5599 * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5600 .line directives if not in debug mode, this suppresses assembler's
5601 warnings for ignored directives
5603 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5605 * src/port.h: made reset_regparms prototype void parameter explicit.
5606 * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5607 * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5608 * doc/sdccman.lyx: documented warning disabling and how to use
5609 printf_large to make it print floats.
5610 * device/include/stdbool.h: NEW
5611 * device/lib/_atof.c,
5612 * device/lib/_divuint.c,
5613 * device/lib/_divulong.c,
5614 * device/lib/expf.c,
5615 * device/lib/printf_large.c,
5616 * device/lib/sincosf.c,
5617 * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5618 * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5619 a completely reentrant lib.
5621 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5623 * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5624 * device/include/pic16/stdio.h: fixed bug with colon
5626 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5628 * device/include/pic16/stdio.h,
5629 * device/include/pic16/stdlib.h,
5630 * device/include/pic16/math.h: NEW
5631 * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5632 declared as _naked to reduce overhead
5633 * device/lib/Makefile.in (target port-specific-objects-pic16):
5634 changed * to *.* so to ignore the CVS directory,
5635 * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5636 stacked variables back in stack,
5637 * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5640 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5642 * .version: bumped version number to 2.4.5
5643 * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5644 * support/Util/SDCCerr.c (messages structure): added entry for
5647 Large cumulative patch for pic16 port and libraries.
5648 * device/include/pic16/sdcc-lib.h,
5649 * device/include/pic16/stdarg.h,
5650 * device/include/asm/pic16/features.h,
5651 * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5652 * device/include/pic16/float.h: changes reentrant keyword with
5653 _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5654 * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5655 updated target build-libraries to include objects from gptr,
5656 * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5657 _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5658 * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5659 all function headings,
5660 * src/SDCCmain.c: added global parameter userIncDirsSet,
5661 * (parseCmdLine): when option -I is encountered add directory to
5663 * src/version.awk: added space between control and long,
5664 * src/pic16/NOTES: added some notes for the port,
5665 * src/pic16/gen.c: added prototype for mov2fp function,
5666 * (fReturnpic16[]): properly named return value registers,
5667 * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5668 * (aopForSym): added code to handle symbols with onStack flag set,
5669 symbols onStack are allocated PTRSIZE bytes,
5670 * (aopFreeAsmop): handles special case where asmops are stack objects,
5671 * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5672 * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5673 added argument lock to trace flaws in allocating temporary registers
5674 when developing port,
5675 * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5676 * (pic16_popRegFromString): reenabled allocating a direct register
5678 * (assignResultValue): various beautifications,
5679 * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5680 referenced function argument,
5681 * (genIpush): reenabled to allow stacked arguments, handles only
5682 ic->parmPush iCodes,
5683 * (genCall, genPcall): major changes to allow for variable argument
5684 functions, fixed a bug with falsely restoring stack pointer after
5685 returning from call,
5686 * (genFunction): pending code for critical function,
5687 * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5688 * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5689 * (genNearPointerGet): fixed bug with indirect reading, was always
5691 * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5693 * (genAddrOf): rewrote code to take address of a stacked function parameter
5694 * (genCast): fixed casting to generic pointer type,
5695 * src/pic16/gen.h: added AOP_STA,
5696 * (struct asmop): added field stk,
5697 * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5698 * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5699 * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5700 * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5701 * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5702 * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5704 * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5706 * (pic16_port structure): generic pointer size is set to 3,
5707 * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5708 * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5710 * src/pic16/ralloc.c (allocReg): prevent allocating register when
5711 operand is an iTemp,
5713 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5715 * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5716 * debugger/mcs51/simi.c: addapt new syntax of s51
5718 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5720 * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5721 * src/pic16/pcode.c: commented out some calls to free() in order to
5724 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5727 * src/SDCCicode.c (isiCodeInFunctionCall),
5728 * src/avr/ralloc.c (selectSpil),
5729 * src/pic/ralloc.c (selectSpil),
5730 * src/pic16/ralloc.c (selectSpil),
5731 * src/ds390/ralloc.c (selectSpil),
5732 * src/hc08/ralloc.c (selectSpil),
5733 * src/xa51/ralloc.c (selectSpil),
5734 * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5735 stack in the middle of a function call sequence (fixes bug #1020268)
5736 * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5737 costs associated with the minimum switch case.
5739 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5741 * src/SDCC.lex: fixed bug #1030549
5743 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5745 * src/SDCCcse.h (struct cseDef),
5746 * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5747 over a function call if the CSE is derived from a symbol whose
5748 address has been taken (fixes bug #1029883)
5749 * support/regression/tests/bug-1029883: a new regression test for
5752 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5754 * src/hc08/gen.c (emitinline): fixed bug #1029778
5755 * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5756 to a cast object is no longer a syntax error ("fixes" bug #1030006,
5757 and starts toward RFE #905167)
5759 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5761 * src/pic16/gen.c (mov2f): New function to move an operand to
5762 another without considering if it is a literal or a register,
5763 * (pic16_sameRegs): don't check if they are both AOP_REG,
5764 * (AccRsh): removed andmask=0 lines,
5765 * (genLeftShift): duplicated to be improved in future versions,
5766 * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5767 * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5768 in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5769 * (pic16initMnemonics): added initialization for POC_INFSNZW,
5770 * (insertBankSwitch): fixed inserting banksel directives algorithm
5771 for instructions that follow a skip instruction, this fixes a report
5772 for broken subtraction code generation,
5773 * src/pic16/ralloc.c (deassignLRs): do not free register if current
5774 iCode is a left op, just in case result and right share the same
5777 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5780 * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5782 * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5783 * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5784 on 2004-09-12; it was buggy
5786 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5788 * src/SDCCsymt.h: removed RESULT_CHECK
5793 * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5795 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5797 * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5798 * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5799 configuration values no more rejected by compiler, they are assigned
5800 to configuration registers with a warning message instead,
5801 * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5802 the for-loop so last conf register is emitted too,
5803 * (_pic16_initPaths): link library libsdcc.lib by default,
5804 * (_hasNativeMulFor): modified test for multiplication according to
5805 Raphael Neider's remarks. Integer multiplication is also done with
5807 * device/include/pic16/pic18fregs.h: corrected type error in while
5808 testing and including 18f6720 header file
5810 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5812 * src/pic16/device.h (pic16_options): removed field use_crt,
5813 * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5814 until an optimization to handle single bits is added,
5815 * (pic16_loadFSR0): moved before genUnpackBits,
5816 * (genAnd): some white lines removed,
5817 * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5818 leave_reset flags in pic16_options when using crt modules,
5820 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5822 * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5823 for bugs 898889 & 979599. Also used some safer print instructions.
5825 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5827 * src/pic16/device.h (pic16_options_t): added field use_crt,
5829 * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5830 catch a probable future bug,
5831 * src/pic16/gen.c: aopIdx function commented out,
5832 * (genAssign): commented out old code which used aopIdx,
5833 * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5834 code, added if conditionals to take into account the --use-crt
5835 command line options,
5836 * src/pic16/main.c (pic16_optionsTable): added new command line
5837 options, --use-crt= and --no-crt,
5838 * (_pic16_linkEdit): now the proper crt object is added in the
5839 linker command line except than when --no-crt is specified,
5840 * src/pic16/pcode.c,
5841 * src/pic16/pcode.h: added some structures and functions for a new
5842 optimization scheme to compansate for instruction overhead between
5843 same iCodes, this scheme is currently under development and is not
5845 * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5847 * device/lib/pic16/startup/crt0i.c,
5848 * device/lib/pic16/startup/crt0iz.c: added global char variable
5849 __uflags to force the generation of an idata section
5851 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5854 * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5855 * doc/sdccman.lyx: updated sdcc version to 2.4.4
5857 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5859 * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5860 Frieder) and clarified the default code optimization mode
5862 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5864 * src/SDCC.lex (doPragma, process_pragma),
5865 * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5866 "opt_code_size", and "opt_code_balanced"
5867 * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5868 regrouped options by category, added support for category headers
5869 * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5870 and "--opt-code-size"
5871 * doc/sdccman.lyx: documented these new options and pragmas
5872 * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5873 preference into account
5875 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5877 * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5878 geniCodePreDec): Fixed bug 904237 by generating a warning
5880 * src/SDCCerr.c: added warning W_SIZEOF_VOID
5882 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5884 * src/pic/device.c : When no max ram set validate full memory range.
5886 * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5888 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5890 * device/lib/_gptrget.c,
5891 * device/lib/_gptrput.c: updated comment
5892 * device/lib/calloc.c,
5893 * device/lib/free.c,
5894 * device/lib/malloc.c,
5895 * device/lib/realloc.c: added LGPL, made them reentrant-safe
5896 * src/SDCCcse.c (cseBBlock),
5897 * src/SDCCicode.c (printOperand, geniCodeArray),
5898 * src/SDCCicode.h (struct operand): fixed bug 868103
5899 * support/regression/tests/bug-868103.c: added
5900 * src/SDCCast.c (searchLitOp),
5901 * src/SDCCcse.h (struct cseDef),
5902 * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5903 * src/SDCCicode.h (struct operand),
5904 * src/SDCCsymt.h (struct sym_link),
5905 * src/avr/gen.c (hasInc),
5906 * src/ds390/gen.c (hasInc),
5907 * src/hc08/gen.c (genPlusIncr, hasInc),
5908 * src/mcs51/gen.c (hasInc),
5909 * src/pic16/glue.c (pic16_printIvalChar),
5910 * src/pic16/ralloc.c (regWithIdx),
5911 * src/xa51/gen.c (hasInc) : removed warnings
5912 * src/SDCCast.c (createBlock): added comment ???
5913 * src/hc08/ralloc.c: updated comments
5915 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5917 * doc/sdccman.lyx: updated section on switch statements, added
5918 section about semaphore locking
5919 * doc/Makefile: added option -info for latex2html
5920 * device/lib/_gptrget.c,
5921 * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5923 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5927 * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5928 maxram is less than 0x100.
5930 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5932 * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5934 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5945 * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5946 a jump table is the best form for a switch statement, including
5947 automatic insertion of missing cases to make the case range
5948 continuous. Developed in collaboration with Frieder Ferlemann.
5950 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5952 * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5953 accumulator result if it needs sign extension
5955 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5957 * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5959 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5961 * device/lib/gbz80/printf.c,
5962 * device/lib/z80/printf.c: removed define for NULL
5964 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5966 * as/xa51/xa_link.c,
5967 * device/examples/ds390/ow390/ad26.c,
5968 * device/examples/ds390/ow390/cnt1d.c,
5969 * device/examples/ds390/ow390/counter.c,
5970 * device/examples/ds390/ow390/ds2480.h,
5971 * device/examples/ds390/ow390/ds2480ut.c,
5972 * device/examples/ds390/ow390/findtype.c,
5973 * device/examples/ds390/ow390/gethumd.c,
5974 * device/examples/ds390/ow390/owllu.c,
5975 * device/examples/ds390/ow390/ownetu.c,
5976 * device/examples/ds390/ow390/swt12.c,
5977 * device/examples/ds390/ow390/swtloop.c,
5978 * device/examples/ds390/ow390/temp.c,
5979 * device/examples/ds390/ow390/temp10.c,
5980 * device/examples/ds390/ow390/thermo21.c,
5981 * device/examples/ds390/ow390/tinilnk.c,
5982 * device/examples/ds390/ow390/tstfind.c,
5983 * device/examples/serialcomm/windows/serial.cpp,
5984 * device/examples/serialcomm/windows/test_serialcomm.cpp,
5985 * device/include/reg51.h: fixed line endings for cvs
5987 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5989 * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5990 packRegsForAccUse, packRegisters): new accumulator register
5992 * support/regression/ports/hc08/support.c (_putchar): suppress
5993 warning of unused variable
5994 * src/SDCCicode.c: added SWAP entry to codeTable
5996 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5998 * device/lib/sprintf.c: forgot to add this file before previous commit
6000 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6002 * src/pic16/gen.c (genPackBits): added operand right in function
6003 parameters, load result directly if p_type is POINTER (that is
6004 called by genNearPointerSet)
6005 * (genUnPackBits): added operand left in function parameters,
6006 * (genNearPointerGet, genNearPointerSet): prevent the loading of
6007 FSR0 if accessing bitfields,
6009 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6011 * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6012 _print_format; updated printf, sprintf, vsprintf
6013 * device/include/asm/default/features.h: corrected comment/define
6014 * device/lib/Makefile.in: added sprintf.c
6015 * device/lib/libsdcc.lib: added sprintf module
6016 * device/lib/printf_large.c,
6017 * device/lib/vprintf.c,
6018 * device/lib/sprintf.c: totally refactored printf_large and vprintf
6020 * support/regression/Makefile: changed ALL_PORTS into a usefull default
6021 * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6022 * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6024 * support/regression/tests/zeropad.c: define idata as data for hc08
6026 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6028 * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6029 * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6030 labels are referenced at least once (even if a reference is not found)
6031 * src/hc08/gen.c (emitcode): set isComment flag for comments
6032 * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6033 loads), rules 6a..6b (optimize jumps to return)
6035 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6037 * device/lib/acosf.c (acosf),
6038 * device/lib/asinf.c (asinf),
6039 * device/lib/atanf.c (atanf),
6040 * device/lib/ceilf.c (ceilf),
6041 * device/lib/cosf.c (cosf),
6042 * device/lib/coshf.c (coshf),
6043 * device/lib/cotf.c (cotf),
6044 * device/lib/fabsf.c (fabsf),
6045 * device/lib/floorf.c (floorf),
6046 * device/lib/log10f.c (log10f),
6047 * device/lib/logf.c (logf),
6048 * device/lib/sinf.c (sinf),
6049 * device/lib/sinhf.c (sinhf),
6050 * device/lib/sqrtf.c (sqrtf),
6051 * device/lib/tanf.c (tanf),
6052 * device/lib/tanhf.c (tanhf),
6053 * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6054 replaced all instances of "reentrant" in the library functions
6055 defined in math.h with this macro.
6056 * support/regression/tests/float_trans.c: reenabled test for hc08
6058 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6060 * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6063 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6065 * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6066 * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6067 multi-byte volatile operands are used
6068 * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6069 * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6070 initialization to area GSINIT0 so that it would always precede
6071 any static initializers in GSINIT
6072 * support/regression/tests/zeropad.c: fixed idata define for hc08
6073 * support/regression/tests/bug-927659.c,
6074 * support/regression/tests/float_trans.c: disabled tests for hc08
6075 pending missing library routines
6076 * .version: increased version number to 2.4.4 - hc08 port now passes
6080 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6082 * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6083 * Makefile.common.in,
6085 * as/hc08/Makefile.in,
6086 * as/mcs51/Makefile.in,
6087 * as/z80/Makefile.in,
6088 * debugger/mcs51/Makefile.in,
6089 * device/include/Makefile.in,
6090 * device/lib/Makefile.in,
6093 * link/z80/Makefile.in,
6094 * packihx/Makefile.in,
6095 * sim/ucsim/main_in.mk,
6096 * sim/ucsim/avr.src/Makefile.in,
6097 * sim/ucsim/doc/Makefile.in,
6098 * sim/ucsim/gui.src/serio.src/Makefile.in,
6099 * sim/ucsim/hc08.src/Makefile.in,
6100 * sim/ucsim/s51.src/Makefile.in,
6101 * sim/ucsim/xa.src/Makefile.in,
6102 * sim/ucsim/z80.src/Makefile.in,
6104 * support/cpp2/Makefile.in,
6105 * support/librarian/Makefile,
6106 * support/makebin/Makefile: added DESTDIR to the install path proposed
6107 by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6108 * doc/sdccman.lyx: added DESTDIR documentation
6110 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6112 * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6113 instruction for interrupt handlers, use fast returns when returning
6114 from high priority interrupts
6116 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6118 * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6120 * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6121 * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6122 bugs, ported much of Bernhard's code from mcs51
6123 * src/mcs51/gen.c (genSend),
6124 * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6125 than one when calling a reentrant function
6126 * device/lib/_mullong.c: defined an alternate struct layout for big
6129 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6131 * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6134 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6136 * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6137 are sane and complete before asking the port its prefered parameter
6138 passing method (fixes bug #1017633)
6139 * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6142 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6144 * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6145 problem in bitfields >= 8 bits.
6147 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6149 * src/SDCCsymt.c: undid changes that were not meant to be committed
6151 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6153 * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6155 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6157 * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6158 copied and wrong bit got inverted
6160 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6162 * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6163 genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6164 * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6165 genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6166 * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6167 assignments to bitfields at known addresses
6168 * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6169 reads from bitfields at known addresses
6170 * src/hc08/ralloc.c (packRegisters),
6171 * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6172 genhc08Code): optimize pointer get values used as conditionals
6173 * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6176 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6178 * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6179 genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6180 * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6183 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6185 * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6187 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6189 * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6192 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6194 * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6196 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6198 * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6201 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6203 * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6205 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6207 * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6208 cases use more compact code.
6210 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6212 * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6214 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6216 * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6218 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6221 * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6222 parameter of changePointer() from symbol* to sym_link*
6223 * src/SDCCast.c (decorateType): call changePointer() for CAST op
6224 * src/SDCCsymt.c (compareType): void* type is castable to other
6225 pointers, but not necesarily an exact match.
6226 * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6227 is no longer blindly treated as an exact match.
6228 * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6230 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6232 * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6234 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6239 * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6241 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6245 * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6247 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6249 * src/mcs51/gen.c (emitcode): fixed bug #992819
6251 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6253 * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6254 there's no need to make it worse
6256 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6258 * src/mcs51/ralloc.c (deassignLR),
6259 * src/ds390/ralloc.c (deassignLR),
6260 * src/hc08/ralloc.c (deassignLR),
6261 * src/z80/ralloc.c (deassignLR),
6262 * src/pic/ralloc.c (deassignLR),
6263 * src/pic16/ralloc.c (deassignLR),
6264 * src/avr/ralloc.c (deassignLR),
6265 * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6266 rlivePoint): fixed another part of bug #971834
6268 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6270 * src/z80/main.c: enabled "critical" keyword
6271 * src/z80/mappings.i,
6272 * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6273 functions (fixes bug #979646)
6274 * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6276 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6278 * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6281 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6283 * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6284 doesn't disable too much optimizations
6286 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6288 * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6290 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6292 * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6294 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6296 * src/pic/gen.c tidied up tabs
6297 * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6298 * src/pic/main.c tidied up tabs
6299 * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6300 * src/pic/pcoderegs.c tidied up tabs
6301 * src/pic/ralloc.c tidied up tabs
6303 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6305 * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6306 to S_FIXED for pic16 port and when symbol is not in level 0,
6307 allocate for S_REGISTER storage class and pic16 port, too,
6308 * src/pic16/device.h: prototype for checkSym,
6309 * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6310 * (pic16_assignConfigWordValue): test the value and the mask to
6311 validate that the value is suitable for the configuration word,
6312 * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6313 collect extern declared symbols, don't emit symbol twice, check
6314 first if symbol is in publics set first,
6315 * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6316 * added command line '--fstack' which enables an experimental
6317 feature for stack access, too buggy to be used yet...
6318 * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6319 * (pic16_allocDirReg): when register has storage class S_REGISTER
6320 allocate in pic16_dynAccessRegs,
6321 * device/include/pic16/pic18f????.h: modified configuration word
6322 naming convention, words started as CONFIG0H but should be CONFIG1H
6324 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6326 * device/include/mcs51reg.h: fixed bug 970993
6328 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6330 * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6331 * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6332 * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6333 * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6334 * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6335 * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6336 error/warning numbers,
6337 added function setWarningDisabled()
6338 * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6339 * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6340 _memcmp.c _memmove.c calloc.c realloc.c free.c
6341 * support/regression/tests/malloc.c: added tests for new functionality
6342 * support/regression/tests/zeropad.c: added tests for truncated initializers
6343 and initialized char arrays starting with '\x0'
6344 * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6346 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6348 * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6350 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6352 * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6353 * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6354 peephole 177.e. Thanks to anonymous
6356 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6358 * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6359 function isn't used in the source but referenced as a
6360 variable initializer then declare it as extern in .asm file
6362 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6364 * .version: increased version number to 2.4.3
6366 Adding version extension according to ChangeLog CVS revision
6367 * src/Makefile.in (target all): added dependency 'version.h'
6368 * (rule version.h): added rule to create version.h from ChangeLog,
6369 * (rule dep): added dependency version.h,
6370 * src/version.awk: AWK script to create version.h
6371 * src/SDCCdwarf2.c (dwWriteModule),
6372 * src/SDCCglue.c (initialComments),
6373 * src/SDCCmain.c (printVersionInfo): modified to write after
6374 version string the version extension number,
6375 * src/SDCCutil.c: included "version.h"
6376 * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6378 * src/SDCCutil.h: added prototype for getBuildNumber
6380 * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6381 includeDirsSet, too,
6382 * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6383 const char [] is found in function prototype...
6385 * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6386 moving to WREG with source is already in WREG,
6387 * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6388 * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6389 * (aopForSym): stack'ed symbols are partially supported, added
6390 if-clause to support symbols in FARSPACE,
6391 * (sameRegs): added test for AOP_ACC to see if registers are same,
6392 * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6393 * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6394 * (pic16_popRegFromString): will not allocate a new register if it
6395 doesn't find one by name, bug may have introduced...
6396 * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6397 * (genIpush): revived to use pic16 port's stack,
6398 * (genAddrOf): added incomplete case for stack'ed operand,
6399 * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6400 * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6401 can handle multibyte operands,
6402 * src/pic16/glue.c (pic16_printIval*): some debug info added,
6403 * (pic16initialComments): added message for MPLAB compatibility
6405 * src/pic16/main.h: prototype for pic16_mplab_comp,
6406 * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6407 which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6408 * (_pic16_linkEdit): NEW, handles link stage, transferred here
6409 because of increased complexity of procedure,
6410 * (_process_pragma): stack pragma changed to format 'stack pos len',
6411 emit symbol '_stack_end' to conform with gplink,
6412 * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6413 to search for register,
6414 * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6416 * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6417 #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6418 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6419 case for PO_GPR_REGISTER,
6420 * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6421 dies, the new era is ahead !...
6422 * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6423 pic16_dynInternalRegs,
6424 * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6425 * (pic16_allocDirReg): minor optimizations and bug fixes,
6426 * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6428 * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6429 load stack and frame pointer with address of 'stack_end' symbol
6431 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6433 * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6434 without source code but only variable initializers
6436 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6438 * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6439 external are not declared as extern to reduce overhead while linking
6441 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6443 * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6445 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6447 * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6448 Yee Keat for the patch
6449 * src/SDCCast.c (decorateType): fixed bug #979599
6450 * src/ds390/gen.h: removed local fReturnSizeDS390
6451 * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6452 * src/ds390/gen.c (genAnd, genOr, genXor),
6453 * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6455 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6457 * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6458 add relFilesSet to $3, manipulate $2 to handle linking of object
6459 files without source files in command line,
6460 * device/include/pic16 (all headers): added ID location macros,
6461 * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6462 entries for ID location bytes,
6463 * (pic16_assignIdByteValue): NEW,
6464 * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6465 added field dumpcalltree to pic16_options_t,
6466 * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6467 is used instead of pic16_Gstack_base_addr, check if (ifx) before
6468 emitting rFalseIfx label after check_carry label,
6469 * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6470 pic16_emitDIRegs), NEW
6471 * (pic16glue): dump .calltree file when option --calltree found,
6472 * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6473 * (_pic16_genAssemblerPreamble): emit ID locations after
6474 configuration registers,
6475 * (pic16_linkCmd): modifications of the link command,
6476 * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6477 * (pic16_pCodeInitRegisters): don't init stack registers,
6478 * (pic16_findPrevInstruction): fixed bug,
6479 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6480 bug with immediate registers,
6481 * (buildCallTree): traces stack push and pop,
6482 * (pct2): dump also stack usage for each function,
6483 * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6484 * (pic16_allocDirReg): various modifications,
6485 * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6488 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6490 * src/pic16/pcode.c: removed buggy double colon
6492 2004-07-01 Borut Razem <borut.razem AT siol.net>
6494 * support/scripts/sdcc.nsi: added include/pic16 to setup
6496 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6498 * device/lib/Makefile.in: fixed bug in target objects-pic16,
6499 * device/lib/pic16/Makefile: prefixed with dash (-) command under
6501 * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6502 specific command line arguments. Also added sample lkr script
6503 for placing a variable at a specific memory bank.
6504 * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6505 at a specific memory bank,
6506 * (pic16_dump_isection): fixed bug which caused string literals to
6507 be omitted when dumping idata section,
6508 * (pic16_groupRegistersInSection): added code to handle registers
6509 in specific memory banks,
6510 * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6511 public, all references are renamed too,
6512 * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6514 * (pic16_storeForReturn): added case to handle when dest is WREG,
6515 * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6516 * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6517 pic16_rel_udata, check to see if that register is marked as being
6518 a member of a specific memory bank,
6519 * (pic16_printIvalCharPtr): added code to add string literals either
6520 to code or the idata sections,
6521 * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6522 also accept the 'udata' pragma,
6523 * src/pic16/main.h: new structure types sectName and sectSym
6524 * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6525 * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6526 * (pic16_findPrevInstruction): fixed, it returned nothing,
6527 * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6528 instruction combinations,
6529 * (pic16_FixRegisterBanking): heavily reorganised,
6530 * (pic16_AnalyzeBanking): if generating banksel directives is
6531 disabled, then don't call FixRegisterBanking at all,
6532 * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6534 * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6536 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6538 * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6539 Phuah Yee Keat <yk.phuah AT nestac.com>
6541 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6543 * src/pic16/glue.c (pic16createInterruptVect): function now emits
6544 correctly the IVT even if it is relocated to some other location
6546 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6548 * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6549 * device/include/pic16/pic18f2220.h: NEW,
6550 * device/lib/pic16/libdev/pic18f2220.c: NEW,
6551 * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6552 * src/pic16/device.c (struct Pics16): added info for 18f2220,
6553 * src/pic16/device.h (struct pic16_options): added ivt_loc and
6554 nodefaultlibs, ivt_loc is the location of the interrupt vector
6555 table, and nodefaultlibs signs that default libraries should not be
6556 linked in link stage,
6557 * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6558 according to --ivt-loc argument,
6559 * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6560 when pragma stack is found,
6562 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6564 * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6565 256 (range check), 257 (do while), 258.a-f (bit banging
6566 f.e. on 3-wire SPI bus)
6568 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6570 * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6571 variables used exclusively within a loop
6573 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6575 * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6577 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6579 * src/SDCClrange.c (computeClash): fixed bug #971834
6581 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6583 * src/mcs51/gen.c (genCmp): fixed bug #975903
6584 * src/hc08/gen.c (operandsEqu),
6585 * src/ds390/gen.c (operandsEqu),
6586 * src/z80/gen.c (operandsEqu),
6587 * src/pic/gen.c (operandsEqu),
6588 * src/pic16/gen.c (operandsEqu),
6589 * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6590 * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6592 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6594 * src/SDCCcse.c (cseBBlock): fixed bug #966963
6596 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6598 * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6599 default case in switch statement,
6600 * glue.c (pic16_initPointer): expr is initialised via decoarteType
6601 to eliminate problem with initialisation of pointers, but problem
6603 * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6604 * (emitStaticSegment): removed various lines emitting debug info,
6605 * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6606 added processor registers for utilizing EEPROM,
6607 * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6608 configurable and set 8
6610 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6612 * .version: increased version number to 2.4.2,
6614 Cumulative patch for pic16 port
6615 * src/pic16/device.c: changed scheme to dump initial values for
6616 variables in idata segment, all print_idata* functions were removed,
6617 now the pic16_printIval* will be called,
6618 * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6619 * _pic16_printPointerType, pic16_printPointerType,
6620 * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6621 * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6622 NEW, similar to the respective functions in SDCCglue.c,
6623 * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6624 way, emitting hex bytes,
6625 * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6627 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6629 * src/avr/ralloc.c (serialRegAssign),
6630 * src/xa51/ralloc.c (serialRegAssign),
6631 * src/pic/ralloc.c (serialRegAssign),
6632 * src/pic16/ralloc.c (serialRegAssign),
6633 * src/hc08/ralloc.c (serialRegAssign),
6634 * src/z80/ralloc.c (serialRegAssign),
6635 * src/ds390/ralloc.c (serialRegAssign),
6636 * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6638 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6640 * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6641 * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6643 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6645 Cumulative patch for pic16 port:
6646 * src/pic16/device.h (typedef PIC16_device) modified fields for
6647 defining microcontrollers,
6648 * src/pic16/device.c: added new info for all devices in Pics16 array,
6649 * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6650 to be optimised out by the pCode optimiser,
6651 * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6652 specially, bug reported by G.M. Gallant,
6653 * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6654 as force'd so that cannot be optimised out by pCode optimiser,
6655 * src/pic16/pcode.c,
6656 * src/pic16/pcodepeeph.c,
6657 * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6658 they are disabled by default, but can be enabled explicit with
6659 command argument --denable-peeps, for testing,
6660 * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6661 --pomit-ivt in COMPILE_FLAGS
6663 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6665 * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6668 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6670 * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6672 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6674 device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6675 0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6677 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6679 * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6680 would only assign 0x300001 register.
6682 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6684 * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6685 in COMPILE_FLAGS. Thanks to G. Gallant for report.
6687 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6689 * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6691 * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6692 * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6693 added peephole 254 (left shift), 255 (jump table)
6695 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6697 * device/lib/Makefile.in: removed comment line with model-pic16,
6698 * (target port-specific-objects-pic16): the libraries and objects
6699 are copied to the build directory form the device/lib/pic16/bin
6702 Cumulative patch concerning pic16 port:
6703 * library directory has been re-organized,
6704 * added support for PIC18F1220,
6705 * added headers and library sources for chips 18f1220,18f6520,
6706 18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6708 * configuration registers setting has changed, now each supported
6709 device has a complete description of the registers it uses,
6710 * all initialisations are moved to idata sections, these section
6711 can be absolute or relocatable,
6712 * fixed initialisation of codespace variables,
6713 * fixed warning about PCLATU and gpsim,
6714 * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6715 * (genAssign): use table reads when assigning from variables in codespace,
6716 * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6717 char/int variables placed in codespace,
6718 * (pic16_emitConfigRegs): NEW, emits a list with configuration
6719 registers set in .asm file, no need for --pomit-config-words anymore,
6720 * (pic16glue): some 8051 legacy segments are commented out
6721 (to be removed completely),
6722 * added support for alternative assembler and linker with --asm=
6723 and --link= command line arguments,
6724 * peepholes are disabled automatically in the port, no need to
6725 specify on command line,
6726 * port supports natively char/int/long multiplication, but converts
6727 all divisions to support functions,
6728 * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6729 to the file set in variable $2,
6730 * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6731 strings in ASCII format and not in hex,
6732 * ralloc.c (serialRegAssign): added a triplet of conditional calls
6733 to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6734 allocate proper register if iCodes aren't temporary,
6736 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6738 * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6740 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6742 * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6745 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6747 * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6748 computed address is reused
6749 * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6750 multi-byte bitfields
6752 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6754 * src/z80/gen.c: (genArrayInit): must check for pointers too
6756 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6758 * support/regression/tests/zeropad.c: never meant to commit the
6759 nestedstruct test: removed, added check for GCC version
6761 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6763 * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6764 * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6765 * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6766 printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6767 bugs 928906 and 954082 half-empty initializers
6769 * src/SDCCsymt.c (getAllocSize): added for above fix
6770 * src/z80/gen.c (genArrayInit): fixed bug 741044
6771 * support/regression/tests/zeropad.c: added tests
6773 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6775 * src/pic16/device.c (pic16_dump_section): corrected bug which
6776 caused some symbols of the libraries to be misplaced
6778 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6781 * src/pic16/ralloc.h,
6782 * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6783 to fix conflict with pic port
6785 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6787 * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6788 externs configuration variables,
6789 * src/pic16/ralloc.h,
6790 * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6791 prototype in header, commented out some debug messages
6793 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6797 * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6798 for gpasm COFF object generation. Thanks to D. Hawkins for
6801 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6804 * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6805 Brock for spotting this)
6806 * src/ds390/gen.c (genEndFunction),
6807 * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6808 interrupt handler and critical. Disable push/pop optimizations when
6809 peephole optimizations disabled.
6811 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6813 Updated pic16 library sources and headers.
6814 * device/lib/pic16/pic18f*/ ,
6815 * device/include/pic16/*.h: modified to handle structured SFR
6818 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6820 * src/port.h (PORT structure): added hook initPaths, now each
6821 port can declare its own default search paths,
6822 which can been seen with the --print-search-dirs option,
6823 see pic16 port for example,
6824 * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6825 setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6826 * (doPrintSearchDirs): NEW, replaces in a central manner the
6827 printing of search dirs which was split in set*Paths functions,
6828 * (main): added call to port->initPaths and doPrintSearchDirs,
6833 * src/izt/tlcs900h.c,
6836 * src/pic16/main.c: modified port structures to reflect addition of
6839 * src/pic16/device.c (regCompare): registers are finally sorted by name,
6840 * (pic16_dump_section): for registers in same address reserve memory once,
6841 * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6843 * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6844 result is greater in size than right or left,
6845 * (pic16_genUMult8X8_8): there are some cases where the result can
6846 be 16 bits size, so handle these,
6847 * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6848 * (pic16_outBitC): modified to emit pcodes,
6849 * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6851 * (genDivOneByte): implemented algorithm to divide 8-bits,
6852 * (genCmp): uncommented goto, but issues still exist,
6853 * (genAnd): fixed a bug with variables >8bits,
6854 * (genPackBits): optimization added that uses BCF/BSF to change a
6856 * (genAssign): fixed bug when assigning floating point literals,
6857 * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6858 __sdcc_gsinit_startup label,
6859 * src/pic16/main.c (_pic16_init): removed search directory
6861 * (_pic16_initPaths): NEW, used to initialise search directories,
6862 * (_hasNativeMulFor): support functions for all except char/int
6863 multiplication, and char division,
6864 * (PIC16_port struct): modified entry for native mul support,
6865 * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6867 * (buildCallTree): call to register_usage is ifdef'ed out,
6869 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6871 * device/include/string.h: applied Stas Sergeev's patch to make this
6872 header file compatible with the preprocessor -Wundef option
6873 * src/SDCCmain.c (main): abort compilation if preprocessor reports
6874 failure (fixes bug #941458)
6876 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6878 * src/SDCCopt.c (killDeadCode): fixed bug #907733
6879 * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6880 that the variable, not the function, should be static
6881 * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6882 to be consistent with non-literal case
6884 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6886 * src/SDCCast.c (isConformingBody): fixed bug #949967
6887 * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6888 convilong): fixed bug #952086
6890 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6892 * src/SDCCmem.c (allocVariables): fixed bug #955321
6894 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6896 * src/hc08/main.c (_hc08_genAssemblerEnd),
6897 * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6898 dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6899 completely eliminated the use of a temporary file
6900 * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6901 when more than one file linked
6902 * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6904 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6906 * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6907 which fixes bug #543481
6908 * support/regression/tests/bug-751703.c: fixed comments left from a
6910 * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6911 * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6912 * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6914 * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6915 * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6916 are now changed to underscores in moduleName
6918 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6920 * as/mcs51/lkmem.c: better fix for bug #954173
6922 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6923 committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6925 * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6926 * device/include/c8051f000.h,
6927 * device/include/c8051f120.h,
6928 * device/include/c8051f300.h,
6929 * device/include/c8051f310.h,
6930 * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6933 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6935 * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6936 and mailing lists, doc'ed --no-peep-comments, removed reference
6937 to knoppix (newest version has no LyX/LaTeX), other minor changes
6938 * src/SDCCglue.c (glue): save 2 bytes stack space with
6939 option --main-return. The ljmp could probably be avoided too
6941 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6943 * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6945 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6947 * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6948 * src/SDCCopt.c (isLocalWithoutDef),
6949 * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6950 which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6951 (credit to Maarten Brock for patch #949363, on which this is based)
6952 * support/regression/tests/bug-751703.c: some test cases of extern used
6953 within inner scopes.
6955 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6957 * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6959 * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6961 * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6962 dwWriteLabel): fix to create valid debugger symbols even when
6963 the module name has non-alphanumeric symbols in it
6964 * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6965 when a variable's allocation has been optimized away
6968 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6970 * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6972 * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6974 * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6976 * src/z80/gen.c (z80_emitDebuggerSymbol),
6978 * src/pic/gen.c (pic14_emitDebuggerSymbol),
6980 * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6982 * src/avr/gen.c (avr_emitDebuggerSymbol),
6984 * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6986 * src/SDCCdebug.c (emitDebuggerSymbol),
6988 * src/port.h: added a debugger struct to the port struct. Added a
6989 callback for defining debugger symbols
6991 * src/SDCCast.c (createLabel),
6992 * src/SDCC.y (labeled_statement): mark all compiler generated labels
6995 * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6996 iCode back to the ast for the function
6998 * src/hc08/ralloc.c (hc08_assignRegisters),
6999 * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7000 unneeded fields from the regs struct.
7001 * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7002 pushReg() & pullReg() functions instead of emitcode()
7004 * src/hc08/gen.c (genLabel, genhc08Code),
7005 * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7007 * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7010 * src/hc08/gen.c (genEndFunction, genhc08Code),
7012 * src/mcs51/gen.c (genEndFunction, gen51Code),
7014 * src/ds390/gen.c (genEndFunction, gen390Code),
7016 * src/z80/gen.c (genEndFunction, genZ80Code),
7019 * src/pic/gen.c (genEndFunction, genpic14Code),
7021 * src/pic16/gen.c (genEndFunction, genpic16Code),
7023 * src/avr/gen.c (genEndFunction, genAVRCode),
7025 * src/xa51/gen.c (genEndFunction, genXA51Code),
7027 * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7028 specific code to cdbFile.c and out of the backend code generators
7030 * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7031 * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7032 starting address is now 0
7036 * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7037 assembler directive for DWARF support
7038 * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7042 * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7044 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7046 * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7047 and inappropriate peephole optimization in jump tables
7049 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7052 * src/SDCCglue.c: sdccopt works for the hc08 port now
7054 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7056 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7058 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7060 * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7062 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7064 * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7068 * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7069 comments from the peephole optimizer replacement rules
7070 * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7072 * src/SDCCcse.c (updateSpillLocation),
7073 * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7075 * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7076 * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7077 objects far pointers
7079 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7081 * src/SDCCsymt.h: a missing part of my last change
7082 * src/pic/ralloc.c (regTypeNum),
7083 * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7085 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7088 * src/SDCCicode.c (aggrToPtrDclType),
7090 * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7091 ptrPseudoSymConvert),
7092 * src/pic/ralloc.c (regTypeNum),
7093 * src/pic16/ralloc.c (regTypeNum),
7094 * src/hc08/ralloc.c (regTypeNum),
7095 * src/ds390/ralloc.c (regTypeNum),
7096 * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7097 creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7099 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7101 * link/z80/lkmain.c (afile),
7102 * as/hc08/lkmain.c (afile),
7103 * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7104 prevent a pointer problem when a filename has no directory and
7105 no extension specified.
7107 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7109 * link/z80/lkmain.c (afile): allow periods in directory names
7110 * link/z80/lkmain.c (afile),
7111 * as/mcs51/lkmain.c (afile),
7112 * as/hc08/lkmain.c (afile): allow linker script file to have an
7113 extension other than ".lnk"
7114 * link/z80/lklex.c (getfid),
7115 * link/z80/lkmain.c (parse),
7116 * as/mcs51/lklex.c (getfid),
7117 * as/mcs51/lkmain.c (parse),
7118 * as/hc08/lklex.c (getfid),
7119 * as/hc08/lkmain.c (parse): Support comments in the linker script
7120 file on lines by themselves and after filenames
7122 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7124 * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7126 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7128 * src/z80/peeph-z80.def: removed some peephole rules that don't
7129 work with multibyte arithmetic (fixed bug #937126)
7130 * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7131 to registers and not global variables
7132 * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7133 geniCodePreInc, geniCodePostDec, geniCodePreDec,
7134 geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7135 checking for assignments not internally generated (fixed bug #931895)
7136 * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7137 structure member (fixed bug #930072)
7139 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7141 * src/SDCCmain.c (linkEdit),
7142 * src/hc08/main.c (_hc08_parseOptions),
7143 * as/hc08/Makefile.in,
7147 * as/hc08/lkrloc.c (relr, rele),
7148 * as/hc08/lkarea.c (lnkarea)
7149 * as/hc08/lkmain.c (afile, parse),
7150 * as/hc08/lkelf.c: support for ELF output
7151 * as/hc08/lks19.c (s19),
7152 * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7154 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7156 * as/mcs51/lkihx.c: Fixed bug #899105.
7158 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7160 * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7161 .dsp files from Unix to DOS.
7163 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7165 * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7166 function pointers; we have been compliant for several months now.
7167 * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7168 change that was accidently commented out
7169 * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7170 genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7173 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7175 * src/hc08/gen.c: output of all of the internal debugging information
7176 is now controlled by the D() macro; it is disabled by default
7178 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7180 * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7181 harder to keep the same registers during a CAST iCode
7182 * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7183 long via int can be done in a single cast, if the signedness is
7185 * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7186 putchar() in tinibios.c in ds390's library
7188 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7190 * src/SDCCast.c (decorateType): fixed bug #898889,
7191 cast result of a literal complement too
7192 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7193 fixed check for bitfields
7195 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7197 * src/SDCCicode.c (geniCodeLogic): made it static,
7198 (geniCodeLogicAndOr): added in order to fix bug #905492,
7199 (ast2iCode): fixed bug #905492
7200 * support/regression/tests/bug-905492.c: added
7201 * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7202 (processParms): fixed bug #927659: don't copy parms, this will clear
7204 * support/regression/tests/bug-927659.c: added
7206 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7208 * src/SDCCast.c (addCast): don't cast float to char
7209 * device/lib/libsdcc.lib: added _memmove
7211 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7213 * device/lib/large/Makefile: fixed parallel execution by
7214 replacing `make` by `$(MAKE)`
7216 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7218 * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7219 offsets (fixes bug #923936)
7221 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7223 * device/lib/small/Makefile: fixed parallel execution by
7224 replacing `make` by `$(MAKE)`
7226 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7228 * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7230 2004-03-23 Scott Dattalo <scott AT dattalo.com>
7232 * src/pic/gen.c (genCpl): multi-byte complements were not working.
7233 * src/regression/Makefile: Regression test was not running.
7235 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7237 * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7238 complement if possible
7239 * src/SDCCval.c (valComplement),
7240 * src/SDCCicode.c (operandOperation): fixed complement of literal
7241 * support/regression/tests/onebyte.c (testComplement): added
7243 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7245 * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7246 return an optimized tree; actually replace actParm with the new tree
7247 * src/SDCCast.h: added some parantheses to remove side effects
7248 * support/regression/tests/bug-920866.c
7250 2004-03-21 Scott Dattalo <scott AT dattalo.com>
7251 * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7252 Bit operands were not being handled properly in the pic14 port.
7253 (now src/regression/add.c passes again).
7255 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7257 * src/SDCC.y (labeled_statement): case and default no longer require
7258 a following statement (RFE #893037)
7260 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7262 * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7263 use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7264 disabled (fixes bug #916294)
7265 * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7266 "mov a,acc"; patch provided by Lenny Story
7267 * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7269 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7271 * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7273 * src/ds390/gen.c (genFunction, genEndFunction),
7274 * src/ds390/ralloc.c (ds390_assignRegisters),
7275 * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7276 * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7277 pushed if there are parameters passed on the stack. Also, a cleaner
7278 way to decide if r0/r1 should be pushed/popped. (Together they fix
7281 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7284 * device/lib/mcs51/crtpagesfr.asm,
7285 * device/lib/mcs51/crtxinit.asm,
7286 * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7287 to avoid confusion with Si Lab's SFRPAGE register.
7289 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7291 * src/SDCCglue.c (emitMaps): allow public sfr variables
7292 * src/SDCCglue.c (initialComments): include compiler build date
7293 with compiler version and put the timestamp of the generated
7294 assembly file on a serperate line to be less confusing.
7295 * src/port.h: added genInitStartup hook
7302 * src/z80/main.c: genInitStartup initialize as NULL (default to
7303 historical behaviour)
7304 * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7305 * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7306 _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7307 library instead of hard coding it into the compiler.
7308 * support/regression/ports/mcs51-stack-auto/spec.mk,
7309 * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7310 * device/lib/mcs51/Makefile,
7311 * device/lib/small/Makefile,
7312 * device/lib/large/Makefile,
7313 * device/lib/mcs51/crtpagesfr.asm,
7314 * device/lib/mcs51/crtstart.asm,
7315 * device/lib/mcs51/crtxclear.asm,
7316 * device/lib/mcs51/crtxinit.asm,
7317 * device/lib/mcs51/crtclear.asm,
7318 * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7319 startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7320 and into user configurable files.
7321 * device/lib/clean.mk: clean mcs51 directory too
7322 * support/regression/tests/longlit.c: added static to T1 declaration
7323 * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7324 accesses in the initialization code
7326 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7328 * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7329 OSCTRIMVAL as noted in bug #916008
7331 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7333 * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7334 in loops with multiple exits (reported as incorrect registers
7335 used by Martin Helmling in Sdcc-user list)
7337 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7339 * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7340 made ds390 register extensions look less like error messages
7342 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7344 * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7345 reported by Adam Wozniak in Sdcc-user list
7347 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7349 * src/SDCCast.c (decorateType): fixed with bug and promotion in
7350 arithmetic optimizations, added debug output
7352 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7354 * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7355 * sdcc.spec: updated and split sdcc into 3 rpms
7356 * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7357 needed for literals of LEFT_OP and '+'
7358 * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7359 introduced RESULT_TYPE_NOPROM
7360 (geniCodeMultiply): fixed logic for decision if mul is optimized to
7362 * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7363 limited promotion to int only for '*'
7364 * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7366 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7368 * src/pic16/gen.c (genSkip),
7369 (genc16bit2lit), (gencjneshort): commented out
7370 (is_LitOp): new helper function, checks operand type
7371 (genCmpEq): rewritten
7373 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7375 * support/regression/tests/bug-908454.c: added
7377 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7379 * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7380 * src/SDCCicode.c (usualBinaryConversions): op needs int type
7381 (geniCodeCast): cosmetic, don't preserve bit storage class
7382 (geniCodeLeftShift): added promotion
7383 (geniCodeLogic): fixed regression
7384 * src/SDCCsymt.c (computeTypeOr): accept bits too
7385 (compareType): 2nd part of fix for bug #908454, needed for bitfields
7387 2004-03-07 Borut Razem <borut.razem AT siol.net>
7389 * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7391 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7393 * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7394 version of pic16_genPackRegisters which does not check if ic is a
7396 * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7397 function cause string1.c regression test fails
7399 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7401 * sim/ucsim/configure.in,
7402 * sim/ucsim/configure,
7403 * sim/ucsim/doc/Makefile.in: use docdir
7404 * src/SDCC.y: fixed sbit atrributes
7405 * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7406 * src/SDCCast.c (decorateType): |^& need special promotion handling
7408 * src/SDCCsymt.h: moved definition of RESULT_TYPE
7409 * src/SDCCsymt.h (computeType),
7410 * src/SDCCicode.c: computeType() needs op
7411 * src/SDCCsymt.c (checkTypeSanity),
7412 * doc/sddman.lyx: "plain" bitfields are unsigned
7413 * src/SDCCsymt.c (computeTypeOr): added
7414 * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7416 * src/SDCCval.c (val*): computeType() needs op
7417 * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7418 * support/regression/tests/onebyte.c: added tests for |^&
7420 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7422 * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7423 for writing icode into asm output.
7425 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7427 * src/pic16/device.c: added some debug lines enabled
7428 with macro DEBUG_CHECK,
7429 * src/pic16/genarith.c: more debug in genPlus,
7430 * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7431 * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7432 * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7433 * (aopForSym): onStack symbols are re-placed in data memspace,
7434 and onStack flag is cleared,
7435 * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7436 copy temporary pcodeop,
7437 * (genPcall): added warning for not updating PCLATU,
7438 * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7439 always true for pic16 port,
7440 * (genMultOneWord): NEW, supports integer multiplication,
7441 * (genMult): modified to call genMultOneWord,
7442 * (ifxForOp): added warning when return NULL,
7443 * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7444 flag is set before call to operandFromSymbol for implicit
7446 * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7447 options.intlong_rent are set by default,
7448 * (_hasNativeMulFor): modified to allow port generation of integer
7450 * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7451 set regtype to REG_SFR for all registers, restricting seting the
7452 accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7454 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7456 * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7457 more than 500 times in the regression tests
7459 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7461 * support/Util/SDCCerr.h,
7462 * support/Util/SDCCerr.c,
7463 * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7465 * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7466 for symbol conflicts.
7467 * support/valdiags/tests/enum.c,
7468 * support/valdiags/tests/tentdecl.c,
7469 * support/valdiags/tests/struct.c: expect possible error messages
7470 referring to original symbol definitions.
7471 * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7473 * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7475 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7477 * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7479 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7481 * src/pic16/ralloc.c (newReg): fixed bug #908929
7483 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7485 * src/ds390/gen.c: added missing #include "main.h"
7487 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7489 * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7490 checking if symbol is already in set,
7491 * src/pic16/device.h: prototype for checkAddSym,
7492 * src/pic16/gen.c: (_G): added entry interruptvector,
7493 * (assignResultValue): removed some commented out lines,
7494 * (genFunction): check for ISR via sym->type, absolute section for
7495 interrupt code is created via a new pBlock, the goto instruction is
7496 placed now correctly at the interrupt vector position, changed all
7497 references from ivec to _G.interruptvector,
7498 * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7499 is the interrupt is a high priority one, same for return from ISR,
7500 * src/pic16/glue.c: changed all calls of addSetHead for publics and
7501 externs to calls of checkAddSym,
7502 * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7503 pic16_pcode_verbose flag is set,
7504 * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7505 * src/pic16/pcoderegs.c: message about how many registers are saved
7506 will only be emitted if pic16_pcode_verbose flag is set,
7508 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7510 * src/ds390/ralloc.h,
7511 * src/ds390/ralloc.c (ds390_regWithIdx),
7512 * src/ds390/gen.c (emitcode),
7514 * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7515 ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7516 ds390operandCompare, getRegsRead, getRegsWritten,
7517 initializeAsmLineNode): customized instruction size calculation for
7518 ds390, started basis for some register optimizations
7519 * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7520 corresponding assembly output
7521 * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7522 missing push/pop of r0/r1. Optimized push/pops
7524 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7526 * src/mcs51/main.c (instructionSize): fixed ACALL size
7527 * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7529 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7531 * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7532 the sorting of rlist with NULL elements
7533 * (print_idataType, print_idata): NEW to create idata sections
7534 * src/pic16/device.h: idataSymSet new variable
7535 * src/pic16/gen.c (genFunction): fixed some bugs in string
7536 comparing, improved the absolute section creation for ISRs,
7537 added FSR0L/FSR0H in registers that are saved in an ISR,
7538 * (genInline): fixed the processing of inline snippets,
7539 now they undergo no process by the peephole optimizer
7540 * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7541 are placed in idataSymSet,
7542 * (pic16emitStaticSeg): extern symbols are added in externs,
7543 * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7544 switching when aboslute variables are placed in access bank memory
7545 * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7546 * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7547 commented out with #if,
7548 * (pic16_packRegisters): reintroduce the check for CAST because some
7549 symbols are not correctly handled,
7550 * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7551 pCodeInstruction instead of pCode,
7552 * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7553 pCodeAsmDir definition,
7554 * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7555 directive, then the argument directive is emitted without the leading
7556 tab, hack for inline labels which must be in the first column,
7557 * (compareLabel,pic16_findNextInstruction),
7558 * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7559 * (insertBankSwitch): modified for the new pCodeAsmDir,
7561 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7562 patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7564 * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7566 * (pushSide): commented out with #if,
7567 * (assignResultValue): fixed some typos in saving
7569 * (genPcall): FIXED and sync'ed with genCall,
7570 * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7571 * (genNearPointerGet): fixed to handle some more cases,
7572 implementation scheme via table reads,
7573 * (genConstPointerGet): modified to access code memory correct,
7574 * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7575 and improved to handle some cases
7576 * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7577 instead of "RETLW" for init data
7578 * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7579 not IN_DIRSPACE, work around to reduce bank switching when aboslute
7580 variables are placed in access bank memory (<0x80 and >=0xf80),
7581 * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7582 TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7583 TBLWT_POSTDEC,TBLWT_PREINC
7584 * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7585 * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7587 * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7588 * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7589 pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7590 * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7592 2004-02-29 Borut Razem <borut.razem AT siol.net>
7594 * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7595 support/Util/findme.h, support/Util/system.h: enhance binary relative
7596 search for lib and include by using findProgramPath()
7598 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7601 * src/SDCCpeeph.c (pcDistance),
7603 * src/mcs51/ralloc.h,
7604 * src/mcs51/ralloc.c (mcs51_regWithIdx),
7606 * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7607 mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7608 mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7609 size calculation port specific, started basis for some register
7611 * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7612 missing push/pop of r0/r1. Optimized push/pops
7613 * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7614 * device/lib/_modsint.c (_modsint),
7615 * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7616 and stack version so regression tests pass
7618 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7620 * src/Makefile.in (dep): include SLIBOBJS in dependency check
7621 * src/SDCCast.c (decorateType): catch another small optimization
7623 * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7624 * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7625 modified to finally use computeType() all over SDCC,
7626 see Feature Request #877103
7627 * src/SDCCval.h: cosmetic
7628 * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7629 valCompare(); regression tested in muldiv.c
7630 * support/regression/tests/muldiv.c (testMod): mod sign follows
7633 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7635 * src/SDCCast.c (decorateType): fixed bug #902362
7636 * doc/INSTALL.txt: fixed install instructions for win32
7638 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7640 * device/include/Makefile.in (install): fixed by replacing spaces
7643 * doc/INSTALL.txt: updated for release
7644 * doc/sdccman.lyx: added warning for --xstack being buggy
7646 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7648 * src/pic16/ralloc.c (packRegsForAccUse): disabled functions with #if
7649 to eliminate build warnings.
7650 * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7652 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7653 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7655 * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7656 removed -penable-stack, added comment for stack pragma, added
7657 warning for not initializing the stack/frame registers, removed
7658 comment at interrupts section
7660 Stack is made permanent, there is no ability to disable stack usage.
7661 * src/pic16/device.h,
7662 * src/pic16/device.c: removed all references to USE_STACK macro,
7663 * src/pic16/device.c (pic16_dump_section): when no elements in
7664 rlist, free rlist before return,
7665 * (pic16_dump_int_registers): NEW, internal registers are a new set
7666 of general purpose registers reused by each function,
7667 * (checkAddReg): returns 1 if registers is added to set,
7668 * (pic16_groupRegistersInSection): when a registers is of type
7669 PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7670 * src/pic16/device.h: memRange and Assigned Memory are deleted,
7671 SRCASECMP macro is moved here from device.c
7672 * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7673 PO_PCLATU, PO_PRODL, PO_PRODH,
7674 * (pic16_pCodeOpType, genMinus,
7675 changed compares to "a" register, with AOP_ACC,
7676 * (pic16_genPlus): fixed some bugs and indented properly,
7677 * (pic16_addSign): changed size to size+offset in the MOVWF
7679 * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7680 multiply 8-bit operand by literal, result is 8-bit,
7681 * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7682 multiply 2 8-bit operand, result is 8-bit,
7683 * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7685 * src/pic16/gen.c: changed accUse to contain WREG only,
7686 * (pic16_emitcomment): renamed to pic16_emitpcomment,
7687 * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7688 true, do not use immediate addressing any more unless sym is a
7689 pointer in codespace,
7690 * (aopForRemat): do not use immediate addressing when symbol not in
7691 codespace and when symbol's address is requested,
7692 * (aopOp): for-loop in if(sym->accUse) is modified for the new
7694 * (aopGet): added case for AOP_ACC and don't return "accumulator
7695 bug" but WREG instead,
7696 * (popGetTempReg): pushes contents of temporary register in stack,
7697 * (popReleaseTempReg): pops contents of temporary register from
7698 stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7699 * (pic16_popGet): separated case AOP_ACC to return register WREG
7700 from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7701 or PO_IMMEDIATE and initializes their instance/offset appropriately,
7702 * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7703 the use of immediate pointers to certain cases only.
7705 * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7706 * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7707 * (assignResultValue, genCall, genRet): modified to use the new
7708 function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7709 genPcall is still broken,
7710 * (genFunction): added code to create 'A' type pBlocks when
7711 interrupt functions are generated, code not extensively tested yet,
7712 ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7713 * (genEndFunction): modified so ISRs pop stored registers from stack,
7714 * (genMultOneByte): cleanup,
7715 * (AccRsh): added flag andmask, to and result with appropriate mask,
7716 * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7717 * (genDataPointerGet): fixed and reenabled its use,
7718 * (genNearDataPointerGet): bugs fixed,
7719 * (genDataPointerSet): bugs fixed,
7720 * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7721 pic16_DumpSymbol, pic16_DumpOp,
7722 * src/pic16/genutils.h: function prototypes for the above functions,
7723 * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7725 * (pic16emitRegularMap): many many many improvements, but needs a
7727 * src/pic16/main.c: enable_stack in pic16_options is removed,
7728 * (_pic16_parseOptions): removed command line options -penable-stack,
7729 * (_process_pragma): emit stack symbol only when stack pragma is
7731 * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7732 redirected to FSR0L/FSR0H pair,
7733 * (pic16_get_op, pic16_get_op2): modifications and improvements,
7734 * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7735 cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7737 * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7738 * (dumpPicOptype): NEW,
7739 * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7740 * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7741 with movff instruction,
7742 * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7743 added pic16_int_regs, some packRegsFor* functions are commented out,
7744 because produce errors,
7745 * src/pic16/NOTES: minor modifications
7747 2004-02-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7749 * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7750 as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7752 * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7753 * as/mcs51/lkaomf51.c: fixed bug #895763
7755 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7757 * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7759 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7761 * doc/sdccman.lyx: added details about the HC08 storage classes and
7762 interrupts, fixed the register usage info for z80 & gbz80
7764 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7766 * doc/sdccman.lyx: added more pic16 port documentation
7767 * device/include/pic16/: added header pic18fregs.h
7769 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7771 * doc/sdccman.lyx: added Vangelis' contribution
7773 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7775 * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7776 extend to the next CALL or PCALL, not just to the next CALL.
7778 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7780 * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7782 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7784 * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7785 bug #895752 and a better fix for bug #716790
7787 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7789 * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7791 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7793 * doc/sdccman.lyx: minor changes, minor changed
7795 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7797 * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7798 which can't handle SDCC_NEWONEBYTEOPS,
7799 (geniCodeMultiply): removed conversion from mult to shift for pic14
7802 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7805 * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7806 rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7807 thus fixing bug #895406
7809 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7811 * device/lib/_modsint.c,
7812 * device/lib/_modslong.c: sign follows divisor only
7813 * src/hc08/gen.c (genMultOneByte): if result size is 1,
7814 signs or signedness can be ignored
7815 * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7816 * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7817 added optimization for IFX,
7818 (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7820 reenabled optimization for IFX, which was removed on 2004-01-11
7821 * src/SDCCast.h: added return type IFX
7822 * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7823 arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7824 promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7825 SDCC_OLDONEBYTEOPS selects the old behaviour
7826 * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7827 changed again and commented promotion rule
7828 * src/SDCCval.c (valDiv): promotion no longer necessary
7829 * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7830 * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7832 * support/regression/tests/onebyte.c: added
7834 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7836 * gen.c (genInline): reverted to old code for assemnling inline
7837 code because of bug reported James Chadd
7839 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7841 * ralloc.h: missing declarations from previous patch,
7842 seems that patch for ralloc.h was never applied, fixed
7844 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7845 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7849 * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7850 indirect addressing. Marked FSR0 as deprecated
7851 * gen.c (pointerCode): commented out, not needed now
7852 (pic16_popGet2p): new MOVFF helper function
7854 (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7855 (shiftRLong): removed duplicate debugging info
7857 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7859 * src/ds390/gen.c (genNearPointerGet),
7860 * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7861 optimization with bits, but not bitfields.
7862 * src/ds390/ralloc.c (packRegisters),
7863 * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7865 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7867 * src/SDCCcse.c (algebraicOpts): copy operands before modification
7869 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7872 * src/SDCCicode.c (operandFromSymbol),
7873 * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7874 * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7875 * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7876 * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7877 * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7878 * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7880 * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7881 * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7882 printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7883 * src/SDCCsymt.c (newSymbol),
7884 * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7887 * src/SDCCval.c (newiList): fixed bug #885705
7889 2004-02-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7891 * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7892 * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7894 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7896 * device/include/c8051f120.h,
7897 * device/include/c8051f300.h,
7898 * device/include/c8051f310.h: added/updated header files for Silicon
7899 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7900 * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7901 in new section Submitting patches
7903 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7905 * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7906 genFarPointerGet, genCodePointerGet, genGenPointerGet,
7907 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7909 * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7910 genFarPointerGet, genCodePointerGet, genGenPointerGet,
7911 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7913 * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7914 genFarPointerGet, genCodePointerGet, genGenPointerGet,
7915 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7917 * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7918 genFarPointerGet, genCodePointerGet, genGenPointerGet,
7919 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7920 genGenPointerSet): fixed bug #892400
7921 * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7922 to eliminate build warnings.
7923 * src/SDCCast.c (processParms),
7924 * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7926 * support/valdiag/valdiag.py: added GCC to the list of defines active
7927 when compiling with gcc
7929 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7931 * support/Util/SDCCerr.h,
7932 * support/Util/SDCCerr.c,
7933 * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7934 with an incomplete type (fixed bug #883734)
7935 * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7937 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7939 * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7941 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7943 * src/SDCCast.c (decorateType),
7944 * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7945 function pointer implementation
7946 * support/regression/tests/funptrs.c: added tests to verify both forms
7947 of function pointers work correctly. Added tests to verify parameters
7948 are passed in the correct order.
7950 2004-02-06 Vangelis Rokas <vrokas AT otenet.gr>
7952 * device.c (regCompare): registers are sorted by ascending
7953 address and increasing size,
7954 * main.c (_pic16_finaliseOptions): removed the declaration
7955 of compiler macro MCU. Now a macro of the format pic18fxxxx
7956 will be defined from the command line
7958 2004-02-06 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7959 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7961 * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7962 PCOP_RLCF was overwritten!
7963 * gen.c (genSkip): commented out calls to pic16_emitcode,
7964 * (genCmpEQ): fixed "long" compares, only high word did get compared,
7966 * (genRRC): added debugging info,
7967 * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7968 overwritten while shifting,
7969 * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7970 overwritten while shifting,
7973 * (shiftLLeftOrResult),
7974 * (shiftRLeftOrResult),
7976 * (shiftLLong): Implemented with pic16_emitpcode
7977 * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7978 * (genLeftShift): Fixed bug, operand for shift by variable always
7979 was "and"ed with 0x0f,
7980 * (genLeftShiftLiteral),
7982 * (genRightShiftLiteral): added debugging info,
7983 * (genrshFour): added comment,
7984 * (genRightShift): determined signedness from operand "left"
7987 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7989 * src/SDCCicode.c (geniCodeParms),
7990 * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7991 function pointers, fixed function pointer bugs #861242 and #861896
7993 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7995 * device/include/c8051f000.h,
7996 * device/include/c8051f120.h,
7997 * device/include/c8051f300.h: added header files for Silicon
7998 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8000 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8002 * src/SDCCast.c (processParams): added new type flow and restructured
8003 (gatherAutoInit): added new type flow
8004 (addCast): cosmetic changes
8005 (getLeftResultType): added new type flow for array indices, patch
8006 provided by Stas, see FR #877103
8007 (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8008 array index patch by Stas
8009 * src/SDCCast.h: added prototype getResultTypeFromType()
8011 * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8012 * src/pic/glue.c (pic14emitStaticSeg),
8013 * src/pic16/glue.c (pic16emitStaticSeg),
8014 * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8015 for initialization of symbols
8016 * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8017 * support/Util/SDCCerr.h:
8018 * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8019 * .version: bumped version number to 2.3.8
8020 * device/include/Makefile.in (install),
8021 * doc/Makefile (install): changed to 'rm `find ...`' construct to
8024 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8026 * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8027 Slade Rich fixed an optimization bug
8028 * src/pic/pcodepeep.c,
8029 * src/pic/pcoderegs.c
8030 * doc/Makefile (install): added test for directory
8032 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8034 * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8035 * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8036 * src/pic/ralloc.c (getRegPtr, getRegGpr),
8037 * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8038 * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8039 * as/mcs51/asexpr.c (term),
8040 * as/hc08/asexpr.c (term): fixed bug #887146
8042 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8044 * src/z80/gen.c (genMult): handle single byte result product
8045 * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8046 DUMMY_READ_VOLATILE (fixed bug #886367)
8048 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8050 * support/regression/tests/libmullong.c: fixed logic, on little endian
8051 hosts we ended without a mullong_wrapper()
8053 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8055 * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8056 virus/worm forged address usage.
8058 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8060 Fixed promotion, it should be done on AST level:
8061 * src/SDCCast.c (addCast): added promotion to int
8062 (decorateType): updated call to upCast()
8063 * src/SDCCicode.c (geniCodeLeftShift): removed call to
8064 usualUnaryConversions()
8066 2004-01-26 Michael Hope <michaelh AT juju.net.nz>
8068 * support/regression/tests/literalop.c (mulWrapper): Added a
8069 wrapper to remove integer overflow warnings.
8071 * support/regression/tests/float_trans.c: Made work on host.
8073 * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8076 * support/regression/generate-cases.py (main): Changed from inline
8079 * doc/Makefile (install): Changed to depth first to get rid of
8080 missing directory install warning.
8082 * as/Makefile (install-doc): Made work on Mac.
8084 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8086 * src/SDCCast.c: added an additional type flow in decorateType() of
8087 opposite direction, see feature request #860006; it's enabled at runtime
8088 by setting the environment variable SDCC_NEWTYPEFLOW
8089 * src/SDCCast.h: changed prototype of decorateType()
8090 * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8091 * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8092 'char' to 'int' can be omitted, if both operands are 'unsigned char';
8093 see feature request #877103
8094 * src/SDCCval.c: updated call of decorateType()
8095 (valBitwise): fixed bug #882876
8096 (valMinus): added promotion
8097 (valLogicAndOr): result is unsigned
8098 (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8099 * src/SDCCsymt.c (computeType),
8100 * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8101 must not cause an unsigned operation
8102 * src/pic/glue (pic14emitRegularMap),
8103 * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8105 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8107 * src/pic/pcode.c (PCodeID): commented out left over debug code
8109 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8111 * support/valdiag/tests/overflow.c: added shift tests
8119 * src/pic/pcodepeep.c,
8120 * src/pic/pcoderegs.c,
8122 * src/pic/ralloc.h: applied patch from Slade Rich;
8123 added support for multiple code pages and multiple RAM banks on the
8124 PIC 14 port. The ASM files now no longer simply assume all the
8125 code / RAM are in the same page / bank. This means the linker can
8126 safely allocate code/RAM of separate ASM files to different pages/banks.
8127 * doc/sdccman.lyx: added Slade's tips
8128 * src/mcs51/peeph.def: fixed bug #880768
8130 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8132 * src/hc08/ralloc.c (rematStr): fixed bug #879282
8133 * src/SDCCast.c (decorateType): fixed bug #880197
8135 2004-01-20 Michael Hope <michaelh AT juju.net.nz>
8137 * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8140 * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8141 strtof is not part of C89 and isn't included with Mac OS X.
8143 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8145 * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8146 shiftL2Left2Result): fixed bug #879326
8147 (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8148 (genMultOneByte): fixed bug in signed vs unsigned multiplication
8149 * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8150 address fetch for clr instruction
8151 * device/lib/hc08/_mulint.c: created optimized assembly version
8152 * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8154 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8156 * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8157 proposed in FR #877103
8159 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8161 * src/SDCCval.c (cheapestVal): added missing checks
8162 * src/SDCCicode.c (usualBinaryConversions): fixed condition
8163 * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8165 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8167 * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8170 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8172 * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8173 loaded with the linker search paths (-L arguments) and the libraries
8174 to be linked with the current source (-l arguments). Changes
8175 currently will affect only the pic16 port.
8176 * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8177 include path the port specific paths and port specific libraries,
8178 * gplink command now contains the $3 argument,
8179 * src/pic16/device.h,
8180 * src/pic16/device.c,: structure PIC_device is made public and
8181 renamed to PIC16_device, the same for variable Pics which is renamed
8182 to Pics16. Updated all references to them.
8183 * src/pic16/glue.c (pic16glue): corrected bug with code
8184 initialization which bypassed the variable initializations block.
8186 * device/lib/pic16/Makefile.rules: removed --penable-stack from
8187 COMPILE_FLAGS and added the --nostdinc option
8189 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8191 * device/include/mc68hc908jb8.h: Register defs for another member
8192 of the hc08 family. Contributed by Bjorn Bringert - thanks!
8194 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8196 Documenting changes from previous commits.
8197 * configure.in (version 1.56),
8198 * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8199 when generating output files to configure the pic16 library,
8200 but now I've commented it out, since gputils aren't installed in the
8201 SF compile farm, so library won't compile
8203 * device/lib/Makefile.in (version 1.56): initially I've added in
8204 target 'all' the prerequestive 'model-pic16' so it compiled the
8205 pic16 library, but now I've commented it out for the same reasons
8207 * added targets 'model-pic16' and 'objects-pic16' to compile the
8209 * added target 'port-specific-objects-pic16' to handle the
8210 generated libraries and copy them into the build/ directory
8211 * added target 'clean-intermediate-pic16' to clean intermediate
8212 files into pic16 directory
8213 * in target 'installdirs' added line to create directory pic16 in
8214 the installation path
8216 * device/include/Makefile.in (version 1.11): in target 'install'
8217 added lines to copy all header files to installation path,
8218 * in target 'installdirs' added line create directory for pic16
8219 headers in the installation path
8221 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8223 * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8226 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8229 * device/lib/configure.in,
8230 * device/lib/configure: fixed for autoconf 2.57
8232 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8234 * src/z80/main.c (_parseOptions): fixed the portmode= command line
8235 option so that it actually works. Made it specific to the z80, since
8236 the gbz80 doesn't have these kinds of I/O ports.
8238 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8240 * device/include/z180.h,
8241 * device/lib/_memcpy.c,
8242 * device/lib/_memmove.c,
8243 * device/lib/_mulint.c,
8244 * device/lib/ser_ir.c,
8245 * device/lib/ser_ir_cts_rts.c,
8246 * device/lib/_strcmp.c,
8247 * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8248 * src/z80/main.c (_process_pragma): add support for pragmas bank and
8249 portmode; added deprecation warning for bank= and protmode= forms.
8250 Also, guard against buffer overflow.
8251 * src/z80/gen.c (aopGet): generate better code for sfr banked read
8253 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8255 * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8256 changed interrupt vector table generation to only emit declared vectors.
8257 * device/include/Makefile.in: added missing backslash
8258 * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8260 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8262 Mainly changes to support compilation of the device libraries
8263 * src/pic16/device.c: stack is allocated via symbol and not
8264 via literal number. The symbol is placed in the corresponding
8265 position of the data ram
8266 * (pic16_dump_section): relocatable and absolute uninitialized
8267 data are now emitted in sorted order to reduce section naming,
8268 * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8269 weren't marked as being in the access bank,
8271 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8273 Added portion of GNU PIC Library under the directory
8274 device/include/pic16 and device/lib/pic16. These files
8275 contain the declarations of SFRs for the PIC18Fxx2 devices.
8276 The directory is initialized via configure from toplevel.
8278 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8280 * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8281 the spilllocations to be compared correctly
8283 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8285 * src/SDCCast.c (decorateType): fixed bug introduced today
8287 2004-01-12 Borut Razem <borut.razem AT siol.net>
8289 * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8290 doc/sdccman.lyx: upper case pragmas are deprecated
8292 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8294 * src/SDCCast.c (decorateType): replacing 'ul > 0' by '!ul' results
8295 in simpler and even better code
8297 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8299 * src/SDCCicode.c (operandOperation): fixed bug #874819
8300 * src/SDCCast.c (decorateType): fixed
8301 char foo (unsigned long ul) { return ul > 0; }
8303 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8305 * doc/sdccman.lyx: Moved and added some sections, small changes
8306 all over. Telling LaTeX to be less strict with word spacing
8307 to better keep the right margin. Changed some notes about
8308 maintainance of the ports in section 3.2.1 - is it OK like this?
8310 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8312 SDCC source changes:
8313 * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8314 convilong): modified to inform the pic16 port that builtin functions
8317 PIC16 PORT specific changes:
8318 * src/pic16/device.c pic16_dump_equates() added,
8319 processor registers declared internally by the port are emitted in
8320 the translation as equates,
8321 * src/pic16/gen.c: inline code is passed unprocessed to the
8323 * (pic16_popGetLit2): fnuction modified to take second operand as
8324 pCodeOp pointer and not as literal,
8325 * (popRegFromIdx): prefixed with pic16_,
8326 * (pic16_popCombine2): modified to receive already allocated pCode
8328 * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8329 * (genFunction): initializes local stack frame and pushes on stack
8330 all the registers used by this function,
8331 * (genEndFunction): restores all registers from stack and restores
8333 * src/pic16/glue.c (pic16emitRegularMap): various changes and
8335 * (pic16glue): changed the program startup sequence,
8336 * added new dbName code 'A' for functions placed in absolute section
8337 * src/pic16/main.c: added function attribute _naked,
8338 * added pragma 'code' to place a fnuction at an absolute address,
8339 * added command line arguments --debug-ralloc and --pcode-verbose,
8340 * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8341 * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8342 * (pic16_newpCodeOpLit2): modified to take the second operand as
8344 * (pic16_printpBlock): modified to emit each function in a separate
8346 * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8347 UPPER for immediate operands,
8348 * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8350 * src/pic16/peeph.def: all peepholes with movff are commented out,
8351 because there is a problem in the pcode peep optimizer,
8352 * src/pic16/ralloc.c: the register allocator can now reuse local
8353 function symbols for another function. This saves register usage.
8354 * src/pic16/ralloc.h: added flag isLocal in structure regs,
8356 Added file src/pic16/NOTES with information about program writing on
8357 the current port version.
8359 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8361 * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8362 and peephole 252 (array access)
8364 2004-01-09 Borut Razem <borut.razem AT siol.net>
8366 * src/SDCCmain.c : fixed #872250: -l command line defined library
8367 files are scanned before standard library files
8369 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8371 * src/SDCCast.c (decorateType): fixed bug #874046
8373 2004-01-09 Borut Razem <borut.razem AT siol.net>
8375 * support/scripts/sdcc.nsi: remove previous installation
8377 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8379 * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8380 bytes for last interrupt vector (mcs51)
8381 * sdcc.spec: fixed typo
8383 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385 * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8386 gen51Code): more efficient parameter receive for --model-large
8389 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8392 * src/z80/main.c: added missed needLinkerScript flags (more than
8393 one port structure defined in these file)
8394 * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8397 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8399 * src/SDCCmain.c: removed various references to DEFAULT_PORT
8400 * src/port.h: added flag needLinkerScript in port->linker
8401 structure to inform whether to create a .lnk file or not,
8409 * src/z80/main.c: changed appropriately to configure
8410 needLinkerScript flag
8412 * src/pic16/gen.c (genAddrOf): fixed bug #863624
8413 * src/pic/glue.c: added variable udata_section_name to
8414 override default uninitialized data segment definition for
8415 devices only with SHAREBANK memory (reported from Erik Epetrich)
8416 * (pic14emitOverlay): modified to emit a commented overlay segment
8417 directive when no overlay data exist
8418 * (picglue): modified to emit uninitialized data segment
8419 according to udata_section_name
8420 * src/pic/main.c (_pic14_parseOptions): added command line
8421 options --udata-section-name=[name] to override default
8422 udata definition name
8423 * modified _linkCmd and _asmCmd to include compiler passed
8424 arguments via -W option
8425 * src/pic16/main.c: added $l in _asmCmd, changed extension for
8426 object file from '.rel' to '.o' in port->linker structure,
8427 changed size of fptr from 2 to 3 in port structure
8429 2004-01-07 Borut Razem <borut.razem AT siol.net>
8431 * support/scripts/sdcc.nsi: update PATH
8432 * support/scripts/sdcc.ico: craeted
8434 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8436 * device/include/Makefile.in: fix install
8437 * doc/Makefile: fix install
8439 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8441 * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8443 * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8444 how the function variable allocation summary is displayed; also
8445 include information about variables allocated to the overlay
8448 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8450 * as/mcs51/lkmain.c: Help about -Y option
8451 * as/mcs51/lkarea.c: Fixed gcc warnings
8453 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8455 * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8457 * support/valdiag/tests/overflow.c: added
8458 * src/SDCCast.c (decorateType),
8459 * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8460 LEFT_OP (left shift)
8462 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8464 * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8465 (default behaviour).
8467 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8469 A python script to validate compiler diagnostic messages. It can be
8470 used to verify that sdcc complains about bad c source code and
8471 gives a good location of the error.
8472 * support/valdiag/Makefile,
8473 * support/valdiag/valdiag.py,
8474 * support/valdiag/tests/*
8476 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8478 * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8479 * src/SDCCsymt.c (newEnumType),
8481 * support/Util/SDCCerr.c,
8482 * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8484 * support/regression/tests/enum.c: added test for enum values that
8485 require at least 2 bytes of storage.
8487 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8489 * src/common.h: added ifndef/define/endif macros
8490 around the header file.
8491 Bug reported from Jesus Calvino-Fraga
8493 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8495 * sdcc.spec: updated
8496 * device/include/Makefile.in: don't install CVS directories
8497 * device/lib/Makefile.in: added removal of CVS directories after install
8498 * doc/Makefile: fixed install, added local_icons
8499 * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8500 * src/mcs51/gen.c (genRightShift): fixed bug #870788
8501 * src/ds390/gen.c (genRightShift): fixed bug #870788
8502 * src/SDCCast.c (decorateType): fixed bug #870781
8504 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8506 PIC16 port related changes:
8507 * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8508 added variable stackPos,
8510 * gen.c: genCall, assignResultValue: added support for
8511 pushing/retrieving function parameters to/from stack,
8512 genFunction,genEndFunction: setup stack frame for the
8514 genAddrOf: will be changed according to bug 863624
8516 * added files genutils.c and genutils.h which contain gen*
8517 debugged and optimised functions extracted from gen.c
8519 * glue.c: added variable 'externs' which holds extern symbols,
8520 pic16emitRegularMap: is modified to properly handle relocatable
8521 symbols under the new scheme,
8522 pic16createInterruptVect: is modified
8523 pic16printPublics: is modified to emit 'global' assembler directives,
8524 added pic16_printExterns to print extern symbols,
8525 pic16glue: initializes stack/frame pointer in the beginning of
8526 the assembly output. Temporary hack, will be corrected later,
8527 because gplink yet does not support stack and SDCC does not
8528 yet support a type of crt0.o object to create the final binary.
8530 * Removed many lines that contain 8051 legacy code.
8531 * The code is finally placed under a 'code' directive.
8532 * Added port specific options.
8534 * _process_pragma: simplified since now we do not need *special*
8535 include file to define SFR registers. But a separate header
8536 will be needed. This will be developed later.
8537 * _pic16_parseOptions: added, parses port specific options:
8538 --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8539 --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8540 --preplace-udata-with=
8542 * _pic16_setDefaultOptions: modified to initialize section names,
8543 but hack is temporarly out of order since it needs improvement.
8544 * _pic16_genAssemblerPreamble: configuration words are emitted by
8545 their address instead of their name. This part is incomplete and
8546 supports only the 18Fxx2 devices. Other devices will emit an error
8547 during assembly since they do not contain the same set of config
8549 * _pic16_genIVT: is modified,
8551 * pcode.c: added definitions for some hardware registers that are needed
8553 * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8554 All PCI entries are updated. Now LFSR is supported.
8555 * Removed pic16_pciTRIS is mentioned by mdubuc in source
8556 * added pic16_newpCodeOpLit2 to support instructions with
8557 two literal arguments
8558 * pic16_pCode2str: corrected code that emits assembler instructions
8559 with two literal operands and those that have an access bit modifier
8560 * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8561 this fixes a bug which caused some labels to be lost, when an
8562 assembler directive was added, i.e. banksel,
8563 * pic16_FixRegisterBanking: improved logic that causes the insertion
8565 * InlineFunction: functions that are called once, are not any more
8566 inlined. This can be a port option in the future,
8568 * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8570 * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8571 hold the corresponding uninitialized symbols,
8572 * pic16_allocProcessorRegister: registers have explicit marked the
8574 * pic16_allocInternalRegister: registers are explicit marked as
8576 * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8577 processing list, so bit registers were lost,
8580 * ralloc.h: added field 'accessBank' and original symbol operand
8581 in register definition,
8582 * removed the field isMapped from register definition,
8584 ** Several functions have been removed from various sources:
8585 BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8586 pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8587 isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8588 pic16_assignRelocatableRegisters
8590 ** others have been introduced:
8591 pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8592 pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8594 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8596 * support/scripts/inc2h.pl: changed definition of BIT_AT
8597 to emit 'sbit at' instead of 'bit at'. This was a request.
8599 PIC16 port related preliminary changes:
8600 * gen.c: prefixed function popRegFromString with
8601 pic16_ and all references to it corrected
8602 * pcode.c: all pic16_pc_* hardware registers prefixed
8603 with underscore (_),
8604 pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8605 * ralloc.c: newReg(): when register is REG_SFR then
8606 set address to rIdx,
8607 pic16_allocProcessorRegister(): marks register wasUsed=0
8608 pic16_writeUsedRegs(): added a call to assign processor
8609 registers via pic16_assignFixedRegisters
8611 2004-01-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8613 * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8614 as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8615 variables in unused register banks. Also the SSEG is placed
8616 wherever there is enough space for it, and IDATA can be anywhere
8617 in internal RAM. For now compile using -Wl-Y[stack_size].
8618 The mem file is different for this option as well, since it
8619 makes no sense of talking about DSEG lenght.
8621 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8623 * src/SDCClrange.c: fixed bug 869095 that caused segfault
8624 in certain cases, e.g. when ROM assignment, patch provided
8625 from Albert den Haan.
8627 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8629 Many signedness and type propagation fixes:
8630 * src/SDCCicode.c: made geniCodeCast() static
8631 replaced SPEC_ by IS_ (cosmetic)
8632 (operandOperation): fixed div and mod operation
8633 (usualBinaryConversions): added support for promotion of char
8634 (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8635 (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8636 (geniCodeAdd): an array index will stay unsigned, even if promoted
8638 (geniCodeArray): ditto
8639 * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8640 * src/SDCCsymt.c (computeType): added more support for char;
8641 promotion of char is selectable by promoteCharToInt, fixed signedness
8643 (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8644 * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8645 * src/SDCCval (val*): replaced signedness calculation by
8647 rearranged if-branches (cosmetic)
8648 (valShift): added warning W_SHIFT_CHANGED
8649 (valCompare): fixed problem with different types
8650 * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8651 * support/regression/tests/literalop.c: added many cases
8652 * support/regression/tests/ast_constant_folding.c: changed finally to
8654 * .version: new year, new version: 2.3.7
8655 * src/SDCCmain.c (main): applied patch #866468
8656 * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8657 provided by Scott Bronson
8658 * doc/sdccman.lyx: updated documentation for sdcdb
8659 updated and added chapter tips
8661 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8663 * src/SDCCsymt.h: missing from yesterday's commits
8665 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8667 * src/SDCC.y (struct_or_union_specifier),
8668 * support/Util/SDCCerr.c,
8669 * support/Util/SDCCerr.h: verify that struct & union tags are used
8672 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8674 * src/SDCCglobl.h: missing from yesterday's commits
8676 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8678 * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8679 sft_attributes, struct_declaration, parameter_declaration,
8680 type_name, start_block, declaration_list),
8681 * src/SDCC.lex (check_type): support redefinition of typedef names
8683 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8685 * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8686 aligned xdata arrays. Erik helped me with the if clause.
8688 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8690 * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8693 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8696 * src/SDCCast.c (newAst_),
8698 * src/SDCCicode.c (ast2iCode, newiCode),
8700 * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8701 expr, statement, expression_statement, selection_statement,
8702 iteration_statement, expr_opt, jump_statement): foundation for tracking
8704 * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8707 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8709 * support/Util/SDCCerr.c,
8711 * src/SDCCast.c (createCase, createDefault, decorateType),
8712 * src/SDCClabel.c (labelUnreach),
8713 * src/SDCC.y (labeled_statement, jump_statement): More improvements
8715 * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8716 (with thanks to Stas Sergeev)
8717 * device/include/time.h,
8718 * device/lib/time.c (CheckTime): suppress unreachable code warning
8720 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8722 * src/SDCCast.c (createIvalCharPtr),
8723 * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8725 * support/regression/tests/nullstring.c: tests for these two bugs
8727 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8729 * support/Util/SDCCerr.h,
8730 * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8731 * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8732 about storage class and 'at' used inside struct or union
8733 * src/SDCCBBlock.c (iCodeFromeBBlock),
8734 * src/SDCCcse.c (ifxOptimize),
8735 * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8736 printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8737 printIval, emitStaticSeg, emitOverlay),
8738 * src/SDCClabel.c (deleteIfx),
8739 * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8740 * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8741 gatherAutoInit, processParms),
8742 * support/Util/SDCCerr.h,
8743 * support/Util/SDCCerr.c (werrorfl): Support for better error location
8744 reporting for post-parse errors.
8746 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8748 * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8749 implicit casts via union; they don't work on big endian systems
8750 (possible fix for bug #861138)
8752 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8754 (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8755 * src/mcs51/main.c: fixed the fix for bug #737001
8757 2003-12-15 Borut Razem <borut.razem AT siol.net>
8759 * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8761 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8763 * support/makebin/makebin.c: put output in binary mode
8765 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8767 * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8768 xdata and data memory on startup. Set the environment variable
8769 SDCC_NOGENRAMCLEAR to disable this.
8770 * src/mcs51/peephole.def,
8771 * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8772 (allows non-interrupt and interrupt code to safely compete for a resource
8773 without the non-interrupt code having to disable interrupts)
8775 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8777 * src/SDCCicode.c (geniCodeAdd),
8778 * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8779 with valFromType if type might be a pointer and host is big endian).
8780 * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8781 types, not just integer types.
8782 * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8783 multiply defined with mismatching "at" address.
8785 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8787 * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8788 * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8789 * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8790 with embedded nulls (fixed bug #753752)
8792 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8794 * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8795 Apparently this did not see much testing (endless loop)
8797 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8799 * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8801 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8803 * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8804 gracefully handle NULL memmap pointers
8806 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8808 * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8809 instead of deleting the iCode when an operand is volatile
8810 * src/z80/gen.c (genDummyRead),
8811 * src/mcs51/gen.c (genDummyRead),
8812 * src/ds390/gen.c (genDummyRead),
8813 * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8815 * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8816 * src/SDCC.y: fixed bug #850420
8818 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8820 Applied z80 i/o port patch from Peter Townson and fixed some operators
8821 to better handle operands in A register.
8822 * device/include/z180.h
8828 * src/z80/peeph-z80.def
8832 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8834 * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8836 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8838 * device/lib/hc08/_mullong.c: Removed extra #endif
8840 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8842 * sim/ucsim/hc08.src/inst.cc,
8843 * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8845 * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8846 * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8847 * device/include/stdarg.h: fixed varargs for hc08
8848 * device/lib/Makefile.in,
8849 * device/lib/hc08/Makefile,
8850 * device/lib/hc08/_mulint.c,
8851 * device/lib/hc08/_mullong.c: fixed some endian problems
8853 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8855 * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8856 * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8857 * device/lib/_gptrget.c,
8858 * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8860 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8862 * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8863 * src/SDCCast.c (astErrors): fixed bug #846007
8864 * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8866 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8868 * src/SDCCast.c (decorateType): disabled a transformation I added in
8869 revision 1.188 (access to fields of a structure at an absolute address);
8870 it breaks with bitfields, extern declarations, and gcse analysis.
8871 * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8872 could be assigned through a pointer, so don't complain.
8873 * src/SDCCast.c (astErrors),
8875 * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8877 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8879 * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8880 * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8881 output of __config directives, since gpasm now supports them
8882 * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8883 pre-processor macro, i.e. -DMCU=p18f452
8884 * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8885 and modified to handle 'cast' icode similarly to '=' icode
8886 * src/pic16/device.h (typedef struct PIC_device): added field
8887 'extMIface' to indicate that chip has external memory interface
8888 * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8889 18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8892 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8894 * src/SDCC.y (pointer): fixed bug #846006
8895 * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8896 * src/SDCCast.c (decorateType): fixed bug #846009
8897 * src/ds390/peeph.def,
8898 * src/ds390/gen.c (genAnd, genOr),
8899 * src/mcs51/peeph.def,
8900 * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8902 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8904 Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8911 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8915 * src/SDCCbitv.c: added function to free a bitvector
8917 * src/SDCClrange.c: added function to recompute the liveranges
8919 * src/ds390/ralloc.c,
8920 * src/hc08/ralloc.c,
8921 * src/mcs51/ralloc.c,
8923 * src/pic16/ralloc.c,
8924 * src/xa51/ralloc.c,
8925 * src/z80/ralloc.c: recompute the liveranges after register packing
8927 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8929 * src/SDCCloop.c (newInduction): fixed bug #845630
8931 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8933 * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8934 inadvertantly left behind from my 2003-11-12 change
8936 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8938 Updated headers I neglected to commit yesterday.
8942 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8944 * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8945 * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8946 * src/SDCCopt.c (eBBlockFromiCode),
8947 * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8948 the creation of the key hash table from the sequencing so it can be used
8949 earlier (for some GCSE bug fixes still pending)
8951 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8953 * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8954 * support/regression/tests/addsub.c: testing genPlus shortcut
8956 2003-11-15 Borut Razem <borut.razem AT siol.net>
8958 * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8960 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8962 * src/SDCCcse.c (cseBBlock): fixed bug #527779
8963 * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8964 ordering is immaterial.
8965 * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8967 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8969 * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8970 * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8971 (SIGSEV) of bug #840381
8972 * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8973 unlink new file before rename if new and old filenames are the same)
8975 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8977 * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8978 uninitialized variables) for the mcs51. Set environment variable
8979 SDCC_GENRAMCLEAR to test.
8980 xdata initialization slightly shorter
8982 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8985 * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8986 #838241 & 780691 (basicly the same bug)
8987 * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8988 * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8990 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8992 * src/SDCCmain.c (linkEdit): "fix" #834252
8994 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8996 * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8998 * src/SDCC.y: fixed bug #819403
9000 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9002 * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9003 the reentrant attribute.
9004 * src/hc08/gen.c (genPackBits): added missing stack readjustment
9005 * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9007 * src/SDCCast.c (decorateType): fixed bug with storage class not being
9008 updated during pointer dereference; f.e. ~(((char *)1)*) was being
9009 erroneously reduced to a literal.
9010 * src/hc08/ralloc.c (packRegisters, rematStr),
9011 * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9014 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9016 * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9017 * doc/sdccman.lyx: changed from 'article' to 'book'
9018 * doc/Makefile: readded test_suite_spec and cdbfileformat
9020 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9022 * device/include/stdlib.h: include malloc.h to comply with ANSI
9023 * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9025 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9027 * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9028 * doc/clean.mk: also remove *.out files
9029 * doc/sdccman.lyx: some additions, larger top/bottom margins
9031 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9033 * src/SDCC.y: fixed bug #837365
9034 * support/regression/tests/bitopcse.c
9035 * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9036 a symbol (might be valop instead)
9037 * device/lib/Makefile.in: added errno.c to HC08SOURCES
9038 * device/lib/clean.mk: added hc08 to the cleaning list
9040 2003-11-04 Borut Razem <borut.razem AT siol.net>
9042 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9044 * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9045 as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9046 malloc is declared in standard stdlib.h
9048 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9050 * device/lib/hc08/Makefile: need to clean .rel not .o files
9051 * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9053 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9063 * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9064 * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9065 tests (which uses the port's oclsExpense function)
9071 * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9073 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9075 * src/SDCCcse.c (ifxOptimize),
9076 * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9077 an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9078 deleting the IFX iCode.
9079 * src/hc08/ralloc.c: reduced unneeded slocs
9080 * src/hc08/gen.c: fixed bug in asmopToBoolean
9082 2003-11-04 Borut Razem <borut.razem AT siol.net>
9084 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9085 support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9086 as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9087 transferred to configure
9089 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9091 Use headers defined in the C[++] standards:
9092 * sim/ucsim/gui.src/serio.src/fileio.cc
9093 * sim/ucsim/gui.src/serio.src/frontend.cc
9094 * sim/ucsim/gui.src/serio.src/main.cc
9095 * sim/ucsim/gui.src/serio.src/posix_signal.cc
9096 * support/Util/NewAlloc.c
9102 2003-11-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9104 * Added MSVC projects for hc08 assembler and linker:
9105 all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9106 /as/hc08/link_hc08.dsp
9108 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9110 * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9112 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9114 * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9116 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9118 * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9120 2003-10-31 Borut Razem <borut.razem AT siol.net>
9122 * support/cpp2/cpplib.h,
9123 support/cpp2/cpplib.c,
9124 support/cpp2/cpplex.c,
9125 support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9126 to switch _asm block preprocessing on / off. Default is
9127 #pragma preproc_asm +
9129 2003-10-31 Borut Razem <borut.razem AT siol.net>
9131 * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9132 when outputting comment blocks (when executed with -C option) and
9133 _asm (SDCPP specific) blocks
9135 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9137 * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9139 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9141 * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9143 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9145 * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9146 * src/SDCCast.c (decorateType): fixed bug #832664
9148 2003-10-31 Borut Razem <borut.razem AT siol.net>
9150 * support/cpp2/cpplex.c: fixed for SDCPP:
9151 comments(when executed with -C option) and _asm blocks
9152 were included even if they where in skipped #if block.
9153 Applied solution from GCC cpp 3.3.2
9155 2003-10-31 Borut Razem <borut.razem AT siol.net>
9157 * src/SDCC.lex: sdcc now understands both formats:
9158 '# <line_number> <file_name>' and
9159 '#line <line_number> <file_name>'
9160 * support/cpp2/cppmain.c: sdcpp now generates the standard
9161 '# <line_number> <file_name>' instead of former
9162 '#line <line_number> <file_name>'
9164 2003-10-30 Borut Razem <borut.razem AT siol.net>
9166 * support/cpp2/cpphash.h,
9167 * support/cpp2/cpplib.h
9168 * support/cpp2/cpplex.c,
9169 * support/cpp2/cppmain.c,
9170 * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9172 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9174 Fixed a number of problems revealed by bug #827883.
9175 * src/SDCCloop.c (loopInvariants): Spill location of the
9176 result operand should be recomputed if extracted from
9177 a loop. Also, don't extract assignments of an iTemp
9179 * src/SDCCast.c (isConformingBody): loop reversal should
9180 not occur if the control variable is involved with a
9181 relational operator.
9183 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9185 * .version: bumped to 2.3.6 to reflect the big improvements
9186 made by Erik and Klaus. Thanks!
9188 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9190 Replaced the livrange code.
9191 * src/SDCClrange.c: added new LR code
9193 * src/SDCCBBlock.h: removed remainig parts from old LR code
9194 * src/ds390/ralloc.c,
9195 * src/ds390/gen.c: minor fixes to make it work with new code
9197 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9202 * src/hc08/ralloc.c: Fix various warnings related to the hc08
9203 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9204 (tweaked fix for bug #818696)
9206 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208 * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9210 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9213 * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9214 * src/mcs51/gen.c (gencjneshort),
9215 * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9216 more efficient (per Scott Bronson's suggestion)
9218 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9220 Extended the semantics of the critical keyword to include
9221 individual statements. See RFE #827755 and #799831
9226 * support/Util/SDCCerr.c
9227 * support/Util/SDCCerr.h
9232 2003-10-19 Borut Razem <borut.razem AT siol.net>
9234 * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9236 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9238 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9240 * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9241 and predecrement operand is displayed
9243 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9245 * src/SDCCval.c (valMinus): fixed bug #826041
9247 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9249 Some hc08 related updates that I missed earlier
9250 * sim/ucsim/stypes.h
9251 * support/regression/ports/hc08/spec.mk
9253 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9255 New target "hc08" for the Motorola 68hc08 family of micros
9263 * sim/ucsim/hc08.src/*
9264 * sim/ucsim/configure.in
9265 * src/ucsim/configure
9266 * sim/ucsim/packages_in.mk
9269 * device/include/mc68hc908qy.h
9271 * device/lib/Makefile.in
9272 * support/regression/ports/hc08/*
9273 * support/regression/Makefile
9275 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9277 * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9279 * src/ds390/gen.c (genCast): fixed bug #821957
9281 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9283 * device/lib/logf.c: "fixed" overlay bug
9284 * support/regression/ports/host/spec.mk: added m library
9285 * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9286 * support/regression/tests/float_trans: added (for Eric)
9288 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9290 * src/mcs51/gen.c (genCpl): fixed bug
9291 http://sf.net/mailarchive/message.php?msg_id=6263915
9293 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9295 * src/SDCCast.c (decorateType): added extended constant folding
9296 * src/SDCCsymt.c (computeType): cleanup
9297 * src/SDCCval.c (valShift): minor optimization
9298 * support/regression/tests/ast_constant_folding.c: added
9300 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9302 * src/SDCCmain.c: removed some unintended changes
9304 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9306 * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9307 * src/z80/gen.c: fixed part of bug #817589
9308 * src/SDCCsymt.c (checkFunction): fixed bug #817895
9310 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9312 Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9323 * src/ds390/ralloc.c
9325 * src/mcs51/ralloc.c
9327 * src/pic16/ralloc.c
9330 * src/z80/gen.c: removed unused label "release:"
9332 2003-10-06 Borut Razem <borut.razem AT siol.net>
9334 * src/SDCC.lex: removed definition of unused variables
9335 save_optimize and save_options
9337 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9339 * clean.mk: removed '=' in "-maxdepth=1"
9340 * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9341 * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9343 2003-10-06 Borut Razem <borut.razem AT siol.net>
9345 * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9346 my_unput() replaced by unput()
9348 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9350 * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9351 setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9352 type-punned pointer will break strict-aliasing rules"
9353 Old LR behaviour is again default; Klaus' LR can be choosen by
9354 defining the environment variable LRKLAUS
9358 * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9359 * clean.mk: fixed removal of files in bin/CVS/
9360 * device/lib/clean.mk: fixed removal of directories small and large
9361 * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9363 * src/SDCCval.c: removed superflous test for pedantic
9365 2003-10-05 Borut Razem <borut.razem AT siol.net>
9367 * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9368 Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9369 message "unmatched #pragma SAVE and #pragma RESTORE"
9371 2003-10-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9373 * doc/sdccman.lyx: various additions and updates (interrupts, inline
9374 assembly, critical functions, atomic, nojtbound)
9376 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9378 Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9384 2003-10-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9387 * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9389 * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9391 * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9392 * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9393 * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9395 2003-10-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9397 * src/z80/gen.c (genRet): fixed bug #524753
9398 * src/z80/gen.c (genCast): fixed internal error on cast from
9400 * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9401 fix for bug #477835 to the z80
9402 * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9403 for tracking iCodes in the peephole optimizer for z80
9405 2003-10-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9407 * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9408 the other part of bug #814548
9409 * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9411 2003-09-30 Bernhard Held <bernhard AT bernhardheld.de>
9413 * src/SDCCcse.c: fixed part of bug #814548
9415 2003-09-28 Borut Razem <borut.razem AT siol.net>
9417 * src/asm.c: rewrite of printILine() to use temporary file instead
9419 * src/xa51/main.c: commented out declaration of int rewinds
9421 2003-09-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9423 * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9425 2003-09-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9427 * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9428 * src/asm.c (printILine): Fixed bug #811015
9430 2003-09-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9432 *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9435 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9437 * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9438 * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9439 to correctly handle general case of AOP_PAIRPTR
9440 * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9442 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9444 * src/mcs51/ralloc.c (fillGaps),
9445 * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9446 register positioning bug)
9448 2003-09-21 Bernhard Held <bernhard AT bernhardheld.de>
9450 * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9452 2003-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9454 * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9455 genCodePointerGet, genGenPointerGet, genFarPointerSet,
9456 genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9457 (ralloc doesn't intentionally do this now, but perhaps later)
9458 * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9459 * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9460 register positioning bugs (Fixed bug #762602 and #795325)
9461 * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9463 * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9464 lines that --i-code-in-asm generates
9466 2003-09-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9468 *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9469 trying to fclose a FILE* that was already closed.
9471 2003-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9473 * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9474 of const struct should be treated as if const themselves)
9476 2003-09-18 Bernhard Held <bernhard AT bernhardheld.de>
9478 * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9480 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9482 * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9483 Unix (/n) and DOS (/r/n) line terminations.
9485 2003-09-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9487 * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9490 2003-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9492 * src/mcs51/gen.c (genFunction, genEndFunction),
9493 * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9494 and restore of EA so that stack offsets to parameters are
9495 correct when using both critical and reentrant/stack-auto.
9496 * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9497 size (can be triggered in error if sloc is shared between
9498 different sized objects)
9499 * device/include/float.h: fixed macros to explicitly use
9500 unsigned long where needed
9502 2003-09-15 Bernhard Held <bernhard AT bernhardheld.de>
9504 Feature req. 799831: added code to allow nesting of critical functions
9505 * src/mcs51/gen.c (genFunction, genEndFunction)
9506 * src/ds390/gen.c (genFunction, genEndFunction)
9508 2003-09-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9510 * src/SDCCsymt.c (sclsFromPtr),
9512 * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9513 support for standard C idiom of memory mapped variables; for
9514 example, *((xdata int*)0x1234) = 1 is now internally equivalent
9515 to xdata int at 0x1234 tempvar = 1.
9516 * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9517 provided by Akiya ISHIDA
9519 2003-09-13 Bernhard Held <bernhard AT bernhardheld.de>
9521 * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9522 * src/SDCCval.c (constVal): added reduction from int to char
9523 * src/SDCCval.c (valMult, valDiv): fixed sign handling
9524 * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9525 * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9527 * support/regression/tests/shifts.c: fixed
9529 2003-09-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9531 * src/z80/gen.c (genXor): Fixed bug #805445
9533 2003-09-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9535 Fixed bug #621531 (const & volatile confusion in the type chain).
9536 DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9537 refer to the const or volatile state of the pointer itself.
9549 * src/pic16/ralloc.c
9550 * support/regression/tests/const.c
9552 2003-09-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9554 When checking for duplicated modules, use absolute paths
9555 instead of relative paths. Files changed:
9560 2003-09-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9562 * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9564 2003-09-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9566 * device/include/string.h: added size_t typedef, changed
9567 prototypes to use size_t, eliminated separate reentrant and
9568 non-reentrant declarations, added _memmove declaration
9569 * device/lib/_memcpy.c: changed to use size_t instead of int,
9570 changed /4 to >>2 to avoid division library call
9571 * device/lib/_memcmp.c,
9572 * device/lib/_memset.c,
9573 * device/lib/_strncat.c,
9574 * device/lib/_strncpy.c,
9575 * device/lib/_strncmp.c: changed to use size_t instead of int
9576 * device/lib/_memmove.c: new file (fixed bug #772294)
9577 * device/lib/Makefile.in: added _memmove.c
9578 * device/lib/z80/asm_strings.s: fixed bug #772290
9579 * support/regression/tests/bitfields.c: attempt to fix host assertion
9580 failure on amd64-unknown-linux2.2
9582 2003-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9584 * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9585 * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9586 * as/z80/asmain.c (main): fixed bug #801766
9588 2003-09-06 Bernhard Held <bernhard AT bernhardheld.de>
9590 * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9593 2003-09-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9595 * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9596 reported in bug #800609
9598 2003-09-04 Vangelis Rokas <vrokas AT otenet.gr>
9600 * Top header beautifications in src/pic16 directory:
9601 device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9602 pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9603 pcoderegs.h, ralloc.c, ralloc.h
9604 * main.c: added top header and GPL license notice
9605 * pcode.c: fixed the if-conditional warning
9607 2003-09-04 Bernhard Held <bernhard AT bernhardheld.de>
9609 * device/lib/_mullong.c: replaced int by short for gcc
9611 2003-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9613 * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9614 and JUMPTABLE iCodes properly now (worked by accident before)
9615 * src/mcs51/gen.c (leftRightUseAcc),
9616 * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9617 iCode properly now. Use getSize instead of nRegs since a & b
9618 aren't part of the nRegs tally.
9620 2003-08-31 Vangelis Rokas <vrokas AT otenet.gr>
9622 * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9623 * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9624 before instructions that use the _STATUS register
9626 2003-08-31 Bernhard Held <bernhard AT bernhardheld.de>
9628 * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9629 * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9630 fetching of the pointer
9631 * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9632 copied from genNearPointerSet()
9633 * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9634 * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9635 If they pop r0/r1 they must be called in the opposite order than aopOp().
9636 * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9637 (resp. --stack-auto), prepared for --xstack
9639 2003-08-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9641 * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9643 2003-08-28 Bernhard Held <bernhard AT bernhardheld.de>
9645 * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9646 these ports have their own __sdcc_external_start()
9648 2003-08-26 Bernhard Held <bernhard AT bernhardheld.de>
9650 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9651 * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9652 type for bits was changed. It resulted in bit variables becoming
9653 global, which is not permitted in PIC 14 assembly output.
9655 2003-08-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9657 * doc/sdccman.lyx: various additions and updates. Rearranged sections
9659 2003-08-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9661 Z80 and MCS51 linkers complaint if a public symbol is defined
9662 in more than one library module:
9666 * as/mcs51/Makefile.in
9668 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9670 A few small changes that speed up the peephole optimizer.
9674 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9676 Try to make the peephole optimizer smarter by maintaining
9677 an association between the assembly source code and the
9678 iCodes that originated them. Put this information to use
9679 with a new peephole rule condition "notVolatile" so that
9680 the rules can be aggressive yet still safe.
9685 * src/mcs51/peeph.def
9687 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9691 * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9692 * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9693 if the left or right operand symbols have the accuse flag set.
9695 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9697 Changed the type of the result of the ! (NOT) operator to char;
9698 previously it returned the same type as the source. This allows
9699 us to eliminate all the genFloatNot functions (all of its target
9700 implementations were very buggy) since !float can use the same
9703 * src/SDCCicode.c (ast2iCode): ! returns char
9704 * src/mcs51/gen.c (genNot, genNotFloat),
9705 * src/ds390/gen.c (genNot, genNotFloat),
9706 * src/z80/gen.c (genNot, genNotFloat),
9707 * src/pic/gen.c (genNot, genNotFloat),
9708 * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9710 2003-08-19 Bernhard Held <bernhard AT bernhardheld.de>
9712 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9713 1. Interrupt would not compile properly. Ensure PCLATH register is saved
9714 during interrupts. Ensure WSAVE is located at a shared bank address.
9715 2. Fixed page selection in some places
9716 3. Fixed BTFSS/C to where necessary use registers directly and not simply
9717 the registers name strings.
9718 4. Fixed "signed / unsigned compare" compiler warnings.
9719 5. The PIC port manages its own allocation of the general purpose
9720 registers, but makes no attempt to reuse them. As a result when
9721 compiling it soon runs out of general purpose registers. Some
9722 additional code was added to the files pcode.c and device.c to walk
9723 through the function call tree and rename the registers so that they
9733 * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9734 genPlus() & genMinus() when the result is the same as left or right
9736 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9738 * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9740 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9742 Made bitfield a distinct type from bit so that bitfields
9743 convert as per ANSI C and bits retain their traditional
9744 boolean style behaviour. Implemented bitfield support in
9752 * src/ds390/gen.c: bit v bitfield split
9753 * src/z80/gen.c: New support for bitfields
9754 * support/regression/tests/bitfields.c: reenabled z80,
9757 2003-08-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9759 Rules 246.x, 247.x relate to bitfields, the others speed up
9760 access to xdata mapped I/O devices.
9762 * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9764 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9766 Cleaned up genPackBits and genUnpackBits and added two helper
9767 functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9768 for literal assignments in genPackBits (thanks to Frieder for
9774 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9776 Fixed bug #748310 (pointer to function type mishandled when the
9777 function name is omitted). Also fixed a SIGSEGV when a function
9778 attribute (reentrant, etc) is used on a non-function or on a
9779 function but misplaced before the parameter list.
9781 * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9783 * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9784 * support/Util/SDCCerr.h,
9785 * support/Util/SDCCerr.c: Added func attr misuse error msg
9787 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
9789 Fixed bug #787649 by anonymous
9790 * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9791 * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9793 2003-08-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9795 Fixed numerous bitfield problems.
9797 * src/SDCC.y: More bitfield related error checking
9799 * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9800 * support/Util/SDCCerr.h,
9801 * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9802 * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9803 * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9804 * support/regression/tests/bitfields.c: tests added
9806 2003-08-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9808 Made the constant following the "interrupt" keyword optional. If
9809 omitted, the function will not automatically be given an entry
9810 in the interrupt vector table (similar to #pragma NOIV, but
9811 less syntacticly kludgy). The interrupt number is also now
9812 range checked. Also fixed a bug in the high order bit example
9819 * support/Util/SDCCerr.c
9820 * support/Util/SDCCerr.h
9823 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
9825 * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9826 * src/SDCCicode.c (operandOperation): rewritten some ops
9827 (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9828 * src/SDCCsymt.c (computeType): literals are handled the same way as any
9830 * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9831 be re-activated by defining REDUCE_LITERALS)
9832 * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9833 unsigned, but are signed by default
9834 * src/SDCCval.c (constVal): rearranged
9835 * src/SDCCval.c (valMod): preliminary fix
9836 * src/SDCCval.c (valCastLiteral): use TYPE_* types
9837 * support/regression/literalop.c: added, work in progress
9839 2003-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9841 Generate warnings for useless declarations like "char data;"
9842 that don't do what new users expect.
9845 * support/Util/SDCCerr.h
9846 * support/Util/SDCCerr.c
9848 2003-08-09 Bernhard Held <bernhard AT bernhardheld.de>
9850 * src/SDCCval.c (valMult): fix overflow detection of negative int
9852 2003-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9854 * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9856 Changes to support big endian targets:
9869 2003-08-06 Bernhard Held <bernhard AT bernhardheld.de>
9871 * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9872 * device/lib/time.c: fixed warning "integer overflow in expression"
9874 2003-08-05 Bernhard Held <bernhard AT bernhardheld.de>
9876 * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9877 * src/SDCCval.c (constVal): changed default to signed; hex and octal
9878 constants are unsigned; added recognition of "u" flag for unsigned
9879 * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9880 * src/SDCCval.c (valDiv, valMod): fixed signdness
9881 * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9882 signedness of modulo, left and right shift
9883 * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9884 * support/Util/SDCCerr.h: added warning W_INT_OVL
9885 * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9886 * src/SDCCast.c (ast_print): improved output of constants
9888 2003-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9890 Fixed some warnings when building with MSVC:
9903 * support/cpp2/cpplib.c
9907 2003-08-03 Bernhard Held <bernhard AT bernhardheld.de>
9909 * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9911 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9913 * support/librarian/clean.mk: Do not remove Makefile.
9914 * support/librarian/Makefile: added.
9916 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9918 Added librarian to MSVC build:
9921 * support/librarian/librarian.dsp
9923 'configure' not needed for librarian, removed:
9924 * support/librarian/configure
9925 * support/librarian/configure.in
9926 * support/librarian/config_in.h
9927 * support/librarian/Makefile.in
9929 Hopefully these ones built the librarian and the rest of sdcc properly:
9931 * Makefile.common.in
9933 Messed up 'configure', so revert to previous version:
9937 2003-07-31 Bernhard Held <bernhard AT bernhardheld.de>
9939 * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9940 there, while the mantissa of a double is "only" 53 bits wide.
9942 2003-07-31 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9944 Adding sdcclib to the build. MSVC project coming soon.
9945 Files added/changed:
9947 * support/librarian/clean.mk
9948 * support/librarian/configure
9949 * support/librarian/configure.in
9950 * support/librarian/config_in.h
9951 * support/librarian/Makefile.bcc
9952 * support/librarian/Makefile.in
9953 * support/librarian/sdcclib.c
9956 * Makefile.common.in
9960 2003-07-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9962 Linker now complaints if linked modules have conflicting options, for
9963 example, one compiled using --model-large and another one compiled with
9964 --model-small. The following files were modified:
9986 2003-07-28 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9988 *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9989 as/mcs51/lklibr.c: Generate a warning when a library is not found.
9991 2003-07-28 Bernhard Held <bernhard AT bernhardheld.de>
9993 * src/z80/mappings.i: fix _mul[us][int,long] entries
9995 2003-07-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9997 *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9999 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
10001 * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10002 * support/regression/tests/bitopcse.c: added
10010 2003-07-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10012 added support for new library format to z80, gbz80 linkers:
10018 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
10020 * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10021 after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10023 2003-07-23 Bernhard Held <bernhard AT bernhardheld.de>
10025 added DUMMY_READ_VOLATILE:
10034 * src/SDCCcse.c (algebraicOpts): many improvements
10035 * src/SDCCcse.h: removed algebraicOpts()
10036 * src/SDCCicode.c (picDummyRead): added
10038 2003-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10040 * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10041 "Insufficient space in data memory".
10043 2003-07-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10045 * src/mcs51/gen.c: fixed bug #771358
10046 * src/z80/gen.c: fixed bug #759087
10048 2003-07-20 Bernhard Held <bernhard AT bernhardheld.de>
10050 * src/pic16/glue.c: minor cleanup by Vangelis
10052 2003-07-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10054 * device/include/regc515c.h: fixed #758477
10055 * device/lib/_gptrget.c: saving some cycles in generic pointer get
10056 * device/lib/_gptrput.c: saved a few bytes
10057 * my tab spacing is 8, yours too?)
10058 * device/lib/_ser.c: process RX bytes earlier than TX bytes
10059 * device/lib/serial.c: process RX bytes earlier than TX bytes
10060 * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10062 2003-07-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10064 * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10066 2003-07-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10068 * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10070 2003-07-17 Bernhard Held <bernhard AT bernhardheld.de>
10072 * device/lib/Makefile.in: bad fix, reverted to 1.43
10074 2003-07-16 Bernhard Held <bernhard AT bernhardheld.de>
10076 * device/lib/Makefile.in: added missing z80 object files
10078 2003-07-14 Bernhard Held <bernhard AT bernhardheld.de>
10080 * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10081 pic16 progress by Vangelis:
10084 * src/pic/Makefile:
10091 * pic16/genarith.c:
10096 * pic16/pcodepeep.c:
10099 2003-07-13 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10101 * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10103 2003-07-12 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10105 * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10106 added gbz80 build to MSVC project.
10107 * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10108 link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10109 from 8051 stuff and setup so it links using a .lnk file.
10111 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10113 * support/librarian/sdcclib.c: sdcc librarian.
10114 * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10117 2003-07-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10119 * as/mcs51/lkmain.c: properly handle extensions in function afile.
10121 2003-07-02 Borut Razem <borut.razem AT siol.net>
10123 * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10124 src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10125 src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10126 src/xa51/main.c, src/z80/main.c:
10127 virtualization of glue() function: each port has it's own glue function,
10128 which is accessed by do_glue function pointer in PORT.general structure
10130 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10132 * DS800C400 fun, improved ROM interface and tinibios.
10134 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10136 * More support for DS80C400. Now includes beginning of interface to ROM.
10138 2003-06-25 Bernhard Held <bernhard AT bernhardheld.de>
10140 * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10142 2003-06-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10144 * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10146 2003-06-19 Borut Razem <borut.razem AT siol.net>
10148 * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10150 2003-06-19 Borut Razem <borut.razem AT siol.net>
10152 * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10153 fixed Z80 port - crt0.o: cannot open.
10155 2003-06-19 Bernhard Held <bernhard AT bernhardheld.de>
10157 * support/Util/MySystem.c (merge_command): revert bad fix
10159 2003-06-18 Borut Razem <borut.razem AT siol.net>
10161 * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10163 2003-06-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10165 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10166 option --use-stdout sends errors to stdout instead of stderr.
10168 2003-06-18 Bernhard Held <bernhard AT bernhardheld.de>
10170 * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10172 2003-06-15 Borut Razem <borut.razem AT siol.net>
10174 * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10175 * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10176 * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10177 fixed width array of pointers replaced with sets;
10178 multiple include and lib paths ared transferred to preprocessor and linker
10179 * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10180 * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10181 fixed width array of pointers
10182 * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10183 removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10184 fixupPath(), getPathDifference()
10185 * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function inExcludeList() by using sets instead
10186 fixed width array of pointers
10188 2003-06-11 Bernhard Held <bernhard AT bernhardheld.de>
10190 * src/pic16/ralloc.c: fix warnings
10191 * src/pic16/pcode.c: fix warning
10193 2003-06-10 Scott Dattalo <scott AT dattalo.com>
10195 Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10196 know all the details, but essentially this set of changes enable
10197 the pic16 port to generate movff instructions and generate assembler
10201 * src/pic16/glue.c:
10202 * src/pic16/pcode.c:
10203 * src/pic16/device.c:
10204 * src/pic16/main.c:
10205 * src/pic16/pcode.h:
10206 * src/pic16/pcoderegs.c:
10207 * src/pic16/ralloc.c:
10208 * src/pic16/ralloc.h:
10210 2003-06-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10212 * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10213 added option --vc, so sdcc errors and warnings are compatible with
10214 Microsoft Visual Studio.
10216 2003-06-07 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10218 * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10219 device/lib/libfloat.lib: added atof function.
10221 2003-06-04 Bernhard Held <bernhard AT bernhardheld.de>
10223 * doc/sdccman.lyx: updated to Lyx 1.3
10224 * doc/cdbfileformat.lyx: updated to Lyx 1.3
10225 * doc/test_suite_spec.lyx: updated to Lyx 1.3
10226 * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10228 2003-06-03 Bernhard Held <bernhard AT bernhardheld.de>
10230 * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10232 2003-06-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10234 * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10235 additions to the "related tools/documentation" section
10237 2003-06-02 Bernhard Held <bernhard AT bernhardheld.de>
10239 * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10241 2003-05-29 Bernhard Held <bernhard AT bernhardheld.de>
10243 * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10244 * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10246 2003-05-28 Bernhard Held <bernhard AT bernhardheld.de>
10248 * doc/sdccman.lyx: fix double dash and other minor things
10249 * doc/Makefile: fix double dash
10251 2003-05-28 Karl Bongers(patches from Martin Helmling)
10252 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10253 condition and ignore commands.
10255 2003-05-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10257 * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10258 is in parts still quite out of date, I did changes as far as I felt makes sense
10259 for a non-native english speaker.
10260 Please feel free to add to the manual or to correct my changes.
10261 * doc/Makefile: undid touching the date of intermediate tex files.
10263 2003-05-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10265 * doc/sdccman.lyx: Manual has an index now
10267 2003-05-25 Bernhard Held <bernhard AT bernhardheld.de>
10269 Finalize muluint/mulsint and mululong/mulslong merging:
10270 * device/lib/_mulint.c
10271 * device/lib/_mullong.c
10272 * device/lib/gbz80/mul.s
10273 * device/lib/gbz80/stubs.s
10274 * device/lib/z80/mul.s
10275 * device/lib/z80/stubs.s
10276 * src/SDCCsymt.c (initCSupport)
10278 2003-05-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10280 * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10281 * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10282 src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10283 src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10286 2003-05-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10288 * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10289 the regression tests I'm not brave enough to enable 245.b, 245.c
10290 * doc/sdccman.lyx: added latex preamble for hyperref package.
10291 Using pdflatex this will give you a hyperlinked pdf file with
10292 bookmarks. (prepend '%' before /usepackage if this breaks something)
10294 2003-05-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10296 * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10298 2003-05-22 Bernhard Held <bernhard AT bernhardheld.de>
10300 * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10302 2003-05-21 <johan AT balder>
10304 * src/SDCCglue.c (printIval): fixed bug #739934
10306 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
10308 Applied patch from bug 737905 (renamed yylineo to mylineno):
10315 * src/pic16/pcode.c: Cleaned warnings
10316 * src/pic16/pcodeflow.c: Cleaned warnings
10317 * src/pic16/pcoderegs.c: Cleaned warnings
10319 2003-05-19 Scott Dattalo <scott AT dattalo.com>
10321 * src/pic16/pcode.c: Cleaned warnings
10322 * src/pic16/pcodepeep.c: Cleaned warnings
10323 * src/pic16/ralloc.c: Cleaned warnings
10325 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
10327 * doc/sdccman.lyx: fixed bug 739745
10328 * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10330 2003-05-18 Bernhard Held <bernhard AT bernhardheld.de>
10332 * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10333 it can be defined with CFLAGS when running configure
10334 * src/SDCCmain.c: fixed compiling + linking with object files
10336 2003-05-18 Vangelis Rokas (vrokas AT otenet.gr)
10338 * configure.in: configure for pic16 port,
10339 added --disable-pic16-port
10340 * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10341 * src/SDCCmain.c: linkOptions is changed to set *,
10342 added if/endif conditional macros to remove options help
10343 messages from optionsTable when a port is not configured, added
10344 support for the PIc16 port in the ports table, when executing
10345 the compiler with no port specified on command line, a default
10346 port is selected with the new macro DEFAULT_PORT which is
10347 defined in port.h, in setDefaultOptions() linkOptions is removed
10348 from initialization assignment, since now it is a set,
10349 parseCmdLine uses setParseWithComma for linkOptions, in
10350 linkEdit() linkOptions are accessed with new function indexSet()
10351 which returns the i'th item of a set variable. See SDCCset.c, in
10352 linkEdit() when calling buildCmdLine(), added linkOptions as
10353 last argument. Now users can pass arguments to gplink via the
10354 -Wl option, main() uses pic16glue() to glue up pic16 programs
10355 * src/SDCCpeeph.c: various changes to support pic16
10356 * src/SDCCset.c: added function void *indexSet(set *, int) to
10357 return the i'th item of the set
10358 * src/SDCCset.h: added function prototype for indexSet()
10359 * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10360 * src/clean.mk: added pic16 in CLEANALLPORTS variable
10361 * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10362 added macro DEFAULT_PORT
10363 * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10364 * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10366 * src/pic16/glue.c: commented out some error producing lines
10367 * src/pic16/main.c: __config directives are commented out to stop
10368 gpasm complaining and test the linkage with gplink, _linkCmd and
10369 _asmCmd changed to be more gplink and gpasm friendly
10370 * src/pic16/peeph.def: peep rule 3 is commented out, since it
10371 produced an error when parsed, peep rule 12 is added to utilize
10372 movff, but it is commented out since the pCode does not support
10373 yet a command with 2 address arguments
10375 2003-05-18 <johan AT balder>
10377 * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10378 * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10379 2003-05-17 Karl Bongers(apply patches from Martin Helmling)
10381 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10382 Added feature to script commands from file.
10384 2003-05-14 Bernhard Held <bernhard AT bernhardheld.de>
10386 * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10387 * src/SDCCutil.c: include ctype.h for win32
10389 2003-05-13 Bernhard Held <bernhard AT bernhardheld.de>
10391 * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10393 2003-05-12 Karl Bongers(apply development patches from Martin Helmling)
10395 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10396 Fixed so you can set breakpoints prior to run, run does not stop
10397 on entry now. Add tbreak. Other enhancements and fixes for use
10400 2003-05-12 Borut Razem <borut.razem AT siol.net>
10402 * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10404 2003-05-11 Borut Razem <borut.razem AT siol.net>
10406 * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10407 the path of bin directory, so that PATH is the only env. variable, which has to be set
10408 in case of standard installation.
10409 * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10410 * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10411 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10413 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
10415 * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10416 * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10417 temp files are in the port dir; clean the gen/test directory when
10418 generating new test.c
10419 * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10420 * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10421 * support/regression/tests/zeropad.c: added
10423 2003-05-09 <johan AT balder>
10425 * src/SDCCglue.c: fixed bug #597940
10427 2003-05-05 Karl Bongers(apply patches from Martin Helmling)
10429 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10430 cache sfr, optimize next,step, fix off by one sourceline,
10431 support ddd list function.
10432 * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10434 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
10436 * support/regression/HTMLgen.py: added compare_s2f()
10437 * support/regression/Makefile: redo 1.27
10438 * support/regression/generate-cases.py: redo 1.5
10440 2003-04-30 Bernhard Held <bernhard AT bernhardheld.de>
10442 * support/regression/tests/float.c: workaround 33 bit hex constant
10443 * support/regression/tests/simplefloat.c: fix division for host
10445 2003-04-29 Scott Dattalo <scott AT dattalo.com>
10447 * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10448 that tame's the PIC's over-aggressive optimizer.
10450 2003-04-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10452 * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10455 2003-04-29 Kevin Vigor <kevin AT vigor.nu>
10457 Initial support for DS80C400. "Hello world" runs on TINIm400
10460 2003-04-28 Karl Bongers(apply patches for Martin Helmling)
10462 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10463 * Some notes on ddd usage added in debugger/README
10464 Martin Helmling adding more features and fixes for ddd GUI debugger.
10465 Code added for nexti, stepi, up, down, and other adjustments.
10467 2003-04-28 Scott Dattalo <scott AT DATTALO.COM>
10469 * src/pic/pCodepeep.c non-wildcard asmops are now handled
10470 * src/pic/peeph.def Added two rules to optimize carry manipulation
10471 * src/pic/* removed debug printfs
10473 2003-04-28 Bernhard Held <bernhard AT bernhardheld.de>
10475 * debugger/mcs51/cmd.c: added header newalloc.h
10477 2003-04-26 Bernhard Held <bernhard AT bernhardheld.de>
10479 * as/Makefile: new EXEEXT
10480 * as/z80/Makefile: remove trailing slash of BUILDIR
10481 * as/z80/clean.mk: new EXEEXT
10482 * Makefile.common.in: add to CFLAGS (and others), don't replace it
10483 * support/cpp2/Makefile.in: new EXEEXT
10484 * src/pic/glue.c (pic14emitRegularMap): fixed warning
10486 2003-04-24 Bernhard Held <bernhard AT bernhardheld.de>
10488 Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10489 EXEEXT was introduced to fix all related problems with targets
10490 "clean", "install" and "uninstall"; a couple of further flaws
10491 especially with "clean" have been fixed too
10492 * as/mcs51/Makefile.in
10493 * as/mcs51/clean.mk
10497 * debugger/mcs51/Makefile.in
10498 * debugger/mcs51/clean.mk
10499 * link/z80/Makefile
10500 * link/z80/Makefile.in
10501 * link/z80/clean.mk
10503 * packihx/Makefile.in
10505 * sim/ucsim/Makefile
10506 * sim/ucsim/clean.mk
10507 * sim/ucsim/avr.src/Makefile.in
10508 * sim/ucsim/avr.src/clean.mk
10509 * sim/ucsim/s51.src/Makefile.in
10510 * sim/ucsim/s51.src/clean.mk
10511 * sim/ucsim/xa.src/Makefile.in
10512 * sim/ucsim/xa.src/clean.mk
10513 * sim/ucsim/z80.src/Makefile.in
10514 * sim/ucsim/z80.src/clean.mk
10515 * sim/ucsim/main_in.mk
10516 * sim/ucsim/packages_in.mk
10517 * sim/ucsim/gui.src/Makefile.in
10518 * sim/ucsim/gui.src/serio.src/Makefile.in
10519 * sim/ucsim/gui.src/serio.src/clean.mk
10522 * support/cpp2/Makefile.in
10523 * support/cpp2/clean.mk
10524 * support/makebin/Makefile
10525 * support/makebin/clean.mk
10526 * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10527 * doc/sdccman.lyx: --program-suffix no longer needed
10529 2003-04-23 Karl Bongers(apply patches for Martin Helmling)
10531 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10532 Martin Helmling added support for ddd GUI debugger.
10533 Code added to display assembly, set variables, and other commands
10534 to interface to ddd.
10536 2003-04-23 Bernhard Held <bernhard AT bernhardheld.de>
10538 * as/Makefile: fix target clean
10539 * as/clean.mk: fix target clean
10540 * as/z80/clean.mk: fix target clean
10542 2003-04-22 Bernhard Held <bernhard AT bernhardheld.de>
10544 * Makefile.common.in: added AT EXEEXT AT
10545 * configure.in: removed all mingw32 stuff
10546 * configure: rebuilt from configure.in
10547 * doc/sdccman.lyx: updated section "installation"
10548 * support/scripts/sdcc_mingw32: adapted to configure
10549 * support/scripts/sdcc_cygwin_mingw32: added
10551 2003-04-22 Scott Dattalo <scott AT dattalo.com>
10553 * src/pic Added object file support for the PIC port
10554 * src/pic Applied patch from Craig Franklin (this started the object file support)
10555 * src/regression Updated the PIC regression tests for object files
10557 2003-04-20 Borut Razem <borut.razem AT siol.net>
10559 * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10560 lklex.c: In function `getfid':
10561 lklex.c:203: warning: array subscript has type `char'
10562 * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10563 with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10564 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10565 stack handling macros
10567 2003-04-19 Borut Razem <borut.razem AT siol.net>
10569 * "handling space characters in file path" task:
10570 * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10571 * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10572 * support/Util/MySystem.h: make it self-sufficient
10573 * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10574 src/z80/main.c, sdcc/as/mcs51/lklex.c:
10575 handling space characters in file path
10576 * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10577 (it will be used by assemblers, which have their own includes, e.g. gpasm)
10578 * support/Util/MySystem.c: handling space characters in executable's path
10580 2003-04-19 Bernhard Held <bernhard AT bernhardheld.de>
10582 * as/z80/Makefile: fix permanent rebuild of z80
10583 * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10584 * support/regression/tests/bitfields.c: added Johan's bitfields.c
10586 2003-04-18 Kevin Vigor <kevin AT vigor.nu>
10588 * src/SDCCopt.c: add special case optimization to replace modulo by
10589 a power of two with a bitwise AND.
10591 2003-04-18 <johan AT balder>
10593 * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10595 2003-04-17 <johan AT balder>
10597 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10598 * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10600 2003-04-13 Borut Razem <borut.razem AT siol.net>
10602 * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10603 * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10604 fixed mingw problem in adl_NORMALIZE_PATH
10606 2003-04-12 Borut Razem <borut.razem AT siol.net>
10608 * fixed "#pragma SAVE/RESTORE can not be nested":
10609 * src/SDCC.lex: reworked pragma handling functions
10610 * sdcc/src/SDCCglobl.h: reworked stack handling macros
10611 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10613 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
10615 * src/SDCCutil.c (pathEquivalent): defined but not used
10616 * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10617 * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10618 * configure: rebuilt from configure.in
10619 * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10620 * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10621 * device/include/Makefile.in: replace sdcc_datadir
10622 * device/lib/Makefile.in: replace sdcc_datadir
10623 * Makefile.common.in: add LDFLAGS from configure
10624 * packihx/Makefile.in: use LDFLAGS
10625 * src/Makefile.in: use LDFLAGS
10626 * support/cpp2/Makefile.in: add LDFLAGS from configure
10627 * support/makebin/Makefile: use LDFLAGS
10628 * .version: bumped version number to 2.3.5
10630 2003-04-12 Borut Razem <borut.razem AT siol.net>
10632 * completed "different paths" task:
10633 * src/SDCCmacro.c: fixed bug in handling quotes
10634 * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10635 * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10637 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
10639 * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10641 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10643 * ds390/gen.c ds390/peeph.def: fix bug 706781
10645 2003-04-11 Borut Razem <borut.razem AT siol.net>
10647 * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10649 2003-04-10 Scott Dattalo <scott AT dattalo.com>
10651 * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10652 * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10653 set - this bit used to not be set...).
10654 * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10655 bad code in PIC Port
10656 * src/regression/and2.c added to test bug 609268
10657 * src/regression/Makefile added and2.c to regression test
10660 2003-04-08 <johan AT CP255758-A>
10662 * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10663 * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10664 * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10666 2003-04-07 Bernhard Held <bernhard AT bernhardheld.de>
10668 * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10670 * support/cpp2/Makefile.in: fix bug #487815
10671 * configure: rebuilt from configure.in
10672 * Makefile.common.in: docdir changed, new path suffixes
10673 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10674 * sdcc_vc_in.h: reflect changes from sdccconf.h
10675 * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10676 * src/SDCCutil.h: remove BINDIR hack
10677 * doc/sdccman.lyx: update new path hierarchy
10679 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
10681 * src/SDCCpeeph.c: added okToRemoveSLOC test
10683 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
10685 * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10687 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
10689 * src/SDCCpeeph.c: added labelIsReturnOnly test
10690 * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10692 2003-04-05 <johan AT balder>
10694 * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10695 * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10696 * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10697 * src/SDCCast.c: fixed a warning
10698 * src/SDCCast.h: fixed a warning
10699 * src/SDCCicode.c (operandFromAst): fixed a warning
10701 2003-04-04 <johan AT balder>
10703 * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10704 * src/SDCCast.c (decorateType): fixed bug #715076
10705 * src/SDCC.y: fixed bug #702907
10707 2003-04-03 <johan AT balder>
10709 * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10710 * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10711 * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10712 * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10713 * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10715 2003-04-03 Bernhard Held <bernhard AT bernhardheld.de>
10717 * _decdptr.c: fix return values
10718 * _gptrget.c: fix return values
10719 * _gptrgetc.c: fix return values
10720 * _gptrput.c: fix return values
10721 * _mulint.c: fix return values
10722 * as/z80/Makefile: fix 'make -j' problem
10724 2003-04-02 Bernhard Held <bernhard AT bernhardheld.de>
10726 * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10727 * configure.in: big cleanup, updated to autoconf 2.5x
10728 * configure: rebuilt from configure.in
10729 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10730 * sdcc_vc_in.h: reflect changes from sdccconf.h
10731 * doc/Makefile: fixed a flaw in "make install"
10733 2003-04-02 <johan AT balder>
10735 * src/ds390/gen.c (genCmp): no comments
10736 * src/mcs51/gen.c (genCmp): no comments
10737 * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10738 * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10740 2003-04-01 Bernhard Held <bernhard AT bernhardheld.de>
10742 * support/regression/generate-cases.py: place generated file in given sub directory
10743 * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10744 * support/regression/Makefile: improvements for 'make -j';
10745 side effect: it's simpler and faster now
10747 2003-03-31 Borut Razem <borut.razem AT siol.net>
10749 * src/z80/main.c: link-{port} and as-{port} defined without path
10750 * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10752 2003-03-31 Bernhard Held <bernhard AT bernhardheld.de>
10754 * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10756 2003-03-30 Borut Razem <borut.razem AT siol.net>
10758 * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10759 changed type of list parameter to set
10760 * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10761 * src/port.h: changed type of do_assemble() parameter to set
10762 * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10763 sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10764 definition of "cppoutfilename" macro with NULL value in preProcess()
10765 * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10766 * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10767 * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10768 replaced with set *binPathSet
10769 * shash_add() deallocates the item, if allready exsists, before adding the new one
10770 * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10772 2003-03-30 Scott Dattalo <scott AT dattalo.com>
10774 * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10775 a nested for loop bug in the PIC port
10776 * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10779 2003-03-29 Bernhard Held <bernhard AT bernhardheld.de>
10781 * support/Util/dbuf.h: remove C++ stuff to make it portable
10783 2003-03-28 Borut Razem <borut.razem AT siol.net>
10785 * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10786 literal strings in stringLiteral()
10787 * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10788 * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10791 2003-03-27 Paul Stoffregen <paul AT pjrc.com>
10793 * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10795 2003-03-26 <johan AT balder>
10797 * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10798 * src/ds390/gen.c (saveRegisters): catched symbol abuse
10799 * src/SDCCast.c (decorateType): fixed " -v < 3"
10801 2003-03-23 Bernhard Held <bernhard AT bernhardheld.de>
10803 * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10804 Added Lenny Story's debug infrastructure changes:
10805 * src/Makefile.in: added new files cdbFile.c and SDCCdebug.c
10806 * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10807 * src/cdbFile.c: added
10808 * src/SDCCdebug.c: added
10809 * src/SDCCdebug.h: added
10810 * src/SDCCast.c (createFunction)
10811 * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10812 * src/SDCCmain.c (parseCmdLine, main)
10813 * src/SDCCmem.c (redoStackOffsets)
10814 * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10817 * src/avr/gen.c (genAVRCode)
10818 * src/ds390/gen.c (gen390Code)
10819 * src/mcs51/gen.c (gen51Code)
10820 * src/pic/gen.c (genpic14Code)
10821 * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10822 * src/xa51/gen.c (genXA51Code)
10823 * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10825 2003-03-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10827 * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10828 * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10830 2003-03-22 <johan AT balder>
10832 * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10834 2003-03-21 Bernhard Held <bernhard AT bernhardheld.de>
10836 * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10837 * doc/cdbfileformat.lyx: added, written by Lenny Story
10838 * doc/Makefile: added cdbfileformat.lyx
10839 * doc/clean.mk: added cdbfileformat.lyx
10841 2003-03-20 Bernhard Held <bernhard AT bernhardheld.de>
10843 * src/mcs51/peeph.def: fix bug #705773
10845 2003-03-20 <johan AT balder>
10847 An sfr/sbit can have an "at #" AND an initializer
10848 * src/SDCCsymt.c (checkSClass):
10849 * src/SDCCmem.c (allocGlobal):
10850 * src/SDCCmem.c (allocLocal):
10851 * src/SDCCast.c (createBlock):
10853 2003-03-17 Bernhard Held <bernhard AT bernhardheld.de>
10855 * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10857 2003-03-16 <johan AT balder>
10859 Undid the hackup of const and volatile, the problem is much bigger
10861 * src/SDCCast.c:1.171
10862 * src/SDCCglue.c:1.138
10863 * src/SDCCicode.c:1.146
10864 * src/SDCCsymt.c:1.150
10865 * src/SDCCval.c:1.65
10867 2003-03-15 Bernhard Held <bernhard AT bernhardheld.de>
10869 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10870 * src/ds390/gen.c (genAddrOf): fixed bug #704087
10872 2003-03-13 <johan AT balder>
10874 Hackup const and volatile modifiers in type chains a bit:
10876 * src/SDCCast.c:1.169
10877 * src/SDCCglue.c:1.136
10878 * src/SDCCicode.c:1.143
10879 * src/SDCCsymt.c1.146
10880 * src/SDCCsymt.h1.59
10881 * src/SDCCval.c:1.63
10883 2003-03-12 <johan AT balder>
10885 * src/SDCCBBlock.h: more LRH debugging junk
10886 * src/SDCCcflow.h: more LRH debugging junk
10887 * src/SDCCloop.c: more LRH debugging junk
10888 * src/SDCC.y (struct_declaration): fixed bug #697590
10889 * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10890 * src/ds390/gen.c (aopForRemat): fixed bug #700031
10891 * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10893 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10894 * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10895 test function names must now match exactly).
10896 * src/SDCCcse.c: added special case in findCheaperOp to allow
10897 extending a short integer. Makes less awful code for bug 700121 test case.
10899 2003-03-11 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10901 * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10902 * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10904 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10906 * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10907 actually called (operandsNotEqual() was called for all
10908 operandsNotEqualX tests).
10910 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10912 * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10913 with shorter literals. Fixes bug 700121.
10915 2003-03-11 <johan AT balder>
10917 * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10919 2003-03-11 Bernhard Held <bernhard AT bernhardheld.de>
10921 * src/SDCCloop.c (mergeRegions): an evil beast is dead
10922 * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10924 2003-03-10 Borut Razem <borut.razem AT siol.net>
10926 * src/SDCCmain.c: pipe preprocessor's output
10927 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10928 * sdcc_vc_in.h: define pclose as _pclose for WIN32
10929 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10930 which closes all pipes in pipeSet set
10931 * src/SDCCset.c: free deleted item in function deleteSetItem()
10932 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10933 moved from z80 to src subproject
10934 * .version: increased version number to 2.3.4
10936 2003-03-10 Bernhard Held <bernhard AT bernhardheld.de>
10938 * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10939 * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10940 * support/regression/ports/xa51/spec.mk: fix typo
10942 2003-03-09 Bernhard Held <bernhard AT bernhardheld.de>
10944 * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10946 2003-03-09 Borut Razem <borut.razem AT siol.net>
10948 * src/SDCCmain.c: pipe preprocessor's output
10949 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10950 * sdcc_vc_in.h: define pclose as _pclose for WIN32
10951 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10952 which closes all pipes in pipeSet set
10953 * src/SDCCset.c: free deleted item in function deleteSetItem()
10954 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10955 moved from z80 to src subproject
10957 2003-03-09 Borut Razem <borut.razem AT siol.net>
10959 * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10960 * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10961 * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10962 * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10963 * src/SDCCglobl.h: unification of WIN32 native definitions
10965 2003-03-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10967 * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10969 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
10971 * src/configure.in: check for endianess (even while cross-compiling)
10972 * src/configure: check for endianess (even while cross-compiling)
10973 * src/configure_in.h: check for endianess (even while cross-compiling)
10974 * src/avr/gen.c: remove old endianess stuff
10975 * src/mcs51/gen.c: remove old endianess stuff
10976 * src/ds390/gen.c: remove old endianess stuff
10977 * src/pic/gen.c: remove old endianess stuff
10978 * src/pic/genarith.c: remove old endianess stuff
10979 * src/pic/glue.c: fix endianess check
10980 * src/pic16/gen.c: remove old endianess stuff
10981 * src/pic16/genarith.c: remove old endianess stuff
10982 * src/pic16/glue.c: fix endianess check
10983 * src/xa51/gen.c: remove old endianess stuff
10984 * src/z80/gen.c: fix endianess check
10985 * src/SDCCglue.c: fix endianess check
10986 * src/ds390/peeph.def: fix bug 700036
10988 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
10990 * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10991 * src/configure: find appropriate data-types on host for SDCC's int and long
10992 * src/configure.in: find appropriate data-types on host for SDCC's int and long
10993 * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10994 * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10996 2003-03-07 <johan AT balder>
10999 some minor cleanups before the big shot
11000 OP_DEFS and OP_USES now use Kevin's protection
11001 new option --nolabelopt
11003 * src/SDCCBBlock.c:
11012 * src/ds390/ralloc.c:
11013 * src/mcs51/ralloc.c:
11014 * src/pic/ralloc.c:
11015 * src/xa51/ralloc.c:
11016 * src/z80/ralloc.c:
11018 2003-03-06 Bernhard Held <bernhard AT bernhardheld.de>
11020 * src/pic/pcode.c (get_op): fix 64 bit warnings
11021 * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11022 * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11023 * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11024 * support/regression/tests/malloc.c: fix 64 bit warnings
11026 2003-03-04 Bernhard Held <bernhard AT bernhardheld.de>
11028 * src/mcs51/gen.c (genMinus): fixed bug 696436
11030 2003-03-02 Borut Razem <borut.razem AT siol.net>
11032 * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11034 2003-02-26 Bernhard Held <bernhard AT bernhardheld.de>
11036 * configure.in: test for mkstemp
11037 * sdccconf_in.h: add HAVE_MKSTEMP
11039 2003-02-24 Bernhard Held <bernhard AT bernhardheld.de>
11041 * device/include/ctype.h: removed warning while using --stack-auto
11042 * device/include/malloc.h: removed warning while using --stack-auto
11043 * device/include/string.h: removed warning while using --stack-auto
11045 2003-02-23 Borut Razem <borut.razem AT siol.net>
11047 * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11048 because NDEBUG is defined (see man assert)
11049 * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11051 2003-02-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11053 * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11054 * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11056 2003-02-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11058 * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11059 * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11061 2003-02-18 <johan AT balder>
11063 * as/mcs51/asmain.c (asmbl): module can start with a digit
11064 * as/z80/asmain.c (asmbl): module can start with a digit
11066 2003-02-16 Bernhard Held <bernhard AT bernhardheld.de>
11068 * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11069 * src/asm.c: fix pipe() for Mingw32
11071 2003-02-15 Bernhard Held <bernhard AT bernhardheld.de>
11073 * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11074 * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11075 make -V work again; --c1mode reads now from stdin
11076 * doc/sdccman.lyx: added --c1mode
11077 * support/Util/SDCCerr.c: new messages for c1 mode
11078 * support/Util/SDCCerr.h: new messages for c1 mode
11079 * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11081 2003-02-15 <johan AT balder>
11083 * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11085 2003-02-14 Bernhard Held <bernhard AT bernhardheld.de>
11087 * doc/sdccman.lyx: Environment variables, -o and other minor things
11089 2003-02-14 <johan AT balder>
11091 * src/xa51/main.c: before anyone really tries to use it :)
11093 * Install doc's in share/sdcc/doc
11094 * removed some obsolete files
11095 * Do a proper make distclean and uninstall
11096 M Makefile.common.in
11099 M device/include/Makefile.in
11100 M device/lib/Makefile.in
11103 M sim/ucsim/doc/Makefile.in
11105 R src/avr/peeph.rul
11106 R src/xa51/peeph.rul
11107 M support/cpp2/Makefile.in
11108 M support/makebin/Makefile
11111 2003-02-13 Bernhard Held <bernhard AT bernhardheld.de>
11113 * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11115 2003-02-10 Borut Razem <borut.razem AT siol.net>
11117 * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11118 support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11119 * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11120 device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11121 support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11122 src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11123 src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11124 src/z80/Makefile.bcc: Borland Makefile cleanup
11125 * as/z80/Makefile.bcc: Added Borland Makefile
11126 * support/cpp2/borland.h: Removed
11128 2003-02-10 Bernhard Held <bernhard AT bernhardheld.de>
11130 * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11131 * src/SDCC.lex: new pragma NOIV
11132 * src/SDCCglobl.h: new pragma NOIV
11133 * src/SDCCmem.c: new pragma NOIV
11135 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11137 * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11139 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
11141 * src/SDCCmain.c: signal handling is switched off by --debug
11142 * doc/Makefile: small fix for install; use clean.mk again
11143 * doc/clean.mk: clean *.pdf and *.html too
11145 2003-02-08 Bernhard Held <bernhard AT bernhardheld.de>
11147 * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11148 * device/lib/printfl.c: fix a ds390 bug by making it portable
11149 * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11150 * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11151 * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11152 * debugger/mcs51/cmd.c: converted multi-line string literals
11153 * sim/ucsim/globals.cc: converted multi-line string literals
11154 * src/SDCCmain.c: introduced signal handler to remove temp files
11155 * doc/Makefile: small tweaks, implement clean
11156 * doc: removed generated files
11158 2003-02-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11160 * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c: Applied
11161 patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11162 Address Record is not correctly generated for DS390."
11164 2003-02-02 Borut Razem <borut.razem AT siol.net>
11166 * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11167 * as/mcs51/asm.h: fixed compilation with Borland C
11168 * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11169 * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11170 * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11171 * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11172 src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11173 src/z80/Makefile.bcc: delete $(LIB) only if exist
11174 * src/Makefile.bcc, src/pic/Makefile.bcc: fixed compilation with Borland C
11176 2003-02-02 Bernhard Held <bernhard AT bernhardheld.de>
11178 * device/include/malloc.h: introduced NULL
11179 * device/include/string.h: introduced NULL
11180 * device/include/stdlib.h: introduced NULL
11181 * device/lib/_memcpy.c: removed NULL
11182 * device/lib/_strcat.c: removed NULL
11183 * device/lib/_strchr.c: removed NULL
11184 * device/lib/_strcmp.c: removed NULL
11185 * device/lib/_strcpy.c: removed NULL
11186 * device/lib/_strcspn.c: removed NULL
11187 * device/lib/_strlen.c: removed NULL
11188 * device/lib/_strncat.c: removed NULL
11189 * device/lib/_strncmp.c: removed NULL
11190 * device/lib/_strncpy.c: removed NULL
11191 * device/lib/_strpbrk.c: removed NULL
11192 * device/lib/_strrchr.c: removed NULL
11193 * device/lib/_strspn.c: removed NULL
11194 * device/lib/_strstr.c: removed NULL
11195 * device/lib/_strtok.c: removed NULL
11196 * device/lib/malloc.c: removed NULL, include own header
11198 2003-02-02 <johan AT balder>
11200 * 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
11201 * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11202 * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11203 * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11204 * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11205 * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11207 2003-02-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11209 * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11212 2003-02-01 <johan AT balder>
11214 * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11216 2003-01-31 <johan AT CP255758-A>
11218 * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11220 2003-01-30 <johan AT balder>
11222 * src/SDCCBBlock.c: automatic bug detection
11223 * src/SDCCicode.c: automatic bug detection
11225 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11227 * src/SDCCglobl.h: now --xram-size 0 works
11228 * src/SDCCmain.c: now --xram-size 0 works
11230 2003-01-29 <johan AT balder>
11232 * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11234 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11236 * as/mcs51/aslink.h: Added options --xram-size and --code-size
11237 * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11238 * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11239 * as/mcs51/lkmem.c: Added options --xram-size and --code-size
11240 * src/SDCCglobl.h: Added options --xram-size and --code-size
11241 * src/SDCCmain.c: Added options --xram-size and --code-size
11243 2003-01-28 Bernhard Held <bernhard AT bernhardheld.de>
11245 * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11246 * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11248 2003-01-27 <johan AT balder>
11250 * src/SDCC.y: fixed bug #613764
11252 2003-01-26 <johan AT balder>
11254 * src/SDCClrange.c: fixed Bernhard's "char * code ptr = &c"
11255 * src/SDCCsymt.h: fixed bug #673374
11256 * src/SDCCglue.c: fixed bug #661910
11257 * src/SDCCast.c: fixed bug #458099 and 673374
11259 2003-01-26 Bernhard Held <bernhard AT bernhardheld.de>
11261 * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11262 * as/mcs51/strcmpi.h: added
11263 * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11264 * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11265 * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11266 * as/mcs51/assym.c: strcmpi -> as_strcmpi
11267 * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11268 * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11269 * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11270 * as/mcs51/Makefile.aslink: new module strcmpi
11271 * as/mcs51/Makefile.asx8051: new module strcmpi
11272 * as/mcs51/Makefil.bcc: new module strcmpi
11273 * as/mcs51/Makefile.in: new module strcmpi
11274 * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11276 2003-01-26 <johan AT balder>
11278 * src/SDCCglue.c: reverted back to 1.124
11279 * src/SDCCast.c: reverted back to 1.156
11280 * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11282 2003-01-25 <johan AT balder>
11284 * src/SDCCglue.c: A better fix for bug #661910
11285 * src/SDCCast.c: A better fix for bug #661910
11286 * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11288 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
11290 * src/Makefile.in: remove spawn.o
11291 * src/SDCCmain.c: remove spawn.h
11292 * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11293 * src/spawn.c: removed
11294 * src/spawn.h: removed
11295 * support/regression/ports/ds390/spec.mk: link with -r
11297 2003-01-24 <johan AT CP255758-A>
11299 * src/ds390/gen.c (aopOp): fixed bug #667458
11300 * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11301 * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11302 (createIvalCharPtr): an ival doesn't always have a storage class anymore
11304 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
11306 * src/mcs51/peeph.def: better assembler identation by Frieder
11307 * src/mcs51/gen.c: better assembler identation by Frieder
11309 2003-01-22 Bernhard Held <bernhard AT bernhardheld.de>
11311 * as/z80/string.h: removed for gcc 3.2
11312 * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11313 * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11315 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
11317 * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11318 * src/SDCCpeeph.c (replaceRule): fix bug #663503
11319 * support/regression/Makefile: separate temp files for ports
11320 * support/regression/generate-cases.py: separate temp files for ports
11321 * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11322 * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11324 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
11326 * moved tinitalk to device/examples/ds390
11328 2003-01-14 Bernhard Held <bernhard AT bernhardheld.de>
11330 * as/mcs51/lkmem.c: rflag is for DS390
11331 * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11332 * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11333 (linkEdit): move mem- and map-files the same way as ihx-files
11334 * src/z80/main.c (_setDefaultOptions): removed --generic
11335 * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11336 * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11337 * src/pic/glue.c (picglue): --c1mode works again
11338 * src/pic16/glue.c (pic16glue): --c1mode works again
11339 * src/asm.c (printCLine): fix #660034
11341 2003-01-13 Bernhard Held <bernhard AT bernhardheld.de>
11343 * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11344 * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11345 * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11346 * as/mcs51/lkmem (summary): better fix for sp problem
11347 * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11348 * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11349 * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11350 remove --stack-after-data
11352 2003-01-12 Bernhard Held <bernhard AT bernhardheld.de>
11354 * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11355 * src/SDCCutil.c (join): ugly bug: missing '\0'
11356 * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11358 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
11360 * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11362 * src/pic/main.c (_asmCmd): gpasm supports -o
11363 * src/z80/main.c: more general macros
11364 * device/lib/Makefile.in: remove intermediate files
11366 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
11368 * .version: Bumped version number to 2.3.3
11369 * src/SDCCBBlock.c: new option -o
11370 * src/SDCCglobl.h: new option -o
11371 * src/SDCCglue.c: new option -o
11372 * src/SDCCmain.c: new option -o
11373 * src/asm.c: new option -o
11374 * src/ds390/main.c: new option -o
11375 * src/pic/glue.c: new option -o
11376 * src/pic/pcode.c: new option -o
11377 * src/pic/ralloc.c: new option -o
11378 * src/pic16/glue.c: new option -o
11379 * src/pic16/pcode.c: new option -o
11380 * src/pic16/ralloc.c: new option -o
11381 * src/z80/main.c: new option -o
11382 * device/lib/Makefile.in: use -o
11383 * support/regression/ports/ds390/spec.mk: use -o
11384 * support/regression/ports/gbz80/spec.mk: use -o
11385 * support/regression/ports/mcs51/spec.mk: use -o
11386 * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11387 * support/regression/ports/z80/spec.mk: use -o
11388 * support/regression/ports/ucz80/spec.mk: use -o
11389 * support/regression/ports/xa51/spec.mk: use -o
11390 * support/regression/fwk/lib/timeout.c: fix usage string
11392 2003-01-09 Bernhard Held <bernhard AT bernhardheld.de>
11393 * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11395 2003-01-07 <johan AT balder>
11397 * src/SDCCast.c (decorateType): fixed bug #600035
11399 2003-01-07 Bernhard Held <bernhard AT bernhardheld.de>
11400 * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11401 * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11402 * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11403 * src/pic/pcode.c: outcommented unused variable to remove warnings
11404 * src/pic/ralloc.c: outcommented unused variable to remove warnings
11406 2003-01-06 <karl AT turbobit.com>
11407 * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11410 2003-01-06 <johan AT balder>
11412 * src/SDCCicode.c: fixed array add
11414 2002-01-05 Bernhard Held <bernhard AT bernhardheld.de>
11415 * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11416 * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11418 2003-01-04 <johan AT balder>
11420 * src/SDCCval.c (getNelements): fixed the initialized array of structures
11422 2002-12-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11423 * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11425 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
11426 * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11427 * support/regression/tests/bug-524697.c: fit mem usage into 8032
11429 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
11430 * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11432 2002-12-27 Bernhard Held <bernhard AT bernhardheld.de>
11433 * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11435 2002-12-26 Bernhard Held <bernhard AT bernhardheld.de>
11436 * src/mcs51/main.c: removed {bindir}{sep} from aslink
11438 2002-12-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11440 * in /sdcc/as/mcs51/ changed these files in order to create an
11441 aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11442 lkmain.c. Also added: lkmem.c and lkaomf51.c. Changed the
11443 following files to include the previous two files: aslink.dsp,
11444 Makefile.aslink, Makefile.bcc, and Makefile.in.
11446 * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11447 .adb instead of .cdb
11449 2002-11-09 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11451 * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11452 value from option --iram-size.
11454 2002-09-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11456 * /sdcc/as/mcs51/lklist.c: added boundary check before using
11459 2002-09-18 <wiml AT hhhh.org>
11461 * SDCClrange.h: exposed setFromRange() and setToRange()
11462 * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11463 packRegsForAccUse() (bug 542397)
11464 * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11465 multiple times and emitting the fetch operations more than once
11466 added aopGetUsesAcc() function to allow binary operators to
11467 fetch their operands in the correct order; made genMinus() emit
11468 compact code for X = LITERAL - Y
11470 2002-09-00 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11471 * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11472 sprintf() in line 1267.
11474 2002-09-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11475 * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11478 2002-09-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11479 Changes to aslink (All the changes are marked with 'JCF'):
11481 * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11484 * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11485 area BSEG. Also moves, if possible, the DATA area down into the internal
11486 ram so more space is available.
11488 * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11491 * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11492 not bytes. Function summary() which creates a memory usage summary
11493 file with extension .mem. Reports of overlaping stack and small stack
11494 size. If the space for the stack is less than 16 bytes aslink trows a
11497 * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11498 the 8051. Option 'y' for memory summary output file.
11500 Changes to sdcc (All the changes are marked with 'JCF'):
11502 * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11504 * /sdcc/src/SDCCglue.c: If a register bank is used, creates an
11505 overlaying area for it (uses RegBankUsed[4]).
11507 * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11508 bank zero as used by default. By default aslink locates the stack
11509 (equivalent to --stack-after-data). Pass option 'y' to aslink for
11510 the creation of the .mem file. Delegates the allocation of data area
11511 to aslink (it is not longer 0x30 by default). If --stack-loc passes
11512 the begining of the stack area to aslink.
11514 * /sdcc/src/SDCCmem.c: If a register bank is used, marks it so
11515 glue() in SDCCglue.c creates an area for it.
11517 2002-09-03 Borut Razem <borut.razem AT siol.net>
11518 * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11519 sdcc/src/pic/glue.c:
11520 introduced atexit() handler for teporay files removal in case of
11521 errors, assertions, ...
11523 2002-08-29 Borut Razem <borut.razem AT siol.net>
11524 * sdcc/support/cpp2/auto-host_vc_in.h:
11525 re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11526 with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11527 Maybe there is a similar problem with BORLANDC? It should be checked!
11529 * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11530 corrected improper use of assert: the assignment to clr variable was done inside the assert.
11531 In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11532 was not executed, and the compiler (cl) launched a warning:
11533 ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11535 2002-08-28 Bernhard Held <bernhard AT bernhardheld.de>
11536 * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11538 2002-08-28 Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11539 * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11541 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11542 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11543 sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11544 sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11545 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11546 sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11547 sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11548 - added Release configuration in VS projects
11549 - review of compiler an linker options
11550 - VC .exe files are generated in bin_vc directory, not to interfere
11551 with binaries generated from other projects (cygwin, mingw, bcc ...)
11553 * sdcc/src/yacc.dsp: added
11555 * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11556 added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11557 and insert the version number definitions from .version
11559 * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11561 * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11562 added - genarate auto-host.h using auto-host_vc_in.h as template
11565 removed from CVS, generated automatically
11567 2002-08-25 Bernhard Held <bernhard AT bernhardheld.de>
11568 * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11570 2002-08-11 Borut Razem <borut.razem AT siol.net>
11571 * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11573 2002-08-10 Borut Razem <borut.razem AT siol.net>
11574 * src/SDCCmain.c (main):
11575 file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11576 platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11577 The consequence was that some temporary files were not removed.
11580 unification of code in functions tempfilename() and tempfile():
11581 function tempnam() is defined in Visual Studio 6.0 and .NET
11583 * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11585 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11586 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11587 - removed compiler command line option /WX: Treats all warnings as errors
11588 - update a list of source files, included into the project
11590 * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11591 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11592 changed project type to Generic Project so that can be correcly converted to VS.NET project
11594 * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11596 * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11598 * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11600 * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11601 added return 0 statements after assert() to make compiler happy
11603 * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11604 added newline in the def file to keep MSC compiler satisfied
11606 * sdcc/src/z80/gen.c:
11607 - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11608 so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11609 - solved MSC error in function aopDump()
11611 * sdcc_vc.h: define PREFIX as "\\sdcc"
11613 2002-07-18 Bernhard Held <bernhard AT bernhardheld.de>
11614 * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11616 2002-06-22 Scott Dattalo <scott AT dattalo.com>
11617 * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11618 - Rewrote the register banking algorithm.
11619 - Added pCode live-range analysis to registers (for now, only non-used and
11620 singly-used registers optimized away)
11622 * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11624 * 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.
11626 2002-05-10 Scott Dattalo <scott AT dattalo.com>
11627 * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11629 2002-04-22 Michael Hope <michaelh AT vroom>
11631 * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11633 * configure.in (DD_COPT): Added include support required for gbdk.
11635 * .version: Bumped version number just to increase it.
11637 * src/SDCCmain.c: Added -nostdinc to the default options.
11639 2002-04-15 Michael Hope <michaelh AT vroom>
11641 * device/lib/z80/printf.c (sprintf): Added.
11643 * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11645 * src/z80/peeph.def: Added transpose redundent load rule.
11647 * src/z80/main.c: Added force callee saves for jaune.
11649 * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11651 * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11653 2002-03-28 Johan Knol <johan AT balder>
11655 * src/SDCCval.c: fixed bug #532436
11657 2002-03-14 Scott Dattalo <scott AT dattalo.com>
11659 Added "char *Processor" field to the port structure.
11662 Added -p option. Allows port dependent processor to be specified.
11665 Initialized the new field char *Processor field to NULL in all ports
11668 Compiler generated registers for interrupt context saving
11669 were not getting allocated.
11671 2002-03-16 Sandeep Dutta <sandeep AT ddi.com>
11674 Fixed left shift. Will promote the left side of a left shift
11675 if a) left shifting more than size of operand or b) when assigned
11676 to something size > size of left side
11678 2002-03-14 Scott Dattalo <scott AT dattalo.com>
11680 tons of changes. Register allocation has been
11681 rewritten. Added customization for the various PICs. Flow
11682 analysis is restructured. ...
11684 * src/pic/device.h:
11687 * src/pic/device.c:
11688 Added. device.c is a PIC port hack to accomodate variations
11691 2002-03-13 Michael Hope <michaelh AT vroom>
11693 * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled. Yeah.
11695 2002-03-04 johanknol <johanknol AT manik>
11697 * /src/SDCCval.c: fixed
11699 const unsigned char arr[][2] = { { 0, 1 } };
11700 t18.c:1: error: Initializer element is not constant
11702 2002-03-04 bela <bela AT manik>
11704 * /device/include/mcs51reg.h:
11705 ds89c420 register definition update
11707 2002-03-03 <johan AT FRIJA>
11709 * support/Util/SDCCerr.c: did something, but don't no why anymore
11711 * support/regression/tests/bug-524691.c: made it a little less shy
11713 * src/SDCCast.c (decorateType): fixed bug #524697
11715 * src/SDCCast.c: made some lineno improvements
11717 * src/SDCCval.c (getNelements): changed warning to error
11719 * src/SDCCglue.c (printIvalArray): changed warning to error
11721 * src/SDCCicode.c: fixed a warning for mingw
11723 * src/SDCCast.c (decorateType): fixed the << promotion for ops
11725 * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11727 2002-03-02 Sandeep Dutta <sandeep AT ddi.com>
11729 * src/ds390/peeph.def:
11730 Added some more peephole rules
11732 * src/ds390/gen.c: Various fixes & enhancements
11734 * src/SDCClrange.c, src/SDCClrange.h:
11735 functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11737 * src/ds390/ralloc.c:
11738 various fixes & enhancements (ds390) specific
11740 * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11741 Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11744 * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11746 2002-03-02 <johan AT FRIJA>
11748 * src/SDCCast.c (decorateType): fixed bug #524708
11750 * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11752 * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11754 2002-03-01 Michael Hope <michaelh AT vroom>
11756 * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11758 * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11760 2002-03-01 <johan AT FRIJA>
11762 * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11764 * src/SDCCast.c (decorateType): fixed bug #524209
11766 * src/SDCCval.c (valNot): fixed bug #524195
11768 2002-02-26 <johan AT balder>
11770 * src/xa51/gen.c: fixed a warning
11772 * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11774 * src/SDCCast.c (decorateType): fixed bug #522534
11776 2002-02-23 <johan AT balder>
11778 * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11780 2002-02-22 <johan AT balder>
11782 * src/SDCCast.c: fixed bug #514865
11784 * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11786 2002-02-21 Sandeep Dutta <sandeep AT ddi.com>
11788 * sdcc/src/SDCCloop.c:
11789 Previous fix was not good. basic blocks that have "break" or "return" are
11790 not really partof a loop , but live ranges used in these blocks should
11791 be live thru the entire loop, so set partOfLoop but don't add them to
11794 2002-02-21 <johan AT FRIJA>
11796 * src/SDCCcse.c: fixed bug #514308
11798 2002-02-20 Sandeep Dutta <sandeep AT ddi.com>
11801 Fixed BUG #519583. If a conditional block ended in a return/break
11802 statement inside a loop, it was not being considered part of the loop.
11804 * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11806 2002-02-10 Karl Bongers <karl AT turbobit.com>
11809 Fixed up SDCDB debugger somewhat. Updated debugger/README
11810 with lots of comments and notes.
11812 * device/examples/test2.c:
11813 Fix bug, "red" variable not being initialized(compiler complained).
11815 * device/examples/Makefile, examples/test3.c:
11816 Add Makefile in device/examples folder, compiles test3.c
11817 for use as a multiple module SDCDB test case.
11819 * sim/ucsim/cmd.src/cmdset.cc:
11820 Took out debug printfs in ucsim "next" command.
11822 * sim/ucsim/xa.src:
11823 Karl and Johan start ucsim XA support. Most dissassembly working,
11824 about 75% emulation done(plenty of work remaining).
11826 * sim/ucsim/z80.src:
11827 Add Z80 support to ucsim, add test-ucz80 regression test,
11828 notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11829 Notice z80 compiler fails on examples/test3.c/crc code.
11831 2002-01-30 Sandeep Dutta <sandeep AT ddi.com>
11833 * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11834 Added support for --parms-in-bank1
11836 * src/ds390/peeph.def:
11837 added a few more peephole optimzations
11839 * src/ds390/main.c:
11840 1) added __builtin_inp & __builtin_outp used to read in data of given length
11841 from a memory mapped port
11842 2) added __builtin_memcmp
11843 3) added __builtin_swapw swap bytes of a short
11845 * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11846 1) handle multiple send & receives from register bank1
11847 2) ralloc can now allocate DPTR1 to some liveRanges
11849 * src/SDCCsymt.c, src/SDCCsymt.h:
11850 changes to handle multiple sends & receives
11852 * src/SDCCptropt.h:
11853 added some pointer arithmetic optimization
11855 * src/SDCCptropt.c:
11856 added some pointer arithmetic optimizations but not stable yet so not
11857 called from anywhere (will get this working shortly)
11859 * src/SDCCopt.c: fixed for multiple sends & receives
11862 1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11863 2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11864 set preprocessor defines (depending on options)
11866 * src/SDCCicode.c, src/SDCCicode.h:
11867 changes made to handle multiple sends & receives
11870 Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11872 * src/SDCCcse.c, src/SDCCcse.h:
11873 added function findbackward def (to be used in upcoming optimization)
11875 * src/SDCCcflow.c, src/SDCCcflow.h:
11876 added function returnAtEnd - to determine if a basic block terminates with
11879 * src/SDCCast.c, src/SDCCast.h:
11880 added option parms-in-bank1
11882 * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11883 * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11884 * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11885 adjusted for --parms-in-bank1 option
11887 * device/include/string.h:
11888 donot redefine "reentrant" keyword
11890 * device/include/ds80c390.h: Added some more SFRs
11892 2002-01-28 Bernhard Held <bernhard AT bernhardheld.de>
11894 * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11896 2002-01-26 Bernhard Held <bernhard AT bernhardheld.de>
11898 * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11900 2002-01-22 Bernhard Held <bernhard AT bernhardheld.de>
11902 * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11904 2002-01-18 Paul Stoffregen <paul AT pjrc.com>
11906 * Added --xram-movc option
11908 2002-01-13 Bernhard Held <bernhard AT bernhardheld.de>
11910 * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11912 2002-01-11 Johan Knol
11914 * Added math lib of Jesus Calvino-Fraga
11916 2002-01-08 Bernhard Held <bernhard AT bernhardheld.de>
11918 * src/SDCCmain.c (processFile): fix processing of ../../src.c
11919 * support/regression/Makefile: new target test-mcs51-stack-auto
11920 * support/regression/ports/mcs51-stack-auto/spec.mk: added
11922 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
11924 * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11926 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
11928 * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11930 2002-01-03 Bernhard Held <bernhard AT bernhardheld.de>
11932 * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11934 * src/SDCCglue.h: add definition for printIvalChar()
11936 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
11938 * src/SDCCast.c: fix #498138 by Johan
11940 * src/SDCCglue.c: fix #498138 by Johan
11942 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
11944 * support/regression/Makefile: fix clean
11946 * support/regression/ports/ds390/support.c: fix transmission of last character
11948 2001-12-29 Sandeep Dutta <sandeep AT ddi.com>
11950 * /sdcc/src/ds390/gen.c:
11951 a) improved computing address of stack variable
11952 b) took out some #if 0 code
11953 c) improved parmBytes adjustment
11954 d) improved genPlusIncr & genMinusIncr
11955 e) genCmp could generate bad code (when left assigned to DPTR)
11956 f) Fixed bug in hasInc
11958 * /sdcc/src/ds390/ralloc.c:
11959 a) packRegsForSupport could mess up live information (Fixed)
11960 b) packRegsDPTRuse could be incorrect for left & right shift
11962 * /sdcc/src/mcs51/ralloc.c:
11963 packRegsForSupport could mess up the live information (Fixed)
11965 * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11967 * /sdcc/src/SDCCast.c:
11968 can reverse a loop even if function call is present as long
11969 as the loop control variable is local & is not passed as parameter
11971 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
11973 * /sdcc/ChangeLog: *** empty log message ***
11975 * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11976 More builtin function additions for TININative
11978 * /sdcc/src/ds390/ralloc.c:
11979 Had broken the regression testsuite
11981 * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11983 * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11984 Added funcattr hasStackParms will be set for reentrant functions when there
11985 are paramteres on the stack, this helps in minimizing frame pointer generation
11986 typeFromStr can handle function pointers now
11988 * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11989 *** empty log message ***
11991 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
11993 * /src/ds390/gen.c, /src/ds390/main.c:
11994 More builtin function additions for TININative
11996 * /src/ds390/ralloc.c:
11997 Had broken the regression testsuite
11999 * /src/SDCCast.c: Fixed a bug in dumptree
12001 * /src/SDCCsymt.c, /src/SDCCsymt.h:
12002 Added funcattr hasStackParms will be set for reentrant functions when there
12003 are paramteres on the stack, this helps in minimizing frame pointer generation
12004 typeFromStr can handle function pointers now
12006 * /doc/builtins.txt, /doc/TININative.txt:
12007 *** empty log message ***
12010 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
12012 * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12013 ALPHA version for -mTININative
12015 * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12016 updated to reflect changes in the port structure
12019 added function do_assemble (similar to do_link) if non-null this function
12020 will be called to do assembly (-mTININative) requires a multi command
12022 added function genAssemblerEnd will be called to generate assembler Epilogue
12025 added _JavaNative to debug info printing
12027 * /src/SDCCmain.c: added option --tini-libid
12028 added port->do_assemble function (-mTININative) has a multi command assemble
12030 * /src/SDCCglue.c: Disabled "constExpr" check
12031 added port->genAssemblerEnd function
12033 * /src/SDCCglobl.h: Added option --tini-libid value
12036 tookout optimizeCompare from the header (has no external references)
12038 * /src/SDCCast.c: made one more function "static"
12040 2001-12-23 Michael Hope <michaelh AT juju.net.nz>
12042 * src/z80/mappings.i: Added z80asm support.
12044 * src/z80/main.c: Added z80asm support on --asm=z80asm
12046 * src/z80/gen.c: Fixed asm portability issues.
12048 * src/asm.c (tvsprintf): Removed old code, added 'N' for function name. For extern support.
12050 * src/SDCCglue.c (printExterns): Added global/extern split.
12052 2001-12-17 Bernhard Held <bernhard AT bernhardheld.de>
12054 * support/regression/Makefile: added test for mcs51 model large
12056 * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12058 * support/regression/ports/gbz80/spec.mk: added -mgbz80
12060 2001-12-05 Michael Hope <michaelh AT juju.net.nz>
12062 * src/diff.1 (Index): Many, many optmisiations. Dhrystone up to 201.
12064 1904-01-06 Michael Hope <michaelh AT juju.net.nz>
12066 * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12068 * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12070 2001-12-02 Bernhard Held <bernhard AT bernhardheld.de>
12072 * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12074 * support/regression/tests/simplefloat.c: Port to mcs51.
12076 2001-11-25 Michael Hope <michaelh AT juju.net.nz>
12077 * support/regression/tests/bug-485362.c: Added.
12079 * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12081 * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12083 * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12085 * src/z80/gen.c (aopDump): Added a dump function.
12087 2001-11-25 Bernhard Held <bernhard AT bernhardheld.de>
12088 * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12090 * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12092 * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12094 * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12096 * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12098 * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12100 * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12102 * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12104 * support/regression/ports/ds390/support.c: Use tinibios.
12106 * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12108 2001-11-23 Michael Hope <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12110 * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12111 (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12113 * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12115 * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12117 2001-11-18 Michael Hope <michaelh AT juju.net.nz>
12119 * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12121 * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12122 (packRegsForIYUse): Created and optimised.
12124 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
12126 * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12127 2001-11-18 Bernhard Held <bernhard AT bernhardheld.de>
12129 * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12131 * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12133 * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12135 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
12137 * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12139 * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12141 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
12143 * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12145 * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12147 * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12149 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
12151 * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12152 (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12153 (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12155 * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12157 * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12158 (genNotFloat): Added.
12159 (genUminusFloat): Added.
12161 * device/lib/z80/Makefile: Added floating pt stubs.
12163 * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12165 * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12167 * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12169 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
12171 * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12173 * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12175 * sdcc/support/regression/Makefile: Add port ds390.
12177 * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12179 * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12181 * sdcc/support/regression/ports/ds390/spec.mk: Added.
12183 * sdcc/support/regression/ports/ds390/support.c: Added.
12185 * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12187 * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12189 * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12191 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
12193 * device/include/malloc.h: Added z80 and gbz80 support.
12195 * device/lib/gbz80/heap.s: Added.
12197 * device/lib/z80/heap.s: Added.
12199 * device/lib/malloc.c: Added z80 and gbz80 support.
12201 * support/regression/tests/malloc.c (testMalloc): Added.
12203 * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12205 * support/regression/tests/bug-478094.c: Added.
12207 * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12209 2001-11-04 Bernhard Held <bernhard AT bernhardheld.de>
12211 * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12213 * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12215 * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12217 * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12219 * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12221 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
12223 * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12225 2001-11-03 Michael Hope <michaelh AT juju.net.nz>
12227 * support/regression/tests/bug-477927.c: Added.
12229 * src/z80/peeph.def: Added minor rules.
12231 * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12233 * src/z80/peeph.def: Added jump optimisation modification.
12235 2001-11-01 Michael Hope <michaelh AT juju.net.nz>
12237 * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12239 2001-10-30 Michael Hope <michaelh AT juju.net.nz>
12241 * support/regression/tests/funptrs.c: Added.
12243 2001-10-29 Michael Hope <michaelh AT juju.net.nz>
12245 * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12247 2001-10-28 Michael Hope <michaelh AT juju.net.nz>
12249 * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12251 * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12253 * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12254 (movLeft2ResultLong): Created.
12256 * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12257 (joinPushes): Added. Joins two char pushes into a word push.
12259 2001-10-27 Michael Hope <michaelh AT juju.net.nz>
12261 * support/cpp2/Makefile.in (install): Added creation of dest dir.
12263 * support/makebin/Makefile (install): Added creation of dest dir.
12265 2001-10-24 Karl Bongers <karl AT turbobit.com>
12267 * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12269 2001-10-21 Michael Hope <michaelh AT juju.net.nz>
12271 * src/z80/ralloc.c: Turned off faulty pack for one use.
12273 * src/z80/peeph-gbz80.def: Removed redundent restart options.
12275 * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12277 2001-10-21 Bernhard Held <bernhard AT bernhardheld.de>
12279 * support/regression/Makefile: Improved clean
12281 * support/regression/ports/gbz80/spec.mk: Added clean
12283 * support/regression/ports/host/spec.mk: Added clean
12285 * support/regression/ports/z80/spec.mk: Added clean
12287 * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12289 * support/regression/ports/mcs51/timeout.c: little improvements
12291 2001-10-17 Michael Hope <michaelh AT juju.net.nz>
12293 * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12295 * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12297 * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12299 2001-10-16 Bernhard Held <bernhard AT bernhardheld.de>
12301 * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12303 * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12305 2001-10-13 Michael Hope <michaelh AT juju.net.nz>
12306 * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12308 * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12310 * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12312 * src/mcs51/main.c (_linkCmd): Added bin path to command.
12314 * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12316 * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12318 * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12320 * support/regression/tests/longor.c: Added.
12322 2001-10-11 Bernhard Held <bernhard AT bernhardheld.de>
12324 * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12326 * as/mcs51/aslink.h: define PATH_MAX
12328 * as/mcs51/asm.h: define PATH_MAX
12330 * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12332 * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12334 * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12336 * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12338 * src/SDCCglobl.h: define PATH_MAX
12340 * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12342 * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12344 2001-10-11 Michael Hope <michaelh AT juju.net.nz>
12346 * src/z80/gen.c (gencjneshort): Fixed
12348 * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12350 2001-10-09 Michael Hope <michaelh AT juju.net.nz>
12352 * support/regression/tests/bug-469671.c: Added.
12354 * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12356 2001-10-08 Michael Hope <michaelh AT juju.net.nz>
12358 * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12360 * src/z80/gen.c (genPlus): Fixed to work with extended stack. Also fixed genMinus, genCmp. genUMinus is still left.
12362 2001-10-08 Bernhar Held <bernhard AT bernhardheld.de>
12364 * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12366 * src/device/lib/_mulint.c : removed hint: nooverlay bug
12368 * src/device/lib/_mullong.c : removed hint: nooverlay bug
12370 * src/device/lib/_divuint.c : removed hint: nooverlay bug
12372 * src/device/lib/_divulong.c: removed hint: nooverlay bug
12374 * src/device/lib/_moduint.c : removed hint: nooverlay bug
12376 * src/device/lib/_modulong.c: removed hint: nooverlay bug
12378 2001-10-07 Michael Hope <michaelh AT juju.net.nz>
12380 * 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.
12382 * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all. Fixes runtime segfault.
12384 * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12386 2001-10-07 <johan AT FRIJA>
12388 * device/lib/gets.c (gets): fixed the return value.
12390 2001-10-06 Michael Hope <michaelh AT juju.net.nz>
12391 * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12393 * 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.
12395 * 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.
12397 * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12399 * src/pic/gen.c: Removed Safe_strdup.
12401 * configure.in: Added option to enable libgc support.
12403 * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12404 (bitVectUnion): Optimised.
12405 (bitVectIntersect): Optimised.
12406 (bitVectBitsInCommon): Optimised.
12407 (bitVectCplAnd): Optimised.
12409 * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it. Sigh.
12411 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12413 * src/SDCCmain.c: distinguish between assembler debug and plain options
12415 * src/avr/main.c: remove standard assembler options
12417 * src/ds390/main.c: remove standard assembler options
12419 * src/mcs51/main.c: remove standard assembler options
12421 * src/port.h: removed "PENDING" comment
12423 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12425 * src/device/lib/_mulint.c : new, with assember functions
12427 * src/device/lib/_mullong.c : new, with assember functions
12429 * src/device/lib/_divuint.c : with assember functions
12431 * src/device/lib/_divsint.c : with assember functions
12433 * src/device/lib/_divulong.c: with assember functions
12435 * src/device/lib/_divslong.c: with assember functions
12437 * src/device/lib/_moduint.c : with assember functions
12439 * src/device/lib/_modsint.c : with assember functions
12441 * src/device/lib/_modulong.c: with assember functions
12443 * src/device/lib/_modslong.c: with assember functions
12445 * src/device/lib/libint.lib: replaced _muluint.c and _mulsint.c by _mulint.c
12447 * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12449 * src/device/lib/Makefile.in: replaced _muluint.c and _mulsint.c by _mulint.c
12450 replaced _mululong.c and _mulslong.c by _mullong.c
12452 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12454 * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12456 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12458 * src/SDCCglue.c: test, if win32api is available for MINGW
12460 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12462 * src/SDCCsymt.c: no more _modifier in printTypeChain()
12463 * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12464 * support/regression/ports/gbz80/spec.mk: removed GENERIC
12465 * support/regression/ports/host/spec.mk: removed GENERIC
12466 * support/regression/ports/mcs51/spec.mk: removed GENERIC
12467 * support/regression/ports/z80/spec.mk: removed GENERIC
12469 2001-10-01 Michael Hope <michaelh AT juju.net.nz>
12471 * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12473 * support/regression/tests/bug-467035.c: Created.
12475 2001-10-01 <johan AT FRIJA>
12477 * src/SDCC.y: fixed bug #466586 part 1
12479 2001-10-01 Johan Knol <johan.knol AT iduna.nl>
12481 * SDCCicode.c: z80 has no generic pointers
12482 * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12484 2001-09-30 Michael Hope <michaelh AT juju.net.nz>
12486 * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12488 2001-09-29 Michael Hope <michaelh AT juju.net.nz>
12490 * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12492 * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12494 2001-09-25 Michael Hope <michaelh AT juju.net.nz>
12496 * configure.in: Fixed up so that ucsim is only configured once.
12498 * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12500 * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12501 (getPathDifference): As above.
12503 * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory. Fixed case where pre-processing only.
12505 * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12507 2001-09-23 Michael Hope <michaelh AT juju.net.nz>
12508 * .version: Updated to 2.3.1
12510 * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12511 Added copyright header.
12513 * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12514 (assemble): Added support for macro based assembler commands.
12515 (linkEdit): Added support for macro based linker commands.
12516 (preProcess): Changed the pre-processor to use macros.
12517 (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12518 (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12520 * device/lib/z80/crt0.s: Added module name for debugging.
12522 2001-09-20 Michael Hope <michaelh AT juju.net.nz>
12524 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12526 * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12528 * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12530 * src/Makefile.in: Added SDCCmacro and SDCCutil
12532 2001-09-19 Michael Hope <michaelh AT juju.net.nz>
12534 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12536 2001-09-16 <johan AT FRIJA>
12538 * 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.
12540 2001-09-15 <johan AT FRIJA>
12542 * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12543 * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12545 2001-09-11 <johan AT FRIJA>
12547 * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12549 2001-09-10 Michael Hope <michaelh AT juju.net.nz>
12551 * support/regression/tests/bug-460444.c: Added test case.
12553 * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12554 (genCast): Added justification for all of the asserts.
12556 2001-09-10 Bernhard Held <bernhard AT bernhardheld.de>
12558 * support/regression/support.c: _xdata replaced by xdata
12560 * support/regression/spec.mk: removed _generic
12562 2001-09-09 Michael Hope <michaelh AT juju.net.nz>
12564 * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12566 * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12567 (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12569 * src/z80/peeph.def: Added a rule to optimise shift then compare.
12571 * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12573 * support/regression/tests/bug-460010.c: Added test case.
12575 * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12577 2001-09-09 Bernhard Held <bernhard AT bernhardheld.de>
12579 * support/regression/Makefile: inter-port-clean adjusted for mcs51
12581 * support/regression/testfwk.c: removed workaround for bug #436344
12583 * support/regression/tests/bp.c: use less memory with mcs51
12585 * support/regression/tests/bug-441448.c: use less memory
12587 * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12589 * support/regression/collate-results.py: typo
12591 2001-09-08 Michael Hope <michaelh AT juju.net.nz>
12593 * support/regression/tests/fetchoverlap.c: Added new test case.
12595 * support/regression/tests/bp.c: Added new test case.
12597 * support/regression/tests/bug-448984.c: Added new test case.
12599 * support/regression/tests/pow2shifts.c: Added new test case.
12601 * src/z80/gen.c: Turned off the noise it normally generates for the release.
12602 (genlshTwo): Fixed right shift for count > 8.
12604 * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12606 2001-09-08 <johan AT FRIJA>
12608 * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12610 2001-09-07 <johan AT FRIJA>
12612 * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12614 * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12616 2001-09-06 <johan AT FRIJA>
12618 * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12619 * bernhard noted me at this: "() equals to (void)" (1.38)
12621 2001-09-05 <johan AT FRIJA>
12623 * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12625 2001-09-04 <johan AT FRIJA>
12627 * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12630 2001-09-04 Paul Stoffregen <paul AT pjrc.com>
12632 * pragma noinduction broke memcpy on mcs51 large model. Moved it inside z80 optimization
12634 2001-09-03 Michael Hope <michaelh AT juju.net.nz>
12636 * link/z80/aslink.h: Fixed path for PATH_MAX
12638 2001-09-02 Michael Hope <michaelh AT juju.net.nz>
12640 * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12642 * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12644 * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12646 * 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.
12648 2001-09-01 Michael Hope <michaelh AT juju.net.nz>
12650 * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12651 (genCmp): Fixed up genCmp for the GB with longs.
12653 * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12655 * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12657 * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12659 * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12661 2001-08-30 Paul Stoffregen <paul AT pjrc.com>
12663 * added peepholes 223 to 231 to mcs51 port. These improve code when using large model.
12665 2001-08-30 Michael Hope <michaelh AT juju.net.nz>
12667 * 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.
12669 * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12671 2001-08-29 Michael Hope <michaelh AT juju.net.nz>
12673 * link/z80/aslink.h: Fixed long file name support. Is now based off PATH_MAX instead of a constant.
12675 * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12677 2001-08-30 Bernhard Held <bernhard AT bernhardheld.de>
12679 * sim/ucsim/configure: little improvement of Cygwin-detection
12680 * sim/ucsim/configure.in: little improvement of Cygwin-detection
12681 * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12682 * support/regression/tests/bug-221100.c: small changes for mcs51
12683 * support/regression/tests/bug-221168.c: small changes for mcs51
12684 * support/regression/tests/bug-227710.c: small changes for mcs51
12685 * support/regression/tests/staticinit.c: small changes for mcs51
12686 * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12687 * as/mcs51/lklex.c: accept everything as symbol name in rel-files, bug fix ID 452601
12688 * as/mcs51/lksym.c: accept everything as symbol name in rel-files, bug fix ID 452601