* configure,
[fw/sdcc] / ChangeLog
1 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2
3         * device/lib/pic/libdev/Makefile.in,
4         * device/lib/hc08/Makefile.in,
5         * device/lib/gbz80/Makefile.in,
6         * device/lib/z80/Makefile.in,
7         * device/lib/ds390/Makefile.in,
8         * device/lib/ds400/Makefile.in: added srcdir to include search path,
9         thanks to Borut for the bug report
10         * configure.in,
11         * configure: always create doc/Makefile independent from --enable-doc
12         * Makefile.in: always install from directory doc independent from
13         --enable-doc
14         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
15         removed
16         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
17         * doc/Makefile.in: install *.txt if present
18
19 2006-04-28 Raphael Neider <rneider AT web.de>
20
21         * src/pic/{gen.c,main.h,pcode.c},
22         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
23             concerning signedness with casts
24
25 2006-04-28 Raphael Neider <rneider AT web.de>
26
27         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
28             definition of an interrupt handler,
29         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
30             interrupt handler stuff from picglue() to separate routine,
31           (picglue): enabled definition of intr handlers in files w/o main()
32
33 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
34
35         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
36           compilation with MSVC 2005 Express Edition (VC8)
37
38 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
39
40         * device/lib/Makefile: fixed build of gbz80 lib
41
42 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
43
44         * support/regression/tests/bug-460010.c,
45         * support/regression/tests/bug-524691.c,
46         * support/regression/tests/bug-716242.c: removed conditional defines
47           that are already in testfwk.h
48
49 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
50
51         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
52           (AccAXRsh1): added, shift right by 1,
53           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
54            AccAXLrl1
55         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
56
57 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
58
59         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
60         remove cast to same type
61         * src/SDCCast.c (decorateType): fix for RFE 1475742,
62         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
63         * as/z80/Makefile,
64         * link/z80/Makefile: removed, they have moved to
65         Makefile.in files
66         * configure,
67         * configure.in: replaced duplicate message about ucsim by missing sdcpp
68         * install-sh: fix bug #1204398 by setting umask 0022
69         * device/lib/Makefile: separate build of z80 and gbz80 lib
70
71 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
72
73         Enabled VPATH feature: changed nearly all Makefiles (149 files).
74         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
75
76         One basic decision: e.g. src/clean.mk includes further files. In order
77         to make this work there are two solutions:
78         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
79           run configure on them. This way they can use
80           'include $(srcdir)/port-clean.mk'
81         - always include clean.mk by the Makefile at the same level. To avoid
82           that `make clean` tries to include and build Makefile.dep the
83           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
84           implemented, because now even `make uninstall` doesn't create
85           Makefile.in. clean.mk could be eliminated by pasting it in
86           Makefile.in.
87
88         * debugger/mcs51/Makefile.in: build own objects from library sources
89         (SLIB, SDCC) in current directory
90
91         * configure, configure.in: renamed --disable-device-lib-build in
92         --disable-device-lib; added --enable-doc, the required tools are
93         searched by configure; added result message; the toolchain for the
94         belonging ports are now only built, if the port is enabled.
95
96         * support/regression/*: all output is written in directory gen, because
97         the fwk and ports directories don't livet in the build tree using vpath
98
99         * doc/sdccman.lyx: renamed --disable-device-lib-build to
100         --disable-device-lib, added --enable-doc, added section VPATH
101
102         * sim/ucsim/configure.in,
103         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
104         z80 are enabled by default
105
106 2006-04-24 Raphael Neider <rneider AT web.de>
107
108         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
109             to config word, "pic14_"-prefixed some extern functions
110           (pic14_emitConfigWord): emit __config directive(s) if assignment to
111             config word has been found
112         * src/pic/device.h: added prototypes
113         * src/pic/pcode.c: added "pic14_"-prefix where needed
114         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
115             fixup
116         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
117             words,
118           (pic14emitRegularMap): ignore config words,
119           (pic14createInterruptVect): moved generating __config directives away
120           (picglue): have __config directives emitted
121
122 2006-04-24 Borut Razem <borut.razem AT siol.net>
123
124         * doc/Makefile: sync with nightly build makefile
125
126 2006-04-24 Raphael Neider <rneider AT web.de>
127
128         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
129             registers that have not been assigned proper liveranges,
130             fixes #1469504 and #1474602,
131           (pCodeRegOptimizeRegUsage): fixed typo in comment
132
133 2006-04-24 Borut Razem <borut.razem AT siol.net>
134
135         * device/examples/main8051.c: deleted - it was removed from CVS
136           24.mar.2000 and after that modified 18.feb.2001, so it reappered
137           after the transition to Subversion
138         * src/SDCCalloc.h: deleted - it was removed  from CVS
139           3.feb.2001 and after that modified 18.feb.2001, so it reappered
140           after the transition to Subversion
141         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
142           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
143           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
144           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
145
146 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
147
148         * as/asx8051.dsp: added mcs51/strcmpi.h
149         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
150         * as/hc08/aslink.h: updated lnksect prototype
151         * as/hc08/asm.h,
152         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
153         * as/hc08/asmain.c,
154         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
155           (newdot): handle A_ABS
156         * as/hc08/asout.c,
157         * as/mcs51/asout.c (outarea): output address
158         * as/hc08/lkaomf51.c,
159         * as/mcs51/lkaomf51.c: disabled unused array UsageType
160         * as/hc08/m08pst.c,
161         * as/mcs51/i51pst.c,
162         * as/z80/z80pst.c: "ABS" is not A_OVR
163         * as/hc08/lkarea.c (newarea): read a_addr,
164           (lnkarea): added codemap array, sort absolute areas to the front,
165            combine all GSINITx/GSFINAL,
166           (find_empty_space, allocate_space): new functions,
167           (lnksect): return next address, handle absolute sections
168         * as/mcs51/lkarea.c (newarea): read a_addr,
169           lnksect2 prototype changed,
170           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
171           (find_empty_space, allocate_space): new, factored out of lnksect2,
172           (lnksect2): return next address, handle absolute sections
173         * as/hc08/lkhead.c,
174         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
175         * as/hc08/lklibr.c (addfile, fndsym),
176         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
177           index out of range and detect both '\' and '/'
178         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
179         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
180           regression tests (ds390 cannot return bool yet)
181         * doc/sdccman.lyx: changed version number, document changed --no-peep,
182           document critical interrupts on z80, document changed SDCC define
183         * src/asm.c (_asxxxx_mapping): fixed .org directive,
184           (_a390_mapping): added .org directive
185         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
186           (genMultOneByte): fixed warnings
187         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
188           ones
189         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
190         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
191           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
192         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
193         * src/pic16/main.c: removed newReg prototype
194         * src/pic16/pcode.c,
195         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
196           warnings
197         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
198           ones
199         * src/pic16/ralloc.c
200         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
201           to fix warnings
202         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
203           from short to PIC_OPTYPE
204         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
205         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
206           optype from short to PIC_OPTYPE
207         * src/port.h: made int_size unsigned to fix warnings
208         * src/SDCC.y: fixed warning on MSVC
209         * src/SDCCicode.c (getArraySizePtr): return unsigned int
210         * src/SDCCopt.c (convertToFcall): fixed warnings
211         * src/SDCCsymt.h: removed double prototype for genSymName
212         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
213           offset int to fix warnings
214
215 2006-04-22 Borut Razem <borut.razem AT siol.net>
216
217         * doc/sdccman.lyx, */Makefile, */Makefile.in:
218           references to CVS replaced with Subversion
219
220 2006-04-21 Borut Razem <borut.razem AT siol.net>
221
222         * doc/sdccman.lyx, */Makefile, */Makefile.in:
223           references to CVS replaced with Subversion
224
225 2006-04-19 Borut Razem <borut.razem AT siol.net>
226
227         * src/version.awk: adapted for svn
228         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
229           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
230           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
231           /binutils-avr/etc/*.vi, *.jin: removed all properties
232           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
233
234 2006-04-19 Borut Razem <borut.razem AT siol.net>
235
236         * CVS to Subversion migration completed
237
238 2006-04-18 Borut Razem <borut.razem AT siol.net>
239
240         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
241           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
242
243 2006-04-17 Borut Razem <borut.razem AT siol.net>
244
245         * device/include/Makefile.in: added pic/*.inc to the installation
246
247 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
248
249         * support/regression/collate-results.py: fixed output in case of
250         a valdiag error
251         * support/regression/generate-cases.py: fixed splitting of pathnames
252         with dots
253         * as/hc08/lklibr.c (addfile),
254         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
255
256 2006-04-11 Raphael Neider <rneider AT web.de>
257
258         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
259         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
260         * src/pic16/pcode.c (assignValnums): fixed #1460578
261
262 2006-04-11 Raphael Neider <rneider AT web.de>
263
264         * device/lib/pic/libdev/*.c,
265         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
266           fixes #1468739, enables compilation in --std-c99 mode
267         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
268
269 2006-04-11 Raphael Neider <rneider AT web.de>
270
271         * src/pic/device.c (find_device): removed debug output
272           (list_valid_pics): enabled verbose listing of supported devices
273         * device/include/stdbool.h: define bool as char for pic14/16 as well
274
275 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
276
277         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
278
279 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
280
281         * .version: bumped version to 2.5.6
282         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
283
284 2006-04-06 Raphael Neider <rneider AT web.de>
285
286         * .version: bumped version to 2.5.6 (pic14 ABI changed)
287         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
288         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
289           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
290             pic14_constructAbsMap
291           (pic14printPublics): declare absolute global symbols as global
292           (pic14createInterruptVect),
293         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
294           (newReg): assume new registers unused, use correct name in
295             hashtable (reg->name instead of name), more debugLog output
296         * src/pic/device.h (PIC_device): added fields for verbose output
297         * src/pic/device.c: moved device definition to pic14devices.txt,
298             added routines for runtime parsing of pic14devices.txt,
299             added support for second config word
300         * src/pic/main.c (_process_pragma): removed #pragma maxram,
301           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
302           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
303           (_pic14_parseOptions): moved pCodeInitRegisters here
304           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
305         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
306           (pCodeInitRegisters): rewrapped comments, perpared new approach to
307             handling the pseudo stack
308         * device/lib/Makefile.in: ignore failures in objects-pic16,
309         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
310         * device/lib/pic/NEWS: document new dependency on picXXX.lib
311         * device/lib/pic/Makefile.subdir,
312         * device/lib/pic16/Makefile.subdir: improved clean rules
313         * device/lib/pic/libdev/: NEW, pic14 device libraries
314         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
315         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
316         * device/include/Makefile.in: create subdir and install pic14 headers
317         * device/include/pic/p16f_common.inc: removed unused declarations
318         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
319             PICs from inc2h.pl v1.6,
320             replaced BIT_AT macros with struct declarations
321         * device/include/pic/pic14devices.txt: definition of supported devices,
322             all above improvements contributed by Zik Saleeba, thanks
323         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
324         * support/scripts/sdcc.nsi: also install pic14 device libraries and
325             headers
326
327 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
328
329         * device/include/mcs51/c8051f410.h: added interrupt numbers,
330         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
331           thanks to Charles Olds
332
333 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
334
335         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
336
337 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
338
339         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
340         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
341         * support/regression/bug1464657.c: added, new test
342
343 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
344
345         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
346           version number
347
348 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
349
350         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
351           --no-peep and --peep-file <file> are used don't use default rules but
352           do use the <file>
353
354 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
355
356         * src/mcs51/gen.c (genCall): fixed bug 1457608
357
358 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
359
360         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
361         changes seem to cause (trigger?) problems with the build system.
362
363 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
364
365         * src/SDCCpeeph.c (operandsLiteral): new, added,
366           (callFuncByName): inserted operandsLiteral
367         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
368
369 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
370
371         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
372         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
373
374 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
375
376         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
377           implemented patch 1120823 Thanks to Willy De la Court (normal
378           interrupts need an interrupt number now if they are made critical),
379           and enabled nesting of critical functions though not for gbz80
380           (genCritical, genEndCritical): added functions
381           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
382         * src/z80/mappings.i: added "ei" to all mappings
383
384 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
385
386         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
387         submitted by the Debian SDCC maintainer Aurelien Jarno:
388         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
389         archive with gcc 4.1 on mips and wrote the patch"
390
391 2006-03-16 Raphael Neider <rneider AT web.de>
392
393         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
394           the left operand is shorter than the result (c* = lit-c* + int),
395           fixes bug #1450796
396         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
397           OP_SYMBOL
398
399 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
400
401         * src/.version: increased version number to 2.5.5
402         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
403         linking is done manually in pic16 port's _linkEdit,
404         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
405         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
406         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
407         allocate asmop as AOP_ACC,
408         (aopForRemat): added parameter 'bool result' in function declaration,
409         (pic16_aopGet): return AOP_ACC when accessing WREG,
410         (pic16_popGetTempReg): minor modification,
411         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
412         'pic16_allocWithIdx',
413         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
414         calling function in absolute addresses,
415         (genAssign): take into account AOP_ACC asmop,
416         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
417         * src/pic16/pcoderegs.c: some debug functions and lines added,
418         * src/pic16/ralloc.c (decodeRegType): added but commented out,
419         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
420         register too,
421         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
422         call to allocReg, not by manually allocating a new one,
423         (pic16_assignRegisters): now before going through the register
424         allocating functions mark all registers as free. This eliminates some
425         side effects resulting from peephole parser done earlier in the backbone
426
427 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
428
429         * src/SDCCicode.c (geniCodeLogic),
430         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
431
432 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
433
434         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
435           (genSend): bugfix, do not allocate and free twice,
436           (shiftRLong): handle partially overlapping aops
437         * support/regression/tests/bitopcse.c: fixed warning redefined idata
438
439 2006-03-08 Borut Razem <borut.razem AT siol.net>
440
441         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
442           for pic16
443
444 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
445
446         * support/regression/tests/bug1409955.c: new, added
447         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
448         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
449           (aopForSym, aopOp): increment asmop.allocated if reused,
450           (freeAsmop): decrement asmop.allocated and check for zero instead of
451           using asmop.freed,
452           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
453           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
454            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
455            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
456            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
457            genSignedRightShift, genRightShift, genDataPointerGet,
458            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
459            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
460             in reverse order from allocation,
461           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
462             added swappedLR to keep track
463         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
464           pdata & code for GCC, z80, gbz80 & hc08
465         * support/regression/tests/zeropad.c: moved defines to testfwk.h
466
467 2006-03-08 Raphael Neider <rneider AT web.de>
468
469         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
470
471 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
472
473         * device/include/mcs51/c8051f410.h: new SiLabs mcu
474         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
475         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
476
477 2006-03-06 Borut Razem <borut.razem AT siol.net>
478
479         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
480           made the linker quiet
481
482 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
483
484         * src/pic16/gen.c (genPcall): fixed bug #1443644
485         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
486         which dumps before the function entry point a data byte which represents
487         the number of the local variables used by the specified function, added
488         'xinst' for initial support for Extended Instruction Support,
489         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
490         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
491         port->fun_prefix anymore (may change later),
492         (genFunction, genEndFunction): do not store/restore local registers for
493         _main (this should take care the --main-return command line option in
494         the future),
495         (genOr): removed some legacy pic-port instructions,
496         * src/pic16/genarith.c (genAddLit): re-enabled old code because
497         performing operations with SFR's causes data to be written more than
498         once to each SFR. Perhaps SFRs should be handled in special cases...
499         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
500         pcode.h
501         * src/pic16/main.c (_process_pragma): stack bound checking did not take
502         into account for stack starting position,
503         (struct OPTIONS pic16_optionsTable): added command line argument
504         --extended or -y for Extended Instruction Support,
505         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
506         (deassignLRs): *** perhaps the most important change, old 'for' code
507         (commented out for reference), didn't account for some registers which
508         were left marked 'not free' after a pointer operation. The change
509         reduces register usage a lot in some cases
510
511 2006-03-04 Borut Razem <borut.razem AT siol.net>
512
513         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
514           _clean
515         * support/regression/tests/bug-524697.c: decreased array size for
516           mcs51 to fit into the internal RAM
517         * support/regression/Makefile.in: a little bit more verbose
518
519 2006-03-03 Borut Razem <borut.razem AT siol.net>
520
521         * support/regression/fwk/lib/testfwk.c,
522           support/regression/fwk/include/testfwk.h: introduced function
523           _prints(), nonrecursive _printn(), call _initEmu() from main()
524         * support/regression/ports/gbz80/support.asm,
525           support/regression/ports/ucz80/support.asm,
526           support/regression/ports/z80/support.asm,
527           support/regression/ports/ds390/support.c,
528           support/regression/ports/hc08/support.c,
529           support/regression/ports/host/support.c,
530           support/regression/ports/mcs51/support.c,
531           support/regression/ports/xa51/support.c: added empty _initEmu()
532           function
533         * support/regression/ports/pic16/gpsim.cmd,
534           support/regression/ports/pic16/spec.mk,
535           support/regression/ports/pic16/support.c,
536           support/regression/Makefile.in: added pic16 regression test
537
538 2006-03-01 Raphael Neider <rneider AT web.de>
539
540         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
541           genConstPointerGet): use safe way of generating MOVFF to cover
542             literals as well as registers, fixes bug #1440527
543         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
544             dereference
545           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
546             more correctly, fixes bug #1232186
547           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
548         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
549             gplink guess the correct processor in more cases, applied patch
550             from Till Riedel attached to and fixing bug #1436552
551
552 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
553
554         * support/regression/tests/array.c: added, contains check for #1434401
555         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
556
557 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
558
559         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
560         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
561         * device/include/mcs51/c8051f326.h,
562         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
563         * device/include/mcs51/c8051f000.h,
564         * device/include/mcs51/c8051f018.h,
565         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
566           PCON_IDLE,PCON_STOP and added sfr16 definitions
567
568 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
569
570         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
571           genGetWord): fixed bug 1409955
572
573 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
574
575         * device/include/hc08/mc68hc908gp32.h,
576         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
577
578 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
579
580         * src/SDCCast.c (constExprValue): return NULL if not a value
581         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
582         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
583         * support/regression/tests/bitfields.c: enabled signed bitfield for all
584
585 2006-02-13 Borut Razem <borut.razem AT siol.net>
586
587         * src/regression/ptrarg.c: added, fails due to bug #1430967
588         * src/regression/Makefile: ptrarg.c added, ...
589
590 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
591
592         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
593         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
594
595 2006-02-11 Borut Razem <borut.razem AT siol.net>
596
597         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
598           print "Processor: xxx" message to stdout only if --verbose
599
600 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
601
602         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
603         * support/regression/tests/bug1426356.c: added
604         * support/regression/tests/bitfields.c: removed 2 tests
605
606 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
607
608         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
609         * device/include/mcs51/c8051f330.h,
610         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
611           PCON_IDLE,PCON_STOP and added sfr16 definitions
612         * device/lib/_divsint.c,
613         * device/lib/_divuint.c,
614         * device/lib/_divulong.c,
615         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
616           register bank bug for small stackauto
617
618 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
619
620         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
621
622 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
623
624         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
625         * all.dsp: corrected several bin paths
626         * device/include/mcs51/c8051f120.h,
627         * device/include/mcs51/c8051f300.h,
628         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
629           to PCON_IDLE,PCON_STOP
630         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
631         * device/lib/printf_large.c (output_float): fixed bug 1388703
632         * support/regression/tests/bug1057979.c: added test for bug 1388703
633
634 2006-02-08 Raphael Neider <rneider AT web.de>
635
636         * src/pic/pcode.c (pciTRIS): fixed typo,
637           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
638           (LinkFlow): fixed handling of flows that end in a call,
639           (ReuseReg): perform safety check earlier
640         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
641             to work with flows at the beginning of a pBlock,
642             fixes #1426557 (Symbol not previously defined),
643           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
644             usage information
645           (RemoveUnusedRegisters): update register usage info
646         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
647             created, reuse existing ones instead
648         * src/pic/gen.c (genPcall): fixed #1424719
649
650 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
651
652         * link/z80/lkmain.c,
653         * link/z80/lklex.c,
654         * link/z80/lkdata.c,
655         * link/z80/aslink.h: fixed build on current cygwin:
656         replaced getline() by lk_getline()
657
658 2006-02-01 Borut Razem <borut.razem AT siol.net>
659
660         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
661           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
662           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
663           src/regression/bool1.c, src/regression/bool2.c,
664           src/regression/bool3.c, src/regression/call1.c,
665           src/regression/compare.c, src/regression/compare10.c,
666           src/regression/compare2.c, src/regression/compare3.c,
667           src/regression/compare4.c, src/regression/compare5.c,
668           src/regression/compare6.c, src/regression/compare7.c,
669           src/regression/compare8.c, src/regression/compare9.c,
670           src/regression/configword.c, src/regression/for.c,
671           src/regression/inline.c, src/regression/mult1.c,
672           src/regression/nestfor.c, src/regression/or1.c,
673           src/regression/pointer1.c, src/regression/ptrfunc.c,
674           src/regression/rotate1.c, src/regression/rotate2.c,
675           src/regression/rotate3.c, src/regression/rotate4.c,
676           src/regression/rotate5.c, src/regression/rotate6.c,
677           src/regression/rotate7.c, src/regression/string1.c,
678           src/regression/struct1.c, src/regression/sub.c,
679           src/regression/sub2.c, src/regression/switch1.c,
680           src/regression/while.c, src/regression/xor.c,
681           src/regression/create_stc, src/regression/simulate,
682           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
683           regression tests
684         * src/regression/gpsim_assert.h: added
685
686 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
687
688         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
689         ((void (code *) (void)) 0) ();
690         * as/hc08/aslex.c,
691         * as/hc08/aslink.h,
692         * as/hc08/asm.h,
693         * as/hc08/asmain.c,
694         * as/hc08/lkdata.c,
695         * as/hc08/lklex.c,
696         * as/hc08/lkmain.c,
697         * as/mcs51/aslex.c,
698         * as/mcs51/aslink.h,
699         * as/mcs51/asm.h,
700         * as/mcs51/asmain.c,
701         * as/mcs51/lkdata.c,
702         * as/mcs51/lklex.c,
703         * as/mcs51/lkmain.c,
704         * as/z80/aslex.c,
705         * as/z80/asm.h,
706         * as/z80/asmain.c: fixed build on current cygwin:
707         replaced getline() by as_getline()
708
709 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
710
711         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
712         declarator in the symbol chain
713         * src/SDCCsymt.h,
714         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
715         parameter list for function pointers
716         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
717         * support/regression/tests/bug-716242.c: added
718
719 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
720
721         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
722         offset if possible
723         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
724
725 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
726
727         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
728         inifinitely recurseable, added static
729         * support/regression/tests/bug-1408066.c: added
730
731 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
732
733         * src/SDCCicode.h,
734         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
735         renamed, added possibility to create "postLoopLbl"-labels
736         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
737         newiTempLoopHeaderLabel
738         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
739         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
740         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
741         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
742         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
743         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
744         (basicInduction): fixed bug #136564, made static,
745         (loopInduction): changed parameter of basicInduction, made static,
746         (addPostLoopBlock): added
747         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
748         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
749         findLoopEndSeq
750         * support/regression/tests/bug-136564.c: added
751         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
752         --std-sdcc99 to LIBSDCCFLAGS
753
754 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
755
756         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
757         while loop
758         * support/regression/tests/bug-1406131.c: added
759
760 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
761
762         * src/SDCCast.c (decorateType): fix promotion of unary minus
763         * src/SDCCsymt.c (computeType): beautified
764         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
765         (valUnaryPM, valComplement): fix sign and promotion,
766         (valNot): ANSI: result type is int (SDCC: unsigned char)
767         * support/regression/tests/uminus.c: speedup by removing superflous
768         test case 'int'
769         * support/regression/tests/onebyte.c: added promotion and signedness
770         tests for unary minus
771         * support/regressions/tests/bug-477927.c: disable warning about
772         uninitialized variables
773         * support/regression/tests/not.c: added
774
775 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
776
777         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
778         * src/mcs51/gen.c (gen51Code): show final register usage after
779         fillGaps in asm with --i-code-in-asm
780         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
781         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
782         incUsed, rliveClear, adjustIChain): made static,
783         (setFromRange): excluded because it's unused,
784         (findPrevUseSym, markWholeLoop): added,
785         (findPrevUse): rewritten; fixes bug 895992; now a complete search
786         through all branches of predecessors enables sdcc to emit the warning
787         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
788         (rlivePoint): made static, added parameter emitWarnings which is only
789         true during the first run out of two,
790         (findRecursiveSucc, findRecursivePred): removed,
791         (computeLiveRanges): made static, added parameter emitWarnings,
792         (dumpIcRlive): added for debugging only
793         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
794         removed prototype of setFromRange()
795         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
796         in call of computeLiveRanges()
797         * support/regression/tests/bug-895992.c: added
798         * support/regression/tests/bug-971834.c: added
799         * support/valdiag/tests/bug-895992.c: added
800         * support/valdiag/tests/bug-971834.c: added
801
802 2005-12-18 Raphael Neider <rneider AT web.de>
803
804         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
805           (genUnpackBits): improved code for direct operands,
806           (genPackBits): improved code for literal assignment to bitfields
807             and for direct destination operands (no FSR indirection),
808             prevented redundant AND, fixes #1362800,
809           (AccLsh): added parameter to disable masking of the result
810         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
811           skip instructions with side-effects (like incfsz),
812           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
813         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
814         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
815           fixes #1375263
816
817 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
818
819         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
820         volatile variables as spill location
821
822 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
823
824         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
825         replacing literals
826         * support/regression/tests/bug-1376320.c: added
827
828 2005-12-08 Raphael Neider <rneider AT web.de>
829
830         * src/pic/device.c: renamed is_shared to pic14_is_shared
831         * src/pic/gen.c (genIfx): re-enabled handling of sbits
832         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
833           (is_valid_identifier): added for above workaround
834
835 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
836
837         * device/lib/Makefile.in: fixed to enable port-specific-objects
838         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
839           char, thanks Hubert Sack
840         * doc/sdccman.lyx: documented --xstack-loc,
841           elaborated a bit more on interrupts and pitfalls,
842           removed "setjmp/longjmp unsupported",
843           documented some unsupported C99 features
844         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
845         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
846           if, thanks Hubert Sack
847         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
848         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
849           make make_library
850         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
851           regression tests can report resource usage (rfe 700441)
852         * support/regression/collate-results.py: report resource usage
853         * support/regression/ports/ds390/spec.mk,
854         * support/regression/ports/hc08/spec.mk,
855         * support/regression/ports/mcs51/spec.mk,
856         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
857         * support/regression/ports/ds390/uCsim.cmd,
858         * support/regression/ports/hc08/uCsim.cmd,
859         * support/regression/ports/mcs51/uCsim.cmd,
860         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
861         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
862           library, use the default one
863         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
864           building the library
865
866 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
867
868         * config.dsp: added dependency on .version and configure_vc.awk
869         * device/include/setjmp.h: updated for --stack-auto and --xstack
870         * device/include/mcs51/at89c51snd1c.h: corrected line endings
871         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
872         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
873         * device/lib/libsdcc.lib: added _setjmp
874         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
875           (decorateType): fixed bug 1372851,
876           (optimizeGetHbit): fixed warning
877         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
878           array initialisation
879         * support/regression/tests/bug1057979.c: added test for bug 1358192
880         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
881
882 2005-12-03 Borut Razem <borut.razem AT siol.net>
883
884         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
885           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
886
887 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
888
889         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
890         createIval): implement symbol independant "flexible array member",
891         (createIvalCharPtr): implemented flexible array initialisation with a
892         string
893         * src/SDCCsymt.c (copyStruct): removed,
894         (getSize): fixed misleading comment,
895         (getAllocSize): removed, the additional allocation size is now in
896         sym->flexArrayLength,
897         (checkStructFlexArray): new, syntax checks for flexible array members,
898         (compStructSize): added syntax checks for "flexible array members"
899         (copyStruct): removed,
900         (copyLinkChain): removed inefficient fix for bug 770487
901         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
902         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
903         symbol->flexArrayLength
904         * src/SDCCerr.c,
905         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
906         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
907         * support/regression/tests/structflexarray.c: added
908         * support/valdiag/tests/structflexiblearray.c: added
909
910 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
911
912         * src/SDCCast.c (decorateType): fixed bug 1368489
913         * support/Util/SDCCerr.c,
914         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
915
916 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
917
918         * device/include/mcs51/at89c51snd1c.h: added file submitted by
919           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
920
921 2005-11-27 Borut Razem <borut.razem AT siol.net>
922
923         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
924           support/cpp2/mkdeps.h: added command line option
925           -obj-ext=<extension> to SDCPP to define object file externion, used
926           for generation of make dependencies (-M)
927         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
928
929 2005-11-26 Borut Razem <borut.razem AT siol.net>
930
931         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
932           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
933           added pic and pic16 libraries
934
935 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
936
937         * device/include/float.h: Corrected typo in prototype of __fsgt
938
939 2005-11-25 Borut Razem <borut.razem AT siol.net>
940
941         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
942           added creation of model-mcs51-stack-auto libraries
943
944 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
945
946         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
947         and fields-list too
948         * src/SDCCast.c (createIvalArray): removed obsolete comment
949
950 2005-11-24 Borut Razem <borut.razem AT siol.net>
951
952         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
953           added missing device/lib/mcs51/crt*.asm sources
954
955 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
956
957         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
958
959 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
960
961         * device/lib/_fs2schar.c,
962         * device/lib/_fs2sint.c,
963         * device/lib/_fs2slong.c: optimized inline asm
964
965 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
966
967         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
968           Better handling of floats between -1.0 and 0.0.
969
970 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
971
972         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
973           (the missing "if"s prohibited removal of redundant labels)
974
975 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
976
977         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
978           Properly convert floats between -1.0 and 0.0 to long, int, and char
979           types (max integer value of negative floats tends to zero).
980         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
981           Removed changes made so to work properly with floats between
982           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
983           and _fs2char.c
984
985 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
986
987         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
988         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
989         (genCast) cosmetic change
990         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
991         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
992         from mcs51
993         * support/regression/tests/bitfields (testSignedBitfields): added
994
995 2005-11-18 Borut Razem <borut.razem AT siol.net>
996
997         * sdcc/device/lib/Makefile.in: remove all unnecessary files
998         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
999           introduced SILENT option to make building of pic16 libraries less
1000
1001 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1002
1003         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1004           Now they work properly with floats between -1.0 and 0.0
1005         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
1006
1007 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
1008
1009         * src/SDCCicode.c (printOperand): added missing else
1010
1011 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1012
1013         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
1014         reformatted for better readability
1015         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
1016         signed bitfields
1017
1018 2005-11-17 Borut Razem <borut.razem AT siol.net>
1019
1020         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
1021           introduced SILENT option to make building of pic16 libraries less
1022           verbose - used for nightly snapshot build
1023         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
1024           available on Win32 platforms.
1025         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
1026           medium, large, pic and pic16
1027
1028 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1029
1030         * device/lib/printf_large.c: Temporary patch for bug 1358192:
1031           printf("%f"...) sets fraction to zero.
1032
1033 2005-11-16 Raphael Neider <rneider AT web.de>
1034
1035         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
1036           fixes #1357221
1037         * src/pic/gen.c (genIfx): implemented for CARRY bit
1038         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
1039           to generic pointers, fixes #1357332,
1040           (pic16_movLit2f): NEW,
1041           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
1042
1043 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1044
1045         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
1046
1047 2005-11-11 Raphael Neider <rneider AT web.de>
1048
1049         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
1050         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
1051           compute pointer's type from operand,
1052           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
1053           improved single bit reads, fixes bug #1353379
1054
1055 2005-11-09 Borut Razem <borut.razem AT siol.net>
1056
1057         * support/scripts/sdcc.nsi: added lib/pic to the package
1058
1059 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
1060
1061         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
1062
1063 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
1064
1065         * support/regression/tests/bug1348008.c: added
1066         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
1067         * support/regression/tests/bug1337835.c: updated comment
1068
1069 2005-11-06 Borut Razem <borut.razem AT siol.net>
1070
1071         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1072           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1073           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1074           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1075           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
1076           dynamic construction of cl_error_class and derivates - 2.nd try
1077
1078 2005-11-05 Borut Razem <borut.razem AT siol.net>
1079
1080         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
1081           bug, which caused Bus Errors on sparc solaris
1082
1083 2005-11-04 Borut Razem <borut.razem AT siol.net>
1084
1085         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1086           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1087           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1088           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1089           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
1090           and derivates to resolve the initialization problem on OSX
1091
1092 2005-11-02 Borut Razem <borut.razem AT siol.net>
1093
1094         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1095           corrected typo - #include <winsock2.h>
1096
1097 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
1098
1099         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
1100           (_asxxxx_mapping): added org directive for future enhancements
1101
1102 2005-11-01 Borut Razem <borut.razem AT siol.net>
1103
1104         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1105           enabled sockets on WIN32
1106         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
1107
1108 2005-10-31 Borut Razem <borut.razem AT siol.net>
1109
1110         * support/regression/generate-cases.py: escape backslashes in {testcase}:
1111           WIN32 backslash path delimiters should be escaped when used in C strings
1112         * support/regression/tests/bitfields.c: exclude failing assertions for
1113           __CYGWIN32__ and __MINGW32__ hosts
1114
1115 2005-10-30 Borut Razem <borut.razem AT siol.net>
1116
1117         * src/SDCCutil.c: corrected double comparison typo
1118
1119 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
1120
1121         * device/lib/medium/Makefile: added for new memory model medium
1122         * device/include/asm/mcs51/features.h: updated for medium/pdata
1123         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
1124           added Multiply & Accumulate sbit's and MAC0_PAGE define
1125         * device/include/mcs51/c8051f300.h: added sfr16 definitions
1126         * device/include/mcs51/c8051f310.h: added sfr16 definitions
1127         * device/lib/_mullong.c: update for medium model
1128         * device/lib/incl.mk: added medium model
1129         * doc/sdccman.lyx: documented medium model
1130         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
1131         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
1132         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
1133         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
1134           (allocParms): set SCLS and OCLS to pdata for medium model
1135         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
1136           for pdata,
1137           (powof2): return <0 if not power of 2
1138         * src/avr/gen.c (genBitWise): use updated powof2
1139         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
1140           (shiftR2Left2Result): small optimization in setup, save acc when storing,
1141           (shiftLLeftOrResult): use B if necessary
1142         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
1143         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
1144         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
1145         * support/regression/Makefile.in: added test-mcs51-medium
1146         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
1147
1148 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
1149
1150         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
1151         specifier unsigned
1152         * device/lib/time.c (mktime): fixed bug 1334315
1153
1154 2005-10-28 Raphael Neider <rneider AT web.de>
1155
1156         * device/include/pic/p16f_common.inc: added common declarations
1157         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
1158
1159 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1160
1161         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
1162           (aopPutUsesAcc): added to predict accumulator use,
1163           (assignResultValue): save acc if necessary,
1164           (genMinusDec): store result if indirectly addressed,
1165           (genDivOneByte):  save acc if necessary,
1166           (movLeft2Result): bugfix if left already in acc,
1167           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
1168             attention to accumulator use (esp. pdata),
1169           (genReceive): receive pdata correctly
1170         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
1171         * src/SDCCicode.h: added isOperandInPagedSpace prototype
1172
1173 2005-10-27 Raphael Neider <rneider AT web.de>
1174
1175         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
1176
1177 2005-10-27 Raphael Neider <rneider AT web.de>
1178
1179         * .version: changed version to 2.5.4
1180         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
1181         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
1182           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
1183             arithmetics support routines
1184         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
1185         * device/lib/Makefile.in: also create installdir for pic
1186
1187         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
1188           pic14 port as well
1189         * src/pic/device.c (dump_sfr): rewritten to delegate register
1190           placement to the linker (use `extern sym' rather than sym EQU addr),
1191           (validAddress): fixed to check last specified address
1192         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
1193           (popGetLit): truncate literal value to 8 bit,
1194           (popGet): moved assert to more appropriate place
1195           (popGetExternal): create pCode operand from and mark the according
1196             symbol as being `extern'
1197           (popGetAddr): added sanity check on immediate's offset, provide
1198             GPOINTER tag on demand
1199           (aopPut): fixed for immediates,
1200           (mov2w_op): move operand's address or contents to WREG (depending on
1201             operand type), safer variant of mov2w,
1202           (movwf,call_libraryfunc): NEW, handy abbreviations,
1203           (get_argument_pcop,get_return_val_pcop,pass_argument,
1204           get_returnvalue): interface for accessing function parameters and
1205             return values,
1206           (assignResultValuei,genRet): use new parameter/return value interface
1207           (pic14_getDataSize): back to old version handling generic pointers,
1208           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
1209             provided implementation and/or fixed old one,
1210           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
1211             calls, removed legacy 8051 reference code
1212           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
1213           (loadSignToC): NEW, move the operands sign bit to CARRY,
1214           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
1215             genRightShiftSigned, accepts negative shift counts,
1216           (setup_fsr): load FSR and adjust IRP (indirect memory access),
1217           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
1218             generic pointers, __data pointers and __code pointers,
1219           (genUnpackBits,genPackBits): rewritten to work with generic pointers
1220             and signed bitfields, limit bitfields to 8 bit,
1221           (genDataPointerGet): fixed number of bytes read,
1222           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
1223           (genPointerGet,genPointerSet): fixed handling of __code pointers,
1224             pointers to constant data are no longer assumed to point to __code
1225             space, removed invalid pointer types,
1226           (bitpatternFromVal): retrieve the PICs representation of an integer
1227             or float literal,
1228           (genDataPointerSet): fixed assigning to po_immediate operands,
1229           (genGenPointerSet): implemented as library call,
1230           (genIfx): fixed incorrect condition,
1231           (genAddrOf): limit generic pointers' addresses to 2 bytes,
1232             provide GPOINTER tag according to destination's storage class,
1233           (genCast): added code to handle casting to generic pointers, added
1234             sign-/zero extension of the result
1235           (aop_isLitLike,op_isLitLike): fixed handling of immediates
1236         * src/pic/gen.h: added macros to access IRP bit in STATUS register
1237         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
1238           extend the result
1239         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
1240           address/register resides in the shared banks
1241           (emitSymbolToFile): improved to handle global and `pinned' symbols,
1242             put all variables into separate sections (have the linker arrange
1243             them)
1244           (picglue): put init code and interrupt handlers in separate sections
1245         * src/pic/main.c: added port specific options table, modified to PORT
1246           structure to make GPOINTERs 3 byte, added pic14_options
1247           (_pic14_do_link): private linking routine (update paths to libraries,
1248             add libsdcc.lib by default)
1249         * src/pic/main.h: declare pic14_options
1250         * src/pic/pcode.c: fixed instructions i/o relations,
1251           (RegCond): reverted to correct version,
1252           (newpCodeOpLit): truncate literals to 8 bit,
1253           (genericPrint): added debug output,
1254           (getRegFromInstruction): fixed for various operand types, simplified
1255           (BuildFlow): fixed broken handling of isntructions with labels
1256           (LinkFlow): start at last instruction in flow (skip trailing comments),
1257             pass the flow on to the next instruction after CALL
1258           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
1259           (insertPCodeInstruction): fixed inserting after a skip instruction,
1260           (DoBankSelect): fixed for labeled instructions
1261           (OptimizepBlock): honor --nopeep switch
1262           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
1263         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
1264         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
1265           (pCodeOptime2pCodes): allow disabling this optimization via
1266             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
1267             but is still buggy), started implementation of a dataflow based
1268             pCode optimization (CSE + dead code elimination)
1269           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
1270         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
1271           names are independant of the stack location and therefore portable across
1272           devices
1273
1274 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1275
1276         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
1277           (selectSpil): fixed bug 1337835 by not spilling bit variables
1278         * support/regression/tests/bug1337835.c: added test for this bug
1279         * src/mcs51/peeph.def: restart after rule 3.c,
1280           addded rules 263.x to optimize loading constants
1281
1282 2005-10-26 Raphael Neider <rneider AT web.de>
1283
1284         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
1285         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
1286           (genAssign): emit warning when casting literals to generic pointer
1287             type, also applies when taking the address of a fixed variable,
1288           (genCast): improved casting to generic pointers
1289         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
1290           extern variables, added verbose error message
1291         * device/include/pic16/{string.h,errno.h}: added #pragma library c
1292
1293 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
1294
1295         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
1296         carry must be complemented too
1297         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
1298         could be emitted by genMinus
1299         * src/SDCCval.c (constVal): fixed bug 1305065
1300
1301 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
1302
1303         * src/SDCCast.c (addCast): added promotion for bit variables
1304         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
1305         promotion casts + optimisation
1306         (optimizeGetWord): fix warning 'i' might be used uninitialized
1307         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
1308         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
1309
1310 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
1311
1312         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
1313         all chars are promoted to int; promotion should be handled in SDCCast.c
1314
1315 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1316
1317         * device/lib/_strcmp.c: Fixed bug 1326457
1318
1319 2005-10-11 Raphael Neider <rneider AT web.de>
1320
1321         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
1322         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
1323
1324 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1325
1326         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
1327         * support/regression/tests/sfr16.c: added test for the sfr32 bug
1328
1329 2005-10-04 Raphael Neider <rneider AT web.de>
1330
1331         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
1332           device/lib/pic16/pics.all: added pic18f1320
1333         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
1334
1335 2005-09-30 Raphael Neider <rneider AT web.de>
1336
1337         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
1338         * src/pic16/devices.inc: NEW, provides device descriptions
1339         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
1340
1341 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1342
1343         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
1344           GETHBIT
1345
1346 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
1347
1348         * doc/sdccman.lyx: updated Highest Order Bit documentation,
1349           documented Any Order Bit, Higher Order Byte and Higher Order Word
1350         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
1351         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
1352           (optimizeGetAbit): new, to get any bit, not only the high bit,
1353           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
1354           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
1355           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
1356           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
1357             RIGHT_OP: also try GETBYTE, GETWORD optimization,
1358             GETABIT, GETBYTE, GETWORD: decorate them,
1359           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
1360           (ast_print): added GETABIT, GETBYTE, GETWORD
1361         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
1362         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
1363           (geniCodeBinary): new generic binary icode,
1364           (ast2iCode): added GETABIT, GETBYTE, GETWORD
1365         * src/port.h: updated comment for PORT.hasExtBitOp
1366         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
1367           (genGetByte): new, to get a single byte,
1368           (genGetWord): new, to get a word from a long,
1369           (gen51Code): added GETABIT, GETBYTE, GETWORD
1370         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
1371
1372 2005-09-23 Raphael Neider <rneider AT web.de>
1373
1374         * configure.in, configure: have device/lib/pic configured
1375         * device/lib/Makefile.in: added model-pic14
1376         * device/lib/clean.mk: added pic/ to clean rule
1377         * device/lib/pic: added rudimentary pic14 library providing support
1378           functions for multiplication/division/generic pointer access
1379         * src/SDCCopt.c (convilong): mark support functions as extern
1380           for pic14 port as well
1381         * src/pic/gen.c (genMult): added assertions,
1382           (genpic14Code): emit warning on unhandled iCodes
1383         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
1384         * src/pic/pcode.c (pCodeOpCopy),
1385         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
1386           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
1387           SFR_REGISTER}), made safe for future extensions
1388         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
1389           instructions even if preceeded by SKIP instructions (also remove
1390           them); removed unused code
1391         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
1392           prevents leaving parts of the structure uninitialized after copying
1393
1394 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
1395
1396         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
1397           ago by me
1398         * support/regression/tests/addsub.c: added test for the bug
1399
1400 2005-09-21 Raphael Neider <rneider AT web.de>
1401
1402         * device/include/pic16/pic18f1220.h,
1403           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
1404         * device/lib/pic16/Makefile.rules: added missing opening paren
1405         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
1406           are provided in genutils.c,
1407           (genUminusFloat,genUminus,genCmpEq): added asserts on different
1408           operand/result sizes,
1409           (genCmp): assert on NULL pointers first, then check deref'ed values
1410         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
1411           result size
1412
1413 2005-09-18 Raphael Neider <rneider AT web.de>
1414
1415         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
1416           as these are now unused,
1417           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
1418         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
1419           local, avoids uninitialized pointer dereference on r->name
1420         * src/pic16/ralloc.c (newReg): fixed indentation
1421
1422 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
1423
1424         * src/SDCCval.c (constVal): fixed bug 730366
1425         * support/Util/SDCCerr.c,
1426         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
1427
1428 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1429
1430         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
1431
1432 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
1433
1434         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
1435
1436 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1437
1438         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
1439           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1440         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
1441           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1442         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
1443         * packihx/packihx.c (hexDigit): made c unsigned char
1444         * as/mcs51/lklibr.c (fndsym),
1445         * link/z80/lkgb.c (gb),
1446         * link/z80/lklibr.c (fndsym),
1447         * link/z80/lkrloc.c (relr),
1448         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
1449         * src/SDCC.lex (checkCurrFile, process_pragma),
1450         * src/SDCCglue.c (spacesToUnderscores),
1451         * src/SDCCmain.c (setParseWithComma, processFile),
1452         * src/asm.c (tvsprintf, printCLine),
1453         * src/avr/gen.c (emitcode, aopPut),
1454         * src/ds390/gen.c (emitcode),
1455         * src/hc08/gen.c (emitcode, emitinline),
1456         * src/mcs51/gen.c (emitcode, genInline),
1457         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1458           tokenizeLineNode),
1459         * src/pic/ralloc.c (debugLog),
1460         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1461           tokenizeLineNode),
1462         * src/pic16/ralloc.c (debugLog),
1463         * src/z80/main.c (_process_pragma):
1464            made all ctype.h function calls safe
1465         * src/SDCCopt.c: include math.h for fabs
1466         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
1467           and used them throughout the code to make ctype.h function calls safe
1468         * src/ds390/main.c (asmLineNodeFromLineNode),
1469         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1470         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1471            unsigned char*
1472         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1473           (newpCodeAsmDir): made ctype.h function calls safe
1474         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1475           pic16_emitcode):  made lbp unsigned char*
1476         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1477           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1478         * src/xa51/gen.c (emitcode),
1479         * src/z80/gen.c (_emit2): made lbp unsigned char*
1480         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
1481            char*
1482
1483 2005-09-05 Raphael Neider <rneider AT web.de>
1484
1485         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
1486           access bank splitpoint
1487
1488 2005-09-05 Raphael Neider <rneider AT web.de>
1489
1490         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
1491
1492 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
1493
1494         * .version: changed to version 2.5.3
1495         * doc/sdccman.lyx: changed version to 2.5.3,
1496           documented --codeseg and --constseg and pragma codeseg and constseg,
1497           documented bit parameters (reentrant) and bit returning
1498         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
1499            currFunc->recvSize, but is this ok for all ports?
1500           (ast2iCode): result of ~ on unsigned char must be cast to int for
1501            bool to work
1502         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
1503           function pointers in bit space
1504         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
1505           (processFuncArgs): call port.reg_parm() with reentrancy info
1506         * src/port.h,
1507         * src/avr/main.c,
1508         * src/ds390/main.c,
1509         * src/hc08/main.c,
1510         * src/pic/main.c,
1511         * src/pic16/main.c,
1512         * src/xa51/main.c,
1513         * src/z80/main.c: port.reg_parm prototype extended with
1514           "bool reentrant" parameter
1515         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
1516           options.stackAuto for allocating bit register parameters
1517         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
1518           (genSend): set BitBankUsed if it is,
1519           (selectRegBank): factored out of genCall for use in genPcall,
1520           (genCall): removed redundant dtype assignmen, use selectRegBank,
1521           (genPcall): handle returning in Carry properly, save in F0 if needed,
1522           (genReceive): handle bit register parameters
1523         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
1524           (mcs51_assignRegisters): enable bit registers for all reentrant
1525            functions and don't set BitBankUsed unconditionally
1526         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
1527         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
1528         * support/regression/tests/funptrs.c: added tests for BOOL and for return
1529
1530 2005-08-27 Borut Razem <borut.razem AT siol.net>
1531
1532         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
1533         ppc-osx (Darwin) does not support -u option. It seems that it is
1534         supported only on Linux - GNU cp
1535
1536 2005-08-25 Borut Razem <borut.razem AT siol.net>
1537
1538         * sim/ucsim/gui.src/serio.src/Makefile.in,
1539           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1540           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1541           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
1542           install and strip, since the strip at /usr/ccs/bin should be used
1543           on solaris
1544
1545 2005-08-24 Borut Razem <borut.razem AT siol.net>
1546
1547         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
1548
1549 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
1550
1551         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
1552         ffffffffu
1553
1554 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
1555
1556         * as/mcs51/aslink.h: completed lkrloc.c prototypes
1557         * as/mcs51/lkmain.c (link_main): fixed warning
1558         * device/include/stdbool.h: ds390 has no advanced bit support yet
1559         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
1560         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
1561         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
1562           and updated their macros
1563         * src/SDCCval.c (constVal): updated comment for renamed b_long
1564
1565 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
1566
1567         * as/mcs51/asdata.c: changed ctype['['] to BINOP
1568         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
1569           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
1570           (oprio): set priority for '['
1571         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
1572            and adb_24_bit
1573         * as/mcs51/asm.h: added defines R_BIT and S_BIT
1574         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
1575         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
1576         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
1577           added overlayable BIT_BANK area
1578         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
1579           (summary2): explain 'T' in legenda
1580         * as/mcs51/lkrloc.c: replaced old K&R style,
1581           (relr): added R_BIT processing,
1582           (errmsg): added "Bit-addressable relocation error",
1583           (adb_bit): added for converting from byte- to bit-addressable space,
1584           (adb_24_bit): added for converting from byte- to bit-addressable space
1585         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
1586            used in reentrant functions now even as return value
1587         * device/lib/_gptrput.c (_gptrput): removed obsolete code
1588         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
1589           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
1590         * src/SDCCglobl.h: added indicator BitBankUsed
1591         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
1592            the bit registers b0-b7
1593         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
1594           (geniCodeCast): fixed bug 1263853,
1595           (geniCodeLogicAndOr): put result in bool or char,
1596           (geniCodeReceive): added parameter func for accessing the return type,
1597           (geniCodeFunctionBody): pass func to geniCodeReceive
1598         * src/SDCCmain.c: added indicator BitBankUsed
1599         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
1600         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
1601           (checkSClass): don't put automatic bool/bit on stack,
1602           (checkFunction): removed check on function cannot return bit
1603         * src/SDCCsymt.h: added newBoolLink prototype
1604         * src/mcs51/gen.c (rb1regs): added bit registers,
1605           (movc): created for assigning to carry,
1606           (pushReg, popReg): created for pushing registers,
1607           (sameRegs): check both AOP_REG and AOP_CRY types,
1608           (aopOp): handle bit registers,
1609           (aopPut): optimization no self-assign,
1610           (saveRegisters): push reg->base (bits) only once for bit registers,
1611            and use pushReg,
1612           (unsaveRegisters): pop reg->base only once and use popReg,
1613           (assignResultValue): added parameter func and return in carry for bits,
1614           (genIpush): optimization no reload in A if not changed,
1615           (genSend): bit parameters in reentrant functions are passed in bit
1616            registers by first assigning to bits in B, then save registers and
1617            copy B to bits,
1618           (genCall): handle returning in Carry properly, save it in F0 if needed,
1619           (genPcall): updated assignResultValue call, this is not safe yet for bit
1620            returning function !!!
1621           (genFunction): don't generate equ's for bit registers and use pushReg,
1622           (genEndFunction): take care of bit returning functions and use popReg,
1623           (genRet): return bit in Carry,
1624           (genIfx): optimize bit registers and other directly addressable bits,
1625           (genReceive): updated assignResultValue call
1626         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
1627           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
1628            registers when using stack-auto
1629         * src/mcs51/ralloc.c (_G): added allBitregs,
1630           (regs8051): added the bit registers,
1631           (createStackSpil): use macro IS_BIT,
1632           (getRegBit): added to allocate a bit register, else spill,
1633           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
1634           (updateRegUsage): factored out to ease stepping while debugging,
1635           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
1636            also allocate bit registers,
1637           (fillGaps): handle bit registers,
1638           (findAllBitregs): added to create bit vector with all bit registers,
1639           (mcs51_allBitregs): returns this bit vector,
1640           (mcs51_assignRegisters): when using stack-auto use bit registers for
1641            passing parameters and creating local variables
1642         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
1643
1644 2005-08-22 Borut Razem <borut.razem AT siol.net>
1645
1646         * device/lib/Makefile.in: replaced find option -or with -o
1647           to make it run on solaris
1648
1649 2005-08-22 Raphael Neider <rneider AT web.de>
1650
1651         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
1652           fixes #1265442 (crash on Solaris)
1653
1654 2005-08-20 Borut Razem <borut.razem AT siol.net>
1655
1656         * configure, configure.in: added tests for libsocket and libnsl libraries,
1657           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
1658           from support/regression/Makefile.in
1659         * support/regression/Makefile.in: added
1660         * device/lib/pic16/Makefile.common.in: force make to use bash shell
1661         * sim/ucsim/libtool: regenerated on sparc-solaris
1662         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1663           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
1664           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
1665           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
1666           sparc-solaris, which doesn't use GNU ld linker
1667         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
1668         * as/Makefile: find on sparc-solaris does not support -maxdepth option
1669
1670 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
1671
1672         * src/mcs51/peeph.def: updated comments
1673
1674 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1675
1676         * device/lib/_gptrget.c,
1677         * device/lib/_gptrput.c: slightly shorter
1678         * doc/sdccman.lyx: incremented version
1679         * src/mcs51/peeph.def: moved peephole comments to the line of first
1680           change to better keep line correlation, reanimated 186.e
1681         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
1682
1683 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1684
1685         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
1686           David Saxton with quotes around file name.
1687
1688 2005-08-15 Borut Razem <borut.razem AT siol.net>
1689
1690         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
1691           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
1692           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
1693           make tests run on x86_64 platform
1694
1695 2005-08-13 Raphael Neider <rneider AT web.de>
1696
1697         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
1698           as it might be executed DURING a build (parallel make is wonderful)
1699
1700 2005-08-13 Raphael Neider <rneider AT web.de>
1701
1702         * device/lib/Makefile.in (port-specific-objects-pic16):
1703           revert to cp $(PORT)/bin/*.* $(PORTDIR)
1704         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
1705           dependency
1706         * device/lib/pic16/Makefile.rules: build subdirs before creating
1707           the library, removed builddir rule, create $(builddir) early in
1708           recurse rule, use empty recurse rule for leaf directories
1709         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
1710           mkdir errors (race condition), removed duplicate suffix "hex"
1711           from clean rules
1712         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
1713         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
1714           prevents mkdir -p from aborting on Alpha
1715
1716 2005-08-12 Raphael Neider <rneider AT web.de>
1717
1718         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
1719           db-statements in order to allow for arrays of pointers in code
1720           sections to be placed without interspersed 0-padding, fixes
1721           bug #1256215
1722         * (emitStatistics): fixed division by zero for pic18f1220
1723         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
1724           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
1725         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
1726         * (pic16_pCodeConstString): keep track of already emitted string
1727           literals to prevent "duplicate definitions of symbol _str_NR"
1728         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
1729           debug message
1730         * device/lib/Makefile.in: ignore failing PIC16 library builds
1731         * device/lib/pic16/Makefile: do not build if gputils are missing
1732         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
1733
1734 2005-08-10 Raphael Neider <rneider AT web.de>
1735
1736         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
1737           my last commit)
1738
1739 2005-08-10 Raphael Neider <rneider AT web.de>
1740
1741         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
1742           Rokas' patch to add the new fixed point type "__fixed16x16"
1743         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
1744           functions for __fixed16x16 arithmetics
1745         * device/lib/pic16: reimplemented the build system to support
1746           a separate build directory, better handling of libio (create
1747           the library in a separate subdir for each architecture) and
1748           easier configuration (centralized in Makefile.common)
1749
1750 2005-08-07 Raphael Neider <rneider AT web.de>
1751
1752         * src/pic16/gen.c (genrshTwo): fixed sign extension
1753         * src/pic16/device.c: added pic18f2320, 4220 and 4320
1754         * device/include/pic16/pic18f2220.h: changed some bit definitions,
1755           added T0CONbits
1756         * device/include/pic16/pic18f4220.h: NEW, header for
1757           pic18f4220 and pic18f4320
1758         * device/include/pic16/pic18fregs.h: added new devices,
1759           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
1760         * device/include/pic16/signal.h: resolved name clashes
1761           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
1762           to also allow testing for interrupt enable bits, added
1763           comments on how to use the macros
1764         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
1765         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
1766           register definitions for the devices
1767         * device/lib/pic16/pics.all: added new devices
1768         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
1769           allocated memory
1770         * device/lib/pic16/libc/stdlib/memfree: do not count
1771           the block header as free memory
1772         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
1773           simplified and added missing end-of-blocklist-marker
1774           (reported by Peter Onion, fixes #1252814)
1775         * (_mergeHeapBlock): fixed loop condition
1776         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
1777           len==0, restructured code
1778         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
1779           up a bit, reduced bitfield accesses, prevent endless loops
1780           in case of heap corruption
1781         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
1782           "unreferenced arguments/must return a value" warnings
1783         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
1784           replaced BAUDREG with SPBRG
1785         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
1786           device/lib/pic16/debug/gstack/gstack.c: replaced
1787           _naked, _asm, _endasm with __naked, __asm, __endasm
1788
1789 2005-08-05 Raphael Neider <rneider AT web.de>
1790
1791         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
1792           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
1793
1794 2005-08-05 Borut Razem <borut.razem AT siol.net>
1795
1796         * device/lib/Makefile.in: added missing ';'
1797         * configure: removed ^M characters
1798
1799 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1800
1801         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
1802           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
1803           License
1804
1805 2005-08-04 Borut Razem <borut.razem AT siol.net>
1806
1807         * configure.in: pic16 libraries build 2nd try - enable running
1808           configure in device/lib/pic16
1809         * configure: regenerated from configure.in
1810         * device/lib/Makefile.in: create $(PORT)/bin directory
1811
1812 2005-08-03 Raphael Neider <rneider AT web.de>
1813
1814         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
1815           to get/set values via pointers
1816         * (genUnpackBits,genPackBits): changed detection of
1817           ptr->bitfield vs. sym.bitfield, fixed access via generic
1818           pointers, removed dead (wrong) code for multibyte bitfields
1819         * (genNearPointerGet, genGenPointerGet): removed useless code,
1820           fixed bitfield detection, fixes #1250594
1821         * (genNearPointerSet): removed useless code
1822         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
1823           and introduced macro pic16_emitpcode that conditionally emits
1824           the origin of the following pCode (useful for debugging SDCC)
1825         * src/pic16/pcode.c: changed (and disabled) some debug outputs
1826         * (createDefmap): fixed handling of LFSR for --optimize-df
1827
1828 2005-08-02 Borut Razem <borut.razem AT siol.net>
1829
1830         * device/lib/Makefile.in: pic16 libraries build enabled since
1831           gputils-0.13.2 are now localy installed at sourceforge's compile farm
1832
1833 2005-08-02 Raphael Neider <rneider AT web.de>
1834
1835         * src/pic16/gen.c (genPackBits): removed deprecated warning
1836         * (genGenPointerSet): fixed bitfield detection
1837
1838 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1839
1840         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
1841
1842 2005-07-31 Raphael Neider <rneider AT web.de>
1843
1844         * device/lib/pic16/libdev/pic18f458.c,
1845           device/include/pic16/pic18f458.h: added missing T0CONbits
1846
1847 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1848
1849         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
1850
1851 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
1852
1853         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
1854
1855 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1856
1857         * device/include/mcs51/at89c51ed2.h: added.
1858
1859 2005-07-23 Raphael Neider <rneider AT web.de>
1860
1861         * src/pic/gen.h: added emitpcode macro for debugging
1862         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
1863           and replace by macro adding debug information on demand
1864         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
1865         * (gencjne): tried to fix; replaced with correct (slower) code
1866         * (gen{Unp,P}ackBits): fixed single bit access
1867         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
1868         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
1869           previous instruction
1870         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
1871           register has to be handled with care (forbidding movement
1872           of assignments/uses, removing assignments completely, ...)
1873         * (pCodeOptime2pCodes): make use of regIsSpecial
1874         * added lots of debugging output (commented out)
1875         * src/pic/rallloc.c (deassignLRs): prevent operand registers
1876           from being reused as result UNLESS it is known to work
1877
1878 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1879
1880         * support/Util/dbuf.h: include <stddef.h> for size_t
1881         * .version: changed to version 2.5.2
1882
1883 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1884
1885         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
1886
1887 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1888
1889         * src/hc08/gen.c (genMinus): fixed bug #1241835,
1890           (genModOneByte): removed needless psha/pula
1891
1892 2005-07-22 Raphael Neider <rneider AT web.de>
1893
1894         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
1895           have PIC14 handled like PIC16, fixes broken pic14 linker calls
1896         * src/pic/gen.c (resolveIfx): do not "invent" labels
1897         * (genSkipc): changed to positive logic
1898         * (genSkipCond): removed as no longer needed
1899         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
1900           backport from PIC16
1901         * (genLeftShift): check operands are in different registers
1902         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
1903           INCF does not update CARRY...
1904         * src/pic/main.c: fixed _linkCmd
1905         * src/pic/pcode.c (unlinkpCode): added inactive code
1906         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
1907           alive (do not assign result and operand overlapping registers)
1908
1909 2005-07-22 Raphael Neider <rneider AT web.de>
1910
1911         * src/pic/device.c (dump_sfr): replaced register declaration with
1912           call to emitSymbolToFile() to avoid duplicate symbols
1913         * (assignRelocatableRegisters): do not declare external symbols
1914         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
1915           right (take size of type, not etype)
1916         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
1917         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
1918         * (packRegsForAccUse): disabled assignment of WREG as
1919           the result reg to prevent occurence of just fixed #1235003,
1920           fixes #1242954
1921         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
1922           symbols (avoids duplicate symbols in .asm file)
1923         * (pic14emitRegularMap): use emitSymbolToFile()
1924         * src/pic/gen.c (aopOp): fixed spillLocation handling
1925         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
1926         * (genDataPointerSet): removed unneccessary variables/output
1927
1928 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
1929
1930         * as/mcs51/lkarea.c: enlarged codemap for banked memory
1931         * device/lib/mcs51/crtbank.asm: added # to 0x0F
1932
1933 2005-07-21 Raphael Neider <rneider AT web.de>
1934
1935         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
1936           architecture cannot handle them efficiently, fixes bug #1235003
1937         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
1938           check for empty sets before using them (fixes bug #1232190)
1939
1940 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
1941
1942         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
1943           (lnksect2): generate warnings for memory overlap
1944         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
1945           constseg to set the name of these segments so you can instruct the linker
1946           to place them in banks
1947         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
1948         * src/SDCCglobl.h: added MODEL_HUGE to enum,
1949           added code_seg and const_seg to options
1950         * src/SDCCglue.c (emitMaps): use options.const_seg,
1951           (createInterruptVect): put interrupt vectors in segment HOME,
1952           (glue): put HOME before static segment and put the main glue in HOME,
1953           (glue): use options.code_seg
1954         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1955         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1956           these segments so you can instruct the linker to place them in banks
1957           (linkEdit): use code_loc for HOME segment which should be the first
1958           segment in code memory now
1959         * src/SDCCmem.c: fixed more stuff like bug 1238386
1960         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1961           (changePointer): don't change function pointers to code pointers for
1962           banked functions,
1963           (compareType): added exceptional check for banked function pointers
1964         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1965         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1966           after static in code memory
1967         * src/mcs51/gen.c: added aopLiteralLong prototype,
1968           (aopForSym): use getSize for functions,
1969           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1970           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1971           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1972           the segment,
1973           (genPcall): use call for literal function pointers and generate banked
1974           calls over the one trampoline so there's only one place for the user to
1975           modify according to his/hers hardware,
1976           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1977           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1978         * src/mcs51/main.c: added keyword banked,
1979           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1980         * support/Util/SDCCerr.c,
1981         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1982           needed for passing the bank and address to the trampoline
1983         * device/lib/mcs51/crtbank.asm: added for bankswitching
1984         * device/lib/mcs51/Makefile: added crtbank
1985
1986 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1987
1988         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1989           for fields at offset 0 of a struct or union as reported
1990           on 2005-07-07 in the developer mailing list.
1991
1992 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1993
1994         * src/SDCCmem.c: fixed bug 1238386
1995
1996 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1997
1998         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1999           (patch #1144962), added peephole 300, enabled 259.x
2000         * doc/sdccman.lyx: removed screenshot and provided link instead
2001
2002 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2003
2004         * doc/sdccman.lyx: added section about debugging with ddd
2005         * doc/figures/ddd_example.eps: screenshot of debugging session
2006
2007 2005-07-04 Raphael Neider <rneider AT web.de>
2008
2009         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
2010           like CODE pointers, fixes #1115683
2011         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
2012           call, fixes bugs #1232211, #1228110,
2013           fixed wrong casts to pCodeFlow from pCodeInstructions
2014
2015 2005-07-04 Raphael Neider <rneider AT web.de>
2016
2017         * src/pic/gen.c (popGet): changed assert to allow for
2018           bit operands
2019         * (popGetAddr): changed signature to provide
2020           an additional index, patched all call sites
2021         * (genCmpEq): handle literal-like operands correctly
2022         * (genAddrOf): added sanity checks on __code/__data pointers
2023         * (genAssign): added handling of symbols from __code section
2024         * (gencjne): do not generate code for comparisons whose result
2025           is neither stored nor used, fixes bug #1171114
2026         * (AccLsh, AccRsh): operate on operand instead of WREG
2027         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
2028           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
2029           by known count
2030         * rewrote complete shift-by-literal logic, commented unused
2031           functions out
2032         * (genConstPointerGet): get multiple bytes (if result size > 1),
2033           fixed handling of non-immediate addresses
2034         * (genPointerGet): handle CODE pointers like CONST pointers
2035         * (genpic14Code): insert C-SRC lines as Cource-pCodes
2036         * ({aop,op}_isLitLike): NEW, single place to decide whether an
2037           operand is to be treated as a literal or not
2038         * (mov2w,genPcall,genCmpEq),
2039           src/pic/genarith.c: use aop_isLitLike() to decide between
2040           literal/register contents
2041         * (addSign): added missing offset
2042         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
2043           only emit comment in debug-mode,
2044           use {aop,op}_isLitLike throughout the file
2045         * src/pic/glue.c: fix initializers for pointers (work in progress)
2046         * src/pic/pcode.c (get_op): honor index on _const symbols
2047         * ({reset,dump}pCodeStatistics): NEW, estimate code size
2048         * (dumppBlock): added pCode size estimation
2049         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
2050           check for IS_SYMOP before OP_SYMBOL'ing
2051         * fixed indentation, compacted switch-statements
2052         * (allocReg): find free register and allocate it instead of
2053           allocating new registers all the time
2054         * (deassignLRs): prevent POINTER_GET's from being assigned the same
2055           registers as its operands (necessary only for multibyte GETs)
2056
2057 2005-07-01 Raphael Neider <rneider AT web.de>
2058
2059         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
2060           debugging .asm-output macros FENTRY + FEXIT
2061         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
2062           way... I wonder...
2063         * (emitpComment): NEW, printf to pCode
2064         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
2065           offset handling
2066         * (popGetAddr): NEW, variant of popGet to access an immediates
2067           high(er) bytes instead of the n'th byte of memory they reference,
2068           replaced popGet with popGetAddr where neccessary
2069         * (genDataPointerGet): reactivated and fixed implementation
2070         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
2071           accesses
2072         * (genDataPointerSet): fixed multibyte assignments
2073         * (genpic14Code): fixed --i-code-in-asm handling
2074         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
2075         * (genPlus): fixed index-out-of-bounds error
2076         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
2077         * src/pic/ralloc.c: added debugging output macro FENTRY2
2078         * (spillThis): fixed indentation, enbraced for-body for clarity
2079         * (rematStr): commented out as now unused
2080         * (regTypeNum): commented out special spill case (overwrites
2081           arbitrary values)
2082         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
2083
2084 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
2085
2086         * doc/sdccman.lyx: documented sfr16/sfr32,
2087           added example for using storage class with function pointers
2088         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
2089
2090 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
2091
2092         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
2093         * device/lib/_itoa.c,
2094         * device/lib/_ltoa.c: optimized codesize
2095         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
2096           but don't know how to suppress the double warning.
2097         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
2098         * support/Util/SDCCerr.c,
2099         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
2100
2101 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
2102
2103         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
2104           fixed old K&R prototypes
2105         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
2106         * device/lib/_gptrget.c,
2107         * device/lib/_gptrgetc.c,
2108         * device/lib/_gptrput.c: changed versions for new memory indicator values,
2109           also new versions for small generic pointers and banked generic pointers
2110         * src/port.h: added const_name
2111         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
2112         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
2113         * src/SDCCcse.c (findPrevIc): check all associative operators
2114         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
2115         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
2116         * src/SDCCmem.c: updated comments,
2117           set far-space to 0 for pdata, results in optimized code
2118         * src/SDCCmem.h: added macro CONST_NAME
2119         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
2120           moving the info into the highest bits, see also gptrget/gptrput
2121         * src/src.dsp: added sdcc.ico to project files
2122         * src/avr/gen.c (genCast): fixed bug 0x%d
2123         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
2124         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
2125           relation between ptr_type and DCL_TYPE,
2126           (genCast): fixed bug 0x%d
2127         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
2128           (CODE)" for const_name
2129         * src/hc08/gen.c (genCast): fixed bug 0x%d
2130         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
2131           (hc08_port): added "CONST (CODE)" for const_name
2132         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
2133           (aopForRemat, adjustArithmeticResult): disconnected direct relation
2134           between ptr_type and DCL_TYPE,
2135           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
2136           operand* and took AOP() inside function so sfr-ness can be checked,
2137           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
2138           new prototype,
2139           (genFunction, genEndFunction): optimized stack setup,
2140           (genMinus): optimized for literals with ending zeroes (in bytes),
2141           (genCast): fixed bug 0x%d
2142         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
2143           (mcs51_port): added "CONST (CODE)" for const_name
2144         * src/mcs51/peeph.def: made rule 226 more generic
2145         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
2146         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
2147         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
2148         * src/z80/main.c (z80_port): added NULL for const_name,
2149           (gbz80_port): added NULL for const_name
2150         * support/regression/tests/bug663539.c,
2151         * support/regression/tests/sfr16.c: new tests
2152
2153 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2154
2155         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
2156
2157 2005-06-24 Raphael Neider <rneider AT web.de>
2158
2159         * device/lib/pic16/libdev/pic18f[68][567]20.c:
2160           corrected typos...
2161         * device/include/pic16/signal.h: added USBIF
2162           and SIG_USB
2163
2164 2005-06-24 Raphael Neider <rneider AT web.de>
2165
2166         * device/lib/pic16/libdev/pic18f2455.c,
2167           device/include/pic16/pic18f2455.h: NEW
2168         * device/include/pic16/pic18fregs.h,
2169           device/lib/pic16/pics.all,
2170           src/pic16/device.c: added 18f2455
2171         * device/lib/pic16/libdev/pic18f[68][567]20.c,
2172           device/include/pic16/{pic18f[68][567].h,usart.h}:
2173           replaced MULTIPLE_USARTS define with more relaible
2174           compatibility sfrs (for USART access)
2175
2176 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
2177
2178         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
2179           and the output asm file line is printed on two lines.
2180
2181 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2182
2183         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
2184           BGT, BLE, BHI, and BLS instructions
2185         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
2186           genCmpEq): removed
2187         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
2188           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
2189           fixes bug #1216342
2190         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
2191
2192 2005-06-15 Raphael Neider <rneider AT web.de>
2193
2194         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
2195         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
2196         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
2197           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
2198           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
2199
2200 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2201
2202         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
2203           Marcel Telka in bug #1215704
2204
2205 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
2206
2207         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
2208           located in shared memory bank.
2209
2210 2005-05-31 Raphael Neider <rneider AT web.de>
2211
2212         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
2213           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
2214           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
2215
2216 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
2217
2218         * device/lib/_strncpy.c: fixed the fix
2219
2220 2005-05-26 Raphael Neider <rneider AT web.de>
2221
2222         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
2223           initializers with \0, bug #1208187
2224         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
2225           intializers with \0, bug #1208187
2226
2227 2005-05-26 Raphael Neider <rneider AT web.de>
2228
2229         * src/pic16/glue.c (pic16_printIvalChar): fixed string
2230           initializers with \0, bug #1208187
2231         * src/pic16/main.c (_process_pragma): added sanity checks
2232           for stack position and size, emit warnings when appropriate
2233
2234 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * device/lib/_strncpy.c: fixed not filling with \0
2237
2238 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2239
2240         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
2241           createFunction),
2242         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
2243           compound_statement),
2244         * src/SDCCsymt.h,
2245         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
2246
2247 2005-05-24 Raphael Neider <rneider AT web.de>
2248
2249         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
2250
2251 2005-05-24 Raphael Neider <rneider AT web.de>
2252
2253         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
2254           TRISE definitions, closes bug #1162453
2255
2256 2005-05-22 Raphael Neider <rneider AT web.de>
2257
2258         * src/pic16/main.c (_process_pragma): check for missing
2259           arguments to pragmas code and udata
2260         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
2261           consistency fixes to match other headers (thanks to Jim Paris)
2262         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
2263
2264 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2265
2266         * src/SDCCicode.c (isOperandEqual): fixed missing ;
2267
2268 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
2269
2270         * support/regression/tests/bug1198642.c: new test
2271         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
2272         * src/SDCCcse.c (findPrevIc): added comment, please have a look
2273         * support/scripts/resource.h,
2274         * support/scripts/resource.rc,
2275         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
2276         * support/scripts/sdcc.ico: added 32x32 icon
2277
2278 2005-05-18 Raphael Neider <rneider AT web.de>
2279
2280         * device/lib/pic16/libdev/pic18f*.c,
2281         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
2282           keywords to "__sfr" and "__at (X)"
2283         * device/include/pic16/pic18fregs.h: added pic18f4520
2284         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
2285           #1203088 (MPLAB compatibility)
2286
2287 2005-05-17 Raphael Neider <rneider AT web.de>
2288
2289         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
2290         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
2291         * device/lib/pic16/pics.all: added new devices
2292         * src/pic16/device.c: added support for pic18f4520
2293
2294 2005-05-16 Raphael Neider <rneider AT web.de>
2295         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
2296         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
2297         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
2298           convenience function for bit access
2299
2300 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2301
2302         * device/lib/printf_large.c: fixed bug 1193299
2303         * support/regression/tests/bug1057979.c: added test %3.3s
2304
2305 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2306
2307         * device/include/mcs51/8051.h,
2308         * device/include/mcs51/8052.h: made parseable with lint
2309         * device/include/mcs51/lint.h: added include file for (sp)lint
2310         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
2311         * doc/cdbfileformat.lyx,
2312         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
2313
2314 2005-05-14 Raphael Neider <rneider AT web.de>
2315
2316         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
2317         * device/lib/pic16/libc/stdlib/itoa.c (new)
2318         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
2319         * device/lib/pic16/libio/Makefile: exclude subdir according to
2320           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
2321         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
2322         * src/pic16/gen.c (genFunction): prevent annoying warning
2323         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
2324           nameclashes on BeOS
2325         * support/cpp2/cppmain.c (cpp_output_string): new
2326         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
2327           fixes bug 1116802
2328
2329 2005-05-13 Borut Razem <borut.razem AT siol.net>
2330
2331         * src/SDCCmain.c (linkEdit): fixed bug 1195202
2332
2333 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2334
2335         * .version: changed to version 2.5.1; back to bleeding edge development
2336
2337 2005-05-11 Borut Razem <borut.razem AT siol.net>
2338
2339         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
2340           generate PDF version 1.3 documents
2341
2342 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2343
2344         * .version: changed to version 2.5.0
2345
2346 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2347
2348         * doc/sdccman.lyx: updated weblinks, index and smaller updates
2349
2350 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2351
2352         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
2353         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
2354         well as many smaller updates.
2355         * .version: changed to version 2.5.0-pre1
2356
2357 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2358
2359         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
2360
2361 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2362
2363         * support/regression/tests/bug1185672.c: added
2364         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
2365           bug 1185672
2366         * src/mcs51/gen.c (genCall): added comments, made it look safer
2367         * src/mcs51/gen.c (genEndFunction): simplified
2368
2369 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2370
2371         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
2372
2373 2005-04-14 Borut Razem <borut.razem AT siol.net>
2374
2375         * fixed bug 1045046 - SIGSEGV with really simple code?:
2376           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
2377           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
2378
2379 2005-04-14 Borut Razem <borut.razem AT siol.net>
2380
2381         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
2382           src/pic16/device.h: temporarily disabled experimental #inline pragma
2383           for 2.5.0 release
2384
2385 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
2386
2387         * device/include/z80/stdio.h,
2388         * device/include/z80/string.h: removed these highly incomplete files so
2389           SDCC can use the default ones in device/include/
2390
2391 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2392
2393         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
2394         gcc warning.
2395         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
2396         fix sdcpp warnings.
2397
2398 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2399
2400         * device/include/malloc.h: removed redundant __reentrant prototypes
2401         * device/lib/_mullong.c: added working xstack variant in asm (C version
2402           doesn't pass regression tests)
2403         * device/lib/bpx.c: used __data and made bpx char for mcs51
2404         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
2405           (createFunction): fixed bug with xstackPtr
2406         * src/SDCCcse.c: corrected comments
2407         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
2408           (killDeadCode, eBBlockFromiCode): removed unused code
2409         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
2410           corrected comments
2411         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
2412           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
2413           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
2414           (genModOneByte): fixed warning in MSVC
2415         * src/mcs51/main.c (): added comments
2416         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
2417
2418 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2419
2420         * src/SDCCmain.c (linkEdit): oops, changed one line too many
2421
2422 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
2423
2424         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
2425
2426 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
2427
2428         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
2429         characters arrays of larger size than the declared one.
2430
2431 2005-04-10 Borut Razem <borut.razem AT siol.net>
2432
2433         * src/pic/gen.c (genInline),
2434           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
2435           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
2436           (findNextInstruction), (findPrevInstruction),
2437           (findInstructionUsingLabel),
2438           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
2439         * src/pic/pcode.c (findLabel): added missing '\n'
2440         * src/src.dsp: added SDCCdwarf2.c to the project
2441
2442 2005-04-09 Borut Razem <borut.razem AT siol.net>
2443
2444         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
2445
2446 2005-04-08 Raphael Neider <rneider AT web.de>
2447
2448         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
2449           into the chain after a given one) and mergeDefmapSymbols (combine
2450           defmap entries for each symbol per pcode)
2451         * (createDefmap): have defmap entries merged in the end
2452         * (defmapReplaceSymRef): split defmap entries covering two accesses to
2453           a symbol before replacing one access type's symbol, merge symbols in
2454           the end (replacement symbol might already have an entry)
2455         * (assignValnums): keep reference to written WREG intact
2456
2457 2005-04-08 Raphael Neider <rneider AT web.de>
2458
2459         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
2460           Alpha)
2461
2462 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
2463
2464         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
2465         bytes
2466
2467 2005-04-07 Raphael Neider <rneider AT web.de>
2468
2469         * device/include/pic16/usart.h: added compatibility defines for
2470           devices with more than one USART
2471         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2472
2473 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2474
2475         * device/lib/Makefile.in: updated for port specific include
2476
2477 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2478
2479         * support/regression/ports/mcs51/spec.mk: added mcs51 include
2480
2481 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2482
2483         * device/include/8051.h,
2484         * device/include/8052.h,
2485         * device/include/at89S8252.h,
2486         * device/include/at89c55.h,
2487         * device/include/at89x051.h,
2488         * device/include/at89x51.h,
2489         * device/include/at89x52.h,
2490         * device/include/mcs51reg.h,
2491         * device/include/reg51.h,
2492         * device/include/reg764.h,
2493         * device/include/regc515c.h,
2494         * device/include/sab80515.h: (re)moved these 12 files
2495         * device/include/mcs51/8051.h,
2496         * device/include/mcs51/8052.h,
2497         * device/include/mcs51/at89S8252.h,
2498         * device/include/mcs51/at89c55.h,
2499         * device/include/mcs51/at89x051.h,
2500         * device/include/mcs51/at89x51.h,
2501         * device/include/mcs51/at89x52.h,
2502         * device/include/mcs51/mcs51reg.h,
2503         * device/include/mcs51/reg51.h,
2504         * device/include/mcs51/reg764.h,
2505         * device/include/mcs51/regc515c.h,
2506         * device/include/mcs51/sab80515.h: and added them here
2507
2508 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2509
2510         * device/include/stdarg.h: changed SDCC specific keywords to double
2511           underlined form.
2512         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
2513           mcs51 and ds390.
2514         * device/include/hc08/mc68hc908gp32.h,
2515         * device/include/hc08/mc68hc908jb8.h,
2516         * device/include/hc08/mc68hc908jkjl.h,
2517         * device/include/hc08/mc68hc908qy.h: fixed comments
2518         * device/include/mcs51/README: updated
2519         * device/include/mcs51/c8051f120.h: added PINRSF
2520         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
2521         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
2522           amidst code. Also inline is not supported.
2523
2524 2005-04-06 Raphael Neider <rneider AT web.de>
2525
2526         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
2527         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
2528           callers stack/frame pointers
2529
2530 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2531
2532         * device/include/pic16/usart.h: added, missing in previous commit,
2533         * device/include/pic16/adc.h: fixed typo,
2534         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
2535         commit,
2536         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
2537         <p18fxxx.inc>
2538         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
2539         uninitialized because a bug appears with gplink
2540         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
2541         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
2542         complains for unrecognised option
2543
2544 2005-04-05 Raphael Neider <rneider AT web.de>
2545
2546         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
2547           structs as well (using memcpy)
2548         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
2549           on ISRs (GOTO has no label)
2550         * src/pic16/device.h: added OF_OPTIMIZE_DF
2551         * src/pic16/main.c: added compiler switch --optimize-df to enable the
2552           new data flow analysis/optimization
2553         * src/pic16/pcode.c: added (prototypes for and implementation of)
2554           dataflow analysis functions, fixed pCodeInstructions' inCond and
2555           outCond values, made RCALL a branch instruction
2556         * (pic16_unlinkpCode): keep C line if possible
2557         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
2558           C line moved if possible
2559         * (pic16_getRegFrompCodeOp): NEW, improved version of...
2560         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
2561           to use new pic16_getRegFrompCodeOp (works for more SFRs)
2562         * (pic16_BuildFlow): fixed skip instructions with label (did not start
2563           new flow)
2564         * (pic16_getJumptabpCode): NEW, needed in...
2565         * (LinkFlow): fixed handling of jumptables, calls and conditional
2566           branches
2567         * (pic16_InsertCommentAfter): NEW
2568         * (pic16_pCodeReplace): made verbose and flow preserving
2569         * (AnalyzeFlow): added call to data flow analysis
2570         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
2571         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
2572         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
2573
2574 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2575
2576         * src/SDCCast.c (decorateType): fixed bug #1105626
2577
2578 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
2579
2580         * device/include/asm/pic16/features.h,
2581         * pic18f*.h headers,
2582         * device/include/pic16/adc.h,
2583         * device/include/pic16/delay.h,
2584         * device/include/pic16/i2c.h,
2585         * device/include/pic16/malloc.h,
2586         * device/include/pic16/stdio.h,
2587         * device/include/pic16/stdlib.h,
2588         * device/include/pic16/string.h,
2589         * device/lib/pic16/libc/stdio/printf_tiny.c,
2590         * device/lib/pic16/libc/stdio/printf_small.c,
2591         * device/lib/pic16/libc/stdio/strmgpsim.c,
2592         * device/lib/pic16/libc/stdio/strmmssp.c,
2593         * device/lib/pic16/libc/stdio/strmusart.c,
2594         * device/lib/pic16/libc/stdio/vfprintf.c,
2595         * device/lib/pic16/libc/stdlib/ltoa.c,
2596         * device/lib/pic16/libc/stdlib/putchar.c,
2597         * device/lib/pic16/libc/stdlib/x_ftoa.c,
2598         * device/lib/pic16/libc/stdlib/memchrpgm.c,
2599         * device/lib/pic16/libc/stdlib/memchrram.c,
2600         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
2601         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
2602         * device/lib/pic16/libio/adc/adcbusy.c,
2603         * device/lib/pic16/libio/adc/adcread.c,
2604         * device/lib/pic16/libio/adc/adcsetch.c,
2605         * device/lib/pic16/libio/usart/ubaud.c,
2606         * device/lib/pic16/libio/usart/ubusy.c,
2607         * device/lib/pic16/libio/usart/udrdy.c,
2608         * device/lib/pic16/libio/usart/uopen.c,
2609         * device/lib/pic16/libio/usart/uputc.c,
2610         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
2611         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
2612         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
2613         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
2614         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
2615         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
2616         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
2617         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
2618         specific keywords to double underlined form,
2619         * device/lib/pic16/libc/Makefile.rules,
2620         * device/lib/pic16/libsdcc/Makefile.rules,
2621         * device/lib/pic16/libm/Makefile,
2622         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
2623         to compile with C standard set in Makefile.common
2624         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
2625         rand.c and crc.c in compilation process,
2626         * device/lib/pic16/libsdcc/int/divuint.c,
2627         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
2628         `c' from signed to unsigned,
2629         * device/lib/pic16/startup/crt0.c,
2630         * device/lib/pic16/startup/crt0i.c,
2631         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
2632         keywords to double underlined form, bug fixes in _do_cinit function
2633         which prevented the correct initialization of the .idata segment,
2634         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
2635         core to enter a infinite loop
2636         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
2637
2638 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2639
2640         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
2641
2642 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2643
2644         * device/include/Makefile.in: add support for hc08 subdirectory
2645         * device/include/hc08/: new subdirectory
2646         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
2647         Lucas Loizaga, thanks!
2648         * device/include/hc08/mc68hc908qy.h,
2649         * device/include/hc08/mc68hc908gp32.h,
2650         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
2651         their own directory. Changed internal macro names to use the compiler
2652         reserved namespace. Changed SDCC specific keywords to double
2653         underlined form.
2654         * device/include/math.h,
2655         * device/include/malloc.h,
2656         * device/include/stdarg.h,
2657         * device/include/stdbool.h
2658         * device/include/string.h,
2659         * device/include/tinibios.h,
2660         * device/include/ds400rom.h,
2661         * device/include/8051.h,
2662         * device/include/8052.h,
2663         * device/include/80c51xa.h,
2664         * device/include/at89c55.h,
2665         * device/include/at89S8252.h,
2666         * device/include/at89x51.h,
2667         * device/include/at89x52.h,
2668         * device/include/ds80c390.h,
2669         * device/include/reg764.h,
2670         * device/include/regc515c.h,
2671         * device/include/sab80515.h,
2672         * device/include/mcs51/c8051f000.h,
2673         * device/include/mcs51/c8051f018.h,
2674         * device/include/mcs51/c8051f020.h,
2675         * device/include/mcs51/c8051f040.h,
2676         * device/include/mcs51/c8051f060.h,
2677         * device/include/mcs51/c8051f120.h,
2678         * device/include/mcs51/c8051f300.h,
2679         * device/include/mcs51/c8051f310.h,
2680         * device/include/mcs51/c8051f320.h,
2681         * device/include/mcs51/c8051f330.h,
2682         * device/include/mcs51/c8051f350.h,
2683         * device/include/z180.h: Changed SDCC specific keywords to double
2684         underlined form.
2685
2686 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
2687
2688         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
2689         18F4455,
2690         * (pic16_assignConfigWordValue): disable testing of configuration
2691         register value with config mask,
2692         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
2693         function with port->fun_prefix,
2694         * (genFunction): when generating a naked interrupt function never
2695         create an absolute segment placed in interrupt vector address, place
2696         the actual interrupt function at IVA instead, when an interrupt
2697         function is generated with unspecified interrupt then do not create
2698         the absolute section,
2699         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
2700         code for generating a call to generic pointer get/put function with
2701         a call to function pic16_callGenericPointer(),
2702         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
2703         the call to the generic pointer get/put functions with prefixing the
2704         function name with port->fun_prefix,
2705         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
2706         * src/pic16/main.c (_process_pragma): prefix function with
2707         port->fun_prefix,
2708         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
2709         calling assembler, old 18Fxxxx macro is deprecated,
2710         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
2711         PC_ASMDIR in while condition,
2712         * (findInstruction): add PC_ASMDIR in while condition,
2713         * (buildCallTree): prefix main with port->fun_prefix,
2714         * (pic16_pCode2str): fixed bug that didn't emit the memory access
2715         identifier for variable with banked access in instructions BTFSS,
2716         BTFSC, BCF, BSF, BTG
2717         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
2718         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
2719         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
2720         perform optimization when enviroment variable NO_REG_OPT is set,
2721         * (insideLRBlock): NEW, return 1 if register is inside an
2722         INF_LOCALREGS block,
2723         * (RemoveRegFromLRBlock): remove a register that is completely
2724         eliminated by register optimization, but it is still left in local
2725         register store/restore in/from stack block,
2726         * (Remove2pcodes): after removing register, check to see if it
2727         should be removed from local register store/restore in/from stack
2728         block,
2729         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
2730         DUMMY_READ_VOLATILE,
2731
2732         * device/include/pic16/adc.h: minor prototype modifications and
2733         update,
2734         * device/include/pic16/malloc.h: added GPL notice various
2735         modifications,
2736         * device/include/pic16/stdint.h: NEW, standard header for ints
2737         * device/include/pic16/delay.h: NEW, header for delay functions,
2738         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
2739         delay1mtcy,
2740         * device/include/pic16/signal.h: NEW, header providing helper macros
2741         for implementing signal handlers,
2742         * device/include/pic16/stdio.h: added prototypes for functions,
2743         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
2744         prototypes for stdin and stdout, added macro PUTCHAR to
2745         automatically implement putchar function prototype,
2746         * device/include/pic16/usart.h: modified and updated USART library,
2747         * device/lib/pic16/libio/adc/,
2748         * device/lib/pic16/libio/i2c: some modifications to improve library
2749         performance,
2750         * device/lib/pic16/libc/stdio/: modifications for the new printf*
2751         family of functions,
2752         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
2753         family of functions and other sources,
2754         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
2755         of the PIC18Fxx[28] devices,
2756         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
2757         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
2758         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
2759         _do_cinit function, because the previous failed when local variables
2760         where not placed in the same memory bank,
2761         * device/lib/pic16/libsdcc/char/: various modifications to improve
2762         library performance,
2763         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
2764         information on the new functions of the c library and more...
2765
2766 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2767
2768         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
2769
2770 2005-03-26 Raphael Neider <rneider AT web.de>
2771
2772         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
2773           if condition == CARRY)
2774         * (genCmp): adapted to new genSkipc semantics
2775         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
2776           on rIfx (genCmp was broken)
2777
2778 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2779
2780         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
2781         * src/z80/main.c (_keywords[]),
2782         * src/SDCCglobal.h (struct options),
2783         * src/SDCC.y,
2784         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
2785         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
2786         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
2787         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
2788         always available in leading double underscore form. The C99 support is
2789         mostly missing, but it's a start.
2790         * support/regression/tests/bug-227710.c: fixed nonconforming use of
2791         reserved identifier "__data".
2792
2793 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2794
2795         * src/mcs51/peeph.def: fixed bug 1170013
2796
2797 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2798
2799         * device/include/mcs51reg.h: fixed bug 842007
2800
2801 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2802
2803         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
2804         last time.
2805
2806 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2807
2808         * src/port.h (struct PORT),
2809         * src/avr/ralloc.c (avr_assignRegisters),
2810         * src/avr/main.c,
2811         * src/ds390/ralloc.c (ds390_assignRegisters),
2812         * src/ds390/main.c,
2813         * src/hc08/ralloc.c (hc08_assignRegisters),
2814         * src/hc08/main.c,
2815         * src/mcs51/ralloc.c (mcs51_assignRegisters),
2816         * src/mcs51/main.c,
2817         * src/pic/ralloc.c (pic14_assignRegisters),
2818         * src/pic/main.c,
2819         * src/pic16/ralloc.c (pic16_assignRegisters),
2820         * src/pic16/main.c,
2821         * src/xa51/ralloc.c (xa51_assignRegisters),
2822         * src/xa51/main.c,
2823         * src/z80/ralloc.c (z80_assignRegisters),
2824         * src/z80/ralloc.h,
2825         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
2826         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
2827         * src/SDCCcse.h,
2828         * src/SDCCdflow.c (computeDataFlow),
2829         * src/SDCCdflow.h,
2830         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
2831         * src/SDCCloop.h,
2832         * src/SDCCcflow.c (*),
2833         * src/SDCCcflow.h,
2834         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
2835         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
2836         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
2837         immedDom() returning wrong block; probably fixes bug #1160833)
2838
2839 2005-03-20 Borut Razem <borut.razem AT siol.net>
2840
2841         * support/scripts/inc2h.pl: WIN32 port
2842
2843 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
2844
2845         * device/lib/makefile.in: added abs.c and labs.c
2846
2847 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2848
2849         * device/include/stdint.h: added
2850         * device/lib/abs.c: added
2851         * device/lib/labs.c: added
2852         * device/include/stdlib.h: added abs() and labs() prototypes
2853         * device/lib/libsdcc.lib: added abs and labs
2854         * device/include/float.h,
2855         * device/lib/_fsmul.c,
2856         * device/lib/printf_fast.c,
2857         * device/lib/printf_tiny.c: updated comments
2858
2859 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2860
2861         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
2862         bug #1164313
2863
2864 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2865
2866         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
2867         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
2868
2869 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
2870
2871         * device/lib/printf_large.c: removed inline assembly for portability and
2872           readability. Use printf_fast if speed or size are more important.
2873         * src/pic16/gen.c: removed conditions around use of DEBUGpc
2874         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
2875
2876 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
2877
2878         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
2879         prevent compiler warning
2880
2881 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2882
2883         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
2884         moved to level 0 and declared as static. Also they are explicit
2885         placed in access bank. This was necessery because some times they
2886         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
2887         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
2888         optimizations. Currently only compare to unsigned char is implemented,
2889         * src/pic16/gen.c: added fReturnIdx array,
2890         * (struct resolvedIfx) is moved to gen.h and made public,
2891         * (struct _G): added sregsAlloc and sregsAllocSet fields,
2892         * (aopForSym): added an optimization to directly store in stack of
2893         the operand of a SEND iCode,
2894         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
2895         but as registers instead (AOP_REG) using the fReturnIdx array,
2896         * (pic16_freeAsmop): remove the freed register from the
2897         _G.sregsAlloc field,
2898         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
2899         a compare of 'WREG',
2900         * (pic16_popGetTempRegCond): changed function prototype, now
2901         function takes also a bitVector argument v which holds the current
2902         set of registers that are allocated for stack access by aopForSym,
2903         registers allocated in aopForSym for accessing stack symbols are not
2904         any more part of the functions usedRegs field,
2905         * (genCall): some times aopOp is called for a stack variable to be
2906         send, aopForSym might perform the push, if this is true make sure
2907         that genCall doesn't push the variable twice by testing _G.resDirect,
2908         * (genFunction): changed testing for unspecified interrupt number
2909         from 256 to INTNO_UNSPEC,
2910         * modified selection scheme of frame pointer generation. Previously
2911         if function did use local registers a frame pointer was generated,
2912         now a frame pointer is generated only if function has arguments
2913         (that need PLUSW2 register access), or has stack arguments, or the
2914         compiler is not instructed to omit the frame pointer,
2915         * (genEndFunction): before restoring local registers that were saved
2916         in the function preamble, also restore the registers that *might*
2917         have been allocated for stack access,
2918         * (genRet): removed some old comments,
2919         * (genCmp, the active (RN's) version): added a call to the
2920         pic16_genCmp_special function to perform the compare with a more
2921         robust and optimized way,
2922         * (genInline): a feature has been added in inline code generation,
2923         which allows a wildcard variable substitution when writing inline
2924         assembly. Code is incomplete and experimental therefore undocumented,
2925         * (genCast): changed order of aopOp for result and right to allow
2926         aopForSym to directly load the result if possible,
2927         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
2928         perform an optimized compare on some selected special occasions,
2929         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
2930         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
2931         generate an IVT any more,
2932         * src/pic16/main.c (pic16_optionsTable): added command line option
2933         --optimize-cmp,
2934         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
2935         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
2936         macros,
2937         * src/pic16/NOTES: Raphael Neider added in list of active developers
2938         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
2939         jumptable_end to prevent bug #,
2940         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
2941         inCond and outCond fields,
2942         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
2943         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
2944         turn off register spilling,
2945         * (packRegsForOneUse): synced with other ports' versions although it
2946         is not used currently,
2947         * (pic16_packRegisters): added an optimization while reading
2948         structure bitfields, some registers may be saved (malloc code is
2949         decreased by 80 bytes)
2950
2951 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2952
2953         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2954         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2955         this can be optimized more?
2956
2957 2005-03-10 Raphael Neider <rneider AT web.de>
2958
2959         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2960           genNearPointerGet): (hopefully) fixed access to bitfields via
2961           pointers (p->bitN = x; and x = p->bitN; failed)
2962
2963 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2964
2965         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2966
2967 2005-03-09 Raphael Neider <rneider AT web.de>
2968
2969         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2970
2971 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2972
2973         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2974         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2975           (regTypeNum): set REG_BIT type if necessary
2976         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2977         * support/regression/tests/critical.c: check bug 1144613
2978
2979 2005-03-02 Raphael Neider <rneider AT web.de>
2980
2981         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2982
2983 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2984
2985         * src/avr/ralloc.c (serialRegAssign),
2986         * src/ds390/ralloc.c (serialRegAssign),
2987         * src/hc08/ralloc.c (serialRegAssign),
2988         * src/mcs51/ralloc.c (serialRegAssign),
2989         * src/pic/ralloc.c (serialRegAssign),
2990         * src/pic16/ralloc.c (serialRegAssign),
2991         * src/xa51/ralloc.c (serialRegAssign),
2992         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2993
2994 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2995
2996         * src/SDCCast.c (decorateType): fixed bug 1124787
2997
2998 2005-02-20 Hubert Sack <sack AT digiplan.de>
2999         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3000
3001         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
3002         patch #1121755
3003
3004 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3005
3006         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
3007         to keep the correct label reference count when adding/removing references
3008         to labels. A peephole file using this is appended to patch #1144962.
3009
3010 2005-02-14 Raphael Neider <rneider AT web.de>
3011
3012         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
3013         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
3014         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
3015           retrievals of result operand's value on assignment
3016
3017 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
3018
3019         * device/include/pic16/string.h: modified prototype for memccpy()
3020         to memccpy(void *, void *, char, size_t)
3021         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
3022         check whether to omit frame pointer or not,
3023         * (genInline): convert all occurences of "\n" to LF in inline
3024         assembler blocks, this helps formatting the inline text,
3025         * (pic16_loadFSR0): modified prototype,
3026         * (genNearPointerGet, genNearPointerSet): reorganization of code,
3027         removed some 8051 legacy code,
3028         * (genPackBits): enabled handling bitfields exceeding one byte in size,
3029         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
3030         before allocating temporary registers in functions,
3031
3032 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3033
3034         * support/regression/tests/bitvars.c: corrected the "fix"
3035
3036 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3037
3038         * support/regression/tests/bitvars.c,
3039         * support/regression/tests/bitwise.c,
3040         * support/regression/tests/rotate.c: "fixed" problems on Alpha
3041
3042 2005-02-10 Raphael Neider <rneider AT web.de>
3043
3044         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
3045           different size for Alpha
3046         * src/pic16/gen.c (genCmpEq) : improved compare with 0
3047
3048 2005-02-09 Raphael Neider <rneider AT web.de>
3049
3050         * src/SDCC.lex(doPragma) : save and restore warning options as well
3051           (also added new stack plus clone- and copyAndFreeSDCCERRG())
3052         * have #pragma less_pedantic set the errorlevel to WARNING
3053           (fixes #1117001)
3054         * (cloneOptimize) : fixed wrong malloc's size
3055         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
3056           facilitate correct handling of #pragma (save|restore)
3057
3058 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3059
3060         * src/mcs51/gen.c: removed non-standard C nameless struct/union
3061
3062 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
3063
3064         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
3065
3066 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
3067
3068         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
3069
3070 2005-02-02 Raphael Neider <rneider AT web.de>
3071
3072         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
3073         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
3074         * (pic16_storeForReturn): fixed to allow returning function pointers
3075         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
3076         * device/include/pic16/{stddef.h,stdbool.h}: added
3077
3078 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
3079
3080         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
3081
3082 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
3083
3084         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
3085         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
3086          appeared to be required
3087
3088 2005-01-31 Borut Razem <borut.razem AT siol.net>
3089
3090         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
3091           include/mcs51 and include/z80 directories to the package
3092
3093 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3094
3095         * src/hc08/gen.c (genFunction): fixed bug #1112752
3096
3097 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3098
3099         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
3100
3101 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3102
3103         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
3104
3105 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
3106
3107         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
3108
3109 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
3110
3111         * device/include/c8051fxxx.h: removed these 6 files
3112         * device/include/mcs51/c8051fxxx.h: added these 11 new files
3113
3114 2005-01-26 Raphael Neider <rneider AT web.de>
3115
3116         * src/pic16/gen.c (genAssign): fixed assignment from longs
3117           in codespace (were cut to three bytes)
3118         * (genDummyRead): implemented (except for CODESPACE...),
3119           fixed bug #1108575
3120         * src/pic16/glue.c (emitStatistics): beautified
3121         * device/lib/pic16/libm/Makefile: added include path
3122
3123 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3124
3125         * src/z80/gen.c (aopPut): fixed bug #1103902
3126
3127 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3128
3129         * device/lib/expf.c: fixed bug #1095792
3130
3131 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
3132
3133         * device/lib/pic16/libm: added Math library sources
3134
3135 2005-01-24 Raphael Neider <rneider AT web.de>
3136
3137         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
3138           to enable upcast to pCodeOpReg2 (there is no type tag to
3139           differenciate the two and pic16_popGet2p cast into PCOR2)
3140         * src/pic16/main.c (_process_pragma): fixed another malloc bug
3141           (sizeof(sectNames) changed to sizeof(sectName))
3142           Both patches fix segfaults under MinGW.
3143
3144 2005-01-23 Raphael Neider <rneider AT web.de>
3145
3146         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
3147           Safe_[mc]?alloc()'ed variables
3148         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
3149           of (byte sized) temporaries (assign them to WREG for now)
3150         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
3151           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
3152           this might fix SIGSEGVs on MinGW...
3153         * src/SDCCopt.c (killDeadCode): restored original behaviour
3154           (volatile operands might get thrown away though)
3155
3156 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
3157
3158         * src/pic16/gen.c: fixed bug #1106975,
3159         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
3160         pointer update, INTCON is saved, global interrupts are disabled and
3161         restored after updateing TOS.
3162         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
3163         * added function attribute 'shadowregs' to take advantage of shadow
3164         registers,
3165         * added function attribute 'wparam' as an alternative to the wparam
3166         pragma,
3167         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
3168         user declares a non-ISR function as 'shadowregs',
3169         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
3170
3171 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
3172
3173         * .version: bumped version number to 2.4.8
3174         * device/lib/pic16/pics.all: list of PIC18F devices supported by
3175         pic16 port,
3176         * device/lib/pic16/libio/i2c/: I2C module support library,
3177         * device/include/pic16/i2c.h: I2C support library header,
3178         * device/lib/pic16/libc/stdio/: standard IO support sources,
3179         * (printf_small.c): printf_small() source, supports float print,
3180         * (printf_tiny.c): printf_tiny() source, does not support floats,
3181         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
3182         enable global optimizations for entire library source, other
3183         Makefiles in the source tree are also modified to reflect this,
3184         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
3185         function,
3186         * doc/sdccman.lyx: updated to reflect new changes,
3187         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
3188         sym->onStack if-case,
3189         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
3190         sbit, idata, _idata, xdata, _xdata,
3191         * added pragma library, to link an external library, (see doc),
3192         * removed command line options, --pomit-config-words, --pomit-ivt,
3193         --pleave-reset-vector,
3194         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
3195         when calling assembler to reflect memory model used, also define
3196         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
3197         reflect stack model used,
3198         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
3199         on stack return NULL,
3200
3201 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3202
3203         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
3204           of the operands is volatile. Fixes #1020220
3205
3206 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3207
3208         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
3209         * (OptimizeRegUsage): make sure that there is really no other flow where
3210           the first pCode is used
3211
3212 2005-01-22 Raphael Neider <rneider AT web.de>
3213
3214         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
3215           to fix #1106967 (pCode->seq are not set up correctly)
3216
3217 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3218
3219         * src/SDCCglue.c (glue): make sure code area is declared before the
3220         static initialization area.
3221
3222 2005-01-21 Raphael Neider <rneider AT web.de>
3223
3224         * device/lib/Makefile.in: fixed test for pic16 install dir
3225         * device/lib/pic16/*/Makefile*: modified compile flags to enable
3226           optimizations
3227         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
3228           added --optimize-goto compiler switch and pragma wparam documentation
3229         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
3230         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
3231           and PRODH closing bug #1071770 (peephole optimizer)
3232
3233 2005-01-19 Raphael Neider <rneider AT web.de>
3234
3235         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
3236           cmdLine buffers (used when calling sdcpp...) are large enough
3237           (MAX_PATH=256 truncates arguments leading to system halts when
3238           used in MinGW...)
3239         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
3240         * (genUminus): rewritten to for efficiency
3241         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
3242           used uninitialized in some cases)
3243         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
3244           copy the third byte from the int -- now assumes 0x80 (data memory)
3245         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
3246           operands (genAddLit expects the iCode's operands to swapped as
3247           well), fixed leftover bytes (crashed for short left operands)
3248         * (pic16_genMinusDec): performance improvements, removed false
3249           PIC14 emitSKPNCs
3250         * (pic16_genMinus): fixed to cope with differently sized operands
3251         * src/pic16/glue.c (pic16_glue): added new banksel optimization
3252           for --obanksel > 1
3253         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
3254         * src/pic16/graph.[ch]: implementation of directed graphs, used by
3255           new banksel optimization